您的位置:首页 > 其它

dedecms(织梦)给栏目添加图标全攻略

2013-01-24 16:20 183 查看
由于本站的特殊需要要为本站的某一个栏目下的所有栏目要添加图标,但是由于dedecms的栏目不像phpcms能给栏目添加图标。所以本人在网上找了很多资料,但都不是很全。通过参考这些资料最后终于实现了栏目添加图标的功能。并且还对栏目做了默认的图标设置。下面就具体方法分享如下:

一、 在后台栏目的添加和修改页面中添加栏目图标一栏

[b]效果图如下:


[/b]





具体操作方法:

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>

复制代码
3、用计事本或见面编辑器打开目录下的dede\templets\catalog_edit.htm

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')";

复制代码
2、打开目录下dede\ catalog_edit.php的文件添加以下代码

代码开始处添加:

$icon = trim($_POST['icon']);

复制代码
在`content`='$content',后面添加`typeimg`='$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";

复制代码
在所搜索的字段值中添加typeimg字段就行。添加后就是:

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

复制代码
2、另外在调用显示时,查看是否有栏目图标没有的话设置成默认的栏目图标。我文件中找到:

if($row=$dsql->GetArray())

复制代码
在其后面添加一个判断语句:

if($row['typeimg']=='') { $row['typeimg']=$GLOBALS['cfg_cmspath'].'/images/defaultbookimg.gif'; }

复制代码
这样,如果在没有设置目标责任制图标的情况下系统会自动设置成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}


可以用[field:typeimg]来调用栏目图标。

好了,到这里我们的织梦中给栏目添加图标的方法就讲解完了,希望对各位网在有用。如果有什么时候地方不太懂或不明白的请和我联系。联系方式:学习之家(http://www.xxzj51.com)不好意思,因为原文代码复制到这里显示不是很好。大家可以去看原谅。谢谢支持! 本文地址:http://www.xxzj51.com/a/CMSjiaocheng/DedeCmsjiaocheng/shiyongjiao/2012/1009/189_4.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: