Мне нужно получить информацию о пользователе, который в данный момент вошел в систему Joomla, из программы вне самой Joomla. Я обновился с 1.5 до 2.5, и то, что у меня было раньше, больше не работает.
<?php
define( '_VALID_MOS', 1 );
include_once( 'globals.php' );
require_once( 'configuration.php' );
require_once( 'includes/joomla.php' );
$option="test";
$mainframe = new mosMainFrame( $database, $option, '.' );
$mainframe->initSession();
$my = $mainframe->getUser();
$joomla_name = $my->name;
$joomla_email = $my->email;
$joomla_password = $my->password;
После некоторых исследований я пришел к следующему:
<?php
define( '_JEXEC', 1 );
define( 'JPATH_BASE', dirname(__FILE__) );
define( 'DS', '/' );
require_once ( JPATH_BASE .DS.'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' );
$my =& JFactory::getUser();
$joomla_name = $my->name;
$joomla_email = $my->email;
$joomla_password = $my->password;
$joomla_username = $my->username;
Ошибок не выдает, но вроде работает. Однако пользовательский объект пуст. Этот скрипт находится в том же каталоге, что и установка Joomla. В чем может быть проблема? Спасибо!
Источники:
http://www.cmsbloke.com/accessing-joomla-objects-from-an-external-script/