В этом блоге, по просьбе читателей, я напишу как инициализировать Joomla Framework в отдельном файле. Это нам может понадобится для того, что бы выполнить, например, в этот файл AJAX запрос, что уменьшит нагрузку на сервер, так как не будут инициализироваться лишние инструменты самой CMS
Итак инициализация для Joomla 3.x нужно создать файл в корне CMS и добавить в него следующий код:
<?php define( '_JEXEC', 1 ); if ( file_exists( __DIR__ . '/defines.php' ) ) { include_once __DIR__ . '/defines.php'; } if ( !defined( '_JDEFINES' ) ) { define( 'JPATH_BASE', __DIR__ ); require_once JPATH_BASE . '/includes/defines.php'; } require_once JPATH_BASE . '/includes/framework.php'; //Тут мы уже можем использовать API Joomla Framework $db = JFactory::getDbo(); $query = $db->getQuery( true )->select( '*' )->from( '#__users' ); $list = $db->setQuery( $query )->loadObjectList(); print_r( $list );
Joomla 2.5.х нужно создать файл в корне CMS и добавить в него следующий код:
<?php define( '_JEXEC', 1 ); define( 'DS', DIRECTORY_SEPARATOR ); if ( file_exists( dirname( __FILE__ ) . '/defines.php' ) ) { include_once dirname( __FILE__ ) . '/defines.php'; } if ( !defined( '_JDEFINES' ) ) { define( 'JPATH_BASE', dirname( __FILE__ ) ); require_once JPATH_BASE . '/includes/defines.php'; } require_once JPATH_BASE . '/includes/framework.php'; //Тут мы уже можем использовать API Joomla Framework $db = JFactory::getDbo(); $query = $db->getQuery( true )->select( '*' )->from( '#__users' ); $list = $db->setQuery( $query )->loadObjectList();
Если мы например хотим файл положить в папку с модулем, например в /modules/mod_modulename/ajax.php И использоваьть тот же код, только в строку
define( 'JPATH_BASE', __DIR__ );
заменить на
define( 'JPATH_BASE', __DIR__ . '/../../' );
Тоесть выйти на пару папок выше! Исходный код будет такой:
<?php define( '_JEXEC', 1 ); if ( file_exists( __DIR__ . '/defines.php' ) ) { include_once __DIR__ . '/defines.php'; } if ( !defined( '_JDEFINES' ) ) { define( 'JPATH_BASE', __DIR__ . '/../../' ); require_once JPATH_BASE . '/includes/defines.php'; } require_once JPATH_BASE . '/includes/framework.php'; //Тут мы уже можем использовать API Joomla Framework $db = JFactory::getDbo(); $query = $db->getQuery( true )->select( '*' )->from( '#__users' ); $list = $db->setQuery( $query )->loadObjectList();