<?php
namespace imcat;
(!
defined('RUN_INIT')) && die('No Init');

/*
    funcs: pPgbar,getData
    attrs: 
*/
// 标签解析 (数据列表)类
class tagFree extends tagList{
 
    public 
$pg null;
    public 
$pgbar '';

    public 
$dbkey ''// tagFunc中使用
    
public $join ''
    public 
$where ''
    
    function 
__construct($paras=array()) {
        
$this->paras $paras;
        
$this->setDbkey($paras); // 首先设置dbkey
        
$this->db glbDBObj::dbObj($this->dbkey);
        
$this->setModid();
        
$this->pJoin();
        
$this->pOrder();
        
$this->pLimit();
        
$this->pOffset();
        
$this->pWhere();
        
$this->resData();
    }
    
    
// Dbkey: 
    
function setDbkey($paras=array()){
        
$this->paras $paras;
        
$para $this->p1Cfg('dbkey'); 
        
$this->dbkey = empty($para[1]) ? $this->dbkey $para[1];
    }
    
// [join,$joinstr]
    
function pJoin(){ 
        
$cfg $this->p1Cfg('join'); 
        if(empty(
$cfg)) return;
        if(!empty(
$cfg[1])){
            
$this->join $cfg[1];
        }
    }
    
// [where,$whrstr]
    
function pWhere(){ 
        
$cfg $this->p1Cfg('where'); 
        if(empty(
$cfg)) return;
        if(!empty(
$cfg[1])){
            
$this->where $cfg[1];
        }
    }
  
    
// resData: 
    
function resData(){
        
$cfg $this->p1Cfg('pgbar'); 
        
$this->from "m.* FROM ".glbDBObj::dbObj($this->dbkey)->table($this->modid,2)." m ";
        if(
$this->join$this->from .= $this->join ";
        return empty(
$cfg[1]) ? $this->resLister() : $this->resPager();
    }
    function 
resLister(){ 
        
$where $this->where ' WHERE '.$this->where '';
        
$offset = empty($this->sqlArr['offset']) ? '' $this->sqlArr['offset'].',';
        
$ordLimit "ORDER BY ".$this->sqlArr['ofull']." LIMIT $offset".$this->sqlArr['limit'];
        
$this->sqlAll "SELECT {$this->from} {$where} $ordLimit"
        
$this->re $this->db->query($this->sqlAll);
        return 
$this->re;  
    }
    function 
resPager(){ 
        global 
$_cbase;
        
$order "m.".$this->sqlArr['order'];
        
$pg = new comPager($this->from,$this->where,$this->sqlArr['limit'],$order); 
        
$pg->set('odesc',$this->sqlArr['odesc']); 
        
$pg->set('opkey',0); 
        
$this->re $pg->exe($this->dbkey);
        
$this->sqlAll $pg->sql
        
// $idfirst = ''; $idend = '';
        
$burl basReq::getUri(-1,'','page|prec|ptype|pkey');
        
$_cbase['page']['bar'] = "<div class='pg_bar'>".$pg->show(0,0,'',$burl)."</div>";
        
$_cbase['page']['prec'] = $pg->prec
    }
    
    function 
getData(){ 
        return 
$this->re;
    }

}