RainMEN
@RainMEN
HTML/STYLUS/JADE/JS/Laravel/Joomla/DLE и т.д.

Как подключать классы Joomla 3 в модулях и компонентах?

Приветствую!
Не судите строго, второй день пишу на php да еще и модуль для Joomla 3.2.
Суть вопроса такова модуль представляет небольшой набросок формы при изменении полей которого на JS аяксом отправляется запрос в php скрипт который должен из БД взять поля и проверить соответствие этих полей.
Сам класс доступа к БД и получения списка объектов находится в другом файле (controler.php).
В случае с главным файлом модуля mod_calctrans подключить файл удается без проблем и метод срабатывает
include_once JPATH_ROOT.'/modules/mod_calctrans/controller.php';

но в случае со скриптом который обрабатывает аякс запрос получаю ошибку:

Warning: include_once(JPATH_ROOT/modules/mod_calctrans/controller.php) [function.include-once]: failed to open stream: No such file or directory in V:\home\dev.local\www\modules\mod_calctrans\ajax.php on line 5

Warning: include_once() [function.include]: Failed opening 'JPATH_ROOT/modules/mod_calctrans/controller.php' for inclusion (include_path='.;C:\php\pear') in V:\home\dev.local\www\modules\mod_calctrans\ajax.php on line 5
sajbjdsadjbdjasjsdj


Почему так происходит, как решить эту проблему?
Еще при возврате ответа получаю набор символов, файлы оба в кодировке UTF-8, как получать русский текст из обработанного аякс запроса?
Ссылка на мой модуль!

ЗЫ: Если есть у кого то литература или ссылки на литературу по тому как использовать Freamwork Joomla то поделитесь, желательно на русском. На docs.joomla.org многое не понятно.
  • Вопрос задан
  • 5452 просмотра
Пригласить эксперта
Ответы на вопрос 3
recomp
@recomp
web developer
Советую почитать для начала: joomla-book.ru/development/creating-modules/module...
Ответ написан
Комментировать
puchkovk
@puchkovk
Усложнять — просто. Упрощать — сложно.
Оно же английскими буквами по экрану пишет, что PHP не находит файл JPATH_ROOT/modules/mod_calctrans/controller.php

Судя по конструкции "define('_JEXEC', 1) or die('...');" в 3 строке ajax.php вы вызываете его напрямую из браузера. А значит, JPATH_ROOT не определена.

Почитайте о внутренней "кухне" Joomla. К сожалению, не могу посоветовать литературу, т.к. слишком давно не имел дела с этой CMS.
Ответ написан
@prkparadox
нельзя просто так взять и сделать прямой запрос на файл .../modules/mod_calctrans/ajax.php
когда мне нужно сделать AJAX-запрос, я обычно поступаю так: создаю компонент для joomla, в нем создаю обработчик AJAX-запроса. обращаюсь примерно так: index.php?option=com_компонент&task=задача&tmpl=component&no_html=1&"+Math.random(). таким образом получаю ответ без лишнего кода.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы