帝国论坛帝国网站管理系统交流区帝国CMS使用交流[原创]栏目自定义字段调用教程及代码 【本版专题贴子】  
 1/2     1 2 ›› ›|
主题:[原创]栏目自定义字段调用教程及代码 [加入收藏夹]   

sxf2010
用户头衔:秀才

精华贴   :0
发贴数   :40
经验值   :365
注册时间:2010-07-10
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[原创]栏目自定义字段调用教程及代码
哇,累了两小时,虽然不会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调用的标签模板中记得加上调用代码,怎么调用呢,就特别特别特别特别滴轻松了,看看我是怎么调用的,
        <li><span><img src="[!--pic--]" width="19" height="21" /></span><a href="[!--classurl--]">[!--classname--]</a><b>[!--entitle--]</b></li>


上传以下图片:


[该贴被修改 5 次,最后修改时间 2013-04-17 08:22:11 ]


<a href="http://www.1oa.biz">办公家具</a>http://www.1oa.biz<br/>
<a href="http://www.cnwpj.com">盆景直销</a>http://www.cnwpj.com
2013-03-09 15:57:38 已设置保密 顶部 回复 引用 报告 编辑 删除

大剑师
用户头衔:进士

精华贴   :0
发贴数   :1231
经验值   :3469
注册时间:2008-01-08
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

你栏目简介没用上

直接简介里面写 img 调用简介
这样就不要这么麻烦了 还多表查询 麻烦

不过 摸索精神可嘉

[该贴被修改 1 次,最后修改时间 2013-03-09 16:32:25 ]


本人开发案例:国内大型二手车网,开发需求请站内PM短信
2013-03-09 16:30:50 已设置保密 顶部 回复 引用 报告 编辑 删除

春哥
用户头衔:进士

精华贴   :0
发贴数   :1630
经验值   :4591
注册时间:2009-01-02
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

同上,没必要




2013-03-09 18:36:10 已设置保密 顶部 回复 引用 报告 编辑 删除

sxf2010
用户头衔:秀才

精华贴   :0
发贴数   :40
经验值   :365
注册时间:2010-07-10
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

字段不够用呀,栏目简介得用着网页描述呢,栏目图片用的是banner图片,这样每个栏目都可以有自己的图片,而不需要用一样的,呵呵



<a href="http://www.1oa.biz">办公家具</a>http://www.1oa.biz<br/>
<a href="http://www.cnwpj.com">盆景直销</a>http://www.cnwpj.com
2013-03-09 20:05:20 已设置保密 顶部 回复 引用 报告 编辑 删除

大剑师
用户头衔:进士

精华贴   :0
发贴数   :1231
经验值   :3469
注册时间:2008-01-08
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

也没必要
可以用CSS背景图解决

或者直接加图啊

栏目前面的数字 可以no++ 输出1234这种格式 不就好定义图了吗

图就是 1.jpg
2.jpg

[该贴被修改 1 次,最后修改时间 2013-03-09 20:18:36 ]


本人开发案例:国内大型二手车网,开发需求请站内PM短信
2013-03-09 20:17:54 已设置保密 顶部 回复 引用 报告 编辑 删除

tongxie
用户头衔:秀才

精华贴   :0
发贴数   :211
经验值   :593
注册时间:2011-03-28
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

用sql调用就行了啊




2013-03-10 06:33:17 已设置保密 顶部 回复 引用 报告 编辑 删除

jisjian
用户头衔:进士

精华贴   :0
发贴数   :567
经验值   :2516
注册时间:2008-10-19
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

直接用灵动标签多表调用不就完了..



支持帝国发展 Q290154702
2013-05-23 23:03:26 已设置保密 顶部 回复 引用 报告 编辑 删除

jaycn
用户头衔:探花

精华贴   :0
发贴数   :4835
经验值   :11782
注册时间:2007-07-19
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

用灵动标签sql调用就可以




2013-05-24 07:16:33 已设置保密 顶部 回复 引用 报告 编辑 删除

weshion
用户头衔:书生

精华贴   :0
发贴数   :14
经验值   :46
注册时间:2014-05-18
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

我觉的很有必要,就是我想找的,感谢楼主分享




2014-05-18 14:07:46 已设置保密 顶部 回复 引用 报告 编辑 删除

308750021
用户头衔:秀才

精华贴   :0
发贴数   :99
经验值   :505
注册时间:2015-01-04
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]

7.2改不了!



jxym.org
2016-01-07 12:26:18 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/2     1 2 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1