DedeCms 欄目增加縮略圖功能的方法

字號:


    此功能添加涉及到以下文件
    :
    dede/catalog_add.php
    dede/catalog_edit.php
    dede/templets/catalog_add.htm
    dede/templets/catalog_edit.htm
    include/taglib/channel.lib.php
    此升級修改方法,在V5.7,V5.7sp1 測試通過,其他版本未測試,原理基本相同,請大家自行測試是否可行。
    首先給 欄目表(`#@__arctype`)增加一個字段typeimg
    alter table `#@__arctype` add `typeimg` varchar(200) NOT NULL default ;
    修改catalog_add.php文件
    打開dede/catalog_add.php
    查找$queryTemplate = “insert into `#@__arctype`
    將
    (reid,topid,sortrank,typename,typedir,
    替換為:
    (reid,topid,sortrank,typename,typedir,typeimg,
    將
    (‘~reid~’,'~topid~’,'~rank~’,'~typename~’,'~typedir~’,
    替換為:
    (‘~reid~’,'~topid~’,'~rank~’,'~typename~’,'~typedir~’,'~typeimg~’,
    查找$in_query = “INSERT INTO `#@__arctype`
    將
    (reid,topid,sortrank,typename,typedir,
    替換為:
    (reid,topid,sortrank,typename,typedir,typeimg,
    將
    (‘$reid’,'$topid’,'$sortrank’,'$typename’,'$typedir’,
    替換為:
    (‘$reid’,'$topid’,'$sortrank’,'$typename’,'$typedir’,'$typeimg’,
    保存catalog_add.php
    下面修改catalog_edit.php文件
    打開dede/catalog_edit.php
    查找$upquery = “Update `#@__arctype` set
    在 typedir=’$typedir’, 其下面增加一行:
    `typeimg`=’$typeimg’,
    保存catalog_edit.php
    開始修改欄目添加模板文件
    打開dede/templets/catalog_add.htm
    在最上面找到這個段
    <title>欄目管理</title>
    <link href=”css/base.css” rel=”stylesheet” type=”text/css”>
    替換為:
    <title>欄目管理</title>
    <link href=”css/base.css” rel=”stylesheet” type=”text/css”>
    <script language=”javascript” src=”../include/js/dedeajax2.js”></script>
    <script language=’javascript’ src=”js/main.js”></script>
    <script type=”text/javascript” src=”js/calendar/calendar.js”></script>
    列表命名規(guī)則:
    <tr>
    <td height="26">列表命名規(guī)則:</td>
    <td>
    <input name="namerule2" type="text" id="namerule2" value="{typedir}/list_{tid}_{page}.html" />
    <img src="images/help.gif" width="16" height="16" onClick="ShowHide('helpvar3')"/></td>
    </tr>
    在標簽下面增加一行:
    <!--增加欄目縮略圖-->
    <tr>
    <td width="90">欄目圖片:</td>
    <td width="560">
    <table cellspacing="1" cellpadding="1">
    <tr>
    <td height="30">
    <input name="typeimg" type="text" id="typeimg" />
    <input type="button" value="本地上傳" />
    <iframe name='uplitpicfra' id='uplitpicfra' src='' style='display:none'></iframe>
    <span><input name="litpic" type="file" id="litpic" onChange="SeePicNew(this, 'divpicview', 'uplitpicfra', 165, 'archives_add.php');" size="1" class='np coolbg'/></span>
    <input type="button" name="Submit2" value="選擇圖片" onClick="SelectImage('form1.typeimg','small');" class='np coolbg'/>
    <input type="button" name="Submit2" value="裁剪" onClick="imageCut('typeimg');" class='np coolbg'/>
    <input type='checkbox' class='np' name='ddisremote' value='1' id='ddisremote'/>遠程<br />(欄目模板里用{dede:field.typeimg /}調(diào)用
    </td>
    </tr>
    </table>
    </td>
    <td width="150">
    <div id='divpicview' class='divpre'></div>
    </td>
    </tr>
    <!--增加欄目縮略圖-->
    保存catalog_add.htm
    開始修改欄目編輯模板文件
    打開dede/templets/catalog_edit.htm
    在最上面找到這個段
    <title>欄目管理</title>
    <link href=”css/base.css” rel=”stylesheet” type=”text/css”>
    替換為:
    <title>欄目管理</title>
    <link href=”css/base.css” rel=”stylesheet” type=”text/css”>
    <script language=”javascript” src=”../include/js/dedeajax2.js”></script>
    <script language=”javascript” src=”js/main.js”></script>
    <script type=”text/javascript” src=”js/calendar/calendar.js”></script>
    查找
    <tr>
    <td height="26">列表命名規(guī)則:</td>
    <td> <input name="namerule2" type="text" id="namerule2" value="<?php echo $myrow['namerule2']?>" size="40" />
    <img src="images/help.gif" width="16" height="16" onClick="ShowHide('helpvar3')"/></td>
    </tr>
    在其下面增加一行:
    <!--增加欄目縮略圖-->
    <tr>
    <td width="90" height="81">欄目圖片:</td></td>
    <td width="500">
    <input name="typeimg" type="text" id="typeimg" value="<?php echo $myrow['typeimg']?>"><input type="button" name="Submit" value="瀏覽..." onClick="SelectImage('form1.typeimg','');">
    <input type="button" name="Submit2" value="裁剪" onClick="imageCut('typeimg');" class='np coolbg'/>
    <input type='checkbox' class='np' name='ddisremote' value='1'>
    遠程<br />(欄目模板里用{dede:field.typeimg /}調(diào)用)
    </td>
    <td>
    <img src="<?php if($myrow['typeimg']!="") echo $myrow['typeimg']; else echo "images/pview.gif";?>" width="150" height="100" id="picview" name="picview">
    </td>
    </tr>
    <!--增加欄目縮略圖-->
    保存catalog_edit.htm
    至此已經(jīng)修改完成!
    欄目圖片的添加或修改圖片時在 (欄目管理>高級選項)里面就會自動出現(xiàn)欄目圖片添加的選擇,點擊選擇圖片,彈出窗口內(nèi)選擇瀏覽上傳就OK
    注意:前臺欄目標簽調(diào)用的時候,還需要改一個文件,才能實現(xiàn)欄目圖片顯示,否則只能通過sql語句才能顯示圖片。
    打開:include/taglib/channel.lib.php
    找到
    if($type=='top')
    {
    $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
    From `#@__arctype` where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";
    }
    else if($type=="son")
    {
    //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];
    if($typeid==0) {
    return '';
    }
    $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
    From `#@__arctype` where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";
    }
    else if($type=="self")
    {
    if($reid==0) {
    return '';
    }
    $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
    From `#@__arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";
    }
    替換成下面的:
    if($type=='top')
    {
    $sql = "Select id,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
    From `#@__arctype` where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";
    }
    else if($type=="son")
    {
    //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];
    if($typeid==0) {
    return '';
    }
    $sql = "Select id,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
    From `#@__arctype` where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";
    }
    else if($type=="self")
    {
    if($reid==0) {
    return '';
    }
    $sql = "Select id,typename,typeimg,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
    From `#@__arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";
    }
    調(diào)用方法:
    <img src=”[field:typeimg /]” />
    最近有很多網(wǎng)友問到修改的方法,現(xiàn)在我把已經(jīng)修改好的后臺文件分享出來,下載下來直接覆蓋到后臺就可以了。http://115.com/file/anqwqyi0
    如果想同時在文章內(nèi)容頁調(diào)用欄目圖片打開,修改includearc.archives.class.php
    查找
    if($this->ChannelUnit->ChannelInfos['issystem']!=-1)
    將
    $query = “Select arc.*,tp.reid,tp.typedir,ch.addtable
    from `#@__archives` arc
    left join #@__arctype tp on tp.id=arc.typeid
    left join #@__channeltype as ch on arc.channel = ch.id
    where arc.id=’$aid’ “;
    $this->Fields = $this->dsql->GetOne($query);
    替換為: 
    $query = “Select arc.*,tp.reid,tp.typedir,tp.typeimg,ch.addtable
    from `#@__archives` arc
    left join #@__arctype tp on tp.id=arc.typeid
    left join #@__channeltype as ch on arc.channel = ch.id
    where arc.id=’$aid’ “;
    $this->Fields = $this->dsql->GetOne($query);