2014-10-15 1 views
0

Мне нужна помощь с функцией l(). Я хочу создать привязку к URL-адресу, который пользователь устанавливает в форме администрирования. Это должна быть внешняя ссылка. Я установил внешнюю опцию true, но якорь все еще ведет себя как внутренний, и результат - mydrupalpage.com/www.facebook.com, а не www.facebook.com.drupal l() функция внешний link не работает

Может ли кто-нибудь помочь мне в этом? Я новичок в Drupal, так может быть, я сделал что-то неправильно в коде:

$output .= l(t('Facebook'),$variables['facebook_link'], array('attributes'=>array('external' => TRUE))); 

ответ

0

Вам не нужно использовать атрибуты в качестве индекса третьего параметра.

Вы просто использовать array('external' => true): Обновление

$output .= l(t('Facebook'),$variables['facebook_link'], array('external' => TRUE)); 

от комментариев

Кроме изменения выше для третьего параметра, URL-адрес в качестве второго параметра необходимо включить протокол: http://www.facebook.com или https://www.facebook.com

Если вы не включили протокол, то l() вернет ссылку относительно вашего веб-сайта.

+0

спасибо, но я уже использовал это, и он также не работает. – user3396700

+1

Я помню, что у меня была аналогичная проблема некоторое время назад, и одна из вещей, которая исправила ее, заключалась в том, чтобы включить протокол (http или https) перед моим url. Если вы не можете контролировать то, что находится в этих $ переменных ['facebook_link'], то, возможно, присоедините его к переменной: 'http: //'. $ variables ['facebook_link'] – Titi

+0

Большое вам спасибо. Это решило мою проблему :) – user3396700

0

У меня была та же проблема. Drupal output my-domain-name/www.facebook.com все время.

Вам нужно только добавить http: // или какой-либо другой протокол к вашим ссылкам. В противном случае Drupal рассмотрит эту внутреннюю ссылку. Исправлено это для меня. Теперь он читает «www.facebook.com».

Смежные вопросы