0

外部ファイルにアクセスしている joomla モジュールに取り組んでいます (ajax 呼び出し) パスの問題に直面していました。ここにコードがあります

define( '_JEXEC', 1 );
chdir("../../");
getcwd();
define('JPATH_BASE', getcwd() );

define( 'DS', DIRECTORY_SEPARATOR );

require_once (JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

global $mainframe;

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

今、私はコードで何が起こっているのかを理解しようとしていますが、chdir("../../"); 動作しますか?? そのコードを含むファイルのディレクトリを変更しますか?? (私の場合はgetuser.php)またはdefines.phpやframework.phpなどのjoomlaコアファイルのパスを変更しますか?? 正確に何が起こっているのですか?? 他の解決策や既存のコードの変更が私のものよりも優れている場合は、それを私と共有してください。とても感謝しています。

もう1つ、私が変更した場合の影響は何ですか

$mainframe =& JFactory::getApplication('site') to $mainframe =& JFactory::getApplication('administrator') 

変更しましたが、結果に影響はありません。

4

2 に答える 2

0

chdirは、明示的に指定したものを直接変更します。JFactoryPHP がクラス ファイルを見つけることができなかったため、致命的なエラーが発生しましたクラス ファイルを参照するようにパスを変更します。

于 2013-08-15T06:02:53.413 に答える
0

Joomla 2.5 以降を使用していると仮定して、次の方法で Joomla フレームワークを含める必要があります。

define('_JEXEC', 1);
define('JPATH_BASE', realpath(dirname(__FILE__)));
require_once ( JPATH_BASE .'/includes/defines.php' );
require_once ( JPATH_BASE .'/includes/framework.php' );
require_once ( JPATH_BASE .'/libraries/joomla/factory.php' );
于 2013-08-15T06:08:42.317 に答える