雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

dedecms

當前位置:主頁 > CMS教程 > dedecms >

DedeCMS借助function擴展實現(xiàn)特殊調(diào)用

來源:本站原創(chuàng)|時間:2021-08-05|欄目:dedecms|點擊:

下面是一篇很老的DedeCMS+function擴展功能教程,有些內(nèi)容DedeCMS v5.1版本甚至其之前,貼上來給大家看看以參考學習。dedecms模板可以向模板插入PHP或類似PHP的代碼,以達到特殊調(diào)用效果。dedecms允許對標記使用 function 進行擴展,function所使用的函數(shù)可以是系統(tǒng)函數(shù),也可以是自定義的函數(shù):
 
 
 
1、模板標記:
如:{dede:field name='pubdate' function=GetDateTimeMk('@me')/}
這個標記實際返回的結(jié)果是執(zhí)行了GetDateTimeMk函數(shù)后的結(jié)果
 
一般情況下,模板標記的自定義擴展函數(shù)放在:
include/inc_functions.php
include/inc_functions.php
include/inc_channel_unit_functions.php
 
2、采集配置字段:
如:{dede:note field='title' value='[var:內(nèi)容]' function=test('@me')}
{dede:match}<title>[var:內(nèi)容]</title>{/dede:match}
{/dede:note}
這個采集節(jié)點返回的結(jié)果是執(zhí)行了函數(shù)test后返回的結(jié)果
 
一般情況下,采集擴展的自定義擴展函數(shù)放在:
include/pub_collection_functions.php
 
在上面例子中 @me 表示這個標記本身的原始值,如果為int或浮點型,可以不加引號,字符串則必須加引號
靈活使用擴展函數(shù),可以做出很多隨意的功能,但又不用改動系統(tǒng)的源碼,對于采集擴展,更加是可以更靈活處理采集到的原始內(nèi)容。
 
織夢標記允許有限的編程擴展。
當前系統(tǒng)時間
{dede:tagname runphp='yes'}@me = date("Y");{/dede:tagname}
 
格式為:
{dede:tagname runphp='yes'}
$aaa = @me;
@me = "123456";
{/dede:tagname} 
@me 表示這個標記本身的值,因此標記內(nèi)編程是不能使用echo之類的語句的,只能把所有返回值傳遞給@me。
此外由于程序代碼占用了底層模板InnerText的內(nèi)容,因此需編程的標記只能使用默認的InnerText。
 
過濾掉HTML代碼
 
{dede:arclist sort='hot' titlelen=40 row=8}
<LI><A title="[field:title function='html2text(@me)'/]" href="[field:arcurl/]">[field:title/]</A></LI>
{/dede:arclist}
 
{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)'/]
function='str_replace("主頁","",Html2Text("@me"))' 
在產(chǎn)品列表中,一個值經(jīng)過函數(shù)處理,通常一個變量的情況下是這樣的:
[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>
function='cn_substr("@me",2). 取的是這個字段左邊的截取.
想從右邊開始截取,用什么函數(shù)呢..
我在用DEDE調(diào)用supersite blog 里面的博客之星圖片.
它的圖片地址是UID號對應的目錄.
比如UID是176 可能對就的會員圖片是/
76/photo_176.gif
可如果我用function='cn_substr("@me",2). 截取的UID變成了17...
如何才能截右邊呢.變成76 , 
function=substr("@me",-2)
利用DEDE的runphp功能為評論加入驗證碼(可選開關(guān)) 
首先在include/config_base.php中加入以下代碼:
//評論是否啟用驗證碼(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網(wǎng)上開店教程 <img src=\"/include/validateimg.php\" alt=\"看不清楚可點擊這里更換!\" border=\"0\" align=\"absmiddle\" onclick=\"this.src=this.src;網(wǎng)上開店教程</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();
 
這樣就可以實現(xiàn)評論驗證碼的功能了,并且可選開關(guān)。另外,評論還可以加入時間限制,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)' onclick='var ajax=new AJAXRequest;document.getElementById(\"relatedlinks\").innerHTML=\"< img src=http://www.joohe.com/images/indicator.gif>數(shù)據(jù)加載中,請稍候...\"; ajax.get(\"/plus/searchtag.php?keyword=".urlencode($k)."\",\"relatedlinks\");'>$k</a> ";
 
}
//@me= str_replace('+', ' ',trim(@me));
}
{/dede:field}
 

上一篇:去除織夢DedeCMS自定義字段“附件”下載的Table樣式教程

欄    目:dedecms

下一篇:織夢DedeCMS全局變量$GLOBALS的定義文件分析

本文標題:DedeCMS借助function擴展實現(xiàn)特殊調(diào)用

本文地址:http://www.jygsgssxh.com/a1/dedecms/14593.html

更多dedecms

您可能感興趣的文章

閱讀排行

本欄相關(guān)

隨機閱讀

網(wǎng)頁制作CMS教程網(wǎng)絡編程軟件編程腳本語言數(shù)據(jù)庫服務器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有