public static function prepare() { if (FajrConfig::get('URL.Path')) { $_get = array_merge(FajrRouter::pathToParams(FajrUtils::pathInfo()), $_GET); } else { $_get = $_GET; } $_post = $_POST; // podla pola definujeceho vstupne parametre overim ich platnost foreach (self::$allowedParamters as $input => $params) { foreach ($params as $name => $type) { if (isset(${$input}[$name])) { $checker = self::$conditions[$type]['cond']; if (!Validator::$checker(${$input}[$name], self::$conditions[$type]['options'])) { throw new Exception(str_replace('%%NAME%%', $name, self::$conditions[$type]['message'])); } self::$inputParameters[$name] = ${$input}[$name]; self::${$input}[$name] = ${$input}[$name]; } } } // specialne vynimky if (isset($_get['logout'])) { self::$inputParameters['logout'] = true; //self::$_GET['logout'] = true; FIXME: Majak, co tu robilo toto? //Pravdepodobne to chceme umazat. } // budeme pouzivat uz len Input unset($_GET); unset($_POST); }
protected static function googleAnalytics() { $account = FajrConfig::get('GoogleAnalytics.Account'); if ($account === null) { return ''; } return '<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push([\'_setAccount\', \'' . $account . '\']); _gaq.push([\'_trackPageview\']); (function() { var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true; ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\'; var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s); })(); </script>'; }
public static function buildUrl($params) { $path = ''; if (FajrConfig::get('URL.Path')) { $path = FajrRouter::paramsToPath($params); } $query = http_build_query($params); if (strlen($query) > 0) { $query = '?' . $query; } $base = ''; if (!FajrConfig::get('URL.Rewrite')) { $base = 'index.php'; if (strlen($path) > 0) { $base .= '/'; } } return self::basePath() . $base . $path . $query; }
public function run() { $timer = new SystemTimer(); $connection = null; $statsConnection = null; $rawStatsConnection = null; $trace = new NullTrace(); if (FajrConfig::get('Debug.Trace') === true) { $trace = new HtmlTrace($timer, "--Trace--"); } try { Input::prepare(); $login = Input::get('login'); Input::set('login', null); $krbpwd = Input::get('krbpwd'); Input::set('krbpwd', null); $cosignCookie = Input::get('cosignCookie'); Input::set('cosignCookie', null); // FIXME this should be refactored if ($login !== null && $krbpwd !== null || $cosignCookie !== null) { // we are going to log in, so we get a clean session // this needs to be done before a connection // is created, because we pass cookie file name // that contains session_id into AIS2CurlConnection // If we regenerated the session id afterwards, // we could not find the cookie file after a redirect FajrUtils::dropSession(); } $connection = new connection\CurlConnection(FajrUtils::getCookieFile()); $rawStatsConnection = new connection\StatsConnection($connection, new SystemTimer()); $connection = $rawStatsConnection; $connection = new connection\GzipDecompressingConnection($connection, FajrConfig::getDirectory('Path.Temporary')); $connection = new connection\AIS2ErrorCheckingConnection($connection); $statsConnection = new connection\StatsConnection($connection, new SystemTimer()); $connection = $statsConnection; $simpleConnection = new connection\HttpToSimpleConnectionAdapter($connection); AIS2Utils::connection($simpleConnection); // toto tu je docasne if (Input::get('logout') !== null) { FajrUtils::logout($connection); FajrUtils::redirect(); } if ($login !== null && $krbpwd !== null) { $loggedIn = FajrUtils::login(new CosignLogin($login, $krbpwd), $connection); $login = null; $krbpwd = null; } else { if ($cosignCookie !== null) { $loggedIn = FajrUtils::login(new AIS2CookieLogin($cosignCookie), $connection); $cosignCookie = null; } else { $loggedIn = FajrUtils::isLoggedIn(); } } if ($loggedIn) { DisplayManager::addContent('<div class=\'logout\'><a class="button negative" href="' . FajrUtils::linkUrl(array('logout' => true)) . '"> <img src="images/door_in.png" alt=""/>Odhlásiť</a></div>'); $adminStudia = new VSES017\AdministraciaStudiaScreen($trace, $simpleConnection); if (Input::get('studium') === null) { Input::set('studium', 0); } $zoznamStudii = $adminStudia->getZoznamStudii($trace->addChild("Get Zoznam Studii:")); $zoznamStudiiTable = new Table(TableDefinitions::zoznamStudii(), 'studium', array('tab' => Input::get('tab'))); $zoznamStudiiTable->addRows($zoznamStudii->getData()); $zoznamStudiiTable->setOption('selected_key', Input::get('studium')); $zoznamStudiiTable->setOption('collapsed', true); $zoznamStudiiCollapsible = new Collapsible(new HtmlHeader('Zoznam štúdií'), $zoznamStudiiTable, true); DisplayManager::addContent($zoznamStudiiCollapsible->getHtml()); $zapisneListy = $adminStudia->getZapisneListy($trace->addChild('getZapisneListy'), Input::get('studium')); $zapisneListyTable = new Table(TableDefinitions::zoznamZapisnychListov(), 'list', array('studium' => Input::get('studium'), 'tab' => Input::get('tab'))); if (Input::get('list') === null) { $tmp = $zapisneListy->getData(); $lastList = end($tmp); Input::set('list', $lastList['index']); } $zapisneListyTable->addRows($zapisneListy->getData()); $zapisneListyTable->setOption('selected_key', Input::get('list')); $zapisneListyTable->setOption('collapsed', true); $zapisneListyCollapsible = new Collapsible(new HtmlHeader('Zoznam zápisných listov'), $zapisneListyTable, true); DisplayManager::addContent($zapisneListyCollapsible->getHtml()); $terminyHodnotenia = new VSES017\TerminyHodnoteniaScreen($trace, $simpleConnection, $adminStudia->getIdZapisnyList($trace, Input::get('list')), $adminStudia->getIdStudium($trace, Input::get('list'))); if (Input::get('tab') === null) { Input::set('tab', 'TerminyHodnotenia'); } $tabs = new TabManager('tab', array('studium' => Input::get('studium'), 'list' => Input::get('list'))); // FIXME: chceme to nejak refaktorovat, aby sme nevytvarali zbytocne // objekty, ktore v konstruktore robia requesty $hodnoteniaScreen = new VSES017\HodnoteniaPriemeryScreen($trace, $simpleConnection, $adminStudia->getIdZapisnyList($trace, Input::get('list'))); $tabs->addTab('TerminyHodnotenia', 'Moje skúšky', new MojeTerminyHodnoteniaCallback($trace, $terminyHodnotenia, $hodnoteniaScreen)); $tabs->addTab('ZapisSkusok', 'Prihlásenie na skúšky', new ZoznamTerminovCallback($trace, $terminyHodnotenia, $hodnoteniaScreen)); $tabs->addTab('ZapisnyList', 'Zápisný list', new ZapisanePredmetyCallback($trace, $terminyHodnotenia)); $tabs->addTab('Hodnotenia', 'Hodnotenia/Priemery', new HodnoteniaCallback($trace, $hodnoteniaScreen)); $tabs->setActive(Input::get('tab')); DisplayManager::addContent($tabs->getHtml()); $version = '<div>Fajr verzia ' . hescape(Version::getVersionString()) . '</div>'; DisplayManager::addContent($version); $statistics = "<div> Fajr made " . $statsConnection->getTotalCount() . " requests and downloaded " . $rawStatsConnection->getTotalSize() . " bytes (" . $statsConnection->getTotalSize() . " bytes uncompressed) of data from AIS2 in " . sprintf("%.3f", $statsConnection->getTotalTime()) . " seconds. It took " . sprintf("%.3f", $timer->getElapsedTime()) . " seconds to generate this page.</div>"; DisplayManager::addContent($statistics); } else { DisplayManager::addContent('loginBox', true); DisplayManager::addContent('warnings', true); DisplayManager::addContent('terms', true); DisplayManager::addContent('credits', true); $version = "<div class='version prepend-1 span-21 last increase-line-height'>\n<strong>Verzia fajru:</strong> \n"; $version .= hescape(Version::getVersionString()); $version .= '</div>'; DisplayManager::addContent($version); DisplayManager::addContent(Version::getChangelog(), false); } } catch (AIS2LoginException $e) { if ($connection) { FajrUtils::logout($connection); } DisplayManager::addException($e); } catch (Exception $e) { DisplayManager::addException($e); } DisplayManager::setBase(hescape(FajrUtils::basePath())); $trace->tlog("everything done, generating html"); if (FajrConfig::get('Debug.Trace') === true) { $traceHtml = $trace->getHtml(); DisplayManager::addContent('<div class="span-24">' . $traceHtml . '<div> Trace size:' . sprintf("%.2f", strlen($traceHtml) / 1024.0 / 1024.0) . ' MB</div></div>'); } echo DisplayManager::display(); }
// we are going to log in, so we get a clean session // this needs to be done before a connection // is created, because we pass cookie file name // that contains session_id into AIS2CurlConnection // If we regenerated the session id afterwards, // we could not find the cookie file after a redirect FajrUtils::dropSession(); } $connection = new AIS2CurlConnection(FajrUtils::getCookieFile()); $rawStatsConnection = new AIS2StatsConnection($connection); $connection = $rawStatsConnection; $connection = new AIS2DecompressingConnection($connection, FajrConfig::getDirectory('Path.Temporary')); $connection = new AIS2ErrorCheckingConnection($connection); $statsConnection = new AIS2StatsConnection($connection); $connection = $statsConnection; if (FajrConfig::get('Debug.Connections')) { $debugConnection = new AIS2DebugConnection($connection); $connection = $debugConnection; } AIS2Utils::connection($connection); // toto tu je docasne if (Input::get('logout') !== null) { FajrUtils::logout($connection); FajrUtils::redirect(); } if ($login !== null && $krbpwd !== null) { $loggedIn = FajrUtils::login(new AIS2CosignLogin($login, $krbpwd), $connection); $login = null; $krbpwd = null; } else { if ($cosignCookie !== null) {