久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

什么叫底層模板(Innertext),詳細介紹

 yliu277 2015-05-14

底層模板(Innertext),底層模板實際上就是對于有多條記錄的模板輸出,,用戶手工去指定單個記錄的樣式,。

   因為這個概念很虛線,那么這個地方還是通過實踐去說明吧,。

   大家在標簽測試的地方輸入:

   這是使用默認底層模板的標簽:
{dede:arclist row=10}{/dede:arclist}<hr>
這是手工指定底層模板的標簽:
{dede:arclist row=5}
◆ <ahref=’[field:arcurl/]’>[field:title/]</a> 點擊:[field:click/]<br />
{/dede:arclist}

   有一點需注意的是,,在沒有指定底層模板(Innettext)的時候,系統(tǒng)一般調用 templets/system里的相應該文件作為底層模板,。例如: {dede:arclist row=10}{/dede:arclist} 它實際由系統(tǒng)默認調用了templets/system/part_arclist.htm 這文件的東西作為底層模板,。這文件的內容是·<a href="[field:filename/]">[field:title/]</a><br/>那么{dede:arclist row=10}{/dede:arclist}
就等同于{dede:arclist row=10}·<a href="[field:filename/]">[field:title/]</a><br/>{/dede:arclist}既能用短標記,也能直接定義樣式,,又不依賴數(shù)據(jù)庫,,這是dedecms模板和其它模板的最大區(qū)別。

   在標記之間 [field:…/] 這些就是底層模板變量,,這些標記一般也是屬于Dedecms 標簽的模式,,只是 { … } 符號改為了 [ …],因此底層模板中的標簽也是具有DedeCms標簽的特性的,,例如,,在底層模板中使用 [field:globalname=’cfg_webname’/] 同樣可以表示全局變量 $cfg_webname。

具體哪些標記可以用Innertext,,那些不可以用,,可以在http://www./archives/templethelp/help/index.htm這頁面參考,。

   在此我簡單介紹一下常用的 arclist 標記的底層模板字段及意義:

   arclist的底層模板字段實際上是對應相應該的主索引表的,在文檔模板中則對應該主表和附加表,,主表字段是一樣的,,我等會介紹一下,附加表的可以在模型里找,。

arclist常用的字段有:

ID(同 id),
title(標題),
color,
typeid(欄目ID),
description(摘要,,同 info),
writer(作者),
shorttitle(短標題),
memberid(會員ID),
pubdate(發(fā)布時間),
click,
litpic(縮圖圖,同 picname),
typename(欄目名稱),
arcurl(網(wǎng)址,,同 filename),
typeurl(欄目網(wǎng)址)

stime(pubdate 的"0000-00-00"格式,,等同于[field:pubdatefunction="strftime('%y-%m-%d',@me)"/]),
textlink(等同<a href='[field:arcurl/]'>[field:title/]</a>),
typelink(等同<a href='[field:arcurl/]'>[field:title/]</a>),,
imglink(等同<a href='[field:arcurl/]'><img src='[field:picname/]'border='0'></a>),
image(等同<imgsrc='[field:picname/]'>),

   大家需注意的一個問題是:[field:標記名稱/]這種寫法是僅在底層模板中才用的。在文檔模板中,,字段是用 {dede:fieldname='title'/}這樣形式表示的,。不過在一 種特殊的情況下,Innertext是無效的,,就是指定了runphp=’yes’ 屬性,,

