修改帝国CMS标签

帝国系统的标签在e/class/t_functions.php,前缀是sys_

用户自定义的标签一般写在e/class/userfun.php文件的函数名,函数命名请以”user_”开头

如果系统定义的标签满足不了你现在的需求可以再自定义一个。比如说:想通过

showclasstemp(带模板的栏目导航标签)来获取bclassid,但是改函数不支持,为了实现需求,对其标签再次编写改造,如下:

//带模板的栏目导航标签
function user_ShowClass($classid, $tempid, $show = 0, $cline = 0)
{
    global $navclassid, $empire, $class_r, $public_r, $dbtbpre;
    //当前栏目
    if ($classid == "selfinfo") {
        if (empty($navclassid)) {
            $classid = 0;
        } else {
            $classid = $navclassid;
            //终极类别则显示同级类别
            if ($class_r[$classid][islast] && $class_r[$classid][bclassid]) {
                $classid = $class_r[$classid][bclassid];
            }
            if ($class_r[$classid][islast] && empty($class_r[$classid][bclassid])) {
                $classid = 0;
            }
        }
    }
    //取得模板
    $tr = sys_ReturnBqTemp($tempid);
    if (empty($tr[‘tempid‘])) {
        return "";
    }
    $listtemp   = str_replace(‘[!--news.url--]‘, $public_r[newsurl], $tr[temptext]);
    $subnews    = $tr[subnews];
    $listvar    = str_replace(‘[!--news.url--]‘, $public_r[newsurl], $tr[listvar]);
    $rownum     = $tr[rownum];
    $formatdate = $tr[showdate];
    if (empty($rownum)) {
        $rownum = 1;
    }
    //限制条数
    if ($cline) {
        $limit = " limit " . $cline;
    }
    //替换变量
    $bclassname  = $class_r[$classid][classname];
    $br[classid] = $classid;
    $bclassurl   = sys_ReturnBqClassname($br, 9);
    $listtemp    = str_replace("[!--bclassname--]", $bclassname, $listtemp);
    $listtemp    = str_replace("[!--bclassurl--]", $bclassurl, $listtemp);
    $listtemp    = str_replace("[!--bclassid--]", $classid, $listtemp);
    //列表
    $list_exp  = "[!--empirenews.listtemp--]";
    $list_r    = explode($list_exp, $listtemp);
    $listtext  = $list_r[1];
    $no        = 1;
    $changerow = 1;
    $sql       = $empire->query("select classid,bclassid,classname,islast,sonclass,tbname,intro,classimg,infos from {$dbtbpre}enewsclass where bclassid=‘$classid‘ and showclass=0 order by myorder,classid" . $limit);
    while ($r = $empire->fetch($sql)) {
        //显示类别数据数
        if ($show) {
            $num = ReturnClassInfoNum($r);
        }
        //替换列表变量
        $repvar   = userReplaceShowClassVars($no, $listvar, $r, $num, 0, $subnews);
        $listtext = str_replace("<!--list.var" . $changerow . "-->", $repvar, $listtext);
        $changerow += 1;
        //超过行数
        if ($changerow > $rownum) {
            $changerow = 1;
            $string .= $listtext;
            $listtext = $list_r[1];
        }
        $no++;
    }
    //多余数据
    if ($changerow <= $rownum && $listtext != $list_r[1]) {
        $string .= $listtext;
    }
    $string = $list_r[0] . $string . $list_r[2];
    echo $string;
}
//替换栏目导航标签
function userReplaceShowClassVars($no, $listtemp, $r, $num, $ecms = 0, $subnews = 0)
{
    global $public_r, $class_r;
    //栏目链接
    if ($ecms == 1) {
        $classurl       = sys_ReturnBqZtname($r);
        $r[‘classname‘] = $r[‘ztname‘];
        $r[‘classid‘]   = $r[‘ztid‘];
        $r[‘classimg‘]  = $r[‘ztimg‘];
    } else {
        $classurl = sys_ReturnBqClassname($r, 9);
    }
    if ($subnews) {
        $r[intro] = sub($r[intro], 0, $subnews, false);
    }
    $listtemp = str_replace("[!--classurl--]", $classurl, $listtemp);
    //栏目名称
    $listtemp = str_replace("[!--classname--]", $r[classname], $listtemp);
    //栏目id
    $listtemp = str_replace("[!--classid--]", $r[classid], $listtemp);
    //栏目图片
    if (empty($r[classimg])) {
        $r[classimg] = $public_r[newsurl] . "e/data/images/notimg.gif";
    }
    $listtemp = str_replace("[!--classimg--]", $r[classimg], $listtemp);
    //栏目简介
    $listtemp = str_replace("[!--intro--]", nl2br($r[intro]), $listtemp);
    //记录数
    $listtemp = str_replace("[!--num--]", $num, $listtemp);
    //序号
    $listtemp = str_replace("[!--no--]", $no, $listtemp);
    $listtemp = str_replace("[!--bclassid--]", $r[bclassid], $listtemp);
    return $listtemp;
}

1、改造sql:

$sql       = $empire->query("select classid,bclassid,classname,islast,sonclass,tbname,intro,classimg,infos from {$dbtbpre}enewsclass where bclassid=‘$classid‘ and showclass=0 order by myorder,classid" . $limit);

2、替换模板:因为想调取bclassid,但是bclassid不存在,对此进行替换

