摘要:开发的时候我们经常需要把增加带有默认值的字段中的值调用出来的情况。后台修改,前台就得手动修改,非常不方便。用以下函数即可解决此问题。在Userfun.php中增加以下函数代码:<...
开发的时候我们经常需要把增加带有默认值的字段中的值调用出来的情况。后台修改,前台就得手动修改,非常不方便。用以下函数即可解决此问题。
在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}为中国,以此类推。
前台使用:
<?=ReturnF('字段名',数据表ID,模板代码)?>
简单例子说明:
比如我在数据表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;
}
另一个例子:
比如一个字段初始值是 值==名称形式,而这个字段以后还会增加更多值==名称,在好多地方都用这个字段的名称。比如灵动或自己写的while循环,不可能以后加了值==名称所有调用地方都去逐一更改。那么就可以用此办法。
$typeall=returnf('type', 28,'|{zhi}{f}{zhi}|');
循环里面:
preg_match('/|'.$r[type].'(.*?)'.$r[type].'|/', $typeall,$a);
$type=$a[1];
循环里需要输出的地方写$type就可以了
---------------------------------------------------------------------------------------------------------
喜欢用数组的可以参考下面例子:
$all=returnf('type', 28,'|{zhi}{f}{zhi}|');
preg_match_all('/|([0-9+])(.*?)([0-9+])|/', $all, $b);
$num=count($b[1]);
for($i=-1;$i<$num;$i++){
$typearr[$b[1][$i]]=$b[2][$i];
}
print_r($typearr);
<p><?php<br />//返回字段信息函数<br />//函数说明:f是字段名 tid是数据表ID tpl是模版<br />function ReturnF($f, $tid, $tpl = '<a href="{zhi}">{f}</a>') {<br /> global $empire, $dbtbpre;<br /> $f = RepPostVar($f);<br /> $tid = (int)$tid;<br /> if (!$f || !$tid) {<br /> return FALSE;<br /> }<br /> $sql = $empire->fetch1("select fvalue from {$dbtbpre}enewsf where f='$f' and tid=$tid limit 1");<br /> $arr = explode('|', $sql[fvalue]);<br /> foreach ($arr as $val) {<br /> $val = explode('==', $val); //值==名称时候用的<br /> $val[1] = $val[1] ? $val[1] : $val[0];<br /> $r.= str_replace(array('{zhi}', '{f}'), $val, $tpl); //替换模版变量<br /> <br /> }<br /> return str_replace(':default', '', $r);<br />}</p>
免责/版权声明:
本篇文章给大家谈谈帝国cms常见问题:输出模型添加的字段信息(二开非常实用)以及帝国cms对应的知识,感谢你花时间阅读本站内容,希望对各位有所帮助,你也可以查看更多关于帝国cms的信息。
1、所有来源标注为 ECMSPLUS/zwcms.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可,如涉及大面积转载,请来信告知,获取授权。
2、本站所提供的文章资讯、软件资源、素材源码等内容均为作者提供、网友推荐、互联网整理而来(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考,如有侵犯您的版权,请联系我们,本站将在三个工作日内改正。
3、若您的网站或机构从本站获取的一切资源进行商业使用,除来源为本站的资料需与本站协商外,其他资源请自行联系版权所有人。
4、 ECMSPLUS/zwcms.com不保证资源的准确性、安全性和完整性,请您在阅读、下载及使用过程中自行确认,本站亦不承担上述资源对您或您的网站造成的任何形式的损失或伤害
5、未经 ECMSPLUS/zwcms.com允许,不得盗链、盗用本站资源;不得复制或仿造本网站,不得在非 ECMSPLUS/zwcms.com所属的服务器上建立镜像, ECMSPLUS/zwcms.com对其自行开发的或和他人共同开发的所有内容、技术手段和服务拥有全部知识产权,任何人不得侵害或破坏,也不得擅自使用。
6、互联网的本质是自由与分享,我们真诚的希望,每一份有价值的正能量能够在互联网中自由传播,能够为每一个网站提供动力。