当前位置:主页 > 织梦教程 >

dedecms织梦为栏目设置新增字段,并且调用该字段

栏目分类:织梦教程   发布日期:2017-08-10   来源:资源盒子   浏览次数:
dedecms织梦网站很多时候需要为栏目设置一张缩略图来调用。以下为大家讲解如何添加字段。

前言: 

    dedecms织梦网站很多时候需要为栏目设置一张缩略图来调用。以下为大家讲解如何添加字段。

步骤:  

    一、数据库dede_arctype栏目表需要新增字段(我们这里为栏目新增一个存放缩略图的自动typeimg):

    可以使用Navicat工具或者SQL预计进行字段新增

alter table `dede_arctype` add `typeimg` char(100) NOT NULL

    二、需要修改到的文件:

        dede/catalog_add.php

        dede/catalog_edit.php

        dede/templets/catalog_add.htm

        dede/templets/catalog_edit.htm

    编辑dede/catalog_add.php搜索$queryTemplate在大概65行typename后面增加typeimg,在67行'~typedir~'后面增加$ename,

 $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`,`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,typeimg,typedir,isdefault,defaultname,issend,channeltype,
    tempindex,templist,temparticle,modname,namerule,namerule2,ispart,corank,description,keywords,seotitle,moresite,siteurl,sitepath,ishidden,`cross`,`crossid`,`content`,`smalltypes`)
    VALUES('~reid~','~topid~','~rank~','~typename~','~typeimg~','~typedir~','$isdefault','$defaultname','$issend','$channeltype',
    '$tempindex','$templist','$temparticle','default','$namerule','$namerule2','0','0','','','~typename~','0','','','0','0','0','','')";

    编辑dede/catalog_edit.php在typename='$typename',后面增加一行typeimg='$typeimg',参照原有的来复制粘贴修改,逗号也要加上。

$upquery = "UPDATE `dede_arctype` SET
     issend='$issend',
     sortrank='$sortrank',
     typename='$typename',
     typedir='$typedir',
     isdefault='$isdefault',
     defaultname='$defaultname',

改成:

$upquery = "UPDATE `dede_arctype` SET
     issend='$issend',
     sortrank='$sortrank',
     typename='$typename',
     typeimg='$typeimg',
     typedir='$typedir',
     isdefault='$isdefault',
     defaultname='$defaultname',

    打开dede/templets/catalog_add.htm找到原有的栏目名称一行代码,复制出来,粘贴上去,换成typeimg

 <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="sortrank" size="6" type="text" value="50" class="pubinputs" style="width:60px" />(由低 -&gt; 高) </td>
</tr>

改成:

 <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;"><font color='red'>栏目缩略图:</font></td>
    <td class='bline'><input name="typeimg" type="text" id="typeimg" size="30" class="iptxt" /></td>
</tr>
<tr>
    <td class='bline' height="26" style="padding-left:10px;"> 排列顺序: </td>
    <td class='bline'><input name="sortrank" size="6" type="text" value="50" class="pubinputs" style="width:60px" />(由低 -&gt; 高) </td>
</tr>

    打开dede/templets/catalog_edit.htm在栏目名称下,粘贴一段代码出来。

<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" value="<?php echo $myrow['typename']?>" class="iptxt" /></td>
</tr>
<tr> 
    <td class='bline' height="26" style="padding-left:10px;"> 排列顺序: </td>
    <td class='bline'> <input name="sortrank" size="6" type="text" value="<?php echo $myrow['sortrank']?>" class="iptxt" />(由低 -&gt; 高) </td>
</tr>

改成:

<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" value="<?php echo $myrow['typename']?>" class="iptxt" /></td>
</tr>
<tr> 
    <td class='bline' height="26" style="padding-left:10px;"><font color='red'>栏目缩略图:</font></td>
    <td class='bline'><input name="typeimg" type="text" id="typeimg" size="30" value="<?php echo $myrow['typeimg']?>" class="iptxt" /></td>
</tr>
<tr> 
    <td class='bline' height="26" style="padding-left:10px;"> 排列顺序: </td>
    <td class='bline'> <input name="sortrank" size="6" type="text" value="<?php echo $myrow['sortrank']?>" class="iptxt" />(由低 -&gt; 高) </td>
</tr>


    注:dedecms织梦网站栏目自定义字段添加完以后,并不能马上生效使用,至少在dede:channel标签和dede:type标签中是不能调用。还需要另外修改相关文件,方法如下:

    一、修改以文件,include/taglib/channel.lib.php文件,找到如下代码:

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=='top'){        
    $sql = "SELECT id,typename,typeimg,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,typeimg,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,typeimg,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,typenameng,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();    
  }

改成:

if($type=='son' && $reid!=0 && $totalRow==0){        
    $sql = "SELECT id,typename,typeimg,typenameng,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);

    以上改完后,方能在dede:channel标签中调用。

    二、接下来修改include/taglib/type.lib.php文件,找到如下代码

 if(empty($typeid)) return '';
    $row = $dsql->GetOne("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE id='$typeid' ");

    同样typenname后面也添加一个typeimg,注意用“,”号隔开。 这步修改完就可以用dede:type 标签中使用。

改成:

 if(empty($typeid)) return '';
    $row = $dsql->GetOne("SELECT id,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE id='$typeid' ");


打赏本站
Copyright © 2014 资源盒子 版权所有   黔ICP备14004500号-3   TAG
织梦标签工具下载 ↑↓
织梦标签工具下载