此次教程是针对企业公司网站针对每个栏目的banner大图而写,可以每个栏目使用不同的banner长图
单独调用这些图片比较麻烦,我们修改程序实现每个栏目都有上传栏目缩略图的功能
开始教程(所有操作记得备份数据)
第一步、执行SQL命令为数据库的栏目表结构添加一个字段
alter table `dede_arctype` add `typeimg` char(100) NOT NULL default '';
  • 第二步、修改涉及到文件
  1. dede/catalog_add.php 
  2. dede/catalog_edit.php
  3. dede/templets/catalog_add.htm
  4. 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,sitepath
          From `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,sitepath
          From `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,sitepath
            FROM `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,sitepath
            FROM `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,前台就可以通过标签调用了
if(empty($typeid)) return '';
    $row = $dsql->GetOne("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE id='$typeid' ");
标签调用代码:[field:typeimg/]