亚洲精品视频一区二区,一级毛片在线观看视频,久久国产a,狠狠狠色丁香婷婷综合久久五月,天天做天天欢摸夜夜摸狠狠摸

在線(xiàn)客服與您一對一交流

DEDE的擴展標簽

DedeCMSV5.3開(kāi)始就支持自己擴展標簽,不過(guò)許多新人很少用那個(gè)東西,簡(jiǎn)單的介紹下如何編寫(xiě)自己的調用標簽。
  我們需要知道下擴展標簽的存放目錄及文件名構成,首先,擴展的標簽都是存放在/include/taglib這個(gè)目錄,名稱(chēng)都是以標簽名.lib.php”格式,例如{dede:channel/}標簽對應的是channel.lib.php文件。
  我們可以看一個(gè)示例標簽: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 = '';
  //你需編寫(xiě)的代碼,不能用echo之類(lèi)語(yǔ)法,把最終返回值傳給$revalue
  //------------------------------------------------------
  $revalue = 'Hello Word!';
  //------------------------------------------------------
  return $revalue;
  }
  ?>
  我們登錄系統后臺的[模板]-[全局標簽測試]中運行{dede:demotag/},顯示如下的結果:
 ,我們會(huì )發(fā)現標簽起作用了,輸出了我們的內容。
 
  至此我們完成了標簽的編寫(xiě),這里面主要涉及到PHP、MySQL的很多知識,需要有一定相關(guān)方面的基礎才能夠編寫(xiě)標簽了,當然這里只是一個(gè)簡(jiǎn)單的標簽開(kāi)發(fā)例子,還有許多的東西可以去開(kāi)發(fā)。

  這里我們知道,其實(shí)標簽生成的內容其實(shí)是這個(gè)函數的一個(gè)返回值,這里返回的內容都是字符串,也就是函數return $revalue;中的$revalue需要是經(jīng)過(guò)處理后生成的字符串。
  $attlist="row|12,titlelen|24";這個(gè)是屬性列表,這個(gè)經(jīng)過(guò)函數處理后會(huì )直接生成變量并復制,我們可以測試下,做如下的修改:
  $revalue = 'Hello Word!';
  $revalue .="
Row:".$row.";TitleLen:".$titlelen;

  這樣我們可以看到,這個(gè)屬性已經(jīng)被創(chuàng )建變量并且賦值了。
  接下來(lái)我們可以再進(jìn)一步去修改這個(gè)標簽。
  比如說(shuō)我們需要寫(xiě)一個(gè)標簽專(zhuān)門(mén)來(lái)查詢(xún)文章內容頁(yè)的那個(gè)相關(guān)文章,功能類(lèi)似于上面sql標簽中的那個(gè)sql,只是這里我們將其分裝為一個(gè)標簽。
  我們可以新建一個(gè)標簽,例如叫writerarc,那我們就需要創(chuàng )建一個(gè)writerarc.lib.php,然后模仿demotag編寫(xiě)函數,注意需要修改為
  function lib_writerarc(&$ctag,&$refObj)
  接下來(lái)我們就可以編寫(xiě)查詢(xún)語(yǔ)句及對底層模板處理的相關(guān)函數了
  $revalue = '';
  $innertext = $ctag->GetInnerText();
  $ctp = new DedeTagParse();
  $ctp->SetNameSpace('field', '[', ']');
  $sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row";
  $innertext這個(gè)是用來(lái)獲取標簽的底層模板的,$ctp創(chuàng )建用于處理底層模板中的變量,并處理進(jìn)行替換。我們根據獲取的屬性編寫(xiě)我們的sql語(yǔ)句,這里我們使用limit 0, $row,這樣就可以根據$row來(lái)確定查詢(xún)的內容數目。
  當然我們可以獲取更多的屬性以便我們這個(gè)標簽更強大,例如我們可以增加類(lèi)似于arclist中的相關(guān)屬性,并在函數中進(jìn)行處理,不過(guò)這個(gè)需要有一定的PHP基礎。
  接下來(lái)我們通過(guò)執行查詢(xún)對sql及輸出變量進(jìn)行處理:
  $dsql->Execute('me',$sql);
  while($rs = $dsql->GetArray('me'))
  {
  //根據屬性處理查詢(xún)變量
  $rs['title'] = cn_substr($rs['title'], $titlelen);
  //獲取底層模板
  $ctp->LoadSource($innertext);
  foreach($ctp->CTags as $tagid=>$ctag) {
  if(!empty($rs[strtolower($ctag->GetName())])) {
  $ctp->Assign($tagid,$rs[$ctag->GetName()]);
  }
  }
  //根據底層模板及查詢(xún)變量得到處理結果
  $revalue .= $ctp->GetResult();
  }
  這樣我們就將查詢(xún)出來(lái)的結果同底層模板中出現的相關(guān)變量進(jìn)行替換,然后生成輸出字符串,將所有的字符串信息存儲到$revalue中。
  最后返回這個(gè)值return $revalue;
  整個(gè)文件內容如下:
   
  if(!defined('DEDEINC'))
  {
  exit("Request Error!");
  }
  function lib_writerarc(&$ctag,&$refObj)
  {
  global $dsql,$envs;
  //屬性處理
  $attlist="row|12,titlelen|24";
  FillAttsDefault($ctag->CAttribute->Items,$attlist);
  extract($ctag->CAttribute->Items, EXTR_SKIP);
  $revalue = '';
  $innertext = $ctag->GetInnerText();
  $ctp = new DedeTagParse();
  $ctp->SetNameSpace('field', '[', ']');
  $sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row";
  $dsql->Execute('me',$sql);
  while($rs = $dsql->GetArray('me'))
  {
  //根據屬性處理查詢(xún)變量
  $rs['title'] = cn_substr($rs['title'], $titlelen);
  //獲取底層模板
  $ctp->LoadSource($innertext);
  foreach($ctp->CTags as $tagid=>$ctag) {
  if(!empty($rs[strtolower($ctag->GetName())])) {
  $ctp->Assign($tagid,$rs[$ctag->GetName()]);
  }
  }
  //根據底層模板及查詢(xún)變量得到處理結果
  $revalue .= $ctp->GetResult();
  }
  return $revalue;
  }
  ?>
  接下來(lái)我們來(lái)測試我們這個(gè)標簽,我們修改article_article.htm模板,在里面加入以下的標簽代碼:
  {dede:writerarc row='10' titlelen='6'}
  [field:title/] 

  {/dede:writerarc}

  至此我們完成了標簽的編寫(xiě),這里面主要涉及到PHP、MySQL的很多知識,需要有一定相關(guān)方面的基礎才能夠編寫(xiě)標簽了,當然這里只是一個(gè)簡(jiǎn)單的標簽開(kāi)發(fā)例子,還有許多的東西可以去開(kāi)發(fā)。

