Как отобразить абсолютный 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
или действительно ли это нужно сделать.
2 answers
external
и absolute
отличаются:
external
является URL-адресом без внутреннего маршрута. Вы не можете изменить это свойство. Это задается при создании URL-адреса.
absolute
это опция, которую вы можете установить в любое время в объекте url:
$url->setAbsolute();
Или установите значение false:
$url->setAbsolute(FALSE);
И это изменит способ создания URL-адреса, абсолютного или относительного.
Похоже, что это свойство доступно только для чтения. Большинство других вещей можно изменить с помощью SetOption() или специальных методов. Не уверен, является ли это оплошностью или намерением.
Вам нужно создать новый объект объекта Url из объекта узла и передать параметр в:
$node->toUrl('canonical', ['external' => TRUE]);