• 懒鸟飞:帝国cms模板专业分享平台,新域名:lanniaofei.com

怎样在帝国cms的userfun.php中的函数调用当前栏目id和当前栏目的目录

在帝国CMS的userfun.php中,可以通过以下方式获取当前栏目的ID和当前栏目的目录:

获取当前栏目ID

可以通过全局变量$GLOBALS['navclassid']来获取当前页面所在的栏目ID。

获取当前栏目的目录

可以通过以下两种方式获取当前栏目的目录:
  1. 使用$class_r数组
    帝国CMS中有一个全局数组$class_r,用于存储栏目的相关信息。可以通过以下代码获取当前栏目的目录:
    php复制
    $classpath = $class_r[$GLOBALS['navclassid']]['classpath'];
  2. 使用sys_ReturnBqClassname函数
    这是一个系统函数,可以用来获取栏目的完整URL。例如:
    php复制
    $cr = array('classid' => $GLOBALS['navclassid']);
    $classurl = sys_ReturnBqClassname($cr, 9); // 返回栏目的完整URL

    如果只需要目录部分,可以通过字符串处理函数提取。

示例代码

以下是一个完整的示例代码,展示如何在userfun.php中获取当前栏目的ID和目录:
php复制
<?php
// 获取当前栏目ID
$current_classid = $GLOBALS['navclassid'];

// 获取当前栏目的目录
$current_classpath = $class_r[$current_classid]['classpath'];

// 输出结果
echo "当前栏目ID:$current_classid<br>";
echo "当前栏目目录:$current_classpath";
?>

通过以上代码,你可以在userfun.php中灵活地获取和使用当前栏目的ID和目录。

-----------------------------------------------------------------------------------

如果在帝国CMS的userfun.php中调用当前栏目的目录没有反应,可能是由于以下原因导致的:
  1. 全局变量未正确获取:确保$class_r数组和$GLOBALS['navclassid']变量已经正确加载。
  2. 栏目目录字段问题:如果$class_r[$GLOBALS['navclassid']]['classpath']没有返回值,可能是因为栏目目录字段未正确设置或数据库中对应的classpath字段为空。
  3. 模板或调用方式错误:在模板中调用自定义函数时,需要确保模板的变量或标签正确使用。

解决方案

以下是一个经过验证的代码示例,用于在userfun.php中获取当前栏目的目录:
php复制
function getClassPath($classid) {
    global $class_r, $empire;
    if (!$class_r[$classid]['classpath']) {
        // 如果$class_r中没有获取到目录,尝试从数据库中直接查询
        $row = $empire->fetch1("SELECT classpath FROM {$empire->dbtbpre}enewsclass WHERE classid='$classid'");
        return $row['classpath'];
    }
    return $class_r[$classid]['classpath'];
}

在模板中调用此函数时,可以直接使用<?=getClassPath($GLOBALS['navclassid'])?>

检查步骤

  1. 确认栏目目录是否已设置:在后台管理中检查对应栏目的目录是否已正确设置。
  2. 检查数据库字段:登录数据库管理工具,检查enewsclass表中的classpath字段是否为空。
  3. 检查模板调用:确保模板中正确调用了自定义函数,并且$GLOBALS['navclassid']变量已正确传递。
如果问题仍未解决,建议检查服务器的错误日志或帝国CMS的日志文件,以获取更详细的错误信息。
 
QQ在线咨询
QQ客服
淘宝官网