Hallo zusammen,
ich folge gerade den Docs um ein neues Content Element in einer Erweiterung von mir zu registrieren.
Ich habe eine Palette im DCA angelegt:
/src/Resources/contao/dca/tl_content.php:
/src/Controller/ContentElements/ProductList.php:PHP-Code:use Contao\DC_Table;
use Contao\Backend;
// Palettes
$GLOBALS['TL_DCA']['tl_content']['palettes']['product_list'] = '{type_legend},type,headline;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID;{invisible_legend:hide},invisible,start,stop';
Außerdem befindet sich im Ordner /src/Resources/contao/templates mein Template "ce_productList.html5".PHP-Code:<?php
namespace ExtensionProvider\ContaoProductsBundle\Controller\ContentElement;
use Contao\CoreBundle\Controller\ContentElement\AbstractContentElementController;
use Contao\CoreBundle\DependencyInjection\Attribute\AsContentElement;
use Contao\ContentModel;
use Contao\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use ExtensionProvider\ContaoProductsBundle\Model\ProductModel;
use Contao\System;
#[AsContentElement(category:'texts', template:'ce_productList')]
class ProductList extends AbstractContentElementController {
protected function getResponse(Template $template, ContentModel $model, Request $request): Response
{
$template->products = ExtensionProvider\ContaoProductsBundle\Model\ProductModel::findAll([
'order' => 'tstamp desc'
]);
return $template->getResponse();
}
}
In den Docs habe ich es so verstanden, dass der Service Tag (in meinem Fall: #[AsContentElement(category:'texts', template:'ce_productList')]) genügt, um das Content Element zu registrieren (früher wurde das ja über die config registriert). Jedoch erhalte ich dennoch kein ContentElement, welches ich im Backend auswählen kann.
Was mache ich falsch?

Zitieren
Korrektur ist gestellt.
