猿记录

一个记录、分享的博客

您的位置:主页 > dedecms >

dedecms给栏目添加图标

2018-07-24 16:33:44 作者:yxl 次阅读 dedecms

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

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

效果图如下:

1532421226535551.png

具体操作方法:

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步一样。


二、给数据库中的栏目表(arctype)添加图标字段(typeimg或icon)

效果图

具体操作如下:

1、在数据表下面的添加字段点击执行


2、添加字段时的参数如下图所示

1532421316436982.png

三、修改栏目添加和修改的提交代码

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',


四、修改栏目调用标签(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图片为栏目图标。

同样在其它调用的栏目的标签文件中也可以用这种方法修改里面的字段。这里就多不说了,若有网友还不明白请回复或联系我。进行说明问题,进行修改。

五、调用修改后标签并测试

在栏目调用中


凡本站注明“本站”或“投稿”的所有文章,版权均属于本站或投稿人,未经本站授权不得转载、摘编或利用其它方式使用上述作品。

编辑:yxl 关键词: dedecms
0

网友评论