DEDECMS 擴展標簽和dede自定義標簽實現方法,織夢文
導讀:織夢文章織夢文章DedeCMS從V5.3開始就支持自己擴展標簽,不過許多新人很少用那個東西,簡單的介紹下如何編寫自己的調用標簽dede模板免費dede模板安裝。
dede
我們需要知道下擴展標簽的存放目錄及文件名構成,首先,擴展的標簽都是存放在/include/taglib這個目錄,名稱都是以“標簽名.lib.php”格式,例如{dede:channel/}標簽對應的是channel.lib.php文件。 我們可以看一個示例標簽:demotag.lib.php 代碼如下: if(!defined('DEDEINC')) { exit("Request Error!"); } function lib_demotag(&$ctag,&$refObj) { global $dsql,$envs; //屬性處理 $attlist="row|12,titlelen|24"; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = ''; //你需編寫的代碼,不能用echo之類語法,把最終返回值傳給$revalue //-----------------------------------dede,模板------------------- $revalue = 'Hello Word!'; //------------------------------------------------------ return $revalue; } ?>
我們登錄系統后臺的[模板]-[全局標簽測試]中運行{dede:demotag/},顯示如下的結果:,我們會發現標簽起作用了,輸出了我們的內容。
至此我們完成了標簽的編寫,這里面主要涉及到PHP、MySQL的很多知識,需要有一定相關方面的基礎才能夠編寫標簽了,當然這里只是一個簡單的標簽開發例子,還有許多的東西可以去開發。
這里我們知道,其實標簽生成的內容其實是這個函數的一個返回值,這里返回的內容都是字符串,也就是函數return $revalue;中的$revalue需要是經過處理后生成的字符串。 $attlist="row|12,titlelen|24";這個是屬性列表,這個經過函數處理后會直接生成變量并復制,我們可以測試下,做如下的修改:
代碼如下: $revalue = 'Hello Word!'; $revalue .="Row:".$row.";TitleLen:".$titlelen;
這樣我們可以看到,這個屬性已經被創建變量并且賦值了。 接下來我們可以再進一步去修改這個標簽。 比如說我們需要寫一個標簽專門來查詢文章內容頁的那個相關文章,功能類似于上面sql標簽中的那個sql,只是這里我們將其分裝為一個標簽。 我們可以新建一個標簽,例如叫writerarc,那我們就需要創建一個writerarc.lib.php,然后模仿demotag編寫函數,注意需要修改為 function lib_writerarc(&$ctag,&$refObj) 接下來我們就可以編寫查詢語句及對底層模板處理的相關函數了
代碼如下: $revalue = ''; $innertext = $ctag->GetInnerText(); $ctp = new DedeTagParse(); $ctp->SetNameSpace('field', '[', ']'); $sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row";
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-07-19 ,文章DEDECMS 擴展標簽和dede自定義標簽實現方法,織夢文主要講述標簽,自定義,CMS網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_30482.html