0

admin.categories.php ファイルの 18 行目に、

require_once( JApplicationHelper::getPath( 'admin_html' ) );

ヘルパー ライブラリ ファイルは変更されていません。

function getPath( $varname, $user_option=null )
$check = ( ( $varname == 'mod0_xml' ) || ( $varname == 'mod1_xml' ) );

if ( !$user_option && !$check ) {
    $user_option = JRequest::getCmd('option');
} else {
    $user_option = JFilterInput::clean($user_option, 'path');
}

$result = null;
$name   = substr( $user_option, 4 );
...    
case 'admin_html':
    $path   = DS.'components'.DS. $user_option .DS.'admin.'. $name .'.html.php';
    $result = JApplicationHelper::_checkPath( $path, -1 );
    break;

$name 変数と $user_option 変数が両方とも空なので、パス '/components//admin..html.php' を構築することになりますよね? その後、checkpath が失敗し、失敗時に null が返されます。私の知る限り、このコードは変更されていません。それで、何が得られますか?誰かが私を正しい方向に向けますか?

これが引き起こす問題は、必要なファイルを開くことができない場合に致命的なエラーをスローすることです。そのため、カテゴリマネージャーを開くことができません。

4

1 に答える 1

0

したがって、メニューCategory Managerから選択すると、とで呼び出されます。ContentgetPath()$varname == 'admin_html'$user_option == null

つまり、最初の値if()が真であるため(に等しいnullため)は(の結果)に設定されますfalse$checkfalse$user_optioncom_categoriesJRequest::getCmd('option'); line

次に$name、に設定される'categories'ので、switch()get to admin_htmlcaseに設定$pathされている場合/components/com_categories/admin.categories.html.php(ローカルディレクトリの区切り文字がに設定されていると仮定/)。

そのため、これは正しいパスであり、そのファイルは通常J1.5インストールに含まれているため、他の問題が発生しています(またはファイルが削除/削除されています)

于 2012-05-24T00:08:41.497 に答える