public function getHtml() { $trace = $this->trace->addChild("HodnoteniaCallback"); $hodnotenia = $this->app->getHodnotenia($trace); $hodnoteniaTable = new Table(TableDefinitions::hodnotenia()); $priemeryCalculator = new PriemeryCalculator(); foreach (Sorter::sort($hodnotenia->getData(), array("semester" => -1, "nazov" => 1)) as $row) { if ($row['semester'] == 'L') { $class = 'leto'; $priemeryCalculator->add(PriemeryCalculator::SEMESTER_LETNY, $row['znamka'], $row['kredit']); } else { $class = 'zima'; $priemeryCalculator->add(PriemeryCalculator::SEMESTER_ZIMNY, $row['znamka'], $row['kredit']); } $hodnoteniaTable->addRow($row, array('class' => $class)); } $hodnoteniaCollapsible = new Collapsible(new HtmlHeader('Hodnotenia'), $hodnoteniaTable); $priemery = $this->app->getPriemery($trace); $priemeryTable = new Table(TableDefinitions::priemery()); $priemeryTable->addRows($priemery->getData()); $priemeryContainer = new Container(); $priemeryContainer->addChild(new Label('Nasledovné priemery sú prebraté z AISu, čiže to (ne)funguje presne rovnako:')); $priemeryContainer->addChild($priemeryTable); if ($priemeryCalculator->hasPriemer()) { $priemeryFajrText = '<p><br />Nasledovné vážené študijné priemery sú počítané Fajrom priebežne z tabuľky Hodnotenia, <strong>preto nemôžu byť považované ako oficiálne</strong>:<br /><br />'; $priemeryFajrText .= $priemeryCalculator->getHtml(); $priemeryFajrText .= '</p>'; $priemeryContainer->addChild(new Label($priemeryFajrText)); } $priemeryCollapsible = new Collapsible(new HtmlHeader('Priemery'), $priemeryContainer); return $hodnoteniaCollapsible->getHtml() . $priemeryCollapsible->getHtml(); }
public function getHtml() { $predmetyZapisnehoListu = $this->skusky->getPredmetyZapisnehoListu(); $predmetyZapisnehoListuTable = new Table(TableDefinitions::predmetyZapisnehoListu()); $predmetyZapisnehoListuCollapsible = new Collapsible('Predmety zápisného listu', $predmetyZapisnehoListuTable); $kreditovCelkomLeto = 0; $kreditovCelkomZima = 0; $pocetPredmetovLeto = 0; $pocetPredmetovZima = 0; foreach (Sorter::sort($predmetyZapisnehoListu->getData(), array("semester" => -1, "nazov" => 1)) as $row) { if ($row['semester'] == 'L') { $pocetPredmetovLeto += 1; $kreditovCelkomLeto += $row['kredit']; $class = 'leto'; } else { $pocetPredmetovZima += 1; $kreditovCelkomZima += $row['kredit']; $class = 'zima'; } $predmetyZapisnehoListuTable->addRow($row, array('class' => $class)); } $pocetPredmetovText = 'Celkom '; $pocetPredmetovText .= FajrUtils::formatPlural($pocetPredmetovLeto + $pocetPredmetovZima, '0 predmetov', '1 predmet', '%d predmety', '%d predmetov'); if ($pocetPredmetovLeto > 0 && $pocetPredmetovZima > 0) { $pocetPredmetovText .= sprintf(' (%d v zime, %d v lete)', $pocetPredmetovZima, $pocetPredmetovLeto); } $kreditovCelkomText = '' . ($kreditovCelkomLeto + $kreditovCelkomZima); if ($kreditovCelkomLeto > 0 && $kreditovCelkomZima > 0) { $kreditovCelkomText .= sprintf(' (%d+%d)', $kreditovCelkomZima, $kreditovCelkomLeto); } $predmetyZapisnehoListuTable->addFooter(array('nazov' => $pocetPredmetovText, 'kredit' => $kreditovCelkomText), array()); $predmetyZapisnehoListuTable->setUrlParams(array('studium' => Input::get('studium'), 'list' => Input::get('list'))); return $predmetyZapisnehoListuTable->getHtml(); }
/** * Display directory listing */ public static function display() { Sorter::sort(Listing::$files); $content = '<!DOCTYPE html>'; $content .= sprintf(' <html xmlns="http://www.w3.org/1999/xhtml" lang="%s">', Translation::getCanonicalLocale()); $content .= ' <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>' . sprintf(Translation::trans('index_of'), Main::getDir()) . '</title>'; $content .= static::getStyle(); $content .= ' </head> <body>'; $content .= static::getTitle(); $content .= ' <table align="center">'; $content .= static::getHeader(); foreach (Listing::$files as $file) { $content .= static::getRow($file); } $content .= static::getFooter(); $content .= ' </table>'; $content .= ' </body> </html>'; die($content); }
/** * @dataProvider sortValues */ public function testNumbersAreSortedCorrectly($unsorted, $sorted) { $this->assertSame($sorted, Sorter::sort($unsorted)); }
/** * Currency overview * * @global array $_CORELANG * @global array $_ARRAYLANG * @global object $objDatabase * @global object $objJs * @return true */ public function currencyoverview() { global $_CORELANG, $_ARRAYLANG, $objDatabase, $objJs; $fn = isset($_REQUEST['fn']) ? $_REQUEST['fn'] : ''; if (!empty($fn)) { switch ($fn) { case 'editcurrency': $this->editCurrency(); break; } return; } $this->_objTpl->addBlockfile('CRM_SETTINGS_FILE', 'settings_block', 'module_' . $this->moduleNameLC . '_settings_currency.html'); $this->_pageTitle = $_ARRAYLANG['TXT_CRM_SETTINGS']; if (isset($_POST['currency_submit'])) { $this->addCurrency(); } $this->_objTpl->setGlobalVariable(array('MODULE_NAME' => $this->moduleName)); if (!isset($_GET['mes'])) { $_GET['mes'] = ''; } switch ($_GET['mes']) { case 'updatecurrency': $this->_strOkMessage = $_ARRAYLANG['TXT_CRM_CURRENCY_UPDATED_SUCCESSFULLY']; break; case 'changesupdate': $this->_strOkMessage = $_ARRAYLANG['TXT_CRM_CHANGES_UPDATED_SUCCESSFULLY']; break; } if (!empty($this->_strErrMessage)) { $this->_objTpl->setVariable(array('TXT_DISPLAY_ADD' => "block", 'TXT_DISPLAY_ENTRIES' => "none", 'TXT_DESCRIPTION_VALUE' => $_SESSION['description'])); unset($_SESSION['description']); } else { $this->_objTpl->setVariable(array('TXT_DISPLAY_ADD' => "none", 'TXT_DISPLAY_ENTRIES' => "block")); } //sort if (isset($_GET['chg']) and $_GET['chg'] == 1) { for ($x = 0; $x < count($_POST['form_id']); $x++) { $query = "UPDATE " . DBPREFIX . "module_" . $this->moduleNameLC . "_currency\n SET pos = '" . intval($_POST['form_pos'][$x]) . "'\n WHERE id = '" . intval($_POST['form_id'][$x]) . "'"; $objDatabase->Execute($query); } $_SESSION['strOkMessage'] = $_ARRAYLANG['TXT_CRM_PROJECTSTATUS_SORTING_COMPLETE']; } if (isset($_POST['currencyfield_submit'])) { for ($x = 0; $x < count($_POST['form_id']); $x++) { $default = $_POST['form_id'][$x] == $_POST['default'] ? 1 : 0; $query = "UPDATE " . DBPREFIX . "module_" . $this->moduleNameLC . "_currency\n SET pos = '" . intval($_POST['form_pos'][$x]) . "',\n default_currency = '" . intval($default) . "'\n WHERE id = '" . intval($_POST['form_id'][$x]) . "'"; $objDatabase->Execute($query); $_SESSION['strOkMessage'] = $_ARRAYLANG['TXT_CRM_CHANGES_UPDATED_SUCCESSFULLY']; } } $sortField = isset($_GET['sortf']) ? intval($_GET['sortf']) : 0; $sortOrder = isset($_GET['sorto']) ? intval($_GET['sorto']) : 1; $customerFields = array('pos', 'name', 'id', 'active'); $currencyeOverview = array(); $numeric = array('pos'); $key = 0; $objData = $objDatabase->Execute('SELECT id, name, active, pos, default_currency FROM `' . DBPREFIX . 'module_' . $this->moduleNameLC . '_currency`'); $row = "row2"; if ($objData->fields['id'] == null) { $this->_objTpl->setVariable(array('TXT_CRM_CONTAINS_NO_RECORDS' => $_ARRAYLANG['TXT_CRM_CONTAINS_NO_RECORDS'], 'TXT_DISPLAY_SELECT_ACTION' => "none")); $this->_objTpl->parse('showNoEntries'); } else { while (!$objData->EOF) { $currencyeOverview[$key] = array('pos' => $objData->fields['pos'], 'name' => trim($objData->fields['name']), 'id' => $objData->fields['id'], 'active' => $objData->fields['active'], 'default' => $objData->fields['default_currency']); $key++; $objData->MoveNext(); } $sorting = new Sorter(); $sorting->backwards = empty($sortOrder); $sorting->numeric = in_array($customerFields[$sortField], $numeric); $currencyeOverview = $sorting->sort($currencyeOverview, $customerFields[$sortField], $customerFields[2]); foreach ($currencyeOverview as $key => $currency) { $activeImage = $currencyeOverview[$key]['active'] ? "../core/Core/View/Media/icons/led_green.gif" : "../core/Core/View/Media/icons/led_red.gif"; $activeTitle = $currencyeOverview[$key]['active'] ? $_ARRAYLANG['TXT_CRM_ACTIVE'] : $_ARRAYLANG['TXT_CRM_INACTIVE']; $this->_objTpl->setVariable(array('TXT_CURRENCY_NAME' => contrexx_raw2xhtml($currency['name']), 'TXT_CURRENCY_ID' => $currency['id'], 'TXT_CURRENCY_ACTIVE_IMAGE' => $activeImage, 'TXT_CURRENCY_ACTIVE_TITLE' => $activeTitle, 'TXT_CURRENCY_POS' => $currency['pos'], 'TXT_CURRENCY_ACTIVE' => $currency['active'], 'TXT_CURRENCY_DEFAULT' => $currency['default'] == '1' ? 'checked' : '', 'TXT_CRM_IMAGE_EDIT' => $_ARRAYLANG['TXT_EDIT'], 'TXT_CRM_IMAGE_DELETE' => $_ARRAYLANG['TXT_DELETE'], 'ENTRY_ROWCLASS' => $row = $row == "row1" ? "row2" : "row1")); $this->_objTpl->parse('currency_entries'); $objData->MoveNext(); } } // Hourly rate $hrlyRate = array(); $objResult = $objDatabase->Execute('SELECT id,label FROM ' . DBPREFIX . 'module_' . $this->moduleNameLC . '_customer_types WHERE active!="0" ORDER BY pos,label'); while (!$objResult->EOF) { $this->_objTpl->setVariable(array('CRM_CUSTOMER_TYPE' => contrexx_raw2xhtml($objResult->fields['label']), 'CRM_CUSTOMERTYPE_ID' => (int) $objResult->fields['id'], 'PM_CURRENCY_HOURLY_RATE' => !empty($hrlyRate[$objResult->fields['id']]) ? intval($hrlyRate[$objResult->fields['id']]) : 0)); $this->_objTpl->parse("hourlyRate"); $objResult->MoveNext(); } $settings = $this->getSettings(); $settings['allow_pm'] ? $this->_objTpl->touchBlock("show-rates") : $this->_objTpl->hideBlock("show-rates"); $this->_objTpl->setVariable(array('PM_CURRENCY_ORDER_SORT' => '&sortf=0&sorto=' . ($sortOrder ? 0 : 1), 'PM_CURRENCY_NAME_SORT' => '&sortf=1&sorto=' . ($sortOrder ? 0 : 1), 'TXT_CRM_CURRENCY' => $_ARRAYLANG['TXT_CRM_CURRENCY'], 'TXT_CRM_ADD_CURRENCY' => $_ARRAYLANG['TXT_CRM_ADD_CURRENCY'], 'TXT_CRM_TITLE_STATUS' => $_ARRAYLANG['TXT_CRM_TITLE_STATUS'], 'TXT_CRM_NAME' => $_ARRAYLANG['TXT_CRM_LABEL'], 'TXT_CRM_SAVE' => $_ARRAYLANG['TXT_CRM_SAVE'], 'TXT_CRM_NOTES' => $_ARRAYLANG['TXT_CRM_NOTES'], 'TXT_CRM_SORTING' => $_ARRAYLANG['TXT_CRM_SORTING'], 'TXT_CRM_SORTING_NUMBER' => $_ARRAYLANG['TXT_CRM_SORTING_NUMBER'], 'TXT_CRM_ACTIVATESELECTED' => $_ARRAYLANG['TXT_CRM_ACTIVATESELECTED'], 'TXT_CRM_DEACTIVATESELECTED' => $_ARRAYLANG['TXT_CRM_DEACTIVATESELECTED'], 'TXT_CRM_TITLEACTIVE' => $_ARRAYLANG['TXT_CRM_TITLEACTIVE'], 'TXT_CRM_FUNCTIONS' => $_ARRAYLANG['TXT_CRM_FUNCTIONS'], 'TXT_CRM_SELECT_ALL' => $_ARRAYLANG['TXT_CRM_SELECT_ALL'], 'TXT_CRM_PROJECTSTATUS_SAVE_SORTING' => $_ARRAYLANG['TXT_CRM_PROJECTSTATUS_SAVE_SORTING'], 'TXT_CRM_DESELECT_ALL' => $_ARRAYLANG['TXT_CRM_REMOVE_SELECTION'], 'TXT_CRM_SELECT_ACTION' => $_ARRAYLANG['TXT_CRM_SELECT_ACTION'], 'TXT_CRM_DELETE_SELECTED' => $_ARRAYLANG['TXT_CRM_DELETE_SELECTED'], 'TXT_CRM_CUSTOMER_TYPES' => $_ARRAYLANG['TXT_CRM_CUSTOMER_TYPES'], 'TXT_CRM_GENERAL' => $_ARRAYLANG['TXT_CRM_GENERAL'], 'TXT_CRM_CURRENCY_RATES' => $_ARRAYLANG['TXT_CRM_CURRENCY_RATES'], 'TXT_CRM_HOURLY_RATE' => $_ARRAYLANG['TXT_CRM_HOURLY_RATE'], 'TXT_CRM_DEFAULT' => $_ARRAYLANG['TXT_CRM_DEFAULT'], 'PM_SETTINGS_CURRENCY_JAVASCRIPT' => $objJs->getAddCurrencyJavascript())); }
/** * Hook callback for <sort> * * @param string $input Input text * @param array $args Tag arguments * @param Parser $parser Parent parser * @return string */ function efRenderSort($input, $args, &$parser) { $sorter = new Sorter($parser); $sorter->loadSettings($args); return $sorter->sort($input); }