示例#1
0
文件: Sites.php 项目: sinfocol/gwf3
 private function templateSites()
 {
     require_once GWF_CORE_PATH . 'module/WeChall/WC_SiteAdmin.php';
     require_once GWF_CORE_PATH . 'module/WeChall/WC_SiteCats.php';
     require_once GWF_CORE_PATH . 'module/WeChall/WC_SiteDescr.php';
     $tag = Common::getGet('tag', '');
     if (0 === ($tag_bit = WC_SiteCats::getBitForCat($tag))) {
         $tag = '';
     }
     $this->setPageDescription($tag);
     $status_query = $this->getStatusQuery();
     $lang_query = $this->getLangQuery();
     $tag_query = $this->getTagQuery($tag_bit);
     $ipp = $this->module->cfgItemsPerPage();
     $by = Common::getGet('by', 'site_id');
     $dir = Common::getGet('dir', 'DESC');
     $page = intval(Common::getGet('page', 1));
     $table = GDO::table('WC_Site');
     $orderby = $table->getMultiOrderby($by, $dir);
     $conditions = "({$status_query}) AND ({$lang_query}) AND ({$tag_query})";
     $nItems = $table->countRows($conditions);
     $nPages = GWF_PageMenu::getPagecount($ipp, $nItems);
     $page = Common::clamp($page, 1, $nPages);
     $href = $this->getPageMenuHREF();
     $tVars = array('sites' => $table->selectObjects('*', $conditions, $orderby, $ipp, GWF_PageMenu::getFrom($page, $ipp)), 'descrs' => WC_SiteDescr::getAllDescr(), 'site_quickjump' => $this->module->templateSiteQuickjumpDetail(), 'pagemenu' => GWF_PageMenu::display($page, $nPages, $href), 'sortURL' => $this->getTableSortURL(), 'which' => intval(Common::getGet('which')), 'tag' => $tag, 'page_title' => $this->pageTitle);
     return $this->module->templatePHP('sites.php', $tVars);
 }
示例#2
0
文件: Admin.php 项目: sinfocol/gwf3
 private function onCacheSiteTags()
 {
     require_once GWF_CORE_PATH . 'module/WeChall/WC_SiteCats.php';
     WC_SiteCats::fixCatBits();
     $this->fixFavCats();
     return $this->templateAdmin();
 }
示例#3
0
 private function templateRanking()
 {
     require_once GWF_CORE_PATH . 'module/WeChall/WC_SiteCats.php';
     $tag = Common::getGet('tag', self::DEFAULT_TAG);
     if (0 === ($bit = WC_SiteCats::getBitForCat($tag))) {
         $bit = 1;
         $tag = $_GET['tag'] = WC_SiteCats::getCatForBit($bit);
     }
     $ipp = 50;
     $nItems = $this->countItems($bit);
     list($page, $hlrank) = $this->getPageNum($ipp, $bit);
     $nPages = GWF_PageMenu::getPagecount($ipp, $nItems);
     $page = Common::clamp($page, 1, $nPages);
     $from = GWF_PageMenu::getFrom($page, $ipp);
     $rank = ($page - 1) * $ipp + 1;
     $data = $bit === 0 ? array() : $this->selectPage($bit, $from, $ipp);
     $dtag = GWF_HTML::display($tag);
     GWF_Website::setPageTitle($this->module->lang('pt_tagrank', array($dtag)));
     GWF_Website::setMetaTags($this->module->lang('mt_tagrank', array($dtag, $dtag)));
     GWF_Website::setMetaDescr($this->module->lang('md_tagrank', array($dtag, $page, $nPages)));
     $tVars = array('rank' => $rank, 'hlrank' => $hlrank, 'sites' => WC_Site::getSimilarSitesS($bit, true), 'data' => $data, 'tag' => $dtag, 'form_action' => GWF_WEB_ROOT . 'category_ranking', 'page_menu' => GWF_PageMenu::display($page, $nPages, GWF_WEB_ROOT . sprintf('category_ranking/%s/page-%%PAGE%%', urlencode($tag))), 'select' => $this->getTagSelect());
     return $this->module->templatePHP('ranking_tag.php', $tVars);
 }
示例#4
0
 private static function fixChallTags(Module_WeChall $module)
 {
     WC_SiteCats::fixCatBits();
     $module->cacheChallTags();
     return '';
 }
