Add Container Options
This commit is contained in:
1 parent
f515de54ad
commit
c720696781
23 files changed
+584
-22
No files matched your search
@@ -14,6 +14,7 @@ use Evomedien\Vitec\Service\LinkResolver;
|
||||
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 a single market as JSON for headless output.
|
||||
@@ -24,11 +25,26 @@ use TYPO3\CMS\Extbase\Service\ImageService;
|
||||
*/
|
||||
class MarketShowJsonRenderer
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
#[AsAllowedCallable]
|
||||
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_marketshow') {
|
||||
return $this->renderForRecord($row);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user