/**
  * Renders a content object
  *
  * @param	string		The content object name, eg. "CANVAS" or "PLOTAREA" or "LEGEND"
  * @param	array		The array with TypoScript properties for the content object
  * @param	object		Reference object.
  * @return	object		The object
  */
 private function cObjGetSingle($strCobjName, $arrConf, &$objRef)
 {
     $objEmpty = NULL;
     $strCobjName = trim($strCobjName);
     if (substr($strCobjName, 0, 1) == '<') {
         $strKey = trim(substr($strCobjName, 1));
         $objTSparser = tx_rnbase::makeInstance(tx_rnbase_util_Typo3Classes::getTypoScriptParserClass());
         $arrOldConf = $arrConf;
         list($strCobjName, $arrConf) = $objTSparser->getVal($strKey, $GLOBALS['TSFE']->tmpl->setup);
         if (is_array($arrOldConf) && count($arrOldConf)) {
             $conf = $this->joinTSarrays($arrConf, $arrOldConf);
         }
         $GLOBALS['TT']->incStackPointer();
         $objOutput =& $this->cObjGetSingle($strCobjName, $arrConf, $objEmpty);
         $GLOBALS['TT']->decStackPointer();
     } else {
         switch ($strCobjName) {
             case 'PLOTAREA':
                 $objOutput =& $this->PLOTAREA($arrConf);
                 break;
             case 'AXIS_MARKER':
                 $this->AXIS_MARKER($objRef, $arrConf);
                 break;
                 // Types of charts
             // Types of charts
             case 'LINE':
             case 'AREA':
             case 'BAR':
             case 'BOXWHISKER':
             case 'CANDLESTICK':
             case 'SMOOTH_LINE':
             case 'SMOOTH_AREA':
             case 'ODO':
             case 'PIE':
             case 'RADAR':
             case 'STEP':
             case 'IMPULSE':
             case 'DOT':
             case 'SCATTER':
             case 'BAND':
             case 'SMOOTH_RADAR':
             case 'FIT_LINE':
                 $this->PLOT($strCobjName, $objRef, $arrConf);
                 break;
                 // Data
             // Data
             case 'DATASET':
                 $objOutput = self::DATASET($arrConf);
                 // ??
                 break;
             case 'RANDOM':
                 $objOutput = self::RANDOM($arrConf);
                 // ??
                 break;
             case 'FUNCTION':
                 $objOutput = self::FUNCTIO($arrConf);
                 // ??
                 break;
             case 'VECTOR':
                 $objOutput = self::VECTOR($arrConf);
                 // ??
                 break;
                 // Axis
             // Axis
             case 'CATEGORY':
                 $objOutput = self::CATEGORY($arrConf);
                 // ??
                 break;
             case 'AXIS':
                 $objOutput = self::AXIS($arrConf);
                 // ??
                 break;
             case 'AXIS_LOG':
                 $objOutput = self::AXIS_LOG($arrConf);
                 // ??
                 break;
                 // Title
             // Title
             case 'TITLE':
                 $objOutput = $this->TITLE($arrConf);
                 break;
                 // Grids
             // Grids
             case 'GRID':
                 $this->GRID($objRef, $arrConf);
                 break;
                 // Various
             // Various
             case 'LEGEND':
                 $objOutput = $this->LEGEND($objRef, $arrConf);
                 break;
                 // Layout
             // Layout
             case 'VERTICAL':
             case 'HORIZONTAL':
                 $objOutput = $this->VERT_HOR($arrConf, $strCobjName);
                 break;
             case 'MATRIX':
                 $objOutput = $this->MATRIX($arrConf);
                 break;
         }
     }
     return $objOutput;
 }
 private function mergeTSReference($value, $conf)
 {
     if (substr($value, 0, 1) != '<') {
         return $conf;
     }
     // das < abschneiden, um den pfad zum link zu erhalten
     $key = trim(substr($value, 1));
     $tsParser = tx_rnbase::makeInstance(tx_rnbase_util_Typo3Classes::getTypoScriptParserClass());
     // $name and $conf is loaded with the referenced values.
     list($linkValue, $linkConf) = $tsParser->getVal($key, $GLOBALS['TSFE']->tmpl->setup);
     // Konfigurationen mergen
     if (is_array($conf) && count($conf)) {
         $linkConf = self::joinTSarrays($linkConf, $conf);
     }
     // auf rekursion hin prüfen
     $linkConf = $this->mergeTSReference($linkValue, $linkConf);
     return $linkConf;
 }
Ejemplo n.º 3
0
 /**
  *
  * @return \TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser
  */
 private static function getTsParser()
 {
     return tx_rnbase::makeInstance(tx_rnbase_util_Typo3Classes::getTypoScriptParserClass());
 }