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 style=padding-left:10px;>列表命名規(guī)則:</td>
    <td>
    <input name=namerule2 type=text id=namerule2 value={typedir}/list_{tid}_{page}.html class=pubinputs style=width:250px />
    <img src=images/help.gif alt=幫助 width=16 height=16 border=0 style=cursor:pointer onclick=showhide('helpvar3')/></td>
    </tr>
    在標(biāo)簽下面增加一行:
    <!--增加欄目縮略圖-->
    <tr>
    <td width=90 style=padding-left:10px;>欄目圖片:</td>
    <td width=560>
    <table width=100% border=0 cellspacing=1 cellpadding=1>
    <tr>
    <td height=30>
    <input name=typeimg type=text id=typeimg style=width:240px />
    <input type=button value=本地上傳 style=width:70px;cursor:pointer;display:none />
    <iframe name='uplitpicfra' id='uplitpicfra' src='' style='display:none'></iframe>
    <span class=litpic_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=選擇圖片 style=margin-left:8px; onclick=selectimage('form1.typeimg','small'); class='np coolbg'/>
    <input type=button name=submit2 value=裁剪 style=margin-left:8px; onclick=imagecut('typeimg'); class='np coolbg'/>
    <input type='checkbox' class='np' name='ddisremote' value='1' id='ddisremote'/>遠(yuǎn)程<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 style=padding-left:10px;>列表命名規(guī)則:</td>
    <td> <input name=namerule2 type=text id=namerule2 value=<?php echo $myrow['namerule2']?> size=40 class=iptxt />
    <img src=images/help.gif alt=幫助 width=16 height=16 border=0 style=cursor:pointer onclick=showhide('helpvar3')/></td>
    </tr>
    在其下面增加一行:
    <!--增加欄目縮略圖-->
    <tr>
    <td width=90 height=81 style=padding-left:10px;>欄目圖片:</td></td>
    <td width=500>
    <input name=typeimg type=text id=typeimg style=width:300px value=<?php echo $myrow['typeimg']?>><input type=button name=submit value=瀏覽... style=width:70px onclick=selectimage('form1.typeimg','');>
    <input type=button name=submit2 value=裁剪 style=margin-left:8px; onclick=imagecut('typeimg'); class='np coolbg'/>
    <input type='checkbox' class='np' name='ddisremote' value='1'>
    遠(yuǎn)程<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)欄目圖片添加的選擇,點(diǎn)擊選擇圖片,彈出窗口內(nèi)選擇瀏覽上傳就ok
    注意:前臺欄目標(biāo)簽調(diào)用的時候,還需要改一個文件,才能實(shí)現(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);