Пример #1
0
 public function getHtml()
 {
     $id = DisplayManager::getUniqueHTMLId('collapsible');
     $html = '<div class="collapsible" id="' . $id . '"' . "\n";
     $html .= '<div class="collapsibleheader togglevisibility" onclick=\'toggleVisibility("' . $id . '");\' >';
     $html .= $this->title->getHtml() . '</div>' . "\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;
 }
Пример #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;
 }
Пример #3
0
 public function runLogic(Trace $trace, HttpConnection $connection)
 {
     $serverConnection = new AIS2ServerConnection($connection, new AIS2ServerUrlMap(FajrConfig::get('AIS2.ServerName')));
     $timer = new SystemTimer();
     if (Input::get('logout') !== null) {
         FajrUtils::logout($serverConnection);
         // TODO(anty): fix this in a better way
         if (FajrConfig::get('Login.Type') == 'cosign') {
             // location header set in CosignProxyLogin
             // but we can't exit there because
             // the session wouldn't get dropped
             exit;
         }
         FajrUtils::redirect(array(), 'index.php');
     }
     $loggedIn = FajrUtils::isLoggedIn($serverConnection);
     $cosignLogin = $this->provideLogin();
     if (!$loggedIn && $cosignLogin != null) {
         FajrUtils::login($trace->addChild("logging in"), $cosignLogin, $serverConnection);
         $loggedIn = true;
     }
     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>');
         $screenFactory = new VSES017\VSES017_factory($serverConnection);
         $adminStudia = $screenFactory->newAdministraciaStudiaScreen($trace);
         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 = $screenFactory->newTerminyHodnoteniaScreen($trace, $adminStudia->getZapisnyListIdFromZapisnyListIndex($trace, Input::get('list')), $adminStudia->getStudiumIdFromZapisnyListIndex($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 = $screenFactory->newHodnoteniaPriemeryScreen($trace, $adminStudia->getZapisnyListIdFromZapisnyListIndex($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 " . $this->statsConnection->getTotalCount() . " requests and downloaded " . $this->rawStatsConnection->getTotalSize() . " bytes (" . $this->statsConnection->getTotalSize() . " bytes uncompressed) of data from AIS2 in " . sprintf("%.3f", $this->statsConnection->getTotalTime()) . " seconds. It took " . sprintf("%.3f", $timer->getElapsedTime()) . " seconds to generate this page.</div>";
         DisplayManager::addContent($statistics);
     } else {
         if (FajrConfig::get('Login.Type') == 'password') {
             DisplayManager::addContent('loginBox', true);
         } else {
             if (FajrConfig::get('Login.Type') == 'cosign') {
                 DisplayManager::addContent('cosignLoginBox', true);
             } else {
                 throw new Exception('Nespravna hodnota konfiguracnej volby Login.Type');
             }
         }
         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);
     }
 }
Пример #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;
 }
Пример #5
0
 * Wrong www root detection.
 */
if (!defined('_FAJR')) {
    die('<html><head>' . '<title>Varovanie</title>' . '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />' . '</head><body>' . '<h1>Varovanie</h1>' . '<p>Máte zle nastavený server, tento súbor by nemal byť ' . 'priamo prístupný. Prosím nastavte server tak, aby sa dalo ' . 'dostať len k podadresáru <code>web</code> a použite ' . '<code>index.php</code> v ňom</p>' . '</body></html>');
}
// TODO(ppershing): create helper objects and configuration modules for these constants
error_reporting(E_ALL | E_STRICT);
date_default_timezone_set('Europe/Bratislava');
mb_internal_encoding("UTF-8");
// register Symfony autoloader first, because ours will eat the loading instead.
require_once '../third_party/symfony_di/lib/sfServiceContainerAutoloader.php';
sfServiceContainerAutoloader::register();
// register our autoloader
require_once 'libfajr/libfajr.php';
Loader::register();
Loader::searchForClasses(dirname(__FILE__), true);
// TODO(ppershing): move this to libfajr/Loader.php as that is the right place for it
require_once 'libfajr/Assert.php';
// is there configuration.php file present?
if (!FajrConfig::isConfigured()) {
    DisplayManager::addContent('notConfigured', true);
    echo DisplayManager::display();
    session_write_close();
    die;
}
// bootstrapping whole application
$modules = array(new SessionInitializerModule(), new TraceModule());
$injector = new Injector($modules);
$fajr = new Fajr($injector);
$fajr->run();
session_write_close();