国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > 織夢DEDE > 正文

DedeCms高級功能function擴展-dede @me

2024-07-12 09:06:52
字體:
來源:轉載
供稿:網友
為了使用模板標記不破壞文檔的可讀性,dedecms不像別的模板,有時會使用直接往模板插入PHP或類似PHP的代碼,以達到真正的模板與程序分離的特點。
 
但為了讓程序有更大的擴展性,dedecms允許對標記使用 function 進行擴展,function所使用的函數可以是系統函數,也可以是自定義的函數,只是用在兩個方面:1、模板標記:
 
如:{dede:field name='pubdate' function=GetDateTimeMk('@me')/}
 
這個標記實際返回的結果是執行了GetDateTimeMk函數后的結果
 
一般情況下,模板標記的自定義擴展函數放在:
include/inc_functions.php
include/inc_functions.php
include/inc_channel_unit_functions.php
 
2、采集配置字段:
 
如:{dede:note field='title' value='[var:內容]' function=test('@me')}
                {dede:match}<title>[var:內容]</title>{/dede:match}
           {/dede:note}
 
這個采集節點返回的結果是執行了函數test后返回的結果
 
一般情況下,采集擴展的自定義擴展函數放在:
include/pub_collection_functions.php
 
在上面例子中 @me 表示這個標記本身的原始值,如果為int或浮點型,可以不加引號,字符串則必須加引號
格式為:
{dede:tagname runphp='yes'}
$aaa = @me;
@me = "123456";
{/dede:tagname} 
@me 表示這個標記本身的值,因此標記內編程是不能使用echo之類的語句的,只能把所有返回值傳遞給@me。
此外由于程序代碼占用了底層模板InnerText的內容,因此需編程的標記只能使用默認的InnerText。
 
過濾掉HTML代碼
 
{dede:field name='description' function='html2text(@me)'/}
 
{dede:list imgwidth='*' imgheight='*'}
 
<img src='{dede:field name='litpic' /}' width="*" height="*">修改 includeinc_channel_unit_functions.php
里面的 <img src='".$imgsrc."' width=80 align=left>
 
可以改變縮略圖尺寸
 
5.1以前縮略圖地址是
120U10ML014147_lit.gif
5.1變成了lit_120U10ML014147.gif
把[field:picname function='str_replace("_lit","",@me)'/]
換成[field:picname function='str_replace("lit_","",@me)'/]'str_replace("主頁","",Html2Text("@me"))' 在產品列表中,有個值經過函數處理,通常一個變量的情況下是這樣的:
 
[field:typeid function='get_linkshangpin(@me,3)'/]
 
[field:pubdate function='strftime("%m-%d",@me)'/]
 
[field:litpic function="CkLitImageView(@me,80)"/]
 
修改 includeinc_channel_unit_functions.php
里面的 <img src='".$imgsrc."' width=80 align=left>'cn_substr("@me",2). 取的是這個字段左邊的截取.
 
想從右邊開始截取,用什么函數呢..
 
我在用DEDE調用supersite blog 里面的博客之星圖片.
 
它的圖片地址是UID號對應的目錄.
 
比如UID是176 可能對就的會員圖片是/cn_substr("@me",2). 截取的UID變成了17...如何才能截右邊呢.變成76 , 
function=substr("@me",-2)利用DEDE的runphp功能為評論加入驗證碼(可選開關) 
 
首先在include/config_base.php中加入以下代碼:
 
Copy code 
//評論是否啟用驗證碼(0否1是)如果更改了這里,必須重新生成文章HTML
$feedback_validate = 1;
 
然后
在/templets/default/article_article.htm,/templets/plus/feedback_templet.htm等有評論表單的地方的相應位置加入以下代碼:
 
{dede:php runphp='yes'}
if($feedback_validate) {
@me = "<tr>
      <td>驗證碼:</td>
      <td><input name=/"validate/" type=/"text/" id=/"validate/"> <img src=/"/include/validateimg.php/" alt=/"看不清楚可點擊這里更換!/" border=/"0/" align=/"absmiddle/" onclick=/"this.src=this.src;/"></td>
                     </tr>";
}
{/dede:php}在/plus/feedback.php中找到如下代碼:else if($action=="send")
{
 
在下面加入:
 
session_start();
if( empty($_SESSION["s_validate"]) ) $svali = "";
else $svali = $_SESSION["s_validate"];
if($feedback_validate && strtolower($vdcode)!=$svali && $svali!=""){
     ShowMsg("驗證碼錯誤!","-1");
      exit();這樣就可以實現評論驗證碼的功能了,并且可選開關。
另外,評論還可以加入時間限制,IP限制等{dede:field name='keywords' runphp='yes' }
           if(!empty(@me)){
                         $kws = explode(' ',@me);
                          @me = "";
                          foreach($kws as $k){
                          @me .= "<a class='tags' HREF='javascript:void(null)'>$k</a> ";
                     }
                    //@me= str_replace('+', ' ',trim(@me));
          }
{/dede:field}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五寨县| 西盟| 行唐县| 山东省| 洪雅县| 个旧市| 屏山县| 西充县| 关岭| 鹤山市| 靖宇县| 浦北县| 尉犁县| 凉山| 阿坝| 大渡口区| 长治县| 南昌县| 平昌县| 济宁市| 涟水县| 收藏| 惠水县| 南漳县| 锡林浩特市| 镇平县| 大宁县| 江北区| 武川县| 湘潭县| 大城县| 亳州市| 古蔺县| 景泰县| 乳源| 格尔木市| 边坝县| 长寿区| 东乡| 云浮市| 龙江县|