原码笔记

原码笔记

帝国CMS输出模型添加的字段信息(二开非常实用)

小诸哥 0

开发的时候我们经常需要把增加带有默认值的字段中的值调用出来的情况。后台修改,前台就得手动修改,非常不方便。用以下函数即可解决此问题。

在Userfun.php中增加以下函数代码:

<?php

//返回字段信息函数

//函数说明:f是字段名 tid是数据表ID tpl是模版

function ReturnF($f, $tid, $tpl = '<a href="{zhi}">{f}</a>') {

global $empire, $dbtbpre;

$f = RepPostVar($f);

$tid = (int)$tid;

if (!$f || !$tid) {

return FALSE;

}

$sql = $empire->fetch1("select fvalue from {$dbtbpre}enewsf where f='$f' and tid=$tid limit 1");

$arr = explode('|', $sql[fvalue]);

foreach ($arr as $val) {

$val = explode('==', $val); //值==名称时候用的

$val[1] = $val[1] ? $val[1] : $val[0];

$r.= str_replace(array('{zhi}', '{f}'), $val, $tpl); //替换模版变量

}

return str_replace(':default', '', $r);

}

?>

简要说明:

f是要查询的字段名 tid是数据表ID(帝国后台数据表管理可查看) tpl是前台输出使用的模版

Tpl说明:

比如字段默认值中 0==中国

<a href="{zhi}">{f}</a> {zhi}为0,{f}为中国,以此类推。

前台使用:

简单例子说明:

比如我在数据表ID1中有一个字段叫sort,里面的默认值为上班,吃饭,睡觉

前台模板中:<?=ReturnF('sort',1,'<a href="{zhi}">{f}</a>')?>

输出之后的html代码为:

<a href="上班">上班</a>

<a href="吃饭">吃饭</a>

<a href="睡觉">睡觉</a>

以下为不带模板使用(模板需要自定义):

    //返回字段信息函数
    //函数说明:f是字段名 tid是数据表ID
    function ReturnF($f, $tid) {
        global $empire, $dbtbpre;
        $f = RepPostVar($f);
        $tid = (int)$tid;
        if (!$f || !$tid) {
            return FALSE;
        }
        $sql = $empire->fetch1("select fvalue from {$dbtbpre}enewsf where f='{$f}' and tid=$tid limit 1");
        $arr = explode('|', $sql['fvalue']);
        foreach ($arr as $val) {
            $val = explode('==', $val); //值==名称时候用的
            $val[1] = $val[1] ? $val[1] : $val[0];
            $r[$val[0]] = str_replace(':default', '', $val[1]);
        }
        return $r;
    }

    标签: 帝国 信息 帝国CMS