/** * Returns a TYPO3 sprite icon * * @param string $iconName * @param array $options * @param array $overlays * * @return string The full HTML tag (usually a <span>) */ public static function getSpriteIcon($iconName, array $options = array(), array $overlays = array()) { return Tx_Rnbase_Backend_Utility_Icons::getSpriteIcon($iconName, $options, $overlays); }
/** * Create the panel of buttons for submitting the form or otherwise perform operations. * * @return array all available buttons as an assoc. array */ function getButtons() { global $BACK_PATH, $BE_USER; $buttons = array('csh' => '', 'view' => '', 'record_list' => '', 'shortcut' => ''); // TODO: CSH $buttons['csh'] = Tx_Rnbase_Backend_Utility::cshItem('_MOD_' . $this->MCONF['name'], '', $GLOBALS['BACK_PATH'], '', TRUE); if ($this->id && is_array($this->pageinfo)) { // View page $buttons['view'] = '<a href="#" onclick="' . htmlspecialchars(Tx_Rnbase_Backend_Utility::viewOnClick($this->pageinfo['uid'], $BACK_PATH, Tx_Rnbase_Backend_Utility::BEgetRootLine($this->pageinfo['uid']))) . '">' . '<img' . Tx_Rnbase_Backend_Utility_Icons::skinImg($BACK_PATH, 'gfx/zoom.gif') . ' title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.showPage', 1) . '" hspace="3" alt="" />' . '</a>'; // Shortcut if ($BE_USER->mayMakeShortcut()) { $buttons['shortcut'] = $this->getDoc()->makeShortcutIcon('id, edit_record, pointer, new_unique_uid, search_field, search_levels, showLimit', implode(',', array_keys($this->MOD_MENU)), $this->MCONF['name']); } // If access to Web>List for user, then link to that module. if ($BE_USER->check('modules', 'web_list')) { $href = $BACK_PATH . 'db_list.php?id=' . $this->pageinfo['uid'] . '&returnUrl=' . rawurlencode(tx_rnbase_util_Misc::getIndpEnv('REQUEST_URI')); $buttons['record_list'] = '<a href="' . htmlspecialchars($href) . '">' . '<img' . Tx_Rnbase_Backend_Utility_Icons::skinImg($BACK_PATH, 'gfx/list.gif') . ' title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.showList', 1) . '" alt="" />' . '</a>'; } } return $buttons; }
/** * Liefert einen Sortierungslink für das gegebene Feld * @param string $sSortField * @return string */ public function createSortLink($sSortField, $sLabel) { //das ist aktuell gesetzt $sCurrentSortField = tx_rnbase_parameters::getPostOrGetParameter('sortField'); $sCurrentSortRev = tx_rnbase_parameters::getPostOrGetParameter('sortRev'); //wir verweisen immer auf die aktuelle Seite //es kann aber schon ein sort parameter gesetzt sein //weshalb wir alte entfernen $sUrl = preg_replace('/&sortField=.*&sortRev=[^&]*/', '', tx_rnbase_util_Misc::getIndpEnv('TYPO3_REQUEST_URL')); //sort richtung rausfinden //beim initialen Aufruf (spalte noch nicht geklickt) wird immer aufsteigend sortiert if ($sCurrentSortField != $sSortField) { $sSortRev = 'asc'; } else { //sonst das gegenteil vom aktuellen $sSortRev = $sCurrentSortRev == 'desc' ? 'asc' : 'desc'; } //prüfen ob Parameter mit ? oder & angehängt werden müssen $sAddParamsWith = strstr($sUrl, '?') ? '&' : '?'; //jetzt setzen wir den aktuellen Sort parameter zusammen $sSortUrl = $sUrl . $sAddParamsWith . 'sortField=' . $sSortField . '&sortRev=' . $sSortRev; //noch den Pfeil für die aktuelle Sortierungsrichtung ggf. einblenden $sSortArrow = $sCurrentSortField == $sSortField ? '<img' . Tx_Rnbase_Backend_Utility_Icons::skinImg($GLOBALS['BACK_PATH'], 'gfx/red' . ($sSortRev == 'asc' ? 'up' : 'down') . '.gif', 'width="7" height="4"') . ' alt="" />' : ''; return '<a href="' . htmlspecialchars($sSortUrl) . '">' . $sLabel . $sSortArrow . '</a>'; }
/** * * @param array $entry * @param array $columns * @param tx_rnbase_util_FormTool $formTool * @param Tx_Rnbase_Domain_Model_DataInterface $options * @return array */ protected static function prepareRow($entry, $columns, $formTool, $options) { $record = $entry; if ($entry instanceof Tx_Rnbase_Domain_Model_DataInterface) { $record = $entry->getProperty(); } if ($entry instanceof Tx_Rnbase_Domain_Model_RecordInterface) { $record = $entry->getRecord(); } $row = array(); if ($options->getCheckbox() !== NULL) { $checkName = $options->getCheckboxname() ? $options->getCheckboxname() : 'checkEntry'; $dontcheck = is_array($options->getDontcheck()) ? $options->getDontcheck() : array(); // Check if entry is checkable if (!array_key_exists($record['uid'], $dontcheck)) { $row[] = $formTool->createCheckbox($checkName . '[]', $record['uid']); } else { $row[] = '<img' . Tx_Rnbase_Backend_Utility_Icons::skinImg($GLOBALS['BACK_PATH'], 'gfx/zoom2.gif', 'width="11" height="12"') . ' title="Info: ' . $dontcheck[$record['uid']] . '" border="0" alt="" />'; } } if ($options->getAddRecordSprite()) { $spriteIconName = 'mimetypes-other-other'; if ($entry instanceof Tx_Rnbase_Domain_Model_RecordInterface && $entry->getTableName()) { $spriteIconName = Tx_Rnbase_Backend_Utility_Icons::mapRecordTypeToSpriteIconName($entry->getTableName(), $record); } $row[] = tx_rnbase_mod_Util::getSpriteIcon($spriteIconName); } reset($columns); foreach ($columns as $column => $data) { // Hier erfolgt die Ausgabe der Daten für die Tabelle. Wenn eine method angegeben // wurde, dann muss das Entry als Objekt vorliegen. Es wird dann die entsprechende // Methode aufgerufen. Es kann auch ein Decorator-Objekt gesetzt werden. Dann wird // von diesem die Methode format aufgerufen und der Wert, sowie der Name der aktuellen // Spalte übergeben. Ist nichts gesetzt wird einfach der aktuelle Wert verwendet. if (isset($data['method'])) { $row[] = call_user_func(array($entry, $data['method'])); } elseif (isset($data['decorator'])) { $decor = $data['decorator']; $row[] = $decor->format($record[$column], $column, $record, $entry); } else { $row[] = $record[$column]; } } if ($options->getLinker()) { $row[] = self::addLinker($options, $entry, $formTool); } return $row; }