由于本站的特殊需要要为本站的某一个栏目下的所有栏目要添加图标,但是由于dedecms的栏目不像phpcms能给栏目添加图标。所以本人在网上找了很多资料,但都不是很全。通过参考这些资料最后终于实现了栏目添加图标的功能。并且还对栏目做了默认的图标设置。下面就具体方法分享如下:
一、 在后台栏目的添加和修改页面中添加栏目图标一栏
效果图如下:
具体操作方法:
1、用计事本或见面编辑器打开目录下的dede\templets\catalog_add.htm
2、在代码中添加JS是:
第一条,找到下面代码:
- <title>栏目管理</title> <link href="css/base.css" rel="stylesheet" type="text/css">这个代码
- <script language='javascript' src="js/main.js"></script>
- <tr> <td class='bline' height="26" style="padding-left:10px;"><font color='red'>栏目名称:</font></td> <td class='bline'><input name="typename" type="text" id="typename" size="30" class="iptxt" /></td> </tr>
- <tr> <td class='bline' height="26" style="padding-left:10px;">栏目图标:</td> <td class='bline'><input name="icon" type="text" id="icon" size="35" /> <input name="sel1" type="button" id="sel1" value="选取" onClick="SelectImage('form1.icon','small')" /></td> </tr>
4、修改内容和方法与以面第2步一样。
#p#副标题#e#
二、给数据库中的栏目表(arctype)添加图标字段(typeimg或icon)
效果图
具体操作如下:
1、在数据表下面的添加字段点击执行
2、添加字段时的参数如下图所示
#p#副标题#e#
三、修改栏目添加和修改的提交代码
1、打开目录下dede\ catalog_add.php的文件添加以下代码
- $icon = trim($_POST['icon']);
- $queryTemplate = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype, tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`typeimg`,`content`,`smalltypes`) VALUES('~reid~','~topid~','~rank~','~typename~','~typedir~','$isdefault','$defaultname','$issend','$channeltype', '$tempindex','$templist','$temparticle','default','$namerule','$namerule2','0','0','','','~typename~','0','','','0','0','0', '','')"; 改成
- $queryTemplate = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype, tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`typeimg`,`content`,`smalltypes`) VALUES('~reid~','~topid~','~rank~','~typename~','~typedir~','$isdefault','$defaultname','$issend','$channeltype', '$tempindex','$templist','$temparticle','default','$namerule','$namerule2','0','0','','','~typename~','0','','','0','0','0','$icon','','')";
- $in_query = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype, tempindex,templist,temparticle,modname,namerule,namerule2, ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`typeimg`,`content`,`smalltypes`) VALUES('$reid','$topid','$sortrank','$typename','$typedir','$isdefault','$defaultname','$issend','$channeltype', '$tempindex','$templist','$temparticle','default','$namerule','$namerule2', '$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$content','$smalltypes')"; 修改成
- $in_query = "INSERT INTO `dede_arctype`(reid,topid,sortrank,typename,typedir,isdefault,defaultname,issend,channeltype, tempindex,templist,temparticle,modname,namerule,namerule2, ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`typeimg`,`content`,`smalltypes`) VALUES('$reid','$topid','$sortrank','$typename','$typedir','$isdefault','$defaultname','$issend','$channeltype', '$tempindex','$templist','$temparticle','default','$namerule','$namerule2', '$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$icon','$content','$smalltypes')";
代码开始处添加:
- $icon = trim($_POST['icon']);
#p#副标题#e#
四、修改栏目调用标签(channl)
1、打开目录下的include\taglib\channel.lib.php文件,这个文件就是channl标签的文件。找到所有的$sql参数的值如:
- $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";
- $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description,typeimg From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";
- if($row=$dsql->GetArray())
- if($row['typeimg']=='') { $row['typeimg']=$GLOBALS['cfg_cmspath'].'/images/defaultbookimg.gif'; }
同样在其它调用的栏目的标签文件中也可以用这种方法修改里面的字段。这里就多不说了,若有网友还不明白请回复或联系我。进行说明问题,进行修改。
五、调用修改后标签并测试
在栏目调用中
{dede:channel type='top' row='10' currentstyle="<li class='hover'><a href='~typelink~' ~rel~><span>~typename~</span></a></li>"} <li><a href='[field:typeurl/]' [field:rel/]><span>[field:typename/]</span></a></li> {/dede:channel}
好了,到这里我们的织梦中给栏目添加图标的方法就讲解完了,希望对各位网在有用。如果有什么时候地方不太懂或不明白的请和我联系。联系方式:学习之家(http://www.xxzj51.com)不好意思,因为原文代码复制到这里显示不是很好。大家可以去看原谅。谢谢支持! 本文地址: http://www.xxzj51.com/a/CMSjiaocheng/DedeCmsjiaocheng/shiyongjiao/2012/1009/189_4.html