Hey ich wollte ein Content Element erstellen, hab wahrscheinlich irgendwo einen kleinen Fehler gemacht aber ich weiß wirklich nicht warum es nicht klappt, hab mich versucht an die Anleitung zu halten:
https://docs.contao.org/dev/framework/content-elements/
Das ContentElement taucht nichtmal auf wenn ich eins zu einem Artikel hinzufügen möchte, also es gibt nichtmal die auswahl also wird wohl irgendwas nicht richtig geladen,
sitzt da jetzt schon eine ganze weile recht planlos dran deswegen dachte ich das ich einfach mal nachfrage
File struktur
Screenshot 2022-07-25 141028.png
Plugin.php
PHP-Code:
<?php
namespace Test\TestBundle\ContaoManager;
use Contao\ManagerPlugin\Bundle\Config\BundleConfig;
use Contao\ManagerPlugin\Bundle\BundlePluginInterface;
use Contao\ManagerPlugin\Bundle\Parser\ParserInterface;
class Plugin implements BundlePluginInterface
{
/**
* {@inheritdoc}
*/
public function getBundles(ParserInterface $parser)
{
return [
BundleConfig::create('Test\TestBundle')
->setLoadAfter(['Contao\CoreBundle\ContaoCoreBundle'])
];
}
}
MyContentElementController.php
PHP-Code:
<?php
namespace Test\TestBundle\Controller\ContentElement;
use Contao\ContentModel;
use Contao\CoreBundle\Controller\ContentElement\AbstractContentElementController;
use Contao\Template;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class MyContentElementController extends AbstractContentElementController
{
protected function getResponse(Template $template, ContentModel $model, Request $request): Response
{
$template->text = $model->text;
return $template->getResponse();
}
}
config.yml
PHP-Code:
services:
Test\TestBundle\Controller\ContentElement\MyContentElementController:
tags:
-
name: contao.content_element
category: texts
template: ce_my_content_element
method: getCustomResponse
renderer: esi
type: my_custom_type
tl_content.php
PHP-Code:
<?php
// contao/dca/tl_content.php
$GLOBALS['TL_DCA']['tl_content']['palettes']['my_content_element'] =
'{type_legend},type;{text_legend},text'
;
ce_my_content_element.html5.php
PHP-Code:
<div class="my-content-element">
test
<?= $this->text; ?>
</div>
TestBundle.php
PHP-Code:
<?php
namespace Test\TestBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class TestBundle extends Bundle
{
}