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:
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';
/src/Controller/ContentElements/ProductList.php:
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();
}
}
Außerdem befindet sich im Ordner /src/Resources/contao/templates mein Template "ce_productList.html5".
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?
Lesezeichen