首頁 >CMS教程 >DEDECMS >織夢cms怎麼增加欄位圖片

織夢cms怎麼增加欄位圖片

藏色散人
藏色散人原創
2023-03-14 10:42:301821瀏覽

織夢cms增加欄位圖片的方法:1、把要新增欄位圖片欄位命名為“typeimg”,執行程式碼為“alter table dede_arctype add typeimg varchar(100)”;2、修改“catelog_add .php」和「catelog_edit.php」檔案內容;3、使用channel標籤呼叫欄目,然後取得目前欄目的最頂級的欄位圖片即可。

織夢cms怎麼增加欄位圖片

本教學操作環境:Windows10系統、DedeCMS 5.7版、Dell G3電腦。

織夢cms怎麼增加欄位圖片?

dedecms(織夢CMS)後台新增欄位圖片的程式碼方法

網路上的方法雖然對,但有些細節沒處理好,很多新手都會遇到問題。接下來我來總結一下吧。

第一步、首先我們把要新增欄位圖片欄位我這裡取欄位名為typeimg,您可以在背景新增程式碼,執行程式碼,操作如下:
「系統-> SQL指令工具」 ,插入sql語句
alter table dede_arctype add typeimg varchar(100)
第二步:進入後台管理檔目錄(預設為:dede目錄),找到」catelog_add.php「下有幾處要修改的。
1.找到$queryTemplate(大概65行左右)
我改的程式碼如下:

$queryTemplate = "INSERT INTO `#@__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`,`typeimg`)
    VALUES('~reid~','~topid~','~rank~','~typename~','~typedir~','$isdefault','$defaultname','$issend','$channeltype',
    '$tempindex','$templist','$temparticle','default','$namerule','$namerule2','0','0','','','~typename~','0','','','0','0','0','','','~typeimg~')";

2.找到$in_query(227行左右)

#修改整個$in_query

$in_query = "INSERT INTO `#@__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`,`typeimg`)
    VALUES('$reid','$topid','$sortrank','$typename','$typedir','$isdefault','$defaultname','$issend','$channeltype',
    '$tempindex','$templist','$temparticle','default','$namerule','$namerule2',
    '$ispart','$corank','$description','$keywords','$seotitle','$moresite','$siteurl','$sitepath','$ishidden','$cross','$crossid','$content','$smalltypes','$typeimg')";

其實沒什麼難的,新手可以複製貼上,老手可以自行修改,就是在語句中加入一個typeimg欄位而已。
第三步:同樣的方法,找到」catelog_edit.php「下$upquery(38行左右)
修改程式碼如下

$upquery = "UPDATE `#@__arctype` SET
     issend='$issend',
     sortrank='$sortrank',
     typename='$typename',
     typedir='$typedir',
     isdefault='$isdefault',
     defaultname='$defaultname',
     issend='$issend',
     ishidden='$ishidden',
     channeltype='$channeltype',
     tempindex='$tempindex',
     templist='$templist',
     temparticle='$temparticle',
     namerule='$namerule',
     namerule2='$namerule2',
     ispart='$ispart',
     corank='$corank',
     description='$description',
     keywords='$keywords',
     seotitle='$seotitle',
     moresite='$moresite',
     `cross`='$cross',
     `content`='$content',
     `crossid`='$crossid',
	 `typeimg`='$typeimg',
     `smalltypes`='$smalltypes'     $uptopsql
    WHERE id='$id' ";

第四步:進入後台管理檔目錄(預設為:dede目錄)/templets/ 下的「catalog_add.htm 和catalog_edit.htm" 文件,在間加入下面程式碼:

4df64949a418eaaac6f0491cdce4fee62cacc6d41bbb37262a98f745aa00fbf0

catalog_add.htm 中加入如下程式碼

<!--加入栏目-->
<tr>
<td class="bline" height="26" style="padding-left:10px;">栏目图片:</td>
<td class="bline">
<input type="text" name="typeimg" id="imgmm" style="width:300px" class="text" />
<input name="imgmm_bt" type="button" class="inputbut" value="浏览..." onclick="SelectImage(&#39;form1.imgmm&#39;,&#39;big&#39;)" />
</td>
<input type="hidden" name="dede_addonfields" value="imgmm,img" />
</tr>

catalog_edit.htm中加入如下程式碼

<!--加入栏目-->
<tr>
<td class="bline" height="26" style="padding-left:10px;">栏目图片:</td>
<td class="bline">
<input type="text" name="typeimg" id="imgmm" style="width:300px" class="text" value="<?php echo $myrow[&#39;typeimg&#39;]?>" />
<input name="imgmm_bt" type="button" class="inputbut" value="浏览..." onclick="SelectImage(&#39;form1.imgmm&#39;,&#39;big&#39;)" />
</td>
<input type="hidden" name="dede_addonfields" value="imgmm,img" />
</tr>

注意:這二個檔案的程式碼不一樣,要分別加入。

第五步:如果使用通邊channel 標籤呼叫欄目,所以要對/include/taglib/channel.lib.php檔案進行更改,找到如下程式碼進行替換

    if($type==&#39;top&#39;)
    {
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg
          From `#@__arctype` WHERE reid=0 And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
    else if($type==&#39;son&#39;)
    {
        if($typeid==0) return &#39;&#39;;
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg
          From `#@__arctype` WHERE reid=&#39;$typeid&#39; And ishidden<>1 order by sortrank asc limit 0, $line ";
    }
    else if($type==&#39;self&#39;)
    {
        if($reid==0) return &#39;&#39;;
        $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,typeimg
            FROM `#@__arctype` WHERE reid=&#39;$reid&#39; And ishidden<>1 order by sortrank asc limit 0, $line ";
    }

其實就是在sql語句裡面加入了typeimg欄位。
第六步,就是在前台呼叫了

{dede:channel type='self' typeid='15' row='8' currentstyle="25edfb22a4f469ecb59f1190150159c68d60d59de777e50e50090b37959b0985~typename~5db79b134e9f6b82c0b36e0489ee08ed bed06894275b65c1ab86501b08a632eb"}25edfb22a4f469ecb59f1190150159c65ab648ad8fc41adf601551917280b087[field:typename/]5db79b134e9f6b82c0b36e0489ee08ed eb1070f765392fe362bd87515babcaeebed06894275b65c1ab86501b08a632eb{/dede:channel}

以上這段程式碼是網路上的,我要的不是這樣的效果,我要是取得目前欄目的最頂級的欄位圖片

我用二種方法來解決這個問題:
本人測試有效
第一種:
修改檔案include/helpers/extend.helper.php
找到gettoptype函數,在裡面增加如下程式碼,目的是取得欄位圖片

r​​rreee

前台呼叫方法:

//增加栏目图片
$toptypeimg=$row[&#39;typeimg&#39;];
if($action="images") return $toptypeimg;

這樣就可以呼叫了。完美! !

第二種方法:
修改檔案include/common.func.php
最後增加一個函數就行了,如下:

58a4381fe43a7333eff0607c269bbf9e

前台呼叫方法為:

//获取顶级栏目的栏目图片 李国平更新于2021.3.11
function GetTopTypeimg($id)
{
global $dsql;  
$row = $dsql->GetOne("SELECT typeimg,topid FROM dede_arctype WHERE id= $id");
if ($row[&#39;topid&#39;] == &#39;0&#39;) 
{ 
return $row[&#39;typeimg&#39;];  
} 
else 
{ 
$row1 = $dsql->GetOne("SELECT typeimg FROM dede_arctype WHERE id= $row[topid]"); 
return $row1[&#39;typeimg&#39;]; 
} 
}

這樣也可以呼叫了。完美! !

推薦學習:dedecms教學

以上是織夢cms怎麼增加欄位圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn