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/