此次教程是针对企业公司网站针对每个栏目的banner大图而写,可以每个栏目使用不同的banner长图
单独调用这些图片比较麻烦,我们修改程序实现每个栏目都有上传栏目缩略图的功能
单独调用这些图片比较麻烦,我们修改程序实现每个栏目都有上传栏目缩略图的功能
开始教程(所有操作记得备份数据)
第一步、执行SQL命令为数据库的栏目表结构添加一个字段
alter table `dede_arctype` add `typeimg` char(100) NOT NULL default '';
- 第二步、修改涉及到文件
- dede/catalog_add.php
- dede/catalog_edit.php
- dede/templets/catalog_add.htm
- dede/templets/catalog_edit.htm
1、打开dede/catalog_add.php(增加字段:typeimg)
查找
$queryTemplate = "insert into `dede_arctype`
把
(reid,topid,sortrank,typename,typedir,
替换成
(reid,topid,sortrank,typename,typedir,typeimg,
把
('~reid~','~topid~','~rank~','~typename~','~typedir~',
替换成
('~reid~','~topid~','~rank~','~typename~','~typedir~','~typeimg~',
- 2、打开dede/catalog_edit.php
找到
$upquery = "Update `dede_arctype` set
在它下面加上
`typeimg`='$typeimg',
- 3、打开dede/templets/catalog_add.htm
查找
<tr><td height="26">列表命名规则:</td><td><input name="namerule2" type="text" id="namerule2" value="{typedir}/list_{tid}_{page}.html" class="pubinputs" style="width:250px" /><img src="img/help.gif" alt="帮助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar3')"/></td></tr>
在它下面加上
<tr><td height="65" style="padding-left:10px;">栏目图片:</td><td width="400"><input name="typeimg" type="text" style="width:250px" id="typeimg" class="alltxt" value="<?php echo $myrow['typeimg']?>" /><input type="button" name="set9" value="浏览... "class="coolbg np" style="width:60px" onClick="SelectImage('form1.typeimg','');" /></td><td><td align="center"><img src="<?php echo "images/pview.gif";?>" width="150" height="100" id="picview" name="picview"></td></td></tr>
然后再head增加下面这个JS
<script language='javascript' src="js/main.js"></script>
- 4、打开dede/templets/catalog_edit.htm
<tr><td height="26">列表命名规则:</td><td><input name="namerule2" type="text" id="namerule2" value="{typedir}/list_{tid}_{page}.html" class="pubinputs" style="width:250px" /><img src="img/help.gif" alt="帮助" width="16" height="16" border="0" style="cursor:pointer" onClick="ShowHide('helpvar3')"/></td></tr>
在它下面加上
<tr><td height="65" style="padding-left:10px;">栏目图片:</td><td width="400"><input name="typeimg" type="text" style="width:250px" id="typeimg" class="alltxt" value="<?php echo $myrow['typeimg']?>" /><input type="button" name="set9" value="浏览... "class="coolbg np" style="width:60px" onClick="SelectImage('form1.typeimg','');" /></td><td><td align="center"><img src="<?php echo "images/pview.gif";?>" width="150" height="100" id="picview" name="picview"></td></td></tr>
详解:
<?php echo $myrow['typeimg']?>
这句会调用出已添加的路片路径
然后再head增加下面这个JS (和上面一步一样操作)
<script language='javascript' src="js/main.js"></script>
- 5、dede:channel标签和dede:type等标签都还是无法调用该字段的,还需要修改标签语句
打开/include/taglib/channel.lib.php
找到一下代码,每个typedir后面加上自己添加的字段typeimg
if($type=='top'){$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFrom `dede_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,sitepathFrom `dede_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,sitepathFROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";}//如果用子栏目模式,当没有子栏目时显示同级栏目if($type=='son' && $reid!=0 && $totalRow==0){$sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM `dede_arctype` WHERE reid='$reid' And ishidden<>1 order by sortrank asc limit 0, $line ";$dsql->SetQuery($sql);$dsql->Execute();}
再找到
$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
在下面加上
$linkOkstr = str_replace("~typeimg~",$row['typeimg'],$linkOkstr);
- 6、找到include/taglib/type.lib.php
找到如下代码,并在typedir后加上typeimg,前台就可以通过标签调用了
标签调用代码:[field:typeimg/]if(empty($typeid)) return '';$row = $dsql->GetOne("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE id='$typeid' ");