Beispiel #1
0
 private function templateSolvers()
 {
     $box = $this->flag->getWarbox();
     $_GET['sid'] = $box->getSiteID();
     $_GET['bid'] = $box->getID();
     $fid = $this->flag->getID();
     $table = GDO::table('WC_Warflags');
     $where = "wf_id={$fid} AND wf_solved_at IS NOT NULL";
     $orderby = 'wf_solved_at ASC';
     $joins = array('flag', 'solvers', 'flagbox', 'flagsite');
     $ipp = 50;
     $nItems = $table->countRows($where, $joins);
     $nPages = GWF_PageMenu::getPagecount($ipp, $nItems);
     $page = Common::clamp(Common::getGetInt('page'), 1, $nPages);
     $from = GWF_PageMenu::getFrom($page, $ipp);
     $tVars = array('site_quickjump' => $this->module->templateSiteQuickjump('boxdetail'), 'solvers' => $table->selectAll('*', $where, $orderby, $joins, $ipp, $from, GDO::ARRAY_A), 'flag' => $this->flag, 'rank' => $from + 1, 'sort_url' => NULL, 'solvercount' => $nItems, 'pagemenu' => GWF_PageMenu::display($page, $nPages, GWF_WEB_ROOT . "index.php?mo=WeChall&me=WarflagSolvers&flag={$fid}&page=%PAGE%"));
     return $this->module->templatePHP('warflag_solvers.php', $tVars);
 }
Beispiel #2
0
 public function onAnswer(WC_Warflag $flag, $password)
 {
     if (false === ($this->user = GWF_Session::getUser())) {
         return GWF_HTML::err('ERR_LOGIN_REQUIRED');
     }
     if (false === ($this->box = $flag->getWarbox())) {
         return $this->module->error('err_warbox');
     }
     if (false === ($this->site = $this->box->getSite())) {
         return $this->module->error('err_site');
     }
     if (!$flag->isWarflag()) {
         return GWF_HTML::err('ERR_GENERAL', array(__FILE__, __LINE__));
     }
     if (false !== ($error = $this->checkBrute($flag))) {
         return $error;
     }
     $password = WC_Warflag::hashPassword($password);
     if ($password !== $flag->getVar('wf_flag_enc')) {
         return $this->onFailed($flag);
     } else {
         return $this->onSolved($flag);
     }
 }