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

首頁 > CMS > 織夢DEDE > 正文

dedecms模板中如何運行php腳本和變量在需要操作數

2024-07-12 09:08:52
字體:
來源:轉載
供稿:網友
在使用織夢dedecms模板的時候,經常會需要直接對織夢dedecms數據庫的底層字段進行處理,如果織夢dedecms中沒有相應的函數的時候,往往就需要我們想辦法來處理了。 
 
舉例:我想取出數據表addonimages中的某一條記錄的typeid這個字段,然后在瀏覽器中輸出typeid乘以2的結果。(注:這里的typeid值為6) 
 
起初我是這么寫的: 
 
代碼如下:
 
<body class="index"> 
{dede:loop table='dede_addonimages' if='aid=94'} 
[field:typeid runphp='yes'] 
echo @me*2; 
[/field:typeid] 
{/dede:loop} 
</body> 
 
瀏覽器輸出結果是:12 6 
 
這 里多出一個6,我認為是原因是[field:typeid]會先執行內部的php語句,當運行到[/field:typeid]這一行時,它會調用內部的 函數,直接返回[field:typeid]底層模板的內容,如果想要直接輸出12的話,只能在/include/extend.fuc.php 這個文件中添加自定義的函數。 
 
代碼如下:
 
function abc($val){ 
return $val*2; 
 
然后模板改寫為: 
 
代碼如下:
 
<body class="index"> 
{dede:loop table='dede_addonimages' if='aid=94'} 
[field:typeid function="abc(@me)" /] 
{/dede:loop} 
</body> 
 
輸出結果為:12 
 
另外要注意的是,同一模板中的兩段php代碼里面的變量不通用,也就是說一段php代碼中的某一變量,它的作用域只限于該短代碼。 
 
例: 
 
代碼如下:
 
<body class="index"> 
{dede:loop table='dede_addonimages' if='aid=94'} 
[field:typeid runphp='yes'] 
echo $a=@me*2; 
[/field:typeid] 
{/dede:loop} 
{dede:php}var_dump($a);{/dede:php} 
</body> 
 
輸出結果為:12 6 NULL 
 
如果想在后面的php腳本中使用上面php腳本中的變量,我想出一個臨時性的解決方法,即用全局變量來解決這個問題。 
 
代碼如下:
 
<body class="index"> 
{dede:loop table='dede_addonimages' if='aid=94'} 
[field:typeid runphp='yes'] 
$GLOBALS['a']=@me*2; 
[/field:typeid] 
{/dede:loop} 
{dede:php}echo $GLOBALS['a'];{/dede:php} 
</body> 
 
輸出結果為:6 12 (因為[field:typeid]中沒有echo,所以直接輸出6)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤台县| 南郑县| 新津县| 祁门县| 三亚市| 玛多县| 沂水县| 黄山市| 阿拉善盟| 华容县| 迁西县| 永平县| 万年县| 盐池县| 吉林省| 麻城市| 城口县| 墨玉县| 大兴区| 连南| 宜川县| 伊宁市| 彝良县| 崇信县| 乌苏市| 定安县| 伊通| 大足县| 门源| 行唐县| 运城市| 同心县| 建瓯市| 乐都县| 开封县| 杭锦旗| 多伦县| 治多县| 盐城市| 灵台县| 当涂县|