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;

所以它最终会构建一个路径'/components//admin..html.php',因为 $name 和 $user_option 变量都是空的,对吧?然后检查路径失败,在失败期间返回 null。据我所知,这些代码都没有被修改过。那么给了什么?有人指出我正确的方向吗?

这导致的问题是它在无法打开所需文件时引发致命错误。所以我无法打开类别管理器。

4

1 回答 1

0

因此,当您Category ManagerContent菜单中选择时,使用和getPath()调用。$varname == 'admin_html'$user_option == null

这意味着第一个if()为真(因为null等于false$checkfalse$user_option被设置为com_categories(的结果JRequest::getCmd('option'); line

然后$name设置为'categories',因此当switch()获取到admin_html它设置$path为的情况时/components/com_categories/admin.categories.html.php(假设本地目录分隔符设置为/)。

因为这是正确的路径,并且该文件通常包含在 J1.5 安装中,所以出现了其他问题(或文件已被删除/删除)

于 2012-05-24T00:08:41.497 回答