亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        dedecms 擴(kuò)展標(biāo)簽和dede自定義標(biāo)簽實(shí)現(xiàn)方法

        字號(hào):


            我們需要知道下擴(kuò)展標(biāo)簽的存放目錄及文件名構(gòu)成,首先,擴(kuò)展的標(biāo)簽都是存放在/include/taglib這個(gè)目錄,名稱都是以“標(biāo)簽名.lib.php”格式,例如{dede:channel/}標(biāo)簽對(duì)應(yīng)的是channel.lib.php文件。
            我們可以看一個(gè)示例標(biāo)簽: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
            //------------------------------------------------------
            $revalue = 'hello word!';
            //------------------------------------------------------
            return $revalue;
            }
            ?>
            我們登錄系統(tǒng)后臺(tái)的[模板]-[全局標(biāo)簽測(cè)試]中運(yùn)行{dede:demotag/},顯示如下的結(jié)果:
            ,我們會(huì)發(fā)現(xiàn)標(biāo)簽起作用了,輸出了我們的內(nèi)容。
            至此我們完成了標(biāo)簽的編寫,這里面主要涉及到php、mysql的很多知識(shí),需要有一定相關(guān)方面的基礎(chǔ)才能夠編寫標(biāo)簽了,當(dāng)然這里只是一個(gè)簡單的標(biāo)簽開發(fā)例子,還有許多的東西可以去開發(fā)。
            這里我們知道,其實(shí)標(biāo)簽生成的內(nèi)容其實(shí)是這個(gè)函數(shù)的一個(gè)返回值,這里返回的內(nèi)容都是字符串,也就是函數(shù)return $revalue;中的$revalue需要是經(jīng)過處理后生成的字符串。
            $attlist=row|12,titlelen|24;這個(gè)是屬性列表,這個(gè)經(jīng)過函數(shù)處理后會(huì)直接生成變量并復(fù)制,我們可以測(cè)試下,做如下的修改:
            代碼如下:
            $revalue = 'hello word!';
            $revalue .=
            row:.$row.;titlelen:.$titlelen;
            這樣我們可以看到,這個(gè)屬性已經(jīng)被創(chuàng)建變量并且賦值了。
            接下來我們可以再進(jìn)一步去修改這個(gè)標(biāo)簽。
            比如說我們需要寫一個(gè)標(biāo)簽專門來查詢文章內(nèi)容頁的那個(gè)相關(guān)文章,功能類似于上面sql標(biāo)簽中的那個(gè)sql,只是這里我們將其分裝為一個(gè)標(biāo)簽。
            我們可以新建一個(gè)標(biāo)簽,例如叫writerarc,那我們就需要?jiǎng)?chuàng)建一個(gè)writerarc.lib.php,然后模仿demotag編寫函數(shù),注意需要修改為
            function lib_writerarc(&$ctag,&$refobj)
            接下來我們就可以編寫查詢語句及對(duì)底層模板處理的相關(guān)函數(shù)了
            代碼如下:
            $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è)是用來獲取標(biāo)簽的底層模板的,$ctp創(chuàng)建用于處理底層模板中的變量,并處理進(jìn)行替換。我們根據(jù)獲取的屬性編寫我們的sql語句,這里我們使用limit 0, $row,這樣就可以根據(jù)$row來確定查詢的內(nèi)容數(shù)目。