web-dev-qa-db-fra.com

Comment changer la valeur d'un champ dans sa méthode de prétraitement?

J'essaie de comprendre Drupal 8 tableau $variables De ...

J'ai donc un fichier MYTHEME.theme, Complet avec une méthode MYTHEME_preprocess_field() fonctionnelle (je sais que cela fonctionne parce que je l'utilise pour d'autres champs qui nécessitent une personnalisation).

En ce moment, je me concentre sur le titre d'un article affiché sur la première page de mon site. Je peux y accéder avec les éléments suivants:

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

Ce que je veux faire, c'est remplacer toutes les instances de ® (La marque d'enregistrement) par <sup>®</sup>. Cependant, la définition de cette valeur dans le tableau sur autre chose pas la modifie sur le site.

Y a-t-il quelque chose qui me manque? Quelques sources que j'ai trouvées ont dit modifier (ou ajouter) l'élément ['#markup'] Dans le tableau, mais il y a une pénurie d'informations à ce sujet en ligne.

Comment changer la valeur d'un champ? Cela semble être quelque chose de basique et facile à faire.

2
TerranRich

Dans Drupal 8 front page est une vue appelée frontpage si la vue n'est pas modifiée, elle devrait show: "Content" par défaut (au lieu des champs). Si c'est le cas, les éléments suivants peuvent être appliqués pour modifier le titre de chaque nœud

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