1. 程式人生 > >(dede)織夢系統二次開發筆記

(dede)織夢系統二次開發筆記

func 頭條 mem ima lac keywords 引號 系統 日期

(dede)織夢系統二次開發記錄

--soulsjie

一、模板常用文件說明

模板文件都在文件夾templets下,我們以默認模板(default)為例,對模板文件結構進行分析:

首頁模板文件目錄

\templets\default\index.htm 首頁面

頭部文件目錄

\templets\default\head.htm 頭部頁面

底部文件目錄

\templets\default\footer.htm 底部頁面

文章列表頁文件目錄

\templets\default\list_default.htm 文章列表頁

模板文件路徑

模板路徑標簽:{dede:global.cfg_templets_skin/}

二、讀取添加的所有欄目

<div class="listbox"> {dede:channelartlist}

<dl class="tbox">

<dt><strong><a href="{dede:field name=‘typeurl‘/}">{dede:field name=‘typename‘/}</a></strong><span class="more"><a href="{dede:field name=‘typeurl‘/}">更多...</a></span></dt>

<dd>

<ul class="d1 ico3">

{dede:arclist titlelen=‘60‘ row=‘8‘}

<li><span>[field:pubdate function="MyDate(‘m-d‘,@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li>

{/dede:arclist}

</ul>

</dd>

</dl>

{/dede:channelartlist} </div>

<!-- /listbox -->

三、讀取所有欄目的標題

{dede:channelartlist}

{dede:field name=‘typename‘/}<br/>

{/dede:channelartlist}

四、獲取指定欄目的文章列表

{dede:type typeid=‘12‘}[field:typename /]{/dede:type} <span class="more"><a href="{dede:type typeid=‘12‘}[field:typeurl /]{/dede:type}">更多...</a></span>

<ul>

{dede:arclist typeid=‘12‘ titlelen=‘25‘ row=‘8‘}

<li><a href="[field:arcurl/]">[field:title/]</a></li>

{/dede:arclist}

</ul>

typeid控制欄目的ID

titlelen標題的長度

row=‘8‘顯示文章的列表數

4.1當前文章的上一篇、下一篇文章

上一篇 {dede:prenext get=‘pre‘/}

下一篇:{dede:prenext get=‘next‘/}

標簽屬性

  • col:分多少列顯示(默認為單列),5.3版中本屬性可以通過多種方式進行多行顯示
  • row:返回文檔列表總數
  • typeid:欄目ID,在列表模板和檔案模板中一般不需要指定,在首頁模板中允許用","分開表示多個欄目
  • getall:在沒有指定這屬性的情況下,在欄目頁、文章頁模板,不會獲取以","分開的多個欄目的下級子類
  • titlelen:標題長度 等同於titlelength
  • infolen:表示內容簡介長度 等同於infolength
  • imgwidth:縮略圖寬度
  • imgheight:縮略圖高度
  • listtype: 欄目類型 image含有縮略圖 commend推薦
  • orderby:文檔排序方式
  • keyword:含有指定關鍵字的文檔列表,多個關鍵字用","分
  • innertext:單條記錄樣式
  • aid:指定文檔ID
  • idlist:提取特定文檔(文檔ID
  • channelid:頻道ID
  • limit:(起始ID從0開始)表示限定的記錄範圍(如:limit=‘1,2‘ 表示從ID為1的記錄開始,取2條記錄
  • flag:自定義屬性值:頭條[h]推薦[c]圖片[p]幻燈[f]滾動[s]跳轉[j]圖文[a]加粗[b]
  • noflag:同flag,但這裏是表示不包含這些屬性
  • orderway:值為 desc 或 asc ,指定排序方式是降序還是順向排序,默認為降序
  • subday:表示在多少天以內的文檔

五、常用標簽

1.關鍵描述調用標簽:

<meta name="keywords" content="{dede:field name=‘keywords‘/}">

<meta name="description" content="{dede:field name=‘description‘ function=‘html2text(@me)‘/}">

2.模板路徑調用標簽:

{dede:field name=‘templeturl‘/}

3.網站標題調用標簽:

{dede:global name=‘cfg_webname‘/}

4.欄目導航調用標簽:

<a href="/">首頁</a></li>

{dede:channel type=‘top‘ row=‘8‘ currentstyle="<li class=‘thisclass‘><a href=‘~typelink~‘>~typename~</a> </li>"}

<li><a href=‘[field:typelink/]‘ target="_blank">[field:typename/]</a> </li>

{/dede:channel}

5.指定調用欄目標簽:

{dede:onetype typeid=‘ID‘}[field:typename /]{/dede:onetype}

6.頻道欄目調用標簽:

{dede:channel type=‘self‘}<li><a href=‘[field:typelink/]‘>[field:typename/]</a></li>{/dede:channel}

7.友情鏈接調用標簽:

{dede:flink row=‘24‘ linktype=2/}

8.網站版權調用標簽:

{dede:global name=‘cfg_powerby‘/}

9.網站備案調用標簽:

{dede:global name=‘cfg_beian‘/}

10.當前欄目名稱標簽:

{dede:field name=‘typename‘/}

11.當前位置調用標簽:

{dede:field name=‘position‘/}

12.列表文章調用標簽:

{dede:list pagesize=‘8‘}{/dede:list}

13.欄目鏈接調用標簽:

[field:typelink function=‘str_replace("a ","a class=ulink ",@me)‘/]

14.作者鏈接調用標簽:

[field:writer /]

15.列表點擊調用標簽:

[field:click/]

16.列表評論調用標簽:

[field:postnum/]

17.查閱全文調用標簽:

<a href="[field:arcurl/]">查閱全文...</a>

18.列表時間調用標簽:

[field:pubdate function="GetDateTimeMK(@me)"/]

19.列表分頁調用標簽:

{dede:pagelist listsize=‘4‘ listitem=‘index pre pageno next end ‘/}

20.文章標題調用標簽:

{dede:field name="title"/}

21.文章來源調用標簽:

{dede:field name=‘source‘/}

22.文章作者調用標簽:

{dede:field name=‘writer‘ /}

23.文章時間調用標簽:

{dede:field name=‘pubdate‘ function=‘GetDateMk(@me)‘/}

24.文章Tag調用標簽:

{dede:tag type=‘current‘/}

25.文章點擊調用標簽:

<script src="{dede:field name=‘phpurl‘/}/count.php?aid={dede:field name=‘ID‘/}&mid={dede:field name=‘memberid‘/}&view=yes" language="javascript"></script>

26.文章內容調用標簽:

{dede:field name=‘body‘/}

27.文章分頁調用標簽:

{dede:pagebreak/}

[<a href="{dede:field name=‘phpurl‘/}/stow.php?arcID={dede:field name=ID/}">收藏</a>]

[<a href="{dede:field name=‘phpurl‘/}/recommend.php?arcID={dede:field name=ID/}">推薦</a>]

[<a href="{dede:field name=‘phpurl‘/}/feedback.php?arcID={dede:field name=ID/}">評論</a>]

[<a href="#" onClick="window.print();">打印</a>]

[<a href="#" onClick="window.close();">關閉</a>]

28.文章頂客次數標簽:

{dede:field name=‘digg‘/} <a href="javascript:Digg(‘digg‘,{dede:field name=‘id‘/});">頂一下</a>

29.上一篇下一篇標簽:

{dede:prenext get=‘pre‘/}

{dede:prenext get=‘next‘/}

30.頭條推薦調用標簽:

{dede:arclist row=1 titlelen=24 orderby=pubdate att=2} <dt> [field:textlink/]

<span>[field:description/]……</span> </dt> {/dede:arclist}

31.最新文章調用標簽:

{dede:arclist row=8 titlelen=24 orderby=pubdate}<li>[field:textlink/]</li> {/dede:arclist}

32.熱關鍵字調用標簽:

{dede:hotwords num=‘5‘ subday=‘30‘/}

33.最新圖文調用標簽:

{dede:arclist row=4 titlelen=20 orderby=pubdate type=‘image.‘ imgwidth=‘152‘ imgheight=‘98‘}

<dd><a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" ></a><span><a title="[field:title function=‘htmlspecialchars(@me)‘/] " href="[field:arcurl /]">[field:title /]</a></span> </dd>{/dede:arclist}

34.推薦文檔調用標簽:

{dede:arclist type=‘commend‘ titlelen=‘40‘ row=‘10‘} <li><a title="[field:title function=‘htmlspecialchars(@me)‘/] " href="[field:arcurl /]">[field:title /]</a></li> {/dede:arclist}

35.隨機推薦調用標簽:

{dede:arclist type=‘commend‘ titlelen=‘26‘ orderby=‘rand‘ row=‘10‘} <li><a title="[field:title function=‘htmlspecialchars(@me)‘/] " href="[field:arcurl /]">[field:title /]</a></li> {/dede:arclist}

36.熱點文檔調用標簽:

{dede:arclist orderby=‘click‘ titlelen=‘40‘ row=‘10‘} <li><a title="[field:title function=‘htmlspecialchars(@me)‘/] " href="[field:arcurl /]">[field:title /]</a></li> {/dede:arclist}

37.相關文檔調用標簽:

{dede:likeart titlelen=‘24‘ row=‘10‘} <li><a title="[field:title function=‘htmlspecialchars(@me)‘/] " href="[field:arcurl /]">[field:title /]</a></li> {/dede:likeart}

38.調用圖片鏈接標記:

<a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" ></a>

<a href=‘[field:arcurl /]‘>[field:image/]</a>

39.調用文字鏈接標記:

<a href="[field:aucurl/]" title="[field:title/]">[field:title/]</a>

<a title="[field:title function=‘htmlspecialchars(@me)‘/] " href="[field:arcurl /]">[field:title /]</a>

40.控制字數描述標記:

[field:description function="cn_substr(@me,100)"/]...

41.調用文章tags標記:

{dede:tag type=‘current‘/}

42.文章關鍵字與描述:

{dede:field name=‘keywords‘/}

{dede:field name=‘description‘ function=‘html2text(@me)‘/}

43.欄目介紹:

{dede:field name=‘description‘ function=‘html2text(@me)‘/}

44.調用外部htm文件:

{dede:include file=‘head.htm‘ ismake=‘yes‘/}

45.搜索文章調用標簽:

{dede:global name=‘keyword‘/}的搜索結果 - {dede:global name=‘cfg_webname‘/}

46.遞增序列號:

[field:global name=autoindex/]

47.列表隔5行加一行線:

{dede:list pagesize=‘50‘}

<LI><a href="[field:arcurl /]" title="[field:title function=‘htmlspecialchars(@me)‘/]"

target=_blank>[field:title function="cn_substr(@me,48)"/]</a>[field:pubdate runphp=‘yes‘]

$a="<font color=red>".strftime(‘%m-%d‘,@me)."</font>";

$b=strftime(‘%m-%d‘,@me);

$ntime = time();

$day3 = 3600 * 24;

if(($ntime - @me) < $day3) @me = $a;

else @me =$b;

[/field:pubdate]<br>

[field:global name=autoindex runphp="yes"]

if(@me%5==0)@me="<hr />";

else @me="";

[/field:global]

{/dede:list}

<DIV class="line2 m1 m3"></DIV></LI>

48.最新 文章列表 “隔行換色” 的方法

{dede:arclist orderby=pubdate titlelen=‘26‘ row=‘10‘}

[field:global runphp=‘yes‘ name=autoindex]

$a="<div id=‘a‘>";

$b="<div id=‘b‘>";

if ((@me%2)==0) @me=$a;

else @me=$b;

[/field:global]

<ul>

<li>[field:title/]</li>

</ul>

</div>

{/dede:arclist}

49.24小時內更新的文章時間顯示為紅色:

[field:pubdate runphp=‘yes‘]

$a="<font color=red>".strftime(‘%m-%d‘,@me)."</font>";

$b=strftime(‘%m-%d‘,@me);

$ntime = time();

$day3 = 3600 * 24;

if(($ntime - @me) < $day3) @me = $a;

else @me =$b;

[/field:pubdate]

50.COPY頁面內容,自動在後面加上網站信息,利於SEO

<script type="text/javascript">

document.body.oncopy = function () { setTimeout( function () { var text = clipboardData.getData("text"); if (text) { text = text + "\r\n本篇文章來源於 www.地址.COM 原文鏈接:"+location.href; clipboardData.setData("text", text); } }, 100 ) }

</script>

51.按時間點擊文章排行榜調用標簽:

按總: {dede:arclist row=‘24‘ titlelen=24 orderby=click}

按月: {dede:arclist row=‘24‘ titlelen=8 orderby=click subday=30}

按周: {dede:arclist row=‘24‘ titlelen=8 orderby=click subday=7}

在首頁調用某欄目的子欄目

{dede:channel type=’sun’ typeid=’欄目ID’}

<a href=”[field:typelink/]“>[field:typename/]</a>

{/dede:channel}

或者

{dede:global name=’maplist’/}

52.搜索表單調用標簽:

<form action="{dede:global name=‘cfg_phpurl‘/}/search.php" name="formsearch">

<input type="hidden" name="kwtype" value="1" />

<input name="keyword" id="keyword" type="text" class="searchtxt" />

<select name="searchtype" id="searchtype">

<option value="titlekeyword" selected>智能模糊搜索</option>

<option value="title">僅搜索標題</option>

</select>

<input type="image" src="{dede:field name=‘templeturl‘/}/images/topsearch_submit.gif" />

</form>

53.實現“文章標題-2級欄目-1級欄目-網站名”形式

{dede:field name=‘title‘/}-{dede:field name=‘position‘ runphp=‘yes‘}

$tc="-"; //分隔符

$tw=$GLOBALS[‘cfg_list_symbol‘]; //調用位置分隔符

@me=html2text(@me); //去除html標簽

$tf=split($tw,@me); //分解成數組

for($ta=(count($tf)-2);$ta>=1;$ta--){ //循環賦值給$tk

$tk.=trim($tf[$ta]).$tc;

}

$tk=substr($tk,0,-1);

@me=$tk; //賦值給@me

{/dede:field}-{dede:global name=‘cfg_webname‘/}

54.調用縮略圖:

<img src=‘{dede:field name="litpic"/}‘>

55.發布的文章顯示紅色日期或加上new字或new小圖片

給近三天(或當天)發布的文章顯示紅色日期或加上new字或new小圖片等。

都是圍繞pubdate做文章,寫擴展的。

第2、3要註意的問題是:如:"<img src=‘new.gif‘ />中不能用雙引號,否則不行。

如果要給當天的加,把 3600 * 24 * 3 改為 3600 * 24  即可。

1、==========紅色的日期========

[field:pubdate runphp=‘yes‘]

$a="<font color=red>".strftime(‘%m-%d‘,@me)."</font>";

$b=strftime(‘%m-%d‘,@me);

$ntime = time();

$day3 = 3600 * 24 * 3;

if(($ntime - @me) < $day3) @me = $a;

else @me =$b;

[/field:pubdate]

2、==========紅色的(new)========

[field:pubdate runphp=‘yes‘]

$aa=strftime(‘%m-%d‘,@me);

$ntime = time();

$tagtime = @me;

$day3 = 3600 * 24 * 3;

if($tagtime > $ntime-$day3) @me = "<font color=‘red‘>(new)</font>";

else @me = $aa;

[/field:pubdate]

3、==========加new.gif小圖片========

[field:pubdate runphp=‘yes‘]

$aa=strftime(‘%m-%d‘,@me);

$ntime = time();

$tagtime = @me;

$day3 = 3600 * 24 * 3;

if($tagtime > $ntime-$day3) @me = "<img src=‘new.gif‘ />".$aa;

else @me = $aa;

[/field:pubdate]

56.一種很酷的時間效果

[field:pubdate runphp="yes"]

if((time()[email protected])<(60*60*24)){@me=‘ <font color="#ff6600">‘.strftime("%H:%M",@me).‘</FONT>‘;}

else {@me=strftime("%m-%d",@me);}

[/field:pubdate]

57.DEDE seo小技巧 加個百度搜索本篇文章

【<a href="javascript:" target="_top" title="在百度搜索“{dede:field name="title" /}”相關內容"><font color=red>在百度搜索更多繁體字</font></a>】

把你的網址改一下,不加http,演示:http://www.yingsheji.com 文章頁

或者

【<a href="javascript:" target="_top" title="在百度搜索“{dede:field name="title" /}”相關內容"><font color=red>搜索舞步</font></a>】

58.調用tag:

{dede:field name=‘keywords‘ runphp=‘yes‘ }

if(!emptyempty(@me)){

$kws = explode(‘ ‘,@me);

@me = "";

foreach($kws as $k){

@me .= "<a href=‘/tag.php?/$k/‘>$k</a> ";

}

@me= str_replace(‘+‘, ‘ ‘,trim(@me));

}

{/dede:field}

(dede)織夢系統二次開發筆記