Esempio n. 1
0
 /** @return Warnings */
 public static function getInstance()
 {
     if (!isset(self::$instance)) {
         self::$instance = new Warnings();
         $config = FajrConfigLoader::getConfiguration();
         $configWarnings = $config->get(FajrConfigOptions::WARNINGS);
         foreach ($configWarnings as $warning) {
             self::$instance->addWarning(array('type' => 'raw', 'message' => $warning));
         }
     }
     return self::$instance;
 }
Esempio n. 2
0
 /**
  * Akcia ktora zobrazi terminy, na ktore je mozne potencialne sa prihlasit.
  *
  * @param Trace $trace trace object
  * @param Request $request
  */
 public function runZoznamTerminov(Trace $trace, Request $request)
 {
     $this->templateParams['currentTab'] = 'ZapisSkusok';
     $schovajUznane = $request->getParameter('displayFilter', 'uznane') === 'uznane';
     if ($this->terminyHodnoteniaScreen == null) {
         return $this->renderResponse('studium/terminyHodnoteniaNedostupne', $this->templateParams);
     }
     $predmetyZapisnehoListu = $this->terminyHodnoteniaScreen->getPredmetyZapisnehoListu($trace);
     $this->warnings->warnWrongTableStructure($trace, 'terminy hodnotenia - predmety', regression\ZapisanePredmetyRegression::get(), $predmetyZapisnehoListu->getTableDefinition());
     $hodnotenia = $this->hodnoteniaScreen->getHodnotenia($trace);
     $this->warnings->warnWrongTableStructure($trace, 'hodnotenia', regression\HodnoteniaRegression::get(), $hodnotenia->getTableDefinition());
     $hodnoteniaData = array();
     foreach ($hodnotenia->getData() as $row) {
         $hodnoteniaData[$row[HodnoteniaFields::PREDMET_SKRATKA]] = $row;
     }
     $mozePrihlasitHelper = new MozePrihlasitNaTerminHelper($hodnoteniaData);
     $terminyData = array();
     $pocetSchovanychPredmetov = 0;
     foreach ($predmetyZapisnehoListu->getData() as $predmetRow) {
         $predmetSkratka = $predmetRow[PredmetyFields::SKRATKA];
         $predmetId = $predmetRow[PredmetyFields::INDEX];
         $predmet = $predmetRow[PredmetyFields::NAZOV];
         if ($schovajUznane && $hodnoteniaData[$predmetSkratka][HodnoteniaFields::UZNANE] == 'TRUE') {
             $pocetSchovanychPredmetov++;
             continue;
         }
         $childTrace = $trace->addChild('Zoznam terminov k predmetu ' . $predmet);
         $dialog = $this->terminyHodnoteniaScreen->getZoznamTerminovDialog($childTrace, $predmetId);
         $terminy = $dialog->getZoznamTerminov($childTrace);
         $this->warnings->warnWrongTableStructure($trace, 'zoznam terminov k predmetu ' . $predmet, regression\TerminyKPredmetuRegression::get(), $terminy->getTableDefinition());
         // explicitly close this dialog otherwise we will be blocked for next iteration!
         $dialog->closeWindow();
         foreach ($terminy->getData() as $row) {
             $prihlasTerminyRow = $row;
             $prihlasTerminyRow[PrihlasTerminyFields::PREDMET] = $predmet;
             $prihlasTerminyRow[PrihlasTerminyFields::PREDMET_INDEX] = $predmetId;
             $prihlasTerminyRow[PrihlasTerminyFields::PREDMET_SKRATKA] = $predmetSkratka;
             $prihlasTerminyRow[PrihlasTerminyFields::ZNAMKA] = $hodnoteniaData[$predmetSkratka][HodnoteniaFields::ZNAMKA];
             $prihlasTerminyRow[PrihlasTerminyFields::HASH_PRIHLASENIE] = StudiumUtils::hashNaPrihlasenie($predmetSkratka, $row);
             // PrihlasTerminyFields::ZNAMKA, PREDMET_SKRATKA must be set before!
             $prihlasTerminyRow[PrihlasTerminyFields::FAJR_MOZE_PRIHLASIT] = $mozePrihlasitHelper->mozeSaPrihlasit($prihlasTerminyRow, $this->serverTime);
             $terminyData[] = $prihlasTerminyRow;
         }
     }
     $this->templateParams['prihlaseni'] = null;
     if ($request->getParameter('termin') !== '' && $request->getParameter('predmet') !== '') {
         $prihlaseni = $this->terminyHodnoteniaScreen->getZoznamTerminovDialog($trace, $request->getParameter('predmet'))->getZoznamPrihlasenychDialog($trace, $request->getParameter('termin'))->getZoznamPrihlasenych($trace);
         $this->warnings->warnWrongTableStructure($trace, 'zoznam prihlasenych k terminu', regression\PrihlaseniNaTerminRegression::get(), $prihlaseni->getTableDefinition());
         $this->templateParams['prihlaseni'] = $prihlaseni->getData();
     }
     $this->templateParams['predmetyZapisnehoListu'] = $predmetyZapisnehoListu;
     $this->templateParams['terminy'] = $terminyData;
     $this->templateParams['termin'] = $request->getParameter('termin');
     $this->templateParams['predmet'] = $request->getParameter('predmet');
     $this->templateParams['pocetSchovanychPredmetov'] = $pocetSchovanychPredmetov;
     return $this->renderResponse('studium/zoznamTerminov', $this->templateParams);
 }
Esempio n. 3
0
 /**
  * Sets dafault template fields.
  * TODO: set as twig globals?
  */
 private function setResponseFields(Request $request)
 {
     $skinSettings = SkinSettings::getInstance();
     if ($request->isMobileBrowser()) {
         $skinSettings->setDefaultSkinName('mobile');
     }
     $this->displayManager->setSkin($skinSettings->getUserSkin());
     $params = array();
     $referrer = $request->getHeader('Referer');
     $pageMovedCookie = isset($_COOKIE['FajrPageMoved']);
     $pageMovedReferer = preg_match('#^https?://fajr.dcs.fmph.uniba.sk#', $referrer) === 1;
     if ($pageMovedCookie || $pageMovedReferer) {
         Warnings::getInstance()->addWarning(array('type' => 'pageMoved'));
     }
     $params['version'] = new Version();
     $params['banner_debug'] = $this->config->get(FajrConfigOptions::DEBUG_BANNER);
     if ($request->isDoNotTrack()) {
         $params['google_analytics'] = null;
     } else {
         $params['google_analytics'] = $this->config->get(FajrConfigOptions::GOOGLE_ANALYTICS_ACCOUNT);
     }
     $params['base'] = FajrUtils::basePath();
     $params['language'] = 'sk';
     $params['availableServers'] = array();
     $params['currentServer'] = array('isBeta' => false, 'instanceName' => 'Chyba');
     $server = $this->serverManager->getActiveServer();
     $serverList = $this->config->get(FajrConfigOptions::AIS_SERVERLIST);
     $params['availableServers'] = $serverList;
     $params['currentServer'] = $server;
     $params['backendType'] = $server->getBackendType();
     $params['aisVersion'] = null;
     $params['aisVersionIncompatible'] = false;
     $params['loggedIn'] = false;
     $params['developmentVersion'] = $this->config->get(FajrConfigOptions::IS_DEVEL);
     $params['statistics'] = Statistics::getInstance();
     $params['warnings'] = Warnings::getInstance();
     $this->displayManager->setDefaultParams($params);
 }