Я переношу свой сайт Joomla 2.5 на Joomla 3.3.
Теперь я борюсь с загрузкой рамки joomla и отображением модуля в шаблоне phpbb. Загрузка Joomla framework отлично работала в Joomla 2.5 с помощью этого кода:
define( '_JEXEC', 1 ); define('JPATH_BASE', '/var/customers/webs/tf2swiss/joomlasite'); define( 'DS', DIRECTORY_SEPARATOR ); require_once('../configuration.php'); require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); require_once ( JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'factory.php' ); require( JPATH_LIBRARIES. '/import.php'); // Joomla! library imports jimport( 'joomla.environment.uri' ); jimport( 'joomla.user.user'); jimport('joomla.application.module.helper'); /* Create the Application */ $mainframe =& JFactory::getApplication('site'); jimport('joomla.plugin.helper');
Но теперь я не работаю в Joomla 3.x. Загружается страница, где находится этот код. Использование PHP в файлах шаблонов phpbb включено в параметрах безопасности.
Кто-нибудь знает, как загрузить фреймворк joomla 3.x во внешние файлы?
Следующее отлично работает для меня:
define('_JEXEC', 1); define('JPATH_BASE', '../'); require_once JPATH_BASE . 'includes/defines.php'; require_once JPATH_BASE . 'includes/framework.php'; // Create the Application $app = JFactory::getApplication('site');
Попытайтесь изменить эту строку, которая у вас в настоящее время имеет относительный путь, как показано выше. Возможно, вы изменили ../
зависимости от того, где у вас есть корень Joomla по отношению к вашему внешнему файлу.
define('JPATH_BASE', '/var/customers/webs/tf2swiss/joomlasite');
Чтобы проверить, работает ли он, просто используйте что-то вроде этого:
var_dump($app);
Если вы видите отображаемые данные, то вы успешно импортировали фреймворк