Joomla 1.5调用get_path('admin_html')返回Null

时间:2012-05-23 18:46:34

标签: joomla joomla1.5

admin.categories.php文件的第18行有

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

Helper Library文件尚未修改,仍然显示

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。据我所知,这些代码都没有被修改过。什么给出了什么?有人指出我正确的方向吗?

这导致的问题是,当它无法打开所需文件时会抛出致命错误。所以我无法打开类别经理。

1 个答案:

答案 0 :(得分:0)

因此,当您从Category Manager菜单Content中选择getPath()时会调用$varname == 'admin_html'$user_option == null

这意味着,当第一个if()为真时(因为null等于false$check等于false$user_option被设置到com_categoriesJRequest::getCmd('option'); line)的结果

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

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