В этом блоге, по просьбе читателей, я напишу как инициализировать 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();