您好,欢迎访问一九零五行业门户网

织梦cms怎么增加栏目图片

织梦cms增加栏目图片的方法:1、把要添加栏目图片字段取名为“typeimg”,执行代码为“alter table dede_arctype add typeimg varchar(100)”;2、修改“catelog_add.php”和“catelog_edit.php”文件内容;3、使用channel标签调用栏目,然后获取当前栏目的最顶级的栏目图片即可。
本教程操作环境:windows10系统、dedecms 5.7版、dell g3电脑。
织梦cms怎么增加栏目图片?
dedecms(织梦cms)后台添加栏目图片的代码方法
网上的方法虽然对,但有一些细节没处理好,很多新手都会遇到问题。接下来我来总结一下吧。
第一步、首先我们把要添加栏目图片字段我这里取字段名为typeimg,您可以在后台添加代码,执行代码,操作如下:
“系统->sql命令工具” , 插入sql语句
alter table dede_arctype add typeimg varchar(100)
第二步:进入后台管理文件目录(默认为:dede目录),找到”catelog_add.php“下有几处要修改的。
1.找到$querytemplate(大概65行左右)
我改的代码如下:
$querytemplate = insert into `#@__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`,`content`,`smalltypes`,`typeimg`)    values('~reid~','~topid~','~rank~','~typename~','~typedir~','$isdefault','$defaultname','$issend','$channeltype',    '$tempindex','$templist','$temparticle','default','$namerule','$namerule2','0','0','','','~typename~','0','','','0','0','0','','','~typeimg~');
2.找到 $in_query(227行左右)
修改整个$in_query
$in_query = insert into `#@__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`,`content`,`smalltypes`,`typeimg`)    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','$typeimg');
其实没什么难的,新手可以复制粘贴,老手可以自行修改,就是在语句中添加一个typeimg字段而已。
第三步:同样的方法,找到”catelog_edit.php“下$upquery(38行左右)
修改代码如下
$upquery = update `#@__arctype` set     issend='$issend',     sortrank='$sortrank',     typename='$typename',     typedir='$typedir',     isdefault='$isdefault',     defaultname='$defaultname',     issend='$issend',     ishidden='$ishidden',     channeltype='$channeltype',     tempindex='$tempindex',     templist='$templist',     temparticle='$temparticle',     namerule='$namerule',     namerule2='$namerule2',     ispart='$ispart',     corank='$corank',     description='$description',     keywords='$keywords',     seotitle='$seotitle',     moresite='$moresite',     `cross`='$cross',     `content`='$content',     `crossid`='$crossid',  `typeimg`='$typeimg',     `smalltypes`='$smalltypes'     $uptopsql    where id='$id' ;
第四步:进入后台管理文件目录(默认为:dede目录)/templets/ 下的 “catalog_add.htm 和 catalog_edit.htm 文件,在间加入下面代码:
4df64949a418eaaac6f0491cdce4fee62cacc6d41bbb37262a98f745aa00fbf0
catalog_add.htm 中加入如下代码
<!--加入栏目--><tr><td class="bline" height="26" style="padding-left:10px;">栏目图片:</td><td class="bline"><input type="text" name="typeimg" id="imgmm" style="width:300px" class="text" /><input name="imgmm_bt" type="button" class="inputbut" value="浏览..." onclick="selectimage('form1.imgmm','big')" /></td><input type="hidden" name="dede_addonfields" value="imgmm,img" /></tr>
catalog_edit.htm中加入如下代码
<!--加入栏目--><tr><td class="bline" height="26" style="padding-left:10px;">栏目图片:</td><td class="bline"><input type="text" name="typeimg" id="imgmm" style="width:300px" class="text" value="<?php echo $myrow['typeimg']?>" /><input name="imgmm_bt" type="button" class="inputbut" value="浏览..." onclick="selectimage('form1.imgmm','big')" /></td><input type="hidden" name="dede_addonfields" value="imgmm,img" /></tr>
注意:这二个文件的代码不一样,要分别加入。
第五步:如果使用通边 channel 标签调用栏目,所以要对/include/taglib/channel.lib.php文件进行更改,找到如下代码进行替换
if($type=='top') { $sql = "select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg from `#@__arctype` where reid=0 and ishidden<>1 order by sortrank asc limit 0, $line "; } else if($type=='son') { if($typeid==0) return ''; $sql = "select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg from `#@__arctype` where reid='$typeid' and ishidden<>1 order by sortrank asc limit 0, $line "; } else if($type=='self') { if($reid==0) return ''; $sql = "select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg from `#@__arctype` where reid='$reid' and ishidden<>1 order by sortrank asc limit 0, $line "; }
其实就是在sql语句里面添加了typeimg字段。
第六步,就是在前台调用了
{dede:channel type='self' typeid='15' row='8' currentstyle="<li><a href='~typelink~' class='thisclass'>~typename~</a> </li>"}<li><a href='[field:typelink/]'>[field:typename/]</a> <img src='[field:typeimg/]' /></li>{/dede:channel}
以上这段代码是网上的,我要的不是这样的效果,我要是获取当前栏目的最顶级的栏目图片
我用二种方法来解决这个问题:
本人测试有效
第一种:
修改文件include/helpers/extend.helper.php
找到gettoptype函数,在里面增加如下代码,目的是获取栏目图片
//增加栏目图片$toptypeimg=$row['typeimg'];if($action="images") return $toptypeimg;
前台调用方法:
<img src="{dede:field.typeid function=gettoptype(@me,images)/}">
这样就可以调用了。完美!!
第二种方法:
修改文件include/common.func.php
在最后增加一个函数就行了,如下:
//获取顶级栏目的栏目图片 李国平更新于2021.3.11function gettoptypeimg($id){global $dsql; $row = $dsql->getone("select typeimg,topid from dede_arctype where id= $id");if ($row['topid'] == '0') { return $row['typeimg']; } else { $row1 = $dsql->getone("select typeimg from dede_arctype where id= $row[topid]"); return $row1['typeimg']; } }
前台调用方法为:
<img src="{dede:field name='typeid' function="gettoptypeimg(@me)" /}">
这样也可以调用了。完美!!
推荐学习:dedecms教程
以上就是织梦cms怎么增加栏目图片的详细内容。
其它类似信息

推荐信息