:A、function 擴展,;B,、在Innertext中直接編程。

    一,、那么首先說A,、function 擴展:

   在標記中,可以使用 {dede:標記名稱 function=”函數(shù)名(@me,其它參數(shù))” /}這樣模式對標記的值進行處理,,其中@me 就是表示標記當前的值,,最終獲得的結果是這個函數(shù)返回的值。

   大家不妨測試一下下面這個標簽:{dede:globalfunction="file_get_contents('http://www.baidu.com')" /}

   下面再舉個實用的例子(測試一下):
{dede:arclist row=5}
◆ <ahref='[field:arcurl/]'>[field:title/]</a>
[field:pubdate function="strftime('%y-%m-%d%H:%M',@me);"/]<br />
{/dede:arclist}

   從實例中大家可以注意到,,{dede:xx/}和[field:xxx/}都支持function擴展,。實際上 [field:xxx/]這種模式也是dede標簽解析器解析的,所以作用一樣,,它 只是把 dede 換成 field { 換成[

   在這里,,function 屬性的 function不僅是用PHP自帶的,用自己定義的也行,。不過要注意function的格式,,自定義的function不 能用echo這樣的輸出,而是返回一個字符串,,這樣就行了,。

    寫好的函數(shù)放入include/inc_channel_unit_functions.php文件,因為dede核心都會調用這個文件。

   這里舉個簡單的函數(shù):
function testMyFunc($str){
return $str." 增加了我的東西哦,!";
}

   在標簽中使用:
{dede:global name='cfg_webname'function='testMyFunc(@me)'/}

   用function擴展的好處是既可以增強系統(tǒng)的功能,,又保持標記的簡潔。

   二,、下面介紹的是另一種擴展 B,、在Innertext中直接編程


   這種方式和function編程的不同之處是,你可以把PHP代碼直接寫入到標簽的底層模板代碼的地方,,不過需要注意的是,,在這里的PHP代碼并非完全意義上的PHP代碼,它必須符合Dede限定的格式,,即是最終返回值返回到 @me 變量中,,同樣的是用 @me表示標記的最初的值。

    使用格式:{dede:標記名稱 runphp=yes} PHP代碼{/dede:標記名稱}

   大家測試一下這個代碼:
{dede:global name='cfg_webname' runphp='yes'}
$baidu = file_get_contents("http://www.baidu.com");
preg_match_all("/<title>(.*)<\/title>/isU",$baidu,$baidus);
@me = $baidus[1][0];
{/dede:global}

    這里的cfg_webname 不再顯示當前站點名了,,因為 @me = $baidus[1][0]; 改變了它的值,。

   在使用標記內編程或function擴展時,很多情況都可能會調用數(shù)據(jù)庫,。在V5版本中,,DedeCms的數(shù)據(jù)庫進行了改進,無論你新建多少個類的對像,,最終打開的鏈接是只有一個的,,并且會生成一個 $dsql 的全局數(shù)據(jù)庫類的變量。

   以往有些懂dedecms數(shù)據(jù)庫類的人在調用function擴展的時候,,一般的做法是用 $dsql = newDedeSql(false); 這樣新建一個類,。實際上在V5中是不需要這樣的。直接用global $dsql;聲明一下就能使用,,并且在函數(shù)體中不要自行關閉(即執(zhí)行$dsql->Close())否則可能出錯,。

   那么在這里舉個簡單的例子(測試代碼):

{dede:global runphp='yes'}
global $dsql;
$restr = '';
$dsql->SetQuery("Select * From dede_feedback whereischeck=1 order by ID desc limit 5");
$dsql->Execute('feedback');
while($row = $dsql->GetArray('feedback')){
$restr .= "<a target='_blank'href='/plus/feedback.php?arcID={$row['aid']}&urlindex={$row['urlindex']}'>{$row['arctitle']}</a>-- ".cn_substr($row['msg'],200)."<hr/>";
}
@me = $restr;
{/dede:global}

   這代碼是調用最新評論的,。dede本身沒有提供直接調用評論的標簽,,一般懂的人用loop標簽調用,不過在本版中,,新增的SQL標簽會更簡單,。

    在DedeCms V5 中有一個標簽{dede:sql sql="SQL語句 limit記錄"}底層模板{/dede:sql}

   我現(xiàn)在改一下剛才調用評論的地方(測試代碼):

{dede:sql sql="Select * From dede_feedback whereischeck=1 order by ID desc limit 5"}
<a target='_blank'href='/plus/feedback.php?arcID=[field:aid/]&urlindex=[field:urlindex/]'>[field:arctitle/]</a>-- [field:msg/]<hr />
{/dede:sql}

   這結果應該和上面的代碼是一樣的。

   為了補允調用全站數(shù)據(jù)的不足,,V5中新增了 arcfulllist 標記,,它的作用與 arclist 標記有點類同,不示不同的是arcfulllist 里的文件名有時候可能是動態(tài)的,,這因為它是使用搜索時用的那個簡單索引表,。在專題文章、相關文章中默認都是使用arcfulllist 調用指定的 id 的文檔的。

   由于這標記可能造成文件名不同步,,我們系統(tǒng)后面增加了文檔名批量修正功能,,但為了防止忘記操作,建議建立欄目就設定好文檔命名規(guī)則,,以后不要經(jīng)常更改,。

一就是常用的模型,二是新出的模塊,,三是插件,。

   大家進到Dede管理后臺“頻道管理->內容模型管理”的地方可以看到:

分類信息
專題
普通文章
圖片集
軟件
Flash
產品

   這些都是內置的模型。大家也可以自己新建一個模型,,有不少人問:Dedecms的文存儲在哪里呀,?下面我一步一步的教大家建立一個用文本存儲的文章模型。

   首先“增加一個新模型”,,建立好后“添加字段”,,然后轉向欄目管理的地方。建立好后轉到欄目管理的地方新建一個頂級欄目,,內容模型選剛才建好的那個,。建立好欄目后,隨意在那個欄目增加一篇文章,。預覽文章,,會發(fā)生新增的模型顯示的文檔。現(xiàn)在再回到頻道模型管理的地方,,在新建的頻道點擊“模板”,。

   對于類同的模型,最好是把類同的模板作為當前模型的模板,。如剛才建立的模型,,實際上模板和普通文章模板是一樣的。

   關于字段的問題,,在文檔模板中字段是用{dede:field name='字段名'/}表示,。例如在軟件模型中

文件類型 filetype 單行文本(varchar) 固化表單 [修改]
語言 language 單行文本(varchar) 固化表單 [修改]
軟件類型 softtype 單行文本(varchar) 固化表單 [修改]
授權方式 accredit 單行文本(varchar) 固化表單 [修改]
操作系統(tǒng) os 單行文本(varchar) 固化表單 [修改]
軟件等級 softrank 整數(shù)類型 固化表單 [修改]
官方網(wǎng)址 officialurl 單行文本(varchar) 固化表單 [修改]

   語言這字段就可以用 {dede:field name='language'/} 表示,此外,,title ,keywords,description 這些實際上主索引表的東西,,剛才說模板時已經(jīng)介紹過它的含義了。

   有用戶提過一個問題,,就是關于自定義模型如何在表布表單中調整字段的順序,。Dedecms目前沒有這選項,需要改的必須用phpmyadmin 進入 it_channeltype 這個表,。編輯 fieldset這里的XML,,調一下位置就行了。

   此外大家要區(qū)別一下自動模型和系統(tǒng)模型的區(qū)別,系統(tǒng)模型是固化了的,,要調整必須自己修改程序,,對于普通人是無法改的。不過這版本允許自行增加一些字段在里面,。

   因為這次講座是個中級講座,,模型這塊我就不太深入的講解了,最后介紹一下插件和模塊,。

插件和模塊

   DEDE增加新模型,必須一步到位,如果不用phpmyadmin,輸入錯誤什么的,在后臺修改不了,。

   插件在Dedecms中是就是一些小的實際的程序的集合,它可以簡單的安裝和刪除,,不過安裝和刪除僅去去掉數(shù)據(jù)庫的索引記錄,,并非進行真正的安裝。

   官方網(wǎng)前自帶的插件有:

文件管理器
站內新聞發(fā)布
友情鏈接模塊
留言簿模塊
投票模塊
論壇擴展
廣告管理
正則規(guī)則測試器
隨機模板防采集
木馬掃描檢測
數(shù)據(jù)轉換與導入

   實際上很多情況下單用插件是滿足不了系統(tǒng)的需求的,,實際上很多情況下單用插件是滿足不了系統(tǒng)的需求的,。因此DedecmsV5提出了模塊的概念。

   模塊是對系統(tǒng)模型的一個補充,,因為Dedecms的模板解析機制相對復雜,,如果所有東西都依賴模型,就結果只有一個:速度越來越慢,。而使用模塊就補充了這方面的不足,。在 Dedecms V5 的菜單中“擴展模塊”里放的就是Dedecms的模塊。

   模塊文件是一個標準化的xml文件,,它即包含了模塊安裝刪除的數(shù)據(jù),,也偶包含了圖片等二進制文件。有些人問我,,為什么在DedeCmsV5的安裝包里沒發(fā)現(xiàn)ask,、group等目錄?因為這些東西都封裝起來了,,如果你不安裝它,,是不會看到這些文件的,這樣就能盡大限度滿足一些站長想要功能多,,一些想要功能實用的需求,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多