dedecms v5.7/v5.6栏目增加缩略图功能教程 – DeDecms


avatar
pcwnas 2023-04-21 176

原文来自:https://www.zixuephp.com

dedecms v5.7/v5.6栏目增加缩略图功能教程

栏目缩略图功能是dedecms系统不具备的一个功能了,如果你想给你的栏目增加一个缩略图上传功能我们需要来进行自定义二次开发了,下面我把一个朋友写的过程分享给大家,这里我也自己经过dedecmsv5.7测试过,没有任何问题.

此功能添加涉及到以下文件:

  1. dede/catalog_add.php
  2. dede/catalog_edit.php
  3. dede/templets/catalog_add.htm
  4. dede/templets/catalog_edit.htm
  5. include/taglib/channel.lib.php

此升级修改方法,在V5.7,V5.7sp1 测试通过,其他版本未测试,原理基本相同,请大家自行测试是否可行.

首先给 栏目表(`detest_arctype`)增加一个字段typeimg,代码如下:

alter table `detest_arctype` add `typeimg` varchar(200) NOT NULL default ;

修改catalog_add.php文件,打开dede/catalog_add.php,查找:

  1. $queryTemplate=“insertinto`detest_arctype`
  2. //将
  3. (reid,topid,sortrank,typename,typedir,
  4. //替换为:(reid,topid,sortrank,typename,typedir,typeimg,
  5. //将
  6. (‘~reid~’,'~topid~’,'~rank~’,'~typename~’,'~typedir~’,
  7. //替换为:
  8. (‘~reid~’,'~topid~’,'~rank~’,'~typename~’,'~typedir~’,'~typeimg~’,
  9. //查找
  10. $in_query=“INSERTINTO`detest_arctype`
  11. //将
  12. (reid,topid,sortrank,typename,typedir,
  13. //替换为:
  14. (reid,topid,sortrank,typename,typedir,typeimg,
  15. //将
  16. (‘$reid’,'$topid’,'$sortrank’,'$typename’,'$typedir’,
  17. //替换为:
  18. (‘$reid’,'$topid’,'$sortrank’,'$typename’,'$typedir’,'$typeimg’,

保存catalog_add.php

下面修改catalog_edit.php文件,打开dede/catalog_edit.php,查找$upquery = “Update `detest_arctype` set在 typedir=’$typedir’, 其下面增加一行:`typeimg`=’$typeimg’,保存catalog_edit.php

开始修改栏目添加模板文件,打开dede/templets/catalog_add.htm,在最上面找到这个段,代码如下:

  1. <title>栏目管理</title><linkhref=”css/base.css”rel=”stylesheet”type=”text/css”>
  2. //替换为:
  3. <title>栏目管理</title><linkhref=”css/base.css”rel=”stylesheet”type=”text/css”><scriptlanguage=”javascript”src=”../include/js/dedeajax2.js”></script><scriptlanguage=’javascript’src=”js/main.js”></script><scripttype=”text/javascript”src=”js/calendar/calendar.js”></script>

列表命名规则,代码如下:

  1. <tr><tdheight="26"style="padding-left:10px;">列表命名规则:</td><td><inputname="namerule2"type="text"id="namerule2"value="{typedir}/list_{tid}_{page}.html"class="pubinputs"style="width:250px"/><imgsrc="images/help.gif"alt="帮助"width="16"height="16"border="0"style="cursor:pointer"onClick="ShowHide('helpvar3')"/></td></tr>

在标签下面增加一行:

  1. <!–增加栏目缩略图–><tr><tdwidth="90"style="padding-left:10px;">栏目图片:</td><tdwidth="560"><tablewidth="100%"border="0"cellspacing="1"cellpadding="1"><tr><tdheight="30"><inputname="typeimg"type="text"id="typeimg"style="width:240px"/><inputtype="button"value="本地上传"style="width:70px;cursor:pointer;display:none"/><iframename='uplitpicfra'id='uplitpicfra'src=''style='display:none'></iframe><spanclass="litpic_span"><inputname="litpic"type="file"id="litpic"onChange="SeePicNew(this,'divpicview','uplitpicfra',165,'archives_add.php');"size="1"class='npcoolbg'/></span><inputtype="button"name="Submit2"value="选择图片"style="margin-left:8px;"onClick="SelectImage('form1.typeimg','small');"class='npcoolbg'/><inputtype="button"name="Submit2"value="裁剪"style="margin-left:8px;"onClick="imageCut('typeimg');"class='npcoolbg'/><inputtype='checkbox'class='np'name='ddisremote'value='1'id='ddisremote'/>远程<br/>(栏目模板里用{dede:field.typeimg/}调用</td></tr></table></td><tdwidth="150"align="center"><divid='divpicview'class='divpre'></div></td></tr><!–增加栏目缩略图–>

保存catalog_add.htm,开始修改栏目编辑模板文件,打开dede/templets/catalog_edit.htm,在最上面找到这个段,代码如下:

  1. <title>栏目管理</title><linkhref=”css/base.css”rel=”stylesheet”type=”text/css”>
  2. //替换为:
  3. <title>栏目管理</title><linkhref=”css/base.css”rel=”stylesheet”type=”text/css”><scriptlanguage=”javascript”src=”../include/js/dedeajax2.js”></script><scriptlanguage=”javascript”src=”js/main.js”></script><scripttype=”text/javascript”src=”js/calendar/calendar.js”></script>
  4. //查找
  5. <tr><tdheight="26"style="padding-left:10px;">列表命名规则:</td><td><inputname="namerule2"type="text"id="namerule2"value="<?phpecho$myrow['namerule2']?>"size="40"class="iptxt"/><imgsrc="images/help.gif"alt="帮助"width="16"height="16"border="0"style="cursor:pointer"onClick="ShowHide('helpvar3')"/></td></tr>
  6. //在其下面增加一行:
  7. <!–增加栏目缩略图–><tr><tdwidth="90"height="81"style="padding-left:10px;">栏目图片:</td></td><tdwidth="500"><inputname="typeimg"type="text"id="typeimg"style="width:300px"value="<?phpecho$myrow['typeimg']?>"><inputtype="button"name="Submit"value="浏览…"style="width:70px"onClick="SelectImage('form1.typeimg','');"><inputtype="button"name="Submit2"value="裁剪"style="margin-left:8px;"onClick="imageCut('typeimg');"class='npcoolbg'/><inputtype='checkbox'class='np'name='ddisremote'value='1'>远程<br/>(栏目模板里用{dede:field.typeimg/}调用)</td><tdalign="center"><imgsrc="<?phpif($myrow['typeimg']!="")echo$myrow['typeimg'];elseecho"images/pview.gif";?>"width="150"height="100"id="picview"name="picview"></td></tr><!–增加栏目缩略图–>
  8. 保存catalog_edit.htm

至此已经修改完成!

栏目图片的添加或修改图片时在(栏目管理>高级选项)里面就会自动出现栏目图片添加的选择.点击选择图片.弹出窗口内选择浏览上传就OK.

注意:前台栏目标签调用的时候,还需要改一个文件,才能实现栏目图片显示,否则只能通过sql语句才能显示图片。

打开:include/taglib/channel.lib.php,找到如下代码:

  1. if($type=='top'){$sql="Selectid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFrom`detest_arctype`wherereid=0Andishidden<>1orderbysortrankasclimit0,$row";}elseif($type=="son"){//if($_sys_globals['typeid']>0)$typeid=$_sys_globals['typeid'];if($typeid==0){return'';}$sql="Selectid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFrom`detest_arctype`wherereid='$typeid'Andishidden<>1orderbysortrankasclimit0,$row";}elseif($type=="self"){if($reid==0){return'';}$sql="Selectid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFrom`detest_arctype`wherereid='$reid'Andishidden<>1orderbysortrankasclimit0,$row";}

替换成下面的代码:

  1. if($type=='top'){$sql="Selectid,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFrom`detest_arctype`wherereid=0Andishidden<>1orderbysortrankasclimit0,$row";}elseif($type=="son"){//if($_sys_globals['typeid']>0)$typeid=$_sys_globals['typeid'];if($typeid==0){return'';}$sql="Selectid,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFrom`detest_arctype`wherereid='$typeid'Andishidden<>1orderbysortrankasclimit0,$row";}elseif($type=="self"){if($reid==0){return'';}$sql="Selectid,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,descriptionFrom`detest_arctype`wherereid='$reid'Andishidden<>1orderbysortrankasclimit0,$row";}

调用方法:<img src=”[field:typeimg /]” />