新手常見問題,此貼是早些時候我發的,在3.1正式版中.有些問題已得到修正,不過仍可作為修改或學習參考
請大家花點耐心看完這個吧,這些問題很多人都有碰到.何必要不停的發貼子問呢?
另外,看完這個請去你自己的后臺看完模板標記參考!!特別是arclist這個標記的參數說明!!
多思考一下問題,多試驗一下標記,,學到就是自己的,學不到,誰也幫不到你!!
補充一點..很多標記都可以參考系統默認的模板和模板區的一些好模板,多看標記體會每個標記的用法,
下文如果有您的貼子..感謝您對DEDE的匏礁凍?.
3.1lit最新版當一級欄目為最終列表欄目時,使列表顯示其下級欄目的文章的修改
include/inc_arclist_view.php
80行:
$addSql.="And(typeid=‘".$this->TypeID."‘ortypeid2=‘".$this->TypeID."‘)";
更改為:
//增加的,用來解決上級列表調用不出下級列表的問題
$ssid=TypeGetSunID($this->TypeID,$this->dsql);
$ssid2=str_replace(‘typeid‘,‘typeid2‘,$ssid);
//結束增加的
$addSql.="And(typeid=‘".$this->TypeID."‘or".$ssid."ortypeid2=‘".$this->TypeID."‘or".$ssid2.")";//本句也已修改
上面這部分用來解決分頁問題
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==""){
//開始修改文章第二欄目調用問題
$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.")";//結束修改文章第二欄目調用問題
}
此部分用來解決調用下級欄目文章列表問題
替換的代碼我寫的很粗糙,可以暫時先用著,等官方的解決方案出來后再替換
在include/inc_arclist_view.php還要改一處:
//獲得一個單列的文檔列表
下
//類別ID的條件
$orwhere.="And(dede_archives.typeid=‘".$this->TypeID."‘ordede_archives.typeid2=‘".$this->TypeID."‘)";
改為:
//類別ID的條件
$ssid=TypeGetSunID($this->TypeID,$this->dsql);
$orwhere.="And(dede_archives.typeid=‘".$this->TypeID."‘or".$ssid."ordede_archives.typeid2=‘".$this->TypeID."‘)";
否則有頁面沒有列表內容,因為80行是Selectcount(*).....
關于那個欄目路徑有個{cmspath}
首先說一下{cmspath}的意思,,打開后臺"系統配置參數"可以看到第二項,DedeCms安裝目錄:
這個就是{cmspath}所解析出來的路徑,
如果beta2升級到lit,需要手工修改欄目屬性,把{cmspath}去除.或者你運行setup升級完之后用lit的所有文件
替換掉之前的B2的所有文件,這樣{cmspath}就可以正常解析成你的網站路徑
如果你不用{cmspath}這個參數,.可以照下面的修改
執行SQL:updatedede_arctypesettypedir=replace(typeidr,‘{cmspath}‘,‘‘);
以去掉數據庫的里{cmspath}
然后修改文件catalog_add.php找到$true_typedir=str_replace("{cmspath}",$cfg_cmspath,$typedir);
改成
$true_typedir=str_replace("",$cfg_cmspath,$typedir);
就行
[field:description/]這個標簽如何限制字數?
[field:descriptionfunction=‘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="whereischeck=1";
[Copytoclipboard]
將1改為2就行了.
11.11更新過后,取消了inc_fun_SpGetFriendLink.php這個文件的調用.
所以只須要打開inc_arcpart_view.php
在410行附近
CODE:
$wsql="whereischeck=1";
if($type=="p_w_picpath")$wsql.="Andlogo<>‘‘";
elseif($type=="text")$wsql.="Andlogo=‘‘";
else$wsql.="";
[Copytoclipboard]
同樣將whereischeck=1改為2就可以
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/]
改為
<ahref=‘[field:arcurl/]‘>[field:titlefunction=‘cn_substr(@me,30)‘/]</a>
新建頻道模型教程
http://bbs.dedecms.com/read.php?tid=5972
dedecms實現列表頁雙樣式
<tablewidth=‘100%>
{dede:listtype=‘full‘}
<tr>
<tdclass=‘[field:IDfunction=‘MagicVar("arch2","arch2")‘/]‘><b>[field:typelink/][field:textlink/]</b>點擊:[field:click/]([field:stime/])</td>
</tr>
{/dede:list}
</table>
我想實現一個功能,就是在文章列表中(模板list_article)如果文章有縮略圖就顯示縮略圖,沒有的話則直接顯示文章列表而不顯示“沒有縮略圖”的圖片。
dedecms的擴展是用function形式的,因為加入if這種結構太占用資源,如果你有必要,你可以這樣:
[field:picnamefunction="GetMyPic(‘@me‘)"/]
在inc_functions.php里定義一個函數
functionGetMyPic($img)
{
if($img=="")return"";
elsereturn"<imgsrc=‘$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]);
然后,最后加上函數,注意在最后一個括號里面!
//把圖片替換成鏈接
//----------------------------
functionClickPicNext(&$body)
{
if($this->NowPage!=$this->TotalPage){
$lPage=$this->NowPage+1;
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\&;|‘|]{0,}((.*)>)/isU","<ahref=‘".$this->NameFirst."_".$lPage.".".$this->ShortName."‘>"."\${0}"."</a>",$body);
//$body="<ahref=‘".$this->NameFirst."_".$lPage.".".$this->ShortName."‘>".$body."</a>";
}else{
if($this->GetNext()){
$body=preg_replace("/<(img|IMG)(.*)(src|SRC)=[\&;|‘|]{0,}((.*)>)/isU","<ahref=‘".$this->GetNext()."‘>"."\${0}"."</a>",$body);
//$body="<ahref=‘".$this->GetNext()."‘>".$body."</a>";
}
}
return$body;
}
自動地把文章中的圖片替換為下一頁的鏈接,如果是最后一頁,則為下一篇!
注意:先要按下面的改法,把上一篇下一篇分開才行!
[dede3.1][改法]上一篇下一篇分開調用,且限定文章所在欄目內而不是現在的全站。
http://bbs.dedecms.com/read.php?tid=5051
在文章列表中,有的標題被截斷了,用什么樣的代碼可以讓鼠標在上面的時候可以顯示完整的文件名?
{dede:arclistrow=16orderby=pubdatecol=1typeid=3}
<li>·<ahref="[field:arcurl/]"title="[field:title/]">[field:titlefunction="cn_substr(‘@me‘,30)"/]</a></li>
{/dede:arclist}
怎么樣在文章名前面顯示所屬的文章欄目?
{dede:arclistrow=10orderby=pubdate}
·[field:typelink/][field:textlink/]<br/>
{/dede:arclist}
生成的文章文件名能不能增加MD5加密
自己改一下,這種屬于典型的無聊需求吧
include/inc_channel_unit_functions.php
.
[field:writer/]怎么沒有用
lit版inc_arcpart_view.php沒有讀取附加表
修改include\inc\inc_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的一些思考,
<ahref=‘[field:arcurl/]‘><imgsrc=‘[field:picname/]‘alt=‘[field:title/]‘border=‘0‘width=‘imgwidth‘height=‘imgheight‘></a>
參考arclist標記的說明,,
dede編輯器的問題..從WORD復制進去的錯誤
復制后安工具欄上那個右下角有黃色T的粘貼按鈕~~~移上去有提示的,無格式粘貼
標簽的定義放在什么地方的
凡是include里的文件,有什么***view.php都是控制視圖的
關于自動分頁的問題
自動分頁的大小為只能在2-5之前
3就是每個分頁為3K的意思。
這個跟動易的不一樣,動易的是字節,所以你可以寫2000或則3000DEDE的是K所以,你只能寫2或則3,我的錯誤在,我寫成2000K!汗一個,
這在DEDE里的意思是,一個分頁允許到2M!自然不成功
關于分頁標題
內容部分如下格式即可:
分頁標題1#e#
第1頁內容