首頁  >  文章  >  後端開發  >  power by dedecms dedecms中常見問題修改方法總結

power by dedecms dedecms中常見問題修改方法總結

WBOY
WBOY原創
2016-07-29 08:36:553307瀏覽

新手常見問題,此貼是早些時候我發的,在3.1正式版中.有些問題已得到修正,不過仍可作為修改或學習參考
請大家花點耐心看完這個吧,這些問題很多人都有碰到.何必要不停的發子問呢?
另外,看完這個請去你自己的後台看完模板標記參考!!特別是arclist這個標記的參數說明!!
多思考一下問題,多試驗一下標記,,學到就是自己的,學不到,誰也幫不到你!!
補充一點..很多標記都可以參考系統默認的模板和模板區的一些好模板,多看標記體會每個標記的用法,
下文如果有您的貼子..感謝您對DEDE的匏礁凍?.
3.1lit最新版當一級欄目為最終列表欄位時,讓清單顯示其下層欄目的文章的修改
include/inc_arclist_view.php
80行:
$addSql .= " And (typeid='".$this->TypeID."' or typeid2='".$this->TypeID."') ";
改為:
//增加的,用來解決上級列表呼叫不出下級列表的問題
    $ssid = TypeGetSunID ($this->TypeID,$this->dsql);
    $ssid2 = str_replace('typeid','typeid2',$ssid);
    //結束增加的
; And (typeid='".$this->TypeID."' or ".$ssid." or typeid2='".$this->TypeID."' or ".$ssid2.") ";//本句也已修改
上面這部分用來解決分頁問題
include/inc/inc_fun_SpGetArcList.php
70行開始:
if($ridnum>1){
 $  ;
    for($i=0;$i        if($tpsql=="") $tpsql . ,$dsql,'arc');
        else $tpsql .= " Or ".TypeGetSunID($reids[$ ) ";
    $orwhere .= $tpsql;
    unset($tpsql);
    }     }
