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 17/** 18 * Contains CASE class object. 19 */ 20class CaseContentObject extends AbstractContentObject 21{ 22 /** 23 * Rendering the cObject, CASE 24 * 25 * @param array $conf Array of TypoScript properties 26 * @return string Output 27 */ 28 public function render($conf = []) 29 { 30 if (!empty($conf['if.']) && !$this->cObj->checkIf($conf['if.'])) { 31 return ''; 32 } 33 34 $setCurrent = isset($conf['setCurrent.']) 35 ? $this->cObj->stdWrap($conf['setCurrent'] ?? '', $conf['setCurrent.']) 36 : ($conf['setCurrent'] ?? null); 37 if ($setCurrent) { 38 $this->cObj->data[$this->cObj->currentValKey] = $setCurrent; 39 } 40 $key = isset($conf['key.']) ? $this->cObj->stdWrap($conf['key'], $conf['key.']) : $conf['key']; 41 $key = isset($conf[$key]) && (string)$conf[$key] !== '' ? $key : 'default'; 42 // If no "default" property is available, then an empty string is returned 43 if ($key === 'default' && !isset($conf['default'])) { 44 $theValue = ''; 45 } else { 46 $theValue = $this->cObj->cObjGetSingle($conf[$key], $conf[$key . '.'] ?? [], $key); 47 } 48 if (isset($conf['stdWrap.'])) { 49 $theValue = $this->cObj->stdWrap($theValue, $conf['stdWrap.']); 50 } 51 return $theValue; 52 } 53} 54