$listtemp = str_replace("[!--bclassid--]", $r[bclassid], $listtemp);

注:不必担心userfun.php中得函数在帝国系统中找不到,这个文件已经被t_functions引入了。

时间: 2024-10-12 15:37:30

修改帝国CMS标签的相关文章

Sql批量修改帝国cms文章发布时间(需unix时间,否则会变为1970-01-01)

在迁移网站时,有时我们需要将帝国cms文章发表时间批量修改为当前时间,在帝国cms后台→系统设置→备份与恢复数据→执行sql语句: update phome_ecms_news set newstime = '2014-07-03'; (ps:phome这个是默认的数据库表前缀,如果创建数据库时有设置成其他的可以自行修改) 这样执行sql语句后刷新所有文章,你会发现时间变为了1970-01-01,这是因为newstime这个类型是int(10),必须是unix时间戳,所以我们必须先把当前时间转换

如何修改帝国cms文章点击量默认值和成倍增加

我们在帝国cms发布完文章,在不点击的情况下,“点击量”默认显示为0,请问有什么方法,修改关注默认值吗?这个可以在增加信息时,“特殊属性”标签里修改点击量,如下图 有朋友问有没其他好的方法快速增加.成倍增加?打开e\public\ViewClick\index.php文件,找到 $usql=$empire->query("update {$dbtbpre}ecms_".$cr['tbname']." set onclick=onclick+1 where id='$id

常用帝国cms标签收录

帝国模板网:http://www.daixiao360.cn/ 判断会员是否登录<?phpif(!$_COOKIE[ecmsmlusername]){$srr="登录可见";}else{$srr="[!--lbsly--]";}?> [!--news.url--]skin/default/ [e:loop={"select classid,classname,bname from phome_enewsclass where classid='

修改帝国CMS默认图片附件上传路径

帝国CMS系统设置中的"附件地址"设置是不生效的,无论设置成什么都还是在 d/file/ 下,下面牛教程介绍手动修改附件存放地址的方法. 一:先在系统设置中将"附件地址"一项修改为自己想要的地址,这里以 /upload/ 为例. 二:修改 /e/class/connect.php 文件,将文件中所有 d/file/ 替换为 upload/ 值,修改位置在2964行左右. 三:手动创建 upload 文件夹. 修改这三项后就算成功修改附件上传路径了. 需要注意的是,如

帝国CMS 标签 总结1

首页模板支持的变量说明 [!--news.url--]:网站地址(参数设置的站点地址) [!--class.menu--]:一级栏目导航 [!--pagetitle--]:网站名称 [!--pagekey--]:页面关键字 [!--pagedes--]:页面描述   支持公共模板变量 支持所有模板标签 支持PHP代码 封面模板 [!--pagetitle--]:页面标题 [!--pagekey--]:页面关键字 [!--pagedes--]:页面描述 [!--news.url--]:网站地址(参

帝国CMS标签【操作类型】说明详解

看标签的参数时候,一般最后一个参数是操作类型说明,可是后面写的是:"操作类型说明 具体看操作类型说明", 这个操作类型说明在什么地方看啊 操作类型 说明 操作类型 说明 0 各栏目最新 1 各栏目热门 2 各栏目推荐 9 各栏目评论排行 12 各栏目头条信息 15 各栏目下载排行 25 各栏目评分排行 26 各栏目投票排行 3 所有信息最新(默认表) 4 所有信息热门(默认表) 5 所有信息推荐(默认表) 10 所有信息评论排行(默认表) 13 所有信息头条(默认表) 16 所有信息下

WordPress转换为帝国CMS完整图文教程[技术记录](图文)

WordPress转换为帝国CMS完整图文教程[技术记录](图文) 原文地址:https://www.wentong.org/ecms/jiaocheng/201806023.html 实现原理:利用帝国cms采集WordPress文章,采集时先不审核(比较重要),然后批量替换. 准备工作: 1.建议将WordPress样式设置为最有利于采集的,比如分类列表页,仅仅显示链接,并在显示9999999条,这样这样采集时直接就是内容页了. 2.帝国cms设置跟Wordpress相同结果的目录. 3.帝

关于帝国cms 列表页SEO优化的问题

一般列表页面中,我们都需要带分页信息区分当前页号,为区分第一页,和第一页后的其他所有分页页面.我们推荐的做法为:第一页显示正常的标题,从第二页开始便显示xxxxx-第2页-xxxx网.做法是.修改帝国cms的源码! 修改e/class/functions.php 找到   $string=str_replace('[!--list.pageno--]',($pagenum==1?'':$pagenum),$string); 下面加多一行 $string=str_replace('[!--list

帝国cms后台编辑器集成ueditor编辑器

我更换成百度编辑器的原因有以下几点:1.使用百度编辑器的图片粘贴上传功能,这个功能实在是太有必要了,有开发的过程中或上传的过程中,通常用qq直接截图,直接放到文章上面,避免了再放到本地保存的情况,真是麻烦 .2.使用word图片转存功能,离线的时候,可以使用Word将文章写好,然后再上传到网站上来.图片是最大的问题,使用百度编辑器可以完美的解决.3.良好的扩展性,百度编辑器貌似开发起插件来更方便容易一些.本功能不修改帝国cms核心代码,所以没得问题.下面介绍步骤:1.下载定制好的百度插件,下面是