У меня есть скрипт PHP, который выполняется путем прямого доступа к нему (это для вывода AJAX).Как использовать плагин Joomla внутри PHP-скрипта вне Joomla Framework
Я инициализацией Joomla Framework переменные в скрипте следующим образом:
if ($JEXEC_defined==TRUE) {
defined('_JEXEC') OR defined('_VALID_MOS') OR die('Restricted access'); //security reason
$direct_script_access=FALSE;
}
if ($JEXEC_defined==FALSE) {
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);
define('JPATH_BASE', dirname(__FILE__));
require_once (JPATH_BASE .DS.'includes'.DS.'defines.php');
require_once (JPATH_BASE .DS.'includes'.DS.'framework.php');
$direct_script_access=TRUE;
// initialize the application
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
}
if ($user->username!="") if ($direct_script_access==TRUE) {
//PHP code when script is accessed directly
}
В качестве выхода из сценария при обращении непосредственно мне нужно, чтобы отобразить Joomla плагин, напр:
{valsimplecalendar SRQCMPDT1 }
Но вместо отображения содержимого плагина я получаю плоский текст «{valsimplecalendar SRQCMPDT1}».
Мой вопрос: как инициализировать систему плагинов при прямом вызове PHP? Спасибо.
EDIT: Я гугл и нашел, что мне нужно импортировать Joomla плагин:
JPluginHelper::importPlugin('content');
$dispatcher = &JDispatcher::getInstance();
$dispatcher->trigger('onBeforeDisplayContent', array (& $category, &$params, $limitstart));
Но в любом случае это не делает, чтобы отобразить плагин содержимого при прямом вызове PHP скрипта.
Поблагодарили бы за любые предложения! Благодаря!
Почему вы используете его в качестве внешнего (для Joomla) скрипт? – Craig
это для ответа ajax, если не работает как внешний скрипт - у меня будет шаблонный мусор внутри ajax-ответа. – ihtus
Вы создаете пользовательский компонент? Я не уверен, какая версия Joomla вы используете, но у 1.6+ есть несколько способов поддержки ajax, включая использование контроллера для форматов «raw» или «json», которые вообще не используют шаблон. – Craig