[gelöst] D8: node-reference innerhalb eines paragraph-Blocks modifizieren?
am 23.04.2018 - 12:16 Uhr in
Hallo,
ich experimentiere grade mit D8 + paragraphs und habe folgende Konstruktion gebaut:
1 - einen content-Type "TEASER", der neben dem Titel ein Bild und ein Textfeld hat
2 - ein paragraph-Bundle "TEASER_BLOCK" mit einem paragraph-Feld "TEASER" (beliebig viele)
3 - ein paragraph-Bundle "TEASER" mit einer entity-Referenz auf den contType TEASER aus Punkt 1 (einfach) UND einem Textfeld "alternativTitel"
Der Sinn der Sache:
Bei einem bestimmten anderen Content kann ich im Backend einen TEASER_BLOCK einfügen,
und innerhalb dessen beliebig viele TEASER(content) referenzieren
UND jeder dieser Referenzierungen einen alternativen Titel zuweisen - oder auch nicht.
Um das auszugeben, habe ich folgendes gemacht:
<?php
[MY_THEME]_preprocess_paragraph__teaser(&$variables) {
$paragraph = $variables['paragraph'];
if( !$paragraph->field_alt_titel->isEmpty() ) {
$nid = $paragraph->get('field_teaser')->target_id;
$node = Node::load($nid);
$node->setTitle($paragraph->field_alt_titel->value);
}
}
?>
DAS FUNKTIONIERT - aber nicht mehr bei Mehrsprachichkeit!
Im englischen Zweig bekomme ich die englischen Titel der Teaser-Inhalte, obwohl ich im BE englische alt_titel zugewiesen habe.
Das Problem "Paragraphs Multilanguage constraints" habe ich wie hier gelöst.
Das funktioniert ja, aber offenbar spielt der Aufruf $node->setTitle( ... ) da nicht mit.
Hat vielleicht jemand eine Idee, oder einen anderen Lösungsweg?
mfG, Michael
- Anmelden oder Registrieren um Kommentare zu schreiben
Problem gelöst:
am 23.04.2018 - 13:58 Uhr
$lang = \Drupal::languageManager()->getCurrentLanguage()->getId();
$node->getTranslation($lang)->setTitle($paragraph->field_alt_titel->value);
vielleicht interessiert's ja jemanden,
Michael