Exemple #1
0
 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);
 }