改為:
if($ridnum>1){
    $tpsql = "";
 rid ;$i++){
        if($tpsql=="") {
        //開始修改中對文章中第二欄位呼叫問題        $ssid2 = str_replace('typeid','typeid2',$ssid);
      else {
        $tpsql .= " Or ".TypeGetSunID($reids[$i],$dsql,'arc');     }
    $tpsql .= ") ";
    $orwhere .= setosql;   $orwhere .=   else{
    $ssid = TypeGetSunID($typeid,$dsql,'arc');
    $ssid2 = str_replace('typeid','typeid2',$ssid);
  id or ".$ssid2.") ";//結束脩改文章第二欄位呼叫問題
    }
此部分用來解決調用下級欄位文章列表問題
替換的程式碼我寫的很粗糙,可以暫時先用著,等官方的解決方案出來後再替換
在 include/inc_arclist_view.php要改一點:
//取得單一欄位的文件清單

    //類別ID的條件
    $orwhere .= " And1(#@__archive ."where .= " Andive this->TypeID."' or #@__archives.typeid2='".$this->TypeID."') ";
改為:
    //類別ID ($this->TypeID,$this->dsql);
    $orwhere .= " And (#@__archives.typeid='".$this->TypeID."' or ".$ssid." or # @__archives.typeid2='".$this->TypeID."') ";
否則有頁面沒有列表內容,因為80行是Select count(*).....
關於那個欄位路徑有個{cmspath}
先說一下{cmspath}的意思,,開啟後台"系統設定參數"可以看到第二項,DedeCms安裝目錄: 
這就是{cmspath}所解析出來的路徑,
如果beta2升級到lit,需要手工修改欄位屬性,把{cmspath}去除.或者你運行setup升級完之後用lit的所有文件
替換掉之前的B2的所有文件,這樣{cmspath}就可以正常解析成你的網站路徑
如果你不用{cmspath}這個參數,.可以照下面的修改
執行SQL: update dede_arctype set typedir=replace(typeidr,'{cmspath}','') ;
以去掉資料庫的里 {cmspath}
然後修改檔案 catalog_add.php 找到 $true_typedir = str_replace("{cmspath}",$cfg_cmspath,$typedir)
= str_replace("",$cfg_cmspath,$typedir);
就行
[field:description /]這個標籤如何限製字數?
[field:description function='cn_substr(@me,80)' /]
dede 裡的所有標記都支持這樣使用函數的
關於3.1版友情鏈接添加後在首頁沒有顯示的問題
引起這個的主要原因是BLT在編寫的時候把錶 dede_flink的ischeck的值弄反了造成的.
在3.01裡..ischeck=1表示首頁連結..2表示內頁連結,但3.1正好相反,
給一個最簡直的改法就是打開inc_fun_SpGetFriendLink. php
找到第13行..
CODE:
$wsql = " where ischeck=1 "; 
[Copy to clipboard]
1改為11.11更新後,取消了inc_fun_SpGetFriendLink.php這個檔案的呼叫.
所以只須開啟inc_arcpart_view.php
在410行附近
CODE:
   🎜>    if($type=="p_w_picpath") $wsql .= " And logo'' ";
    else= ;
    else $wsql .= "";
[Copy to clipboard]
同樣將where ischeck=1改為2就可以
3.1LIT版廣告名稱修改後無效的解決方案
3.1LIT版廣告名稱修改後無效的解決方法
>http://bbs.dedecms.com/read.php?tid=7135
看4樓的回貼.
dede新版如何去除清單的文章摘要
刪除[field:info/]
關於後台登陸驗證碼樣式的修改
http://bbs.dedecms.com/read.php?tid=6244
當文章描述中出現的英文長度大於table的寬度時,會搞的難看
[field:textlink /]

[field:title function='cn_substr(@me,30)' /]
新頻道模型教學
http://bbs.dedecms.com/read.php?tid=5972
dedecms實作清單頁雙樣式


{dede:list type='full'}



{/ dede:list}
[field:typelink /] [field:textlink /]點選:[field:click /]([field:stime /])

我想實現一個功能,就是在文章列表中(模板list_article)如果文章有縮圖就顯示縮圖,沒有的話則直接顯示文章列表而不顯示“沒有縮圖」的圖片。
dedecms的擴充是用function形式的,因為加入if這個結構太佔資源,如果你有必要,你可以這樣:
[field:picname function="GetMyPic('@me')"/ ]
在 inc_functions.php 裡定義一個函數
function GetMyPic($img)
{
if($img=="") return  ='$img' width='120' height='100' border='0'>";
}
這樣來處理
這個做法可能會有點不便,但好處是既達到擴展目的,又不會佔用太大資源,又不影響模板結構,實現真正的模板與程式碼分離
點擊圖片進入下一頁 
打開include/inc_archives_view.php
大概在444行左右,找到
$this->Fields[$this->SplitPageField]=$this->Fields[$this->SplitPageField];
註解掉,改為
$this->Fields[$this- >SplitPageField]=$this->ClickPicNext($this->Fields[$this->SplitPageField]);
然後,最後加上函數,注意在最後一個括號裡面!
//把圖片替換成連結
//----------------------------
function ClickPicNext(&$body)
{
if($this->NowPage!=$this->TotalPage){
  $lPage=$this->NowPage+1;
  $body=preg_replace("/)/isU","NameFirst."_".$lPage." .".$this->ShortName."'>"."${0}"."",$body);
  //$body="NameFirst."_".$lPage.".".$this->ShortName."'>".$body." ";
}else{
  if($this- >GetNext()){
    $body=preg_replace("/)/ isU","GetNext()."'>"."${0}"."",$body);
    //$body= "GetNext()."'>".$body." ";   
  }
}
  return $body;
自動地把文章中的圖片替換為下一頁的連結,如果是最後一頁,則為下一篇!
注意:先要按下面的改法,把上一篇下一篇分開才行!
[dede3.1][改法]上一篇下一篇分開調用,且限定文章所在欄位內而不是現在的全站。
http://bbs.dedecms.com/read.php?tid=5051 
在文章列表中,有的標題被截斷了,用什麼樣的程式碼可以讓滑鼠在上面的時候可以顯示完整的檔案名稱?
{dede:arclist row=16 orderby=pubdate col=1 typeid=3}
  • · [field:title function="cn_substr('@me',30)" /]

  • {/dede:arclist}
    怎麼樣在文章名前面顯示所屬的文章欄?
    {dede:arclist row=10 orderby=pubdate}
    ·[field:typelink/] [field:textlink/]

    {/dede:arclist}
    產生的文章檔名能不能增加MD5加密
    自己改一下,這種屬於典型的無聊需求吧
    include/inc_channel_unit_functions.php
    .
    [field:writer /]怎麼沒用
    lit版inc_arcpart_view.php沒有讀取附加表
    修改includeincinc_fun_SpGetArcList.php第120行,在後面加 arc.writer,
    當然你也可以加入你還想引入的附加表如:
    arc.writer,arc.source,arc.shorttitle,
    新安裝的DEDECMS3.0.1,第一次登陸就說我密碼錯誤!
    你要查一下是否有 dede_admin 這個表,如果有,看看有沒有數據,
    如果用戶名和密碼沒有不允許的符號的話,
    一般是伺服器可能能無法完成安裝的SQL導入才可能會提示用戶名不存在
    手工加個用戶就OK了.
    也可以在資料庫中刪除表格dede_admin,然後重新安裝即可
    關於listpage分頁在產生會有表格的修改 
    搜尋 
    //取得靜態的分頁清單
    在下面的幾行可以看到分頁的一些東東
    關於欄目多風格和系統底層模版的問題 
    用arclist
    {dede:arclist
    typeid='' row='' col ='' titlelen='' 
    infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
    自訂樣式範本(InnerText)   //這裡定義你顯示的樣式..不要修改底層模板了..免得你自己麻煩.
    {/dede:arclist}
    另外欄目的模板可以不使用系統預設的{style}/list_article.htm
    你可以手工指定欄目的封面模板或是列表模板嘛..列如:{style}/list_class1.htm
    {style}/list_class2.htm
    等.這樣就可以多風格了嘛.
    用dedecms做小說站的思路 
    1、新建兩個模型
    book模型和章節模型
    2、重新寫檔案發布程序,關鍵把兩個模型關聯起來,而現在提供內容模型的cmsware和dede都是辦不到的,而dede自建頻道提供的檔案發布程序項可以很好的利用。重新些這四個文件(兩個介面和兩個提交後處理的程序)即可。
    3.如果要做成起點中文網哪種模式,那就要在member目錄下寫關於投稿的程序,以及在plus裡面寫業務模式如計費、計點等功能的程序。
    其實, dede只是一個內容發佈的框架,提供的後台工具只針對管理員而已,使用者完全可以自我自訂各種模型,不過要對dede熟悉一點而已。
    能寫程式的不妨一試。
    為什麼我的自訂標記總是被當作文字來輸出
    標記裡要加上 ismake='yes' 屬性
    對圖片SEO的一些思考,
    power by dedecms dedecms中常見問題修改方法總結
    參考arclist標記的說明,,
    dede編輯器的問題..從WORD複製進去的錯誤
    複製後安 工具列 上那個右下角有黃色T的貼上按鈕~~~移上去有提示的,無格式貼上 
    標籤的定義放在什麼地方的
    凡是include裡的文件,有什麼 ***view.php 都是控制視圖的
    關於自動分頁的問題
    自動分頁的大小為只能在2-5之前
    3 就是每個分頁為3K的意思。
    這個跟動易的不一樣,動易的是字節,所以你可以寫2000 或則 3000 DEDE的是K 所以,你只能寫 2或則3,我的錯誤在,我寫成2000K!汗一個,
    這在DEDE裡的意思是,一個分頁允許到2M !自然不成功
    關於分頁標題
    內容部分如下格式即可:
    分頁標題1#e#
    第1頁內容
    #p#分頁標題2#e#
    第2頁內容
    #p#分頁標題3#e#
    第3頁內容
    #p#分頁標題4#e#
    第4頁內容






    附加選項: 下載遠端圖片和資源 怎麼關閉啊? ? ?
    dede/article_add.php 和 article_edit.php中找到(如果是其他的模型找到對應的新增和修改檔案)
     附加選項:
         
        下載遠端圖片與資源
    刪除value改為0 🎜>3.1B2///channelArtlist和arclist的BUG暫時解決方案
    修正所有欄位清單都一樣和channelArtlist下arclist標籤無法自訂
    開啟include/inc_arcpart_view.php
    在207行找到
    else $typeid = 0;
    然後把他刪除
    ----------------------
    再打開include/inc/inc_fun_SpGetChannelList. php
    在第66行找到
    $ctag->GetAtt('innertext')
    改為
    $ctag->GetInnerText()
    即可。
    如果有問題的,也可以加群:18176791
    呵呵.能看到這裡.說明你是真心做站!祝你成功!!

    以上就介紹了power by dedecms dedecms中常見問題修改方法總結,包括了power by dedecms方面的內容,希望對PHP教程有興趣的朋友有所幫助。

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