web-dev-qa-db-ja.com

simplenewsニュースレターで参照エンティティの絶対URLを表示するにはどうすればよいですか?

ノードをsimplenewsニュースレターとして送信するときは、ノードのEmail: HTMLディスプレイを使用します。このビューのフィールドの1つは、Link to the referenced entityとしてレンダリングされる参照エンティティのlabelです。 Drupalは、相対/サイトローカルURLのリンクとしてレンダリングします。絶対/外部URLとしてレンダリングしてほしいです。

それが価値があるもののために:
レンダー配列では、リンクは次の場所に保存されます
$variable['items']['0']['content']['#url']は、externalfalseプロパティが保護されたDrupal\Core\Urlです

Urlexternalに変更するtrueインターフェイスには何も表示されません。これが実際に行うことかどうかはわかりません。

2
iainH

externalabsoluteは異なります:

externalは、内部ルートのないURLです。このプロパティは変更できません。これは、URLを作成するときに設定されます。

absoluteはオプションであり、urlオブジェクトでいつでも設定できます。

$url->setAbsolute();

またはfalseに設定します。

$url->setAbsolute(FALSE);

これにより、URLが絶対または相対で生成される方法が変わります。

5
4k4

読み取り専用のプロパティのように見えます。他のほとんどのものは、setOption()または特定のメソッドで変更できます。それが見落としであるのか、設計によるものなのかはわかりません。

ノードオブジェクトから新しいUrlオブジェクトオブジェクトを作成し、次のオプションを渡す必要があります。

$node->toUrl('canonical', ['external' => TRUE]);
2
Berdir