it-swarm.com.de

Wie ändere ich den Wert eines Feldes in seiner Vorverarbeitungsmethode?

Ich versuche herauszufinden, Drupal 8's $variables Array ...

Ich habe also eine MYTHEME.theme - Datei mit einer funktionierenden MYTHEME_preprocess_field() - Methode (ich weiß, dass sie funktioniert, weil ich sie für andere Felder verwende, die angepasst werden müssen).

Im Moment konzentriere ich mich auf den Titel eines Artikels, der auf der Startseite meiner Website angezeigt wird. Ich kann mit folgendem Zugriff darauf zugreifen:

if ($variables['field_name'] == 'title') {
    $title = $variables['element'][0]['#context']['value'];
    // ...
}

Ich möchte alle Instanzen von ® (Das Kennzeichen) durch <sup>®</sup> Ersetzen. Wenn Sie diesen Wert im Array jedoch auf etwas anderes setzen, ändert sich nicht auf der Site.

Fehlt mir etwas? Einige Quellen, die ich gefunden habe, sollen das ['#markup'] - Element im Array ändern (oder hinzufügen), aber es gibt einen Mangel an Informationen dazu online.

Wie ändere ich den Wert eines Feldes? Dies scheint etwas Grundlegendes und Leichtes zu sein.

2
TerranRich

In Drupal 8 Titelseite ist eine Ansicht namens Startseite Wenn die Ansicht nicht geändert wird, sollte sie show: "Content" standardmäßig (anstelle von Feldern). In diesem Fall kann Folgendes angewendet werden, um jeden Knotentitel zu ändern

function THEMENAME_preprocess_node(&$variables) {
  //for views that show: "Content" (not fields)
  if($variables["is_front"]){    
    $variables["label"][0]["#context"]["value"] .= " end of title";
  }
}
3
GiorgosK