public function main() { $out = ''; $conf = $this->getModule()->getConfigurations(); $file = t3lib_div::getFileAbsFileName($conf->get($this->getConfId() . 'template')); $templateCode = t3lib_div::getURL($file); if (!$templateCode) { return $conf->getLL('msg_template_not_found') . '<br />File: \'' . $file . '\'<br />ConfId: \'' . $this->getConfId() . 'template\''; } $subpart = '###' . strtoupper($this->getFuncId()) . '###'; $template = tx_rnbase_util_Templates::getSubpart($templateCode, $subpart); if (!$template) { return $conf->getLL('msg_subpart_not_found') . ': ' . $subpart; } $start = microtime(TRUE); $memStart = memory_get_usage(); $out .= $this->getContent($template, $conf, $conf->getFormatter(), $this->getModule()->getFormTool()); if (tx_rnbase_util_BaseMarker::containsMarker($out, 'MOD_')) { $markerArr = array(); $memEnd = memory_get_usage(); $markerArr['###MOD_PARSETIME###'] = microtime(TRUE) - $start; $markerArr['###MOD_MEMUSED###'] = $memEnd - $memStart; $markerArr['###MOD_MEMSTART###'] = $memStart; $markerArr['###MOD_MEMEND###'] = $memEnd; $out = tx_rnbase_util_Templates::substituteMarkerArrayCached($out, $markerArr); } return $out; }
function test_containsMarker() { $template = ' <html> Das Spielergebnis: ###MATCH_HOME_NAME### - ###MATCH_GUEST_NAME### ###MATCH_GOALS_HOME_2### : ###MATCH_GOALS_GUEST_2### </html> '; $this->assertTrue(tx_rnbase_util_BaseMarker::containsMarker($template, 'MATCH'), 'Marker MATCH nicht gefunden'); $this->assertTrue(tx_rnbase_util_BaseMarker::containsMarker($template, 'MATCH_HOME'), 'Marker MATCH_HOME nicht gefunden'); $this->assertFalse(tx_rnbase_util_BaseMarker::containsMarker($template, 'MATCH_ERR'), 'Marker MATCH_ERR wurde gefunden'); }
/** * @param string $template HTML template * @param array $markerArray * @param array $subpartArray * @param array $wrappedSubpartArray * @param tx_rnbase_util_FormatUtil $formatter * @param string $confId * @param string $marker * * @return void */ private function insertMarkersForSorting($template, &$markerArray, &$subpartArray, &$wrappedSubpartArray, &$formatter, $confId) { $confId = $this->getConfId() . $this->sortConfId; $configurations = $formatter->getConfigurations(); $sortFields = $this->getAllowedSortFields(); if (!empty($sortFields)) { tx_rnbase::load('tx_rnbase_util_BaseMarker'); $token = md5(microtime()); $markOrders = array(); foreach ($sortFields as $field) { $isField = $field == $this->getSortBy(); // sortOrder ausgeben $markOrders[$field . '_order'] = $isField ? $this->getSortOrder() : ''; $fieldMarker = $this->markerPrefix . '_' . strtoupper($field) . '_LINK'; $makeLink = tx_rnbase_util_BaseMarker::containsMarker($template, $fieldMarker); $makeUrl = tx_rnbase_util_BaseMarker::containsMarker($template, $fieldMarker . 'URL'); // link generieren if ($makeLink || $makeUrl) { // sortierungslinks ausgeben $params = array('sortBy' => $field, 'sortOrder' => $isField && $this->getSortOrder() == 'asc' ? 'desc' : 'asc'); $link = $configurations->createLink(); $link->label($token); $link->initByTS($configurations, $confId . $this->sortLinkConfId, $params); if ($makeLink) { $wrappedSubpartArray['###' . $fieldMarker . '###'] = explode($token, $link->makeTag()); } if ($makeUrl) { $markerArray['###' . $fieldMarker . 'URL###'] = $link->makeUrl(false); } } } // die sortOrders parsen $markOrders = $formatter->getItemMarkerArrayWrapped($markOrders, $confId, 0, $this->markerPrefix . '_', array_keys($markOrders)); $markerArray = array_merge($markerArray, $markOrders); } }
protected function getOuterMarker($marker, $template) { $outerMarker = $marker; $len = strlen($marker) - 1; if ($marker[$len] == 'Y' && !tx_rnbase_util_BaseMarker::containsMarker($template, $marker . 'S###')) { $outerMarker = substr($marker, 0, $len) . 'IE'; } return $outerMarker; }
/** * Erzeugt Marker für das Module Template, * um die Ausgabe der Export funktionen zu implementieren. * Folgende Marker werden erzeugt: * ###EXPORT_BUTTONS### */ public function parseTemplate($template) { tx_rnbase::load('tx_rnbase_util_BaseMarker'); if (!tx_rnbase_util_BaseMarker::containsMarker($template, 'EXPORT_BUTTONS')) { return $template; } $configuration = $this->getConfigurations(); $confId = $this->getConfId() . 'types.'; $buttons = ''; foreach ($this->getExportTypes() as $type) { $buttons .= $this->renderButton($type); } if (!empty($buttons)) { $buttons = $this->getButtonStyles() . $buttons; } $markerArray = array(); $markerArray['###EXPORT_BUTTONS###'] = $buttons; $out = tx_rnbase_util_Templates::substituteMarkerArrayCached($template, $markerArray); return $out; }
/** * render plugin data and additional flexdata * * @param string $templateCode * @param tx_rnbase_configurations $configurations * @return string */ protected function renderPluginData($templateCode, tx_rnbase_configurations $configurations) { // render only, if there is an controller if (!$this->getController()) { return $templateCode; } // check, if there are plugin markers to render if (!tx_rnbase_util_BaseMarker::containsMarker($templateCode, 'PLUGIN_')) { return $templateCode; } $confId = $this->getController()->getConfId(); $markerArray = array(); // build the data to render $pluginData = array_merge((array) $configurations->getCObj()->data, $configurations->getExploded($confId . 'plugin.flexdata.')); // check for unused columns $ignoreColumns = tx_rnbase_util_BaseMarker::findUnusedCols($pluginData, $templateCode, 'PLUGIN'); // create the marker array with the parsed columns $markerArray = $configurations->getFormatter()->getItemMarkerArrayWrapped($pluginData, $confId . 'plugin.', $ignoreColumns, 'PLUGIN_'); return tx_rnbase_util_BaseMarker::substituteMarkerArrayCached($templateCode, $markerArray); }