示例#5
0
 private function getCatEnums()
 {
     $this->module->includeClass('WC_SiteCats');
     $back = array();
     $back[] = array('', 'Unknown');
     foreach (WC_SiteCats::getAllCats() as $cat) {
         $back[] = array($cat, $cat);
     }
     return $back;
 }
示例#6
0
 public function onEdit(WC_Site $site, $is_admin)
 {
     $form = $this->getForm($site, $is_admin);
     if (false !== ($errors = $form->validate($this->module))) {
         return $errors;
     }
     $basescore_changed = $language_changed = $status_changed = $spc_changed = $powarg_changed = false;
     if ($is_admin) {
         $basescore_changed = $form->getVar('site_basescore') != $site->getBasescore();
         $language_changed = $form->getVar('site_language') !== $site->getLangID();
         $status_changed = $form->getVar('site_status') !== $site->getStatus();
         $spc_changed = $form->getVar('site_spc') !== $site->getVar('site_spc');
         $powarg_changed = $form->getVar('site_powarg') !== $site->getVar('site_powarg');
         $site->saveVars(array('site_classname' => $form->getVar('site_classname'), 'site_basescore' => $form->getVar('site_basescore'), 'site_usercount' => $form->getVar('site_usercount'), 'site_challcount' => $form->getVar('site_challcount'), 'site_joindate' => $form->getVar('site_joindate'), 'site_authkey' => $form->getVar('site_authkey'), 'site_status' => $form->getVar('site_status'), 'site_language' => $form->getVar('site_language'), 'site_spc' => $form->getVar('site_spc'), 'site_powarg' => $form->getVar('site_powarg'), 'site_color' => $form->getVar('site_color')));
     }
     $site->saveVars(array('site_name' => $form->getVar('site_name'), 'site_country' => $form->getVar('site_country'), 'site_launchdate' => $form->getVar('site_launchdate'), 'site_xauthkey' => $form->getVar('site_xauthkey'), 'site_irc' => $form->getVar('site_irc'), 'site_url' => $form->getVar('site_url'), 'site_url_mail' => $form->getVar('site_url_mail'), 'site_url_score' => $form->getVar('site_url_score'), 'site_url_profile' => $form->getVar('site_url_profile')));
     $site->setVar('site_country', GWF_Country::getByID($form->getVar('site_country')));
     $site->setVar('site_language', GWF_Language::getByID($form->getVar('site_language')));
     # Update tags if Admin
     if ($is_admin) {
         $new_tags = $form->getVar('site_tags');
         if ($site->getTags() !== $new_tags) {
             echo GWF_HTML::message('WeChall', 'Fixing challenge site tags..');
             $site->saveVar('site_tags', str_replace(' ', '', $new_tags));
             require_once GWF_CORE_PATH . 'module/WeChall/WC_SiteCats.php';
             WC_SiteCats::fixCatBits();
         }
     }
     // 		$out = $this->onEditWarflag($site, isset($_POST['warenbl']));
     $old_linear = $site->isLinear();
     $site->saveOption(WC_Site::LINEAR, isset($_POST['linear']));
     $linear_changed = $old_linear !== $site->isLinear();
     $site->saveOption(WC_Site::NO_URLENCODE, isset($_POST['no_urlencode']));
     $site->saveOption(WC_Site::AUTO_UPDATE, isset($_POST['auto_update']));
     $site->saveOption(WC_Site::HIDE_BY_DEFAULT, isset($_POST['default_hide']));
     $site->saveOption(WC_Site::ONSITE_RANK, isset($_POST['onsite_rank']));
     $site->saveOption(WC_Site::NO_V1_SCRIPTS, isset($_POST['no_v1']));
     # Trigger warbox config parsing.
     // 		if ($site->isWarBox())
     // 		{
     // // 			$site->getWarIP();
     // 			Module_WeChall::instance()->flushWarboxConfig();
     // 		}
     # Recalculate in case of a change
     //		if ($site->isScored())
     //		{
     if ($basescore_changed || $language_changed || $status_changed || $powarg_changed || $spc_changed || $linear_changed) {
         $site->recalcSite();
         WC_RegAt::calcTotalscores();
     }
     //		}
     return $this->module->message('msg_site_edited', array($site->displayName()));
     #.$out;
 }
示例#7
0
 public function validate_favcat($m, $v)
 {
     return WC_SiteCats::isValidCatName($v) ? false : $m->lang('err_cat');
 }