У меня есть следующий PHP-скрипт file.php на моем сайте Joomla:
$user = JFactory::getUser(); $usr_id = $user->get('id');
Если я запускаю его напрямую, используя в HTML:
include_once "file.php";
Он получит идентификатор пользователя, без проблем.
Однако, если запустить его с помощью запроса Ajax:
$.ajax({ url: "other.php", ...
Где other.php:
include_once "file.php";
Я получаю сообщение об ошибке:
Fatal error: Class 'JFactory' not found in file.php on line 3
Зачем? Любая помощь!?
Вам нужно импортировать библиотеку Joomla для использования класса JFactory
. Чтобы импортировать библиотеку, добавьте следующее в начало файла:
define( '_JEXEC', 1 ); define( 'JPATH_BASE', dirname(__FILE__) ).'/../..' ); require_once ( JPATH_BASE .'/includes/defines.php' ); require_once ( JPATH_BASE .'/includes/framework.php' ); require_once ( JPATH_BASE .'/libraries/joomla/factory.php' ); $mainframe = JFactory::getApplication('site'); $mainframe->initialise();