Esempio n. 1
0
 function Run()
 {
     //Load config
     $config = new Config();
     $config->Load();
     $displayManager = new DisplayManager();
     //Create Login Manager
     $loginManager = new LoginManager();
     $loginManager->Load();
     $loginFail = false;
     if ($loginManager->WantLogin()) {
         $loginFail = !$loginManager->TryLogin();
         if (!$loginFail) {
             header('location: index.php');
         }
     }
     if ($loginManager->WantLogout()) {
         $loginManager->Logout();
     }
     if (isset($_GET['want']) and $_GET['want'] == 'logo') {
         $logo = new Logo();
         $logo->Generate();
         return;
     } elseif (isset($_GET['want']) and $_GET['want'] == 'source') {
         $displayManager->DisplaySource();
     } else {
         if ($loginManager->IsLogged()) {
             $imageManager = new ImageManager();
             $images = $imageManager->GetImages();
             $displayManager->DisplayImagesPage($images);
         } else {
             $displayManager->DisplayLoginPage($loginFail);
         }
     }
 }
Esempio n. 2
0
 public function getHtml()
 {
     $activeTab = $this->getActiveTab();
     $code = '<div class=\'tab_header\'>';
     foreach ($this->tabs as $key => $value) {
         $link = FajrUtils::linkUrl(array_merge($this->urlParams, array($this->name => $key)));
         if ($key == $activeTab['name']) {
             $class = 'tab_selected';
         } else {
             $class = 'tab';
         }
         $code .= '<span class=\'' . $class . '\'><a href="' . $link . '">' . $value['title'] . '</a></span>';
     }
     $code .= '</div>';
     try {
         $code .= $activeTab['content']->getHtml();
     } catch (Exception $e) {
         DisplayManager::addException($e);
     }
     return $code;
 }
Esempio n. 3
0
 public static function setBase($base)
 {
     self::$base = $base;
 }
Esempio n. 4
0
 /**
  * Pomocou nastavených atribútov vygeneruje tabuľku v HTML formáte aj s linkami.
  * @return string Vygenerovaná tabuľka v HTML formáte.
  */
 public function getHtml()
 {
     $id = DisplayManager::getUniqueHTMLId('table');
     $table = "\n<!-- ******* Table ****** -->\n";
     if (!is_array($this->data) || empty($this->data[0])) {
         $table .= '<font color="red"> Dáta pre túto tabuľku neboli nájdené.</font><hr class="space" />';
         return $table;
     }
     $table .= "<table id=\"" . $id . "\"class='colstyle-sorting'>\n<thead>\n<tr>\n";
     $columns = $this->getColumns();
     foreach ($columns as $key => $value) {
         $table .= '    <th class="sortable">' . $value['title'] . "</th>\n";
     }
     $table .= "</tr>\n";
     $table .= "\n</thead>\n";
     // Tu by mal byt TFOOT, vid nizsie
     $table .= "<tbody>\n";
     foreach ($this->data as $row) {
         $table .= $row->getHtml();
     }
     $table .= "</tbody>";
     // FIXME: Tento TFOOT by mal byt podla specifikacie pred TBODY,
     // ale ked je tu, je mozne css-kom vypnut opakovanie
     // footer riadkov pri tlaci (inak by boli na vrchu tabulky).
     // Ak chceme mat vystup 100% validny, treba upravit sorter skript,
     // aby bral do uvahy nejaky class a zmenit tento TFOOT na TBODY.
     if ($this->footer !== null) {
         $table .= '<tfoot>';
         foreach ($this->footer as $row) {
             $table .= $row->getHtml();
         }
         $table .= "</tfoot>\n";
     }
     $table .= "</table>\n";
     return $table;
 }
Esempio n. 5
0
 public function getHtml()
 {
     $id = DisplayManager::getUniqueHTMLId('collapsible');
     $html = '<div class="collapsible" id="' . $id . '"' . "\n";
     $html .= '<h2 class="togglevisibility" onclick=\'toggleVisibility("' . $id . '");\' >';
     $html .= $this->title . '</h2>' . "\n";
     $html .= '<div class="collapsiblecontent">';
     $html .= $this->content->getHtml();
     $html .= '</div>';
     $html .= "</div>\n\n\n";
     if ($this->collapsed) {
         $html .= '<script type="text/javascript"> toggleVisibility("';
         $html .= $id . "\") </script>\n";
     }
     return $html;
 }
Esempio n. 6
0
 function Run()
 {
     $displayManager = new DisplayManager();
     if (isset($_GET['want']) and $_GET['want'] == 'logo') {
         $logo = new Logo();
         $logo->Generate();
         return;
     } elseif (isset($_GET['want']) and $_GET['want'] == 'source') {
         $displayManager->DisplaySource();
     } else {
         $displayManager->DisplaySitePage();
     }
 }
Esempio n. 7
0
 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();
 }
Esempio n. 8
0
        DisplayManager::addContent($tabs->getHtml());
        $timeDiff = microtime(true) - $startTime;
        $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", $timeDiff) . " 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);
}
if ($debugConnection) {
    DisplayManager::dumpRequests($debugConnection->getRequests());
}
DisplayManager::setBase(hescape(FajrUtils::basePath()));
echo DisplayManager::display();
session_write_close();
Esempio n. 9
0
 function Run()
 {
     //Load config
     Config::SetInstance(new Config());
     Config::GetInstance()->Load();
     $albumManager = new AlbumManager();
     $album = new Album();
     $album->SetPath(Config::GetInstance()->GetPath());
     LinkManager::SetInstance(new LinkManager());
     LinkManager::GetInstance()->SetAlbum($album);
     $displayManager = new DisplayManager();
     //Create Login Manager
     $loginManager = new LoginManager();
     LoginManager::SetInstance($loginManager);
     $loginManager->Load();
     $loginFail = false;
     if ($loginManager->WantLogin()) {
         $loginFail = !$loginManager->TryLogin();
         if (!$loginFail) {
             header('location: ' . LinkManager::GetInstance()->Generate());
         }
     }
     if ($loginManager->WantLogout()) {
         $loginManager->Logout();
     }
     if (isset($_GET['want']) and $_GET['want'] == 'logo') {
         $logo = new Logo();
         $logo->Generate();
         return;
     } elseif (isset($_GET['want']) and $_GET['want'] == 'source') {
         $displayManager->DisplaySource();
     } elseif (isset($_GET['want']) and $_GET['want'] == 'help') {
         $displayManager->DisplayHelpPage();
     } else {
         if ($loginManager->IsAccessAllowed($album)) {
             $displayManager->DisplayImagesPage($album);
         } else {
             if ($loginManager->IsLogged()) {
                 $displayManager->DisplayAccessRefusedPage($album);
             } else {
                 $displayManager->DisplayLoginPage($album, $loginFail);
             }
         }
     }
 }