php代码自定义字段,[原创]栏目自定义字段调用教程及代码

哇,累了两小时,虽然不会php,但还是解决了这个问题,哈哈,

最近做了个站,因为每个栏目在栏目名称要加个小图标,而且在栏目名称后面还要加个英文名称,所以想到用栏目自定义字段解决,可网上找了很多教程,也都不管用,后来想想,干脆自己动手,虽然我不会php,但也能看懂他写的什么意思,只是自己不会写而已^_^,耗费了近两个小时的时间就弄了这么个简单的东西,弄好以后回头一看,真他NND简单,累死我了,好了不费话了,开始....

首先说一下,我这里用的到带模板的栏目导航标签(showclasstemp),用其它标签需要修改其它函数,但我相信万变不离其中,原理都是一样的,为了让大家学会这个东东,我就从简单的开始说起

一、首先点模板管理,找到左边从最下面往上数第三个,其中有一个标签管理,点击后在右边找到showclasstemp这个标签,点击修改后可以看到该标签所使用的函数名称(sys_ShowClassByTemp),我们需要修改的就是这个函数

二、我在我自己做的站中增加了两个自定义字段(pic,entitle),一个是栏目前面显示的小图标,一个是英文名

三、打开e/class/t_functions.php 这个文件,帽似帝国的函数处理都 在这个文件中进行

四、现在仔细看看第一步中找到的那个函数名,记下来,在t_functions.php这个文件中找到他,7.0测试版大概是在1574行,6.6的大概在1889行,在这个函数中找到下面的代码:

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

替换成以下代码:

$sql=$empire->query("SELECT C.classid,C.classname,C.islast,C.islast,C.tbname,C.intro,C.classid,C.classimg,C.infos,D.classid,D.pic,D.entitle FROM {$dbtbpre}enewsclass C LEFT JOIN {$dbtbpre}enewsclassadd  D ON C.classid=D.classid  where C.bclassid='$classid' and C.showclass=0 order by myorder,C.classid

".$limit);

这里说下这是什么意思,高手请飘过,呵呵

帝国的这个栏目字段跟自定义栏目字段不在同一个表中,所以他原来的单一查询就查不到自定字段的值,这里我们只需要把这个查询改成复合查询,把自定义字段的表带进来一起查询就可以了

呵呵

刚才的查询我们己经可以把数据查到了,现在需要做的就是替换到模板里面去就OOK 了,继续!

五、找到以下代码,把我们添加的字段变量加进去

//替换变量

$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);

修改为:

//替换变量

$bclassname=$class_r[$classid][classname];

$br[classid]=$classid;

$bclassurl=sys_ReturnBqClassname($br,9);

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

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

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

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

$listtemp=str_replace("[!--bclassid--]",$classid,$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);

return $listtemp;

在这上面增加几行,修改后的代码如下:

//栏目小图标

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

//栏目英文名

$listtemp=str_replace("[!--entitle--]",$r[entitle],$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);

return $listtemp;

七、还有最后一步,最要紧,至关重要的,绝对不能丢掉的,千万要注意的就是

呵呵,在showclasstemp调用的标签模板中记得加上调用代码,怎么调用呢,就特别特别特别特别滴轻松了,看看我是怎么调用的,

%5B!--pic--%5D [!--classname--] [!--entitle--]

上传以下图片:

380c8bb9e9d4a31c6361cc6665c9d0b7.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值