discuz万能SQLクエリ呼び出し文の書き方

6773 ワード

まず、最下位のsourceclasstableに最下位のセキュリティコールファイルを書き込みます.たとえば、table_common_friendlink.php 
コード:
<?php



/**

 *      [Discuz!] (C)2001-2099 Comsenz Inc.

 *      This is NOT a freeware, use is subject to license terms

 *

 *      $Id: table_common_friendlink.php 27449 2012-02-01 05:32:35Z zhangguosheng $

 */



if(!defined('IN_DISCUZ')) {

    exit('Access Denied');

}



class table_common_friendlink extends discuz_table

{

    public function __construct() {



        $this->_table = 'common_friendlink';

        $this->_pk    = 'id';



        parent::__construct();

    }



    public function fetch_all_by_displayorder($type = '')

    {

        $args = array($this->_table);

        if($type) {

            $sql = 'WHERE (`type` & %s > 0)';

            $args[] = $type;

        }

        return DB::fetch_all("SELECT * FROM %t $sql ORDER BY displayorder", $args, $this->_pk);

    }

    

    public function fetch_all_by_sql($where, $order = '', $start = 0, $limit = 0, $count = 0, $alias = '') {

        $where = $where && !is_array($where) ? " WHERE $where" : '';

        if(is_array($order)) {

            $order = '';

        }

        if($count) {

            return DB::result_first('SELECT count(*) FROM '.DB::table($this->_table).'  %i %i %i '.DB::limit($start, $limit), array($alias, $where, $order));

        }

        return DB::fetch_all('SELECT * FROM '.DB::table($this->_table).' %i %i %i '.DB::limit($start, $limit), array($alias, $where, $order));

    }



}



?>

 
次にフロントsourcemoduleportalがクエリーファイルを呼び出します:portal_index.php
コード:
<?php



if(!defined('IN_DISCUZ')) {

    exit('Access Denied');

}

include_once libfile('function/portalcp'); //     。



//discuz   SQL        

$wheresqla = " type=2 "; 

$ordera = " ORDER BY id ASC ";   

$linksa = C::t('common_friendlink') -> fetch_all_by_sql($wheresqla, $ordera, 0, 20);



  

include_once template('diy:portal/index');

?>

 
テンプレートでtemplatedefaultportal呼び出しファイル:portalcp_index.htm
コード:
    <section class="wp d_friendlinks mtw">

        <div class="d_friendlinksbg"></div>

        <div class="d_friendlinksa">

        <!--{loop $linksa $value}-->

        <a href="http://www.juhutang.com/ $value[url]" target="_blank">$value[name]</a>

        <!--{/loop}-->

        </div>

    </section>