1<?php 2namespace TYPO3\CMS\Frontend\ContentObject; 3 4/* 5 * This file is part of the TYPO3 CMS project. 6 * 7 * It is free software; you can redistribute it and/or modify it under 8 * the terms of the GNU General Public License, either version 2 9 * of the License, or any later version. 10 * 11 * For the full copyright and license information, please read the 12 * LICENSE.txt file that was distributed with this source code. 13 * 14 * The TYPO3 project - inspiring people to share! 15 */ 16 17use TYPO3\CMS\Core\TimeTracker\TimeTracker; 18use TYPO3\CMS\Core\Utility\GeneralUtility; 19 20/** 21 * Contains COA class object. 22 */ 23class ContentObjectArrayContentObject extends AbstractContentObject 24{ 25 /** 26 * Rendering the cObject, COBJ_ARRAY / COA 27 * 28 * @param array $conf Array of TypoScript properties 29 * @return string Output 30 */ 31 public function render($conf = []) 32 { 33 if (empty($conf)) { 34 $this->getTimeTracker()->setTSlogMessage('No elements in this content object array (COBJ_ARRAY, COA).', 2); 35 return ''; 36 } 37 if (!empty($conf['if.']) && !$this->cObj->checkIf($conf['if.'])) { 38 return ''; 39 } 40 41 $content = $this->cObj->cObjGet($conf); 42 $wrap = isset($conf['wrap.']) ? $this->cObj->stdWrap($conf['wrap'], $conf['wrap.']) : $conf['wrap']; 43 if ($wrap) { 44 $content = $this->cObj->wrap($content, $wrap); 45 } 46 if (isset($conf['stdWrap.'])) { 47 $content = $this->cObj->stdWrap($content, $conf['stdWrap.']); 48 } 49 return $content; 50 } 51 52 /** 53 * @return TimeTracker 54 */ 55 protected function getTimeTracker() 56 { 57 return GeneralUtility::makeInstance(TimeTracker::class); 58 } 59} 60