PHPコード形式を使用してブロック内にカスタムコードを追加して、そのブロックを特定のページに表示しました。私はDevelのPHPページでうまく動作するすべてのものをチェックしましたが、内容はページに表示されません。次のコードは、宛先ノードのフィールド値を取得します。DrupalでPHPコード形式を使用してカスタムブロックのコンテンツを表示する方法8
$refer = $_SERVER[HTTP_REFERER];
$parsed = parse_url($refer);
$alias = array_pop($parsed);
$dst = \Drupal::service('path.alias_manager')->getPathByAlias($alias , $langcode);
$nid = array_pop(explode('/', $dst));
$dest_node = node_load($nid);
$body = $dest_node->get('body')->getValue();
print $body; //have tried other printing methods also but invain
これは質問を明確にします。 ありがとう
毎回動作するのではなく、何度か動作します。 – Zubi
@ Zubiこれはノードのページ(すなわち、 "node/123"またはエイリアス)でのみ機能します。つまり、これらのノードのページでいつか正確に動作するということです(一部のノードでは動作し、一部のノードでは動作しません)。ページが一種のビューであれば、明らかに機能しません。 – tulvit
この行のエラーを示すログを確認しました '$ nid = array_pop(explode( '/'、$ dst));' 厳密な警告:変数はeval()で参照渡しする必要があります – Zubi