Как отобразить абсолютный URL-адрес объекта, на который ссылается, в информационном бюллетене simplenews?


Когда я отправляю узел в качестве информационного бюллетеня simplenews, я использую отображение узла Email: HTML. Одним из полей в этом представлении является label объекта, на который ссылаются, который будет отображаться как Link to the referenced entity. Drupal отображает его как ссылку с относительным/локальным URL-адресом сайта. Я хочу, чтобы он отображался как абсолютный/внешний URL-адрес.

Чего бы это ни стоило:
В массиве визуализации ссылка хранится в
$variable['items']['0']['content']['#url'] который является Drupal\Core\Url с защищенным external свойством false

Я не вижу что-нибудь в интерфейсе Url, что изменило бы external на true или действительно ли это нужно сделать.

Author: iainH, 2016-04-08

2 answers

external и absolute отличаются:

external является URL-адресом без внутреннего маршрута. Вы не можете изменить это свойство. Это задается при создании URL-адреса.

absolute это опция, которую вы можете установить в любое время в объекте url:

$url->setAbsolute();

Или установите значение false:

$url->setAbsolute(FALSE);

И это изменит способ создания URL-адреса, абсолютного или относительного.

 5
Author: 4k4, 2016-04-08 19:34:51

Похоже, что это свойство доступно только для чтения. Большинство других вещей можно изменить с помощью SetOption() или специальных методов. Не уверен, является ли это оплошностью или намерением.

Вам нужно создать новый объект объекта Url из объекта узла и передать параметр в:

$node->toUrl('canonical', ['external' => TRUE]);
 2
Author: Berdir, 2016-04-08 18:19:32