sourceSql = '';
$this->pageSize = 25;
$this->queryTime = 0;
$this->getValues = array();
$this->randts = time();
$this->dsql = $GLOBALS['dsql'];
$this->SetVar('ParseEnv', 'datalist');
$this->tpl = new DedeTemplate();
if ($GLOBALS['cfg_tplcache'] == 'N') {
$this->tpl->isCache = false;
}
if ($tplfile != '') {
$this->tpl->LoadTemplate($tplfile);
}
}
//兼容PHP4
function MemberListview($tplfile = '')
{
$this->__construct($tplfile);
}
/**
* 设置SQL语句
*
* @access public
* @param string $sql SQL语句
* @return void
*/
function SetSource($sql)
{
$this->sourceSql = $sql;
}
/**
* 设置模板
* 如果想要使用模板中指定的pagesize,必须在调用模板后才调用 SetSource($sql)
*
* @access public
* @param string $tplfile 模板文件
* @return void
*/
function SetTemplate($tplfile)
{
$this->tpl->LoadTemplate($tplfile);
}
/**
* 设置模板
*
* @access public
* @param string $tplfile 模板文件
* @return void
*/
function SetTemplet($tplfile)
{
$this->tpl->LoadTemplate($tplfile);
}
/**
* 对config参数及get参数等进行预处理
*
* @access private
* @return void
*/
function PreLoad()
{
global $totalresult, $pageno;
if (empty($pageno) || preg_match("/[^0-9]/", $pageno)) {
$pageno = 1;
}
if (empty($totalresult) || preg_match("/[^0-9]/", $totalresult)) {
$totalresult = 0;
}
$this->pageNO = $pageno;
$this->totalResult = $totalresult;
if (isset($this->tpl->tpCfgs['pagesize'])) {
$this->pageSize = $this->tpl->tpCfgs['pagesize'];
}
$this->totalPage = ceil($this->totalResult / $this->pageSize);
if ($this->totalResult == 0) {
//$this->isQuery = true;
//$this->dsql->Execute('mbdl',$this->sourceSql);
//$this->totalResult = $this->dsql->GetTotalRow('mbdl');
$countQuery = preg_replace("/select[ \r\n\t](.*)[ \r\n\t]from/i", "Select count(*) as dd From", $this->sourceSql);
$row = $this->dsql->GetOne($countQuery);
$row['dd'] = empty($row['dd']) ? 0 : $row['dd'];
$this->totalResult = $row['dd'];
$this->sourceSql .= " limit 0," . $this->pageSize;
} else {
$this->sourceSql .= " limit " . (($this->pageNO - 1) * $this->pageSize) . "," . $this->pageSize;
}
}
/**
* 设置网址的Get参数键值
*
* @access public
* @param string $key 键
* @param string $value 值
* @return void
*/
function SetParameter($key, $value)
{
$this->getValues[$key] = $value;
}
/**
* 设置/获取文档相关的各种变量
*
* @access public
* @param string $k 键
* @param string $v 值
* @return void
*/
function SetVar($k, $v)
{
global $_vars;
if (!isset($_vars[$k])) $_vars[$k] = $v;
}
/**
* 获取值
*
* @param string $k
* @return string
*/
function GetVar($k)
{
global $_vars;
if (isset($_vars[$k])) return $_vars[$k];
else return '';
}
/**
* 获取当前页数据列表
*
* @access public
* @param string $atts 属性
* @param string $refObj 实例化对象
* @param string $fields 字段
* @return array
*/
function GetArcList($atts, $refObj = '', $fields = array())
{
$attlist = "titlelen=30,infolen=200,imgwidth=120,imgheight=90";
FillAtts($atts, $attlist);
FillFields($atts, $fields, $refObj);
extract($atts, EXTR_OVERWRITE);
$rsArray = array();
//global $_vars;
//$t1 = Exectime();
if (!$this->isQuery) {
$this->dsql->Execute('mbdl', $this->sourceSql);
}
$i = 0;
while ($row = $this->dsql->GetArray('mbdl')) {
$i++;
if (!isset($row['description'])) $row['description'] = '';
if (!isset($row['color'])) $row['color'] = '';
if (!isset($row['pubdate'])) $row['pubdate'] = $row['senddate'];
//处理一些特殊字段
$row['infos'] = cn_substr($row['description'], $infolen);
$row['id'] = $row['id'];
$row['filename'] = $row['arcurl'] = GetFileUrl(
$row['id'],
$row['typeid'],
$row['senddate'],
$row['title'],
$row['ismake'],
$row['arcrank'],
$row['namerule'],
$row['typedir'],
$row['money'],
$row['filename'],
$row['moresite'],
$row['siteurl'],
$row['sitepath']
);
$row['typeurl'] = GetTypeUrl(
$row['typeid'],
$row['typedir'],
$row['isdefault'],
$row['defaultname'],
$row['ispart'],
$row['namerule2'],
$row['moresite'],
$row['siteurl'],
$row['sitepath']
);
if ($row['litpic'] == '-' || $row['litpic'] == '') {
$row['litpic'] = $GLOBALS['cfg_cmspath'] . '/static/defaultpic.gif';
}
if (!preg_match("/^http:\/\//i", $row['litpic']) && $GLOBALS['cfg_multi_site'] == 'Y') {
$row['litpic'] = $GLOBALS['cfg_mainsite'] . $row['litpic'];
}
$row['picname'] = $row['litpic'];
$row['stime'] = GetDateMK($row['pubdate']);
$row['typelink'] = "" . $row['typename'] . "";
$row['image'] = "<]/", "", $row['title']) . "'>";
$row['imglink'] = "" . $row['image'] . "";
$row['fulltitle'] = $row['title'];
$row['title'] = cn_substr($row['title'], $titlelen);
if ($row['color'] != '') {
$row['title'] = "" . $row['title'] . "";
}
if (preg_match('/b/', $row['flag'])) {
$row['title'] = "" . $row['title'] . "";
}
//$row['title'] = "".$row['title']."";
$row['textlink'] = "" . $row['title'] . "";
$row['plusurl'] = $row['phpurl'] = $GLOBALS['cfg_phpurl'];
$row['memberurl'] = $GLOBALS['cfg_memberurl'];
$row['templeturl'] = $GLOBALS['cfg_templeturl'];
$rsArray[$i] = $row;
if ($i >= $this->pageSize) {
break;
}
}
$this->dsql->FreeResult();
//echo "执行时间:".(Exectime() - $t1);
return $rsArray;
}
/**
* 获取分页导航列表
*
* @access public
* @param string $atts 属性
* @param string $refObj 实例化对象
* @param string $fields 字段
* @return string
*/
function GetPageList($atts, $refObj = '', $fields = array())
{
global $lang_pre_page, $lang_next_page, $lang_index_page, $lang_end_page, $lang_record_number, $lang_page, $lang_total;
$prepage = $nextpage = $geturl = $hidenform = '';
$purl = $this->GetCurUrl();
$prepagenum = $this->pageNO - 1;
$nextpagenum = $this->pageNO + 1;
if (!isset($atts['listsize']) || preg_match("/[^0-9]/", $atts['listsize'])) {
$atts['listsize'] = 5;
}
if (!isset($atts['listitem'])) {
$atts['listitem'] = "info,index,end,pre,next,pageno";
}
$totalpage = ceil($this->totalResult / $this->pageSize);
//echo " {$totalpage}=={$this->totalResult}=={$this->pageSize}";
//无结果或只有一页的情况
if ($totalpage <= 1 && $this->totalResult > 0) {
return "{$lang_total} 1 {$lang_page}/" . $this->totalResult . $lang_record_number;
}
if ($this->totalResult == 0) {
return "{$lang_total} 0 {$lang_page}/" . $this->totalResult . $lang_record_number;
}
$infos = "{$lang_total} {$totalpage} {$lang_page}/{$this->totalResult}{$lang_record_number} ";
if ($this->totalResult != 0) {
$this->getValues['totalresult'] = $this->totalResult;
}
if (count($this->getValues) > 0) {
foreach ($this->getValues as $key => $value) {
$value = urlencode($value);
$geturl .= "$key=$value" . "&";
$hidenform .= "\r\n";
}
}
$purl .= "?" . $geturl;
//获得上一页和下一页的链接
if ($this->pageNO != 1) {
$prepage .= "$lang_pre_page \r\n";
$indexpage = "$lang_index_page \r\n";
} else {
$indexpage = "$lang_index_page \r\n";
}
if ($this->pageNO != $totalpage && $totalpage > 1) {
$nextpage .= "$lang_next_page \r\n";
$endpage = "$lang_end_page \r\n";
} else {
$endpage = " $lang_end_page \r\n";
}
//获得数字链接
$listdd = "";
$total_list = $atts['listsize'] * 2 + 1;
if ($this->pageNO >= $total_list) {
$j = $this->pageNO - $atts['listsize'];
$total_list = $this->pageNO + $atts['listsize'];
if ($total_list > $totalpage) {
$total_list = $totalpage;
}
} else {
$j = 1;
if ($total_list > $totalpage) $total_list = $totalpage;
}
for ($j; $j <= $total_list; $j++) {
if ($j == $this->pageNO) {
$listdd .= "$j \r\n";
} else {
$listdd .= "" . $j . " \r\n";
}
}
$plist = "