/** * Gets the raw content as configured - a certain value or database field. * * @param TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer $contentObject The original content object * @param array $configuration content object configuration * @return string The raw content */ protected function getRawContent($contentObject, $configuration) { $content = ''; if (isset($configuration['value'])) { $content = $configuration['value']; unset($configuration['value']); } if (!empty($configuration)) { $content = $contentObject->stdWrap($content, $configuration); } return $content; }
/** * @test */ public function renderWorksWithNestedFluidtemplate() { /** @var $tsfe \TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController */ $tsfe = $this->getMock(\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::class, array(), array(), '', false); $GLOBALS['TSFE'] = $tsfe; $configuration = array('10' => 'FLUIDTEMPLATE', '10.' => array('template' => 'TEXT', 'template.' => array('value' => 'A{anotherFluidTemplate}C'), 'variables.' => array('anotherFluidTemplate' => 'FLUIDTEMPLATE', 'anotherFluidTemplate.' => array('template' => 'TEXT', 'template.' => array('value' => 'B'))))); $expectedResult = 'ABC'; $contentObjectRenderer = new \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer(); $contentObjectRenderer->setContentObjectClassMap(array('FLUIDTEMPLATE' => FluidTemplateContentObject::class, 'TEXT' => TextContentObject::class)); $fluidTemplateContentObject = new \TYPO3\CMS\Frontend\ContentObject\ContentObjectArrayContentObject($contentObjectRenderer); $result = $fluidTemplateContentObject->render($configuration); $this->assertEquals($expectedResult, $result); }
/** * Executes the SOLR_MULTIVALUE content object. * * Turns a list of values into an array that can then be used to fill * multivalued fields in a Solr document. The array is returned in * serialized form as content objects are expected to return strings. * * @param string $name content object name 'SOLR_MULTIVALUE' * @param array $configuration for the content object, expects keys 'separator' and 'field' * @param string $TyposcriptKey not used * @param TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer $contentObject parent cObj * @return string serialized array representation of the given list */ public function cObjGetSingleExt($name, array $configuration, $TyposcriptKey, $contentObject) { $data = ''; if (isset($configuration['value'])) { $data = $configuration['value']; unset($configuration['value']); } if (!empty($configuration)) { $data = $contentObject->stdWrap($data, $configuration); } if (!array_key_exists('separator', $configuration)) { $configuration['separator'] = ','; } $removeEmptyValues = TRUE; if (isset($configuration['removeEmptyValues']) && $configuration['removeEmptyValues'] == 0) { $removeEmptyValues = FALSE; } $listAsArray = GeneralUtility::trimExplode($configuration['separator'], $data, $removeEmptyValues); if (!empty($configuration['removeDuplicateValues'])) { $listAsArray = array_unique($listAsArray); } return serialize($listAsArray); }
/** * * @param \TYPO3\CMS\Cal\Controller\Controller $controller */ public static function initRegistry(&$controller) { $myCobj =& \TYPO3\CMS\Cal\Utility\Registry::Registry('basic', 'cobj'); $myCobj = $controller->cObj; $controller->cObj =& $myCobj; $myConf =& \TYPO3\CMS\Cal\Utility\Registry::Registry('basic', 'conf'); $myConf = $controller->conf; $controller->conf =& $myConf; $myController =& \TYPO3\CMS\Cal\Utility\Registry::Registry('basic', 'controller'); $myController = $controller; $controller =& $myController; // besides of the regular cObj we provide a localCobj, whos data can be overridden with custom data for a more flexible rendering of TSObjects $local_cObj =& \TYPO3\CMS\Cal\Utility\Registry::Registry('basic', 'local_cobj'); $local_cObj = new \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer(); $local_cObj->start(array()); $cache =& \TYPO3\CMS\Cal\Utility\Registry::Registry('basic', 'cache'); $cache = array(); $controller->local_cObj =& $local_cObj; }
/** * @return \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper */ protected function createInstance() { $className = $this->getViewHelperClassName(); /** @var \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper $instance */ $instance = $this->objectManager->get($className); if (TRUE === method_exists($instance, 'injectConfigurationManager')) { $cObject = new \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer(); $cObject->start(array(), 'tt_content'); /** @var \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface $configurationManager */ $configurationManager = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManagerInterface'); $configurationManager->setContentObject($cObject); $instance->injectConfigurationManager($configurationManager); } $instance->initialize(); return $instance; }