/** * @param $name * @return mixed|string */ public function __get($name) { global $zbp; if ($name == 'Url') { foreach ($GLOBALS['hooks']['Filter_Plugin_Tag_Url'] as $fpname => &$fpsignal) { $fpsignal = PLUGIN_EXITSIGNAL_NONE; $fpreturn = $fpname($this); if ($fpsignal == PLUGIN_EXITSIGNAL_RETURN) { return $fpreturn; } } $backAttr = $zbp->option['ZC_ALIAS_BACK_ATTR']; $u = new UrlRule($zbp->option['ZC_TAGS_REGEX']); $u->Rules['{%id%}'] = $this->ID; $u->Rules['{%alias%}'] = rawurlencode($this->Alias == '' ? $this->{$backAttr} : $this->Alias); return $u->Make(); } if ($name == 'Template') { $value = $this->data[$name]; if ($value == '') { $value = $zbp->option['ZC_INDEX_DEFAULT_TEMPLATE']; } return $value; } return parent::__get($name); }
/** * 构造分页条 * @return null */ public function Make() { global $zbp; if ($this->PageCount == 0) { return null; } $this->PageAll = ceil($this->Count / $this->PageCount); $this->PageFirst = 1; $this->PageLast = $this->PageAll; $this->PagePrevious = $this->PageNow - 1; if ($this->PagePrevious < 1) { $this->PagePrevious = 1; } $this->PageNext = $this->PageNow + 1; if ($this->PageNext > $this->PageAll) { $this->PageNext = $this->PageAll; } $this->UrlRule->Rules['{%page%}'] = $this->PageFirst; $this->buttons['‹‹'] = $this->UrlRule->Make(); if ($this->PageNow != $this->PageFirst) { $this->UrlRule->Rules['{%page%}'] = $this->PagePrevious; $this->buttons['‹'] = $this->UrlRule->Make(); $this->prevbutton = $this->buttons['‹']; } $j = $this->PageNow; if ($j + $this->PageBarCount > $this->PageAll) { $j = $this->PageAll - $this->PageBarCount + 1; } if ($j < 1) { $j = 1; } for ($i = $j; $i < $j + $this->PageBarCount; $i++) { if ($i > $this->PageAll) { break; } $this->UrlRule->Rules['{%page%}'] = $i; $this->buttons[$i] = $this->UrlRule->Make(); } if ($this->PageNow != $this->PageNext) { $this->UrlRule->Rules['{%page%}'] = $this->PageNext; $this->buttons['›'] = $this->UrlRule->Make(); $this->nextbutton = $this->buttons['›']; } $this->UrlRule->Rules['{%page%}'] = $this->PageLast; $this->buttons['››'] = $this->UrlRule->Make(); }
public function __get($name) { global $zbp; if ($name == 'Url') { $u = new UrlRule($zbp->option['ZC_AUTHOR_REGEX']); $u->Rules['{%id%}'] = $this->ID; $u->Rules['{%alias%}'] = $this->Alias == '' ? urlencode($this->Name) : $this->Alias; return $u->Make(); } if ($name == 'Avatar') { foreach ($GLOBALS['Filter_Plugin_Mebmer_Avatar'] as $fpname => &$fpsignal) { $fpreturn = $fpname($this); if ($fpreturn) { return $fpreturn; } } if ($this->_avatar) { return $this->_avatar; } $s = $zbp->usersdir . 'avatar/' . $this->ID . '.png'; if (file_exists($s)) { $this->_avatar = $zbp->host . 'zb_users/avatar/' . $this->ID . '.png'; return $this->_avatar; } $this->_avatar = $zbp->host . 'zb_users/avatar/0.png'; return $this->_avatar; } if ($name == 'LevelName') { return $zbp->lang['user_level_name'][$this->Level]; } if ($name == 'EmailMD5') { return md5($this->Email); } if ($name == 'Meta') { return $this->Metas->serialize(); } if ($name == 'Template') { $value = $this->data[$name]; if ($value == '') { $value = $zbp->option['ZC_INDEX_DEFAULT_TEMPLATE']; } return $value; } return parent::__get($name); }
public function __get($name) { global $zbp; if ($name == 'Url') { $u = new UrlRule($zbp->option['ZC_TAGS_REGEX']); $u->Rules['{%id%}'] = $this->ID; $u->Rules['{%alias%}'] = $this->Alias == '' ? urlencode($this->Name) : $this->Alias; return $u->Make(); } if ($name == 'Template') { $value = $this->Data[$name]; if ($value == '') { $value = $zbp->option['ZC_INDEX_DEFAULT_TEMPLATE']; } return $value; } return parent::__get($name); }
/** * @param $name * @return int|mixed|null|string */ public function __get($name) { global $zbp; if ($name == 'Url') { foreach ($GLOBALS['hooks']['Filter_Plugin_Category_Url'] as $fpname => &$fpsignal) { $fpsignal = PLUGIN_EXITSIGNAL_NONE; $fpreturn = $fpname($this); if ($fpsignal == PLUGIN_EXITSIGNAL_RETURN) { return $fpreturn; } } $backAttr = $zbp->option['ZC_ALIAS_BACK_ATTR']; $u = new UrlRule($zbp->option['ZC_CATEGORY_REGEX']); $u->Rules['{%id%}'] = $this->ID; $u->Rules['{%alias%}'] = rawurlencode($this->Alias == '' ? $this->{$backAttr} : $this->Alias); return $u->Make(); } if ($name == 'Symbol') { if ($this->ParentID == 0) { return; } else { $l = $this->Level; return str_repeat(' ', $l * 2 - 1) . '└'; } } if ($name == 'Level') { return $this->GetDeep($this); } if ($name == 'SymbolName') { return $this->Symbol . htmlspecialchars($this->Name); } if ($name == 'Parent') { if ($this->ParentID == 0) { return null; } else { return $zbp->categorys[$this->ParentID]; } } if ($name == 'Template') { $value = $this->data[$name]; if ($value == '') { $value = $zbp->option['ZC_INDEX_DEFAULT_TEMPLATE']; } return $value; } if ($name == 'LogTemplate') { $value = $this->data[$name]; if ($value == '') { $value = $zbp->option['ZC_POST_DEFAULT_TEMPLATE']; } return $value; } return parent::__get($name); }
public function __get($name) { global $zbp; switch ($name) { case 'Category': return $zbp->GetCategoryByID($this->CateID); break; case 'Author': return $zbp->GetMemberByID($this->AuthorID); break; case 'StatusName': return $zbp->lang['post_status_name'][$this->Status]; break; case 'Url': if ($this->Type == ZC_POST_TYPE_ARTICLE) { $u = new UrlRule($zbp->option['ZC_ARTICLE_REGEX']); } else { $u = new UrlRule($zbp->option['ZC_PAGE_REGEX']); } $u->Rules['{%id%}'] = $this->ID; if ($this->Alias) { $u->Rules['{%alias%}'] = $this->Alias; } else { $u->Rules['{%alias%}'] = urlencode($this->Title); } $u->Rules['{%year%}'] = $this->Time('Y'); $u->Rules['{%month%}'] = $this->Time('m'); $u->Rules['{%day%}'] = $this->Time('d'); if ($this->Category->Alias) { $u->Rules['{%category%}'] = $this->Category->Alias; } else { $u->Rules['{%category%}'] = urlencode($this->Category->Name); } if ($this->Author->Alias) { $u->Rules['{%author%}'] = $this->Author->Alias; } else { $u->Rules['{%author%}'] = urlencode($this->Author->Name); } return $u->Make(); break; case 'Tags': return $zbp->LoadTagsByIDString($this->Tag); break; case 'TagsCount': return substr_count($this->Tag, '{'); break; case 'TagsName': return $this->TagsToNameString; case 'Template': $value = $this->Data[$name]; if ($value == '') { $value = GetValueInArray($this->Category->GetDataArray(), 'LogTemplate'); if ($value == '') { $value = $zbp->option['ZC_POST_DEFAULT_TEMPLATE']; } } return $value; case 'CommentPostUrl': foreach ($GLOBALS['Filter_Plugin_Post_CommentPostUrl'] as $fpname => &$fpsignal) { $fpreturn = $fpname($this); if ($fpreturn) { return $fpreturn; } } $key = '&key=' . md5($zbp->guid . $this->ID . date('Y-m-d')); return $zbp->host . 'zb_system/cmd.php?act=cmt&postid=' . $this->ID . $key; break; case 'ValidCodeUrl': return $zbp->validcodeurl . '?id=cmt'; break; case 'Prev': static $_prev = null; if ($_prev !== null) { return $_prev; } $articles = $zbp->GetPostList(array('*'), array(array('=', 'log_Type', 0), array('=', 'log_Status', 0), array('<', 'log_PostTime', $this->PostTime)), array('log_PostTime' => 'DESC'), array(1), null); if (count($articles) == 1) { $_prev = $articles[0]; } else { $_prev = ''; } return $_prev; break; case 'Next': static $_next = null; if ($_next !== null) { return $_next; } $articles = $zbp->GetPostList(array('*'), array(array('=', 'log_Type', 0), array('=', 'log_Status', 0), array('>', 'log_PostTime', $this->PostTime)), array('log_PostTime' => 'ASC'), array(1), null); if (count($articles) == 1) { $_next = $articles[0]; } else { $_next = ''; } return $_next; break; default: return parent::__get($name); break; } }
function BuildModule_archives() { global $zbp; $fdate; $ldate; $sql = $zbp->db->sql->Select($zbp->table['Post'], array('log_PostTime'), null, array('log_PostTime' => 'DESC'), array(1), null); $array = $zbp->db->Query($sql); if (count($array) == 0) { return ''; } $ldate = array(date('Y', $array[0]['log_PostTime']), date('m', $array[0]['log_PostTime'])); $sql = $zbp->db->sql->Select($zbp->table['Post'], array('log_PostTime'), null, array('log_PostTime' => 'ASC'), array(1), null); $array = $zbp->db->Query($sql); if (count($array) == 0) { return ''; } $fdate = array(date('Y', $array[0]['log_PostTime']), date('m', $array[0]['log_PostTime'])); $arraydate = array(); for ($i = $fdate[0]; $i < $ldate[0] + 1; $i++) { for ($j = 1; $j < 13; $j++) { $arraydate[] = strtotime($i . '-' . $j); } } foreach ($arraydate as $key => $value) { if ($value - strtotime($ldate[0] . '-' . $ldate[1]) > 0) { unset($arraydate[$key]); } if ($value - strtotime($fdate[0] . '-' . $fdate[1]) < 0) { unset($arraydate[$key]); } } $arraydate = array_reverse($arraydate); $s = ''; foreach ($arraydate as $key => $value) { $url = new UrlRule($zbp->option['ZC_DATE_REGEX']); $url->Rules['{%date%}'] = date('Y-n', $value); $url->Rules['{%year%}'] = date('Y', $value); $url->Rules['{%month%}'] = date('n', $value); $url->Rules['{%day%}'] = 1; $fdate = $value; $ldate = strtotime(date('Y-m-t', $value)) + 60 * 60 * 24; $sql = $zbp->db->sql->Count($zbp->table['Post'], array(array('COUNT', '*', 'num')), array(array('=', 'log_Type', '0'), array('=', 'log_Status', '0'), array('BETWEEN', 'log_PostTime', $fdate, $ldate))); $n = GetValueInArrayByCurrent($zbp->db->Query($sql), 'num'); if ($n > 0) { $s .= '<li><a href="' . $url->Make() . '">' . str_replace(array('%y%', '%m%'), array(date('Y', $fdate), date('n', $fdate)), $zbp->lang['msg']['year_month']) . ' (' . $n . ')</a></li>'; } } return $s; }
/** * @param $name * @return int|mixed|null|string */ public function __get($name) { global $zbp; if ($name == 'Url') { $u = new UrlRule($zbp->option['ZC_CATEGORY_REGEX']); $u->Rules['{%id%}'] = $this->ID; $u->Rules['{%alias%}'] = $this->Alias == '' ? urlencode($this->Name) : $this->Alias; return $u->Make(); } if ($name == 'Symbol') { if ($this->ParentID == 0) { return; } else { $l = $this->Level; if ($l == 1) { return ' └'; } elseif ($l == 2) { return ' └'; } elseif ($l == 3) { return ' └'; } return; } } if ($name == 'Level') { if ($this->ParentID == 0) { $this->RootID = 0; return 0; } if ($zbp->categorys[$this->ParentID]->ParentID == 0) { $this->RootID = $this->ParentID; return 1; } if ($zbp->categorys[$zbp->categorys[$this->ParentID]->ParentID]->ParentID == 0) { $this->RootID = $zbp->categorys[$this->ParentID]->ParentID; return 2; } if ($zbp->categorys[$zbp->categorys[$zbp->categorys[$this->ParentID]->ParentID]->ParentID]->ParentID == 0) { $this->RootID = $zbp->categorys[$zbp->categorys[$this->ParentID]->ParentID]->ParentID; return 3; } return 0; } if ($name == 'SymbolName') { return $this->Symbol . htmlspecialchars($this->Name); } if ($name == 'Parent') { if ($this->ParentID == 0) { return null; } else { return $zbp->categorys[$this->ParentID]; } } if ($name == 'Template') { $value = $this->data[$name]; if ($value == '') { $value = $zbp->option['ZC_INDEX_DEFAULT_TEMPLATE']; } return $value; } if ($name == 'LogTemplate') { $value = $this->data[$name]; if ($value == '') { $value = $zbp->option['ZC_POST_DEFAULT_TEMPLATE']; } return $value; } return parent::__get($name); }
/** * @param $name * @return mixed|string */ public function __get($name) { global $zbp; if ($name == 'Url') { $u = new UrlRule($zbp->option['ZC_AUTHOR_REGEX']); $u->Rules['{%id%}'] = $this->ID; $u->Rules['{%alias%}'] = $this->Alias == '' ? rawurlencode($this->Name) : $this->Alias; return $u->Make(); } if ($name == 'Avatar') { foreach ($GLOBALS['hooks']['Filter_Plugin_Mebmer_Avatar'] as $fpname => &$fpsignal) { $fpreturn = $fpname($this); if ($fpreturn) { $fpsignal = PLUGIN_EXITSIGNAL_NONE; return $fpreturn; } } if ($this->_avatar) { return $this->_avatar; } $s = $zbp->usersdir . 'avatar/' . $this->ID . '.png'; if (is_readable($s)) { $this->_avatar = $zbp->host . 'zb_users/avatar/' . $this->ID . '.png'; return $this->_avatar; } $this->_avatar = $zbp->host . 'zb_users/avatar/0.png'; return $this->_avatar; } if ($name == 'LevelName') { return $zbp->lang['user_level_name'][$this->Level]; } if ($name == 'EmailMD5') { return md5($this->Email); } if ($name == 'StaticName') { if ($this->Alias) { return $this->Alias; } return $this->Name; } if ($name == 'Template') { $value = $this->data[$name]; if ($value == '') { $value = $zbp->option['ZC_INDEX_DEFAULT_TEMPLATE']; } return $value; } if ($name == 'PassWord_MD5Path') { return md5($this->Password . $zbp->guid); } if ($name == 'IsGod') { if ($this->_isgod === true || $this->_isgod === false) { return $this->_isgod; } else { $sql = $zbp->db->sql->Select($zbp->table['Member'], '*', array(array('=', 'mem_Level', 1)), 'mem_ID ASC', 1, null); $am = $zbp->GetListType('Member', $sql); if ($am[0]->ID == $this->ID) { $this->_isgod = true; } else { $this->_isgod = false; } return $this->_isgod; } } return parent::__get($name); }
/** * @param $name * @return array|int|mixed|null|string */ public function __get($name) { global $zbp; switch ($name) { case 'Category': return $zbp->GetCategoryByID($this->CateID); break; case 'Author': return $zbp->GetMemberByID($this->AuthorID); break; case 'StatusName': return $zbp->lang['post_status_name'][$this->Status]; break; case 'Url': foreach ($GLOBALS['hooks']['Filter_Plugin_Post_Url'] as $fpname => &$fpsignal) { $fpsignal = PLUGIN_EXITSIGNAL_NONE; $fpreturn = $fpname($this); if ($fpsignal == PLUGIN_EXITSIGNAL_RETURN) { return $fpreturn; } } $u = new UrlRule($zbp->GetPostType_UrlRule($this->Type)); $u->Rules['{%id%}'] = $this->ID; if ($this->Alias) { $u->Rules['{%alias%}'] = $this->Alias; } else { if ($zbp->option['ZC_POST_ALIAS_USE_ID_NOT_TITLE'] == false) { $u->Rules['{%alias%}'] = rawurlencode($this->Title); } else { $u->Rules['{%alias%}'] = $this->ID; } } $u->Rules['{%year%}'] = $this->Time('Y'); $u->Rules['{%month%}'] = $this->Time('m'); $u->Rules['{%day%}'] = $this->Time('d'); if ($this->Category->Alias) { $u->Rules['{%category%}'] = $this->Category->Alias; } else { $u->Rules['{%category%}'] = rawurlencode($this->Category->Name); } if ($this->Author->Alias) { $u->Rules['{%author%}'] = $this->Author->Alias; } else { $u->Rules['{%author%}'] = rawurlencode($this->Author->Name); } return $u->Make(); break; case 'Tags': return $zbp->LoadTagsByIDString($this->Tag); break; case 'TagsCount': return substr_count($this->Tag, '{'); break; case 'TagsName': return $this->TagsToNameString(); case 'Template': $value = $this->data[$name]; if ($value == '') { $value = GetValueInArray($this->Category->GetData(), 'LogTemplate'); if ($value == '') { $value = $zbp->GetPostType_Template($this->Type); } } return $value; case 'CommentPostUrl': foreach ($GLOBALS['hooks']['Filter_Plugin_Post_CommentPostUrl'] as $fpname => &$fpsignal) { $fpreturn = $fpname($this); if ($fpsignal == PLUGIN_EXITSIGNAL_RETURN) { $fpsignal = PLUGIN_EXITSIGNAL_NONE; return $fpreturn; } } $key = '&key=' . $zbp->GetCmtKey($this->ID); return $zbp->host . 'zb_system/cmd.php?act=cmt&postid=' . $this->ID . $key; break; case 'ValidCodeUrl': return $zbp->validcodeurl . '?id=cmt'; break; case 'Prev': if ($this->_prev !== '') { return $this->_prev; } foreach ($GLOBALS['hooks']['Filter_Plugin_Post_Prev'] as $fpname => &$fpsignal) { $this->_prev = $fpname($this); if ($this->_prev !== '') { return $this->_prev; } } $articles = $zbp->GetPostList(array('*'), array(array('=', 'log_Type', 0), array('=', 'log_Status', 0), array('<', 'log_PostTime', $this->PostTime)), array('log_PostTime' => 'DESC'), array(1), null); if (count($articles) == 1) { $this->_prev = $articles[0]; } else { $this->_prev = null; } return $this->_prev; break; case 'Next': if ($this->_next !== '') { return $this->_next; } foreach ($GLOBALS['hooks']['Filter_Plugin_Post_Next'] as $fpname => &$fpsignal) { $this->_prev = $fpname($this); if ($this->_prev !== '') { return $this->_prev; } } $articles = $zbp->GetPostList(array('*'), array(array('=', 'log_Type', 0), array('=', 'log_Status', 0), array('>', 'log_PostTime', $this->PostTime)), array('log_PostTime' => 'ASC'), array(1), null); if (count($articles) == 1) { $this->_next = $articles[0]; } else { $this->_next = null; } return $this->_next; break; case 'RelatedList': foreach ($GLOBALS['hooks']['Filter_Plugin_Post_RelatedList'] as $fpname => &$fpsignal) { $fpreturn = $fpname($this); if ($fpsignal == PLUGIN_EXITSIGNAL_RETURN) { $fpsignal = PLUGIN_EXITSIGNAL_NONE; return $fpreturn; } } return GetList($zbp->option['ZC_RELATEDLIST_COUNT'], null, null, null, null, null, array('is_related' => $this->ID)); case 'TopType': $toptype = $this->Metas->toptype; if ($this->IsTop == true && $toptype == null) { $toptype = 'index'; } return $toptype; case 'TypeName': return $zbp->GetPostType_Name($this->Type); default: return parent::__get($name); break; } }
/** * 导出文章归档模块数据 * @return string 模块内容 */ public static function Archives() { global $zbp; $template = $zbp->template; $tags = array(); $urls = array(); //array(url,name,count); $maxli = $zbp->modulesbyfilename['archives']->MaxLi; if ($maxli < 0) { return ''; } $sql = $zbp->db->sql->Select($zbp->table['Post'], array('log_PostTime'), null, array('log_PostTime' => 'DESC'), array(1), null); $array = $zbp->db->Query($sql); if (count($array) == 0) { return ''; } $ldate = array(date('Y', $array[0]['log_PostTime']), date('m', $array[0]['log_PostTime'])); $sql = $zbp->db->sql->Select($zbp->table['Post'], array('log_PostTime'), null, array('log_PostTime' => 'ASC'), array(1), null); $array = $zbp->db->Query($sql); if (count($array) == 0) { return ''; } $fdate = array(date('Y', $array[0]['log_PostTime']), date('m', $array[0]['log_PostTime'])); $arraydate = array(); for ($i = $fdate[0]; $i < $ldate[0] + 1; $i++) { for ($j = 1; $j < 13; $j++) { $arraydate[] = strtotime($i . '-' . $j); } } foreach ($arraydate as $key => $value) { if ($value - strtotime($ldate[0] . '-' . $ldate[1]) > 0) { unset($arraydate[$key]); } if ($value - strtotime($fdate[0] . '-' . $fdate[1]) < 0) { unset($arraydate[$key]); } } $arraydate = array_reverse($arraydate); $s = ''; $i = 0; foreach ($arraydate as $key => $value) { if ($i >= $maxli && $maxli > 0) { break; } $url = new UrlRule($zbp->option['ZC_DATE_REGEX']); $url->Rules['{%date%}'] = date('Y-n', $value); $url->Rules['{%year%}'] = date('Y', $value); $url->Rules['{%month%}'] = date('n', $value); $url->Rules['{%day%}'] = 1; $fdate = $value; $ldate = strtotime(date('Y-m-t', $value)) + 60 * 60 * 24; $sql = $zbp->db->sql->Count($zbp->table['Post'], array(array('COUNT', '*', 'num')), array(array('=', 'log_Type', '0'), array('=', 'log_Status', '0'), array('BETWEEN', 'log_PostTime', $fdate, $ldate))); $n = GetValueInArrayByCurrent($zbp->db->Query($sql), 'num'); if ($n > 0) { //$urls[]=array($url->Make(),str_replace(array('%y%', '%m%'), array(date('Y', $fdate), date('n', $fdate)), $zbp->lang['msg']['year_month']),$n); $meta = new Metas(); $meta->Url = $url->Make(); $meta->Name = str_replace(array('%y%', '%m%'), array(date('Y', $fdate), date('n', $fdate)), $zbp->lang['msg']['year_month']); $meta->Count = $n; $urls[] = $meta; $i++; } } $tags['urls'] = $urls; $template->SetTagsAll($tags); $ret = $template->Output('module-archives'); return $ret; }