dedecms中常見問題修改方法總結(jié)
時(shí)間: 2020-09-10 09:21
閱讀: 次
作者:素材無(wú)憂網(wǎng)
文章介紹
新手常見問題,此貼是早些時(shí)候我發(fā)的,在3.1正式版中.有些問題已得到修正,不過仍可作為修改或?qū)W習(xí)參考
請(qǐng)大家花點(diǎn)耐心看完這個(gè)吧,這些問題很多人都有碰到.何必要不停的發(fā)貼子問呢?
另外,看完這個(gè)請(qǐng)去你自己的后臺(tái)看完模板標(biāo)記參考!!特別是arclist這個(gè)標(biāo)記的參數(shù)說(shuō)明!!
多思考一下問題,多試驗(yàn)一下標(biāo)記,,學(xué)到就是自己的,學(xué)不到,誰(shuí)也幫不到你!!
補(bǔ)充一點(diǎn)..很多標(biāo)記都可以參考系統(tǒng)默認(rèn)的模板和模板區(qū)的一些好模板,多看標(biāo)記體會(huì)每個(gè)標(biāo)記的用法,
下文如果有您的貼子..感謝您對(duì)DEDE的匏礁凍?.
3.1lit最新版當(dāng)一級(jí)欄目為最終列表欄目時(shí),使列表顯示其下級(jí)欄目的文章的修改
include/inc_arclist_view.php
80行:
$addSql .= " And (typeid=‘".$this->TypeID."‘ or typeid2=‘".$this->TypeID."‘) ";
更改為:
//增加的,用來(lái)解決上級(jí)列表調(diào)用不出下級(jí)列表的問題
$ssid = TypeGetSunID($this->TypeID,$this->dsql);
$ssid2 = str_replace(‘typeid‘,‘typeid2‘,$ssid);
//結(jié)束增加的
$addSql .= " And (typeid=‘".$this->TypeID."‘ or ".$ssid." or typeid2=‘".$this->TypeID."‘ or ".$ssid2.") ";//本句也已修改
上面這部分用來(lái)解決分頁(yè)問題
include/inc/inc_fun_SpGetArcList.php
70行開始:
if($ridnum>1){
$tpsql = "";
for($i=0;$i<$ridnum;$i++){
if($tpsql=="") $tpsql .= " And (".TypeGetSunID($reids[$i],$dsql,‘arc‘);
else $tpsql .= " Or ".TypeGetSunID($reids[$i],$dsql,‘arc‘);
}
$tpsql .= ") ";
$orwhere .= $tpsql;
unset($tpsql);
}
else{
$orwhere .= " And ".TypeGetSunID($typeid,$dsql,‘arc‘);
}
更改為:
if($ridnum>1){
$tpsql = "";
for($i=0;$i<$ridnum;$i++){
if($tpsql=="") {
//開始修改文章第二欄目調(diào)用問題
$ssid = TypeGetSunID($reids[$i],$dsql,‘arc‘);
$ssid2 = str_replace(‘typeid‘,‘typeid2‘,$ssid);
$tpsql .= " And (".$ssid." or ".$ssid2;}
else {
$tpsql .= " Or ".TypeGetSunID($reids[$i],$dsql,‘arc‘);
$tpsql .= str_replace(‘typeid‘,‘typeid2‘,$tpsql);}
}
$tpsql .= ") ";
$orwhere .= $tpsql;
unset($tpsql);
}
else{
$ssid = TypeGetSunID($typeid,$dsql,‘arc‘);
$ssid2 = str_replace(‘typeid‘,‘typeid2‘,$ssid);
$orwhere .= " And (".$ssid." or ".$ssid2.") ";//結(jié)束修改文章第二欄目調(diào)用問題
}
此部分用來(lái)解決調(diào)用下級(jí)欄目文章列表問題
替換的代碼我寫的很粗糙,可以暫時(shí)先用著,等官方的解決方案出來(lái)后再替換
在 include/inc_arclist_view.php還要改一處:
//獲得一個(gè)單列的文檔列表
下
//類別ID的條件
$orwhere .= " And (dede_archives.typeid=‘".$this->TypeID."‘ or dede_archives.typeid2=‘".$this->TypeID."‘) ";
改為:
//類別ID的條件
$ssid = TypeGetSunID($this->TypeID,$this->dsql);
$orwhere .= " And (dede_archives.typeid=‘".$this->TypeID."‘ or ".$ssid." or dede_archives.typeid2=‘".$this->TypeID."‘) ";
否則有頁(yè)面沒有列表內(nèi)容,因?yàn)?0行是Select count(*).....
關(guān)于那個(gè)欄目路徑有個(gè){cmspath}
首先說(shuō)一下{cmspath}的意思,,打開后臺(tái)"系統(tǒng)配置參數(shù)"可以看到第二項(xiàng),DedeCms安裝目錄:
這個(gè)就是{cmspath}所解析出來(lái)的路徑,
如果beta2升級(jí)到lit,需要手工修改欄目屬性,把{cmspath}去除.或者你運(yùn)行setup升級(jí)完之后用lit的所有文件
替換掉之前的B2的所有文件,這樣{cmspath}就可以正常解析成你的網(wǎng)站路徑
如果你不用{cmspath}這個(gè)參數(shù),.可以照下面的修改
執(zhí)行SQL: update dede_arctype set typedir=replace(typeidr,‘{cmspath}‘,‘‘);
以去掉數(shù)據(jù)庫(kù)的里 {cmspath}
然后修改文件 catalog_add.php 找到 $true_typedir = str_replace("{cmspath}",$cfg_cmspath,$typedir);
改成
$true_typedir = str_replace("",$cfg_cmspath,$typedir);
就行
[field:description /]這個(gè)標(biāo)簽如何限制字?jǐn)?shù)?
[field:description function=‘cn_substr(@me,80)‘/]
dede 里的所有標(biāo)記都支持這樣使用函數(shù)的
關(guān)于3.1版友情鏈接添加后在首頁(yè)沒有顯示的問題
引起這個(gè)的主要原因是BLT在編寫的時(shí)候把表 dede_flink的ischeck的值弄反了造成的.
在3.01里..ischeck=1表示首頁(yè)鏈接..2表示內(nèi)頁(yè)鏈接,但3.1正好相反,
給一個(gè)最簡(jiǎn)直的改法就是打開inc_fun_SpGetFriendLink.php
找到第13行..
CODE:
$wsql = " where ischeck=1 ";
[Copy to clipboard]
將1改為2就行了.
11.11更新過后,取消了inc_fun_SpGetFriendLink.php這個(gè)文件的調(diào)用.
所以只須要打開inc_arcpart_view.php
在410行附近
CODE:
$wsql = " where ischeck=1 ";
if($type=="p_w_picpath") $wsql .= " And logo<>‘‘ ";
else if($type=="text") $wsql .= " And logo=‘‘ ";
else $wsql .= "";
[Copy to clipboard]
同樣將where ischeck=1改為2就可以
3.1LIT版廣告名稱修改后無(wú)效的解決辦法
http://bbs.dedecms.com/read.php?tid=7135
看4樓的回貼.
dede新版如何去掉列表的文章摘要
刪除[field:info/]
關(guān)于后臺(tái)登陸驗(yàn)證碼樣式的修改
http://bbs.dedecms.com/read.php?tid=6244
當(dāng)文章描述中出現(xiàn)的英文長(zhǎng)度大于table的寬度時(shí),會(huì)搞的很難看
[field:textlink /]
改為
<a href=‘[field:arcurl /]‘>[field:title function=‘cn_substr(@me,30)‘ /]</a>
新建頻道模型教程
http://bbs.dedecms.com/read.php?tid=5972
dedecms實(shí)現(xiàn)列表頁(yè)雙樣式
<table width=‘100%>
{dede:list type=‘full‘}
<tr>
<td class=‘[field:ID function=‘MagicVar("arch2","arch2")‘/]‘><b>[field:typelink /] [field:textlink /]</b>點(diǎn)擊:[field:click /]([field:stime /])</td>
</tr>
{/dede:list}
</table>
我想實(shí)現(xiàn)一個(gè)功能,就是在文章列表中(模板list_article)如果文章有縮略圖就顯示縮略圖,沒有的話則直接顯示文章列表而不顯示“沒有縮略圖”的圖片。
dedecms的擴(kuò)展是用function形式的,因?yàn)榧尤雐f這種結(jié)構(gòu)太占用資源,如果你有必要,你可以這樣:
[field:picname function="GetMyPic(‘@me‘)"/]
在 inc_functions.php 里定義一個(gè)函數(shù)
function GetMyPic($img)
{
if($img=="") return "";
else return "<img src=‘$img‘ width=‘120‘ height=‘100‘ border=‘0‘>";
}
這樣來(lái)處理
這種做法可能會(huì)有點(diǎn)不便,但好處是既達(dá)到擴(kuò)展目的,又不會(huì)占用太大資源,又不影響模板結(jié)構(gòu),實(shí)現(xiàn)真正的模板與代碼分離
點(diǎn)擊圖片進(jìn)入下一頁(yè)
打開include/inc_archives_view.php
大概在444行左右,找到
$this->Fields[$this->SplitPageField]=$this->Fields[$this->SplitPageField];
注釋掉,改為
$this->Fields[$this->SplitPageField]=$this->ClickPicNext($this->Fields[$this->SplitPageField]);
然后,最后加上函數(shù),注意在最后一個(gè)括號(hào)里面!
//把圖片替換成鏈接
//----------------------------
function ClickPicNext(&$body)
{
if($this->NowPage!=$this->TotalPage){
$lPage=$this->NowPage+1;
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\"|‘| ]{0,}((.*)>)/isU","<a href=‘".$this->NameFirst."_".$lPage.".".$this->ShortName."‘>"."\${0}"."</a>",$body);
//$body="<a href=‘".$this->NameFirst."_".$lPage.".".$this->ShortName."‘>".$body."</a> ";
}else{
if($this->GetNext()){
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\"|‘| ]{0,}((.*)>)/isU","<a href=‘".$this->GetNext()."‘>"."\${0}"."</a>",$body);
//$body="<a href=‘".$this->GetNext()."‘>".$body."</a> ";
}
}
return $body;
}
自動(dòng)地把文章中的圖片替換為下一頁(yè)的鏈接,如果是最后一頁(yè),則為下一篇!
注意:先要按下面的改法,把上一篇下一篇分開才行!
[dede3.1][改法]上一篇下一篇分開調(diào)用,且限定文章所在欄目?jī)?nèi)而不是現(xiàn)在的全站。
http://bbs.dedecms.com/read.php?tid=5051
在文章列表中,有的標(biāo)題被截?cái)嗔?用什么樣的代碼可以讓鼠標(biāo)在上面的時(shí)候可以顯示完整的文件名?
{dede:arclist row=16 orderby=pubdate col=1 typeid=3}
<li>· <a href="[field:arcurl /]" title ="[field:title/]">[field:title function="cn_substr(‘@me‘,30)" /]</a></li>
{/dede:arclist}
怎么樣在文章名前面顯示所屬的文章欄目?
{dede:arclist row=10 orderby=pubdate}
·[field:typelink/] [field:textlink/]<br/>
{/dede:arclist}
生成的文章文件名能不能增加MD5加密
自己改一下,這種屬于典型的無(wú)聊需求吧
include/inc_channel_unit_functions.php
.
[field:writer /]怎么沒有用
lit版inc_arcpart_view.php沒有讀取附加表
修改include\inc\inc_fun_SpGetArcList.php第120行,在后面加 arc.writer,
當(dāng)然你也可以加入你還想引入的附加表內(nèi)容如:
arc.writer,arc.source,arc.shorttitle,
新安裝的DEDECMS3.0.1,第一次登陸就說(shuō)我密碼錯(cuò)誤!
你要查一下是否有 dede_admin 這個(gè)表,如果有,看看有沒有數(shù)據(jù),
如果用戶名和密碼沒有不允許的符號(hào)的話,
一般是服務(wù)器可能能無(wú)法完成安裝的SQL導(dǎo)入才可能會(huì)提示用戶名不存在
手工加個(gè)用戶就OK了.
也可以在數(shù)據(jù)庫(kù)中刪除表dede_admin,然后重新安裝即可
關(guān)于listpage分頁(yè)在生成會(huì)有表格的修改
搜索
//獲取靜態(tài)的分頁(yè)列表
在下面的幾行可以看到分頁(yè)的一些東東
關(guān)于欄目多風(fēng)格和系統(tǒng)底層模版的問題
用arclist
{dede:arclist
typeid=‘‘ row=‘‘ col=‘‘ titlelen=‘‘
infolen=‘‘ imgwidth=‘‘ imgheight=‘‘ listtype=‘‘ orderby=‘‘ keyword=‘‘}
自定義樣式模板(InnerText) //這里定義你顯示的樣式..不要修改底層模板了..免得你自己麻煩.
{/dede:arclist}
另外欄目的模板可以不使用系統(tǒng)默認(rèn)的{style}/list_article.htm
你可以手工指定欄目的封面模板或是列表模板嘛..列如:{style}/list_class1.htm
{style}/list_class2.htm
等.這樣就可以多風(fēng)格了嘛.
用dedecms做小說(shuō)站的思路
1、新建兩個(gè)模型
book模型和章節(jié)模型
2、重新寫檔案發(fā)布程序,關(guān)鍵把兩個(gè)模型關(guān)聯(lián)起來(lái),而現(xiàn)在提供內(nèi)容模型的cmsware 和dede都是辦不到的,而dede自建頻道提供的檔案發(fā)布程序項(xiàng)可以很好的利用。重新些這四個(gè)文件(兩個(gè)界面和兩個(gè)提交后處理的程序)即可。
3、如果要做成起點(diǎn)中文網(wǎng)哪種模式,那就要在member目錄下寫關(guān)于投稿的程序,以及在plus里面寫業(yè)務(wù)模式如計(jì)費(fèi)、計(jì)點(diǎn)等功能的程序。
其實(shí), dede只是一個(gè)內(nèi)容發(fā)布的框架,提供的后臺(tái)工具只針對(duì)管理員而已,用戶完全可以自我定制各種模型,不過要對(duì)dede熟悉一點(diǎn)而已。
能寫程序的不妨一試。
為什么我的自定義標(biāo)記總是被當(dāng)做文本來(lái)輸出
標(biāo)記里要加上 ismake=‘yes‘ 屬性
對(duì)圖片SEO的一些思考,
<a href=‘[field:arcurl /]‘><img src=‘[field:picname /]‘ alt=‘[field:title /]‘ border=‘0‘ width=‘imgwidth‘ height=‘imgheight‘></a>
參考arclist標(biāo)記的說(shuō)明,,
dede編輯器的問題..從WORD復(fù)制進(jìn)去的錯(cuò)誤
復(fù)制后安 工具欄 上那個(gè)右下角有黃色T的粘貼按鈕~~~移上去有提示的,無(wú)格式粘貼
標(biāo)簽的定義放在什么地方的
凡是include里的文件,有什么 ***view.php 都是控制視圖的
關(guān)于自動(dòng)分頁(yè)的問題
自動(dòng)分頁(yè)的大小為只能在2-5之前
3 就是每個(gè)分頁(yè)為3K的意思。
這個(gè)跟動(dòng)易的不一樣,動(dòng)易的是字節(jié),所以你可以寫2000 或則 3000 DEDE的是K 所以,你只能寫 2或則3,我的錯(cuò)誤在,我寫成2000K!汗一個(gè),
這在DEDE里的意思是,一個(gè)分頁(yè)允許到2M !自然不成功
關(guān)于分頁(yè)標(biāo)題
內(nèi)容部分如下格式即可:
分頁(yè)標(biāo)題1#e#
第1頁(yè)內(nèi)容
版權(quán)聲明:
本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明:
dedecms中常見問題修改方法總結(jié)
標(biāo)簽: