web-dev-qa-db-ja.com

前処理メソッドでフィールドの値を変更するにはどうすればよいですか?

Drupal 8の_$variables_配列を理解しようとしています...

ですから、_MYTHEME.theme_ファイルがあり、MYTHEME_preprocess_field()メソッドが機能しています(カスタマイズが必要な他のフィールドに使用しているため、機能します)。

現在、私のサイトのフロントページに表示されている記事のタイトルに焦点を当てています。次の方法でアクセスできます。

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

私がやりたいのは、_®_(登録商標)のすべてのインスタンスを_<sup>®</sup>_に置き換えることです。ただし、配列内のこの値を別の値に設定すると、サイト上でnotが変更されます。

行方不明のものはありますか?私が見つけたいくつかのソースは、配列の_['#markup']_要素を変更(または追加)すると言っていましたが、これに関するオンラインの情報が不足しています。

フィールドの値を変更するにはどうすればよいですか?これは、基本的で簡単なことのようです。

2
TerranRich

Drupal 8フロントページはfrontpageというビューです。ビューが変更されていない場合、show: "Content"デフォルトでは(フィールドの代わりに)。もしそうなら、以下を適用して各ノードのタイトルを変更できます

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