/** * 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; }
/** * * @return \TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser */ private static function getTsParser() { return tx_rnbase::makeInstance(tx_rnbase_util_Typo3Classes::getTypoScriptParserClass()); }