西安劍鋒網(wǎng)站制作,你的網(wǎng)站一站式服務(wù)專(zhuān)家!

相關(guān)文章:

  • 從事網(wǎng)站優(yōu)化的工作人員都知道,網(wǎng)站排名在百度優(yōu)化中的變化比較大,也不穩定。那么,為什么會(huì )出現這種現象呢?其實(shí),搜索引擎的不同,算法也不同,重點(diǎn)也不一樣,比如百度更加重視...

  • 將代碼放到模板中。 {php print_r(get_defined_vars());} 要查看這個(gè)地址的模版。http://www.wuzhicms.com/item-34-2-1.html 首先,我們的這個(gè)地址需要是動(dòng)態(tài)的。而不是生成的靜態(tài)地址。 打開(kāi)文件: /www/configs...

  • 作為一名站長(cháng)如果不知道友情鏈接對于網(wǎng)站的重要性,那有點(diǎn)說(shuō)不過(guò)去。因為友情鏈接,只要運用好,能夠提高網(wǎng)站在搜索引擎上的排名、能夠提升網(wǎng)站的收錄還是就是友情鏈接是網(wǎng)站...

  • 網(wǎng)絡(luò )技術(shù)日益發(fā)達,互聯(lián)網(wǎng)+活動(dòng)進(jìn)行得如火如荼。如果網(wǎng)站依舊沒(méi)有革新,那么在信息時(shí)代就難以生存下去。網(wǎng)站優(yōu)化是大勢所趨。結合現代的網(wǎng)絡(luò )發(fā)展特征,網(wǎng)站可以從以下幾個(gè)方面...

  • 一、避免友鏈牽連賞罰。 友情鏈接作為較高質(zhì)量外鏈的一種,在傳遞權重上的能力決然是要高于其他鏈接的。因為年夜部門(mén)友鏈交流城市選用鏈接錨文本的形式,所以對方針關(guān)頭詞排名...

  • 網(wǎng)站建設對于一個(gè)企業(yè)網(wǎng)站成功來(lái)說(shuō)尤其重要,有許多地方都是值得我們要用心把握的,那么企業(yè)網(wǎng)站建設到底有哪些地方需要我們注意的呢?小編就為大家來(lái)介紹以下幾點(diǎn)。 西安做網(wǎng)...

  • 1、長(cháng)尾關(guān)鍵為非網(wǎng)站的目標關(guān)鍵詞,但是卻能為網(wǎng)站帶來(lái)搜索量。長(cháng)尾關(guān)鍵詞比之目標關(guān)鍵詞具有明顯的特征,關(guān)鍵詞比較長(cháng),往往由兩個(gè)詞語(yǔ)或者三個(gè)詞語(yǔ)組成,甚至是一句短語(yǔ)。這...

  • 長(cháng)尾關(guān)鍵詞對優(yōu)化網(wǎng)站排名的作用? 所謂長(cháng)尾關(guān)鍵詞是指那些搜索量少且不穩定但卻能給網(wǎng)站帶來(lái)流量的詞。從某種水平上講,只需一個(gè)詞有可能會(huì )被搜,那就能夠稱(chēng)之為長(cháng)尾詞。長(cháng)尾...

  • 網(wǎng)絡(luò )的飛速發(fā)展,也讓大家都開(kāi)始意識到網(wǎng)站建設他們的重要性了,現在在互聯(lián)網(wǎng)市場(chǎng)里面的網(wǎng)站建設公司有非常多,所以企業(yè)以及公司在選擇這些網(wǎng)站建設公司的時(shí)候同樣也有了非常...

  • 對于網(wǎng)站建設來(lái)說(shuō),網(wǎng)站上線(xiàn)前誰(shuí)都不能保證網(wǎng)站的穩定性和問(wèn)題的存在,所以網(wǎng)站上線(xiàn)前的籌備工作非常之重要。只要準備好,保證幫你省去很多不必要的麻煩。下面看一下都有哪些...

  • 上一篇:沒(méi)有了
  • 下一篇:沒(méi)有了
  • 公司:西安蟠龍網(wǎng)絡(luò )科技有限公司
  • 聯(lián)系人:張經(jīng)理
  • 手機/微信:
  • Q Q: 點(diǎn)擊這里給我發(fā)消息
  • 地址:西安市雁塔區唐延南路11號逸翠園i都會(huì )
亚洲精品视频一区二区,一级毛片在线观看视频,久久国产a,狠狠狠色丁香婷婷综合久久五月,天天做天天欢摸夜夜摸狠狠摸