0

Joomla サイトに次の PHP スクリプト file.php があります。

$user = JFactory::getUser();
$usr_id = $user->get('id');

HTMLで使用して直接実行すると:

include_once "file.php";

ユーザーIDを取得しますが、問題ありません。

ただし、Ajax リクエストを介して実行する場合:

$.ajax({
    url: "other.php",
...

other.php の場所:

include_once "file.php";

エラーが発生します:

Fatal error:  Class 'JFactory' not found in file.php on line 3

なんで?助けて!?

4

1 に答える 1

4

JFactoryクラスを使用するには、Joomla ライブラリをインポートする必要があります。ライブラリをインポートするには、ファイルの先頭に次を追加します。

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();
于 2013-10-08T20:36:56.943 に答える