<nobr id="wwsse"></nobr>

      <acronym id="wwsse"><ruby id="wwsse"><address id="wwsse"></address></ruby></acronym>

        <acronym id="wwsse"><ruby id="wwsse"></ruby></acronym>

      1.  2209916044

        Dedecms織夢添加一個函數實現調用任意字段

        時間:2017/8/28 9:40:55來源:夢網瀏覽:

        1、修改方法

        打開 include/extend.func.php 文件,如果沒有這個文件就自己建立一個,在 ?> 之前添加如下代碼:

        function table($table, $field, $id)

        {

            global $dsql;

            $primarys = array();

            $table = strpos($table, '#@_') === false?(strpos($table, 'dede_') ===false?''.$table:str_replace('dede_','',$table)):$table;

            $dsql -> Execute("me","SHOW COLUMNS FROM `$table`");   

            while ($r = $dsql->GetArray())

            {

                if($r['Key'] == 'PRI') $primarys[] = $r['Field'];

            }

            if(!empty($primarys))

            {

                $primary = $primarys[0];

                $result = $dsql -> GetOne("SELECT `$field` FROM `$table` WHERE `$primary`= $id");

            }

            return isset($result[$field])?$result[$field]:'';   

        }


        2、使用方法

        利用自定義函數對標簽進行擴展

        如:

        {dede:標記 function='table("要調用的表名","要調用的字段",@me)'/}

        這里的“標記”就是要調用的表的主鍵的值,常見的就是id和aid、mid、uid之類的

        標簽底層模板內

        [field:字段 function=table(“要調用的表名","要調用的字段",@me)/]

        舉例

        例如arclist標簽底層模板字段是沒有body字段的,就是說不能用arclist把文章內容調用出來的,當然這種需求很少,但不是沒有,現在我們就可以這樣使用

        {dede:arclist row='10' titlelen='24'}

        [field:id function=table('addonarticle','body',@me)/]

        {/dede:arclist}


        贵州十一选五