ホームページ >バックエンド開発 >PHPチュートリアル >求{dede:sql}标签脚本内写php原生代码的步骤

求{dede:sql}标签脚本内写php原生代码的步骤

WBOY
WBOYオリジナル
2016-06-13 10:34:401324ブラウズ

求{dede:sql}标签脚本内写php原生代码的方法!
{dede:sql sql='...' runphp='yes'}

echo 'fuck';

{/dede:sql}

我这么写没用,应该怎样才可以在 {dede:sql}标签脚本内写php原生代码 ??

------解决方案--------------------
以下是dede中的php应用,希望对你有帮助
调用tag: {dede:field name='keywords' runphp='yes' }
if(!empty(@me)){
$kws = explode(' ',@me);
@me = "";
foreach($kws as $k){
@me .= "$k ";
}
@me= str_replace('+', ' ',trim(@me));
}
{/dede:field} 
dede在首页调用文章内容 
-------------------------------------------------
方法一:{dede:sql sql="SELECT aid,typeid,body,body1, body2,body3,body4,body5 FROM 
`dede_addonarticle` where typeid=2 ORDER BY `aid` DESC LIMIT 0 , 1"}
[field:body /] [field:body1 /] [field:body2 /] [field:body3 /] [field:body4 /] [field:body5 
/]
{/dede:sql}
方法二:{dede:sql sql="SELECT aid,typeid,body FROM `dede_addonarticle` where typeid=2 ORDER 
BY `aid` DESC LIMIT 0 , 1"}
[field:body /]
{/dede:sql}
调用说明:其中typeid=2,栏目ID号,表示调用此ID栏目内的文章,换成aid=1则表示调用的aid为1的文
章(具体哪篇文章aid是多少,要进数据库看,从后台看也可以),DESC表示排序,按从大到小排,换成
ASC则按从小到大排序,LIMIT 0 , 1表示调用数量,也可以写成数量LIMIT 1,这个1代表调用的数量。


列表隔5行加一行线: 
{dede:list pagesize='50'}

  • target=_blank>[field:title function="cn_substr(@me,48)"/][field:pubdate 
    runphp='yes'] 
    $a="".strftime('%m-%d',@me)."";
    $b=strftime('%m-%d',@me);
    $ntime = time(); 
    $day3 = 3600 * 24;
    if(($ntime - @me) else @me =$b; 
    [/field:pubdate]

    [field:global name=autoindex runphp="yes"]
    if(@me%5==0)@me="
    ";
    else @me="";
    [/field:global]
    {/dede:list}
  •  
    --------------------------------------------
    最新 文章列表 “隔行换色” 的方法 
    {dede:arclist orderby=pubdate titlelen='26' row='10'} 
    [field:global runphp='yes' name=autoindex]
    $a="
    ";
    $b="
    ";
    if ((@me%2)==0) @me=$a;
    else @me=$b;
    [/field:global] 

    • [field:title/]



    {/dede:arclist} 
    --------------------------------------------
    广告代码::{dede:myad name='广告位标识'/}
    24小时内更新的文章时间显示为红色: 
    [field:pubdate runphp='yes'] 
    $a="".strftime('%m-%d',@me)."";
    $b=strftime('%m-%d',@me);
    $ntime = time(); 
    $day3 = 3600 * 24;
    if(($ntime - @me) else @me =$b; 
    [/field:pubdate] 
    实现“文章标题-2级栏目-1级栏目-网站名”形式 
    {dede:field name='title'/}-{dede:field name='position' runphp='yes'}
    $tc="-"; //分隔符
    $tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
    @me=html2text(@me); //去除html标签
    $tf=split($tw,@me); //分解成数组
    for($ta=(count($tf)-2);$ta>=1;$ta--){ //循环赋值给$tk
    $tk.=trim($tf[$ta]).$tc;
    }
    $tk=substr($tk,0,-1);
    @me=$tk; [email protected]
    {/dede:field}-{dede:global name='cfg_webname'/}

    发布的文章显示红色日期或加上new字或new小图片
    给近三天(或当天)发布的文章显示红色日期或加上new字或new小图片等。
    都是围绕pubdate做文章,写扩展的。
    第2、3要注意的问题是:如:"求{dede:sql}标签脚本内写php原生代码的步骤中不能用双引号,否则不行。
    如果要给当天的加,把 3600 * 24 * 3 改为 3600 * 24  即可。
    1、==========红色的日期========
    [field:pubdate runphp='yes'] 
    $a="".strftime('%m-%d',@me)."";
    $b=strftime('%m-%d',@me);
    $ntime = time(); 
    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。