Hallo!
Ich muss meine Antwort aus Beitrag #10 korrigieren — für News war sie leider falsch.
tl_news.headline ist kein inputUnit-Feld, sondern ein reines Textfeld — es ist der
News-Titel. Contaos DCA im news-bundle:
Code:
'headline' => array(
'inputType' => 'text',
'eval' => array('mandatory'=>true, 'maxlength'=>255, ...),
'sql' => "varchar(255) NOT NULL default ''"
),
Contao liest den Wert unverändert (NewsFeedListener, InsertTag news_title). Ein
serialisiertes {value,unit} landet dort also 1:1 als Titel — im Backend-Listing, im
Feed und im Frontend steht dann a:2:{s:5:"value";...}.
Betroffen ist alles, was mit contao:news:create bis v0.2.3 angelegt wurde,
inklusive der --unit-Option aus #10.
Behoben in v0.2.4:
- news:create schreibt Klartext, --unit ist entfallen
- news:read gibt den Wert roh zurück (die Deserialisierung hatte den Fehler maskiert)
- neuer Reparatur-Command für Altbestände:
Code:
composer update webwerkwien/contao-ai-core-bundle
php bin/console contao:news:repair-headlines --dry-run
php bin/console contao:news:repair-headlines
Der Command entpackt serialisierte Headlines zum reinen Titel, ist idempotent und
lässt alles unangetastet, was kein {value,unit}-Payload ist. --dry-run zeigt vorab,
was sich ändern würde.
Für Content-Elemente bleibt alles wie in #10 beschrieben — tl_content.headline
ist tatsächlich ein inputUnit-Feld:
Code:
php bin/console contao:content:create \
--pid=177 --type=text \
--set="headline=Testüberschrift mit H1" \
--set="headline_unit=h1" \
--set="text=<p>Testinhalt</p>" \
--set="published=1" --set="invisible=0"
Liebe Grüße!