Add Container Options
This commit is contained in:
1 parent
f515de54ad
commit
c720696781
23 files changed
+584
-22
No files matched your search
@@ -13,6 +13,7 @@ use TYPO3\CMS\Core\Service\FlexFormService;
|
||||
use Evomedien\Vitec\Service\RteResolver;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
use TYPO3\CMS\Extbase\Service\ImageService;
|
||||
use TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer;
|
||||
|
||||
/**
|
||||
* UserFunc to render the event list (tx_vitec_domain_model_event) as JSON.
|
||||
@@ -30,6 +31,21 @@ use TYPO3\CMS\Extbase\Service\ImageService;
|
||||
*/
|
||||
class EventlistJsonRenderer
|
||||
{
|
||||
private ?ContentObjectRenderer $cObj = null;
|
||||
|
||||
/**
|
||||
* TYPO3 v14 hands the ContentObjectRenderer over through this setter only -
|
||||
* ContentObjectRenderer::callUserFunction() duck-types it with
|
||||
* is_callable([$classObj, 'setContentObjectRenderer']). Without the method
|
||||
* $this->cObj stays null, the cObj branch of render() never fires and the
|
||||
* call falls through to page discovery, which picks the FIRST element of
|
||||
* this CType on the page rather than the one actually being rendered.
|
||||
*/
|
||||
public function setContentObjectRenderer(ContentObjectRenderer $cObj): void
|
||||
{
|
||||
$this->cObj = $cObj;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parent of the region categories. Hard-coded like the other taxonomy roots
|
||||
* in this extension (Annex B-5 tracks them); making it a FlexForm setting
|
||||
@@ -42,7 +58,7 @@ class EventlistJsonRenderer
|
||||
public function render(string $content, array $conf): string
|
||||
{
|
||||
// 1) cObj data path
|
||||
$row = is_array($this->cObj->data ?? null) ? $this->cObj->data : null;
|
||||
$row = is_array($this->cObj?->data ?? null) ? $this->cObj->data : null;
|
||||
if ($row && (string)($row['CType'] ?? '') === 'vitec_eventlist') {
|
||||
return $this->renderForRecord($row);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user