<?php
$field = field_get_items('node', $node, 'field_link');
$link = reset($field);
// $link - массив, структуру точно не знаю, зависит от типа поля.
// подозреваю, что-то типа $link['value'] и есть то самое значение.
?>
<?php
$field = field_get_items('node', $node, 'field_link');
$link = reset($field);
// $link - массив, структуру точно не знаю, зависит от типа поля.
// подозреваю, что-то типа $link['value'] и есть то самое значение.
?>
Объясните пожалуйста чайнику с чем это есть? Вставляю данный код в src="", но ничего не работает. Или ссылку как то по другому надо выводить?
Выведет первое значение поля, если у него есть value(если это обычное текстовое поле, например).
upd: В принципе, идентично предыдущему коду. Кэш сбросьте.
Не работает, выдается та же ошибка Notice: Undefined variable: node в функции include() (строка 56 в файле C:\Users\Acer\Desktop\OpenServer\domains\site.ru\sites\all\themes\bartik\templates\field--field_link--link.tpl.php).
EntityMalformedException: Отсутствует связующее свойство у сущности типа node. в функции entity_extract_ids() (строка 7633 в файле C:\Users\Acer\Desktop\OpenServer\domains\site.ru\includes\common.inc).
Тоже не работает.
Notice: Undefined variable: node в функции include() (строка 56 в файле C:\Users\Acer\Desktop\OpenServer\domains\site.ru\sites\all\themes\bartik\templates\field--field_link--link.tpl.php).
EntityMalformedException: Отсутствует связующее свойство у сущности типа node. в функции entity_extract_ids() (строка 7633 в файле C:\Users\Acer\Desktop\OpenServer\domains\site.ru\includes\common.inc). Вот такую ошибку выдает
ну конечно, в этом файле объект ноды просто так не доступен. Я подумал, вы этот файл используете node--type.tpl.php
Странно, что вы нашли как темизировать поле, но не разобрались, какие переменные вам доступны. читайте тут https://api.drupal.org/api/drupal/modules!field!theme!field.tpl.php/7
Переменная $items попадает в шаблон поля обработанной препроцесс-функцией, где value меняется на форматированный вид (['#markup']). Что бы получить "голое" значение поля, стоит обращаться к массиву $element.
Все это справедливо, опять же, если мы говорим о получении первого значения массива "стандартного" текстового поля.
пс
Прошу воспринимать написанное мною лишь как вариант получения нужного значения. Употребление текстовых полей для получения ссылок, без их предварительной специфической валидации, не есть хорошее решение.
Переменная $items попадает в шаблон поля обработанной препроцесс-функцией, где value меняется на форматированный вид (['#markup']). Что бы получить "голое" значение поля, стоит обращаться к массиву $element.
спс за замечание, темизацией не занимаюсь, поэтому ошибся, увидел в доках $item, и решил, что это одно из значений поля.
"Dalay" wrote:
Зачем в шаблоне поля левые обертки у iframe?
"iloveny" wrote:
Что бы в iframe отображалась страница ссылка на которую вставлена в поле.
хочу сделать на сайте такую функцию: Пользователь добавляет ссылку в нужное поле, при добавлении ноды, потом в этой ноде в iframe окне показывается страница (внешняя) ссылка на которую добавлена в это поле. Можно ли как нибудь без заморочек это организовать?
Комментарии
<?php
$field = field_get_items('node', $node, 'field_link');
$link = reset($field);
// $link - массив, структуру точно не знаю, зависит от типа поля.
// подозреваю, что-то типа $link['value'] и есть то самое значение.
?>
Объясните пожалуйста чайнику с чем это есть? Вставляю данный код в src="", но ничего не работает. Или ссылку как то по другому надо выводить?
<body>
<?php
$field = field_get_items('node', $node, 'field_link');
$link = reset($field);
?>
<iframe src="<?php print $link['value']; ?>" width="91%" height="323" frameborder="1"> </iframe>
</body>
</html>
Не работает
<body>
<?php
$field = field_get_items('node', $node, 'field_link');
$link = $field[0]['value'];
?>
<iframe src="<?php print $link; ?>" width="91%" height="323" frameborder="1"> </iframe>
</body>
</html>
Выведет первое значение поля, если у него есть value(если это обычное текстовое поле, например).
upd: В принципе, идентично предыдущему коду. Кэш сбросьте.
Не работает, выдается та же ошибка Notice: Undefined variable: node в функции include() (строка 56 в файле C:\Users\Acer\Desktop\OpenServer\domains\site.ru\sites\all\themes\bartik\templates\field--field_link--link.tpl.php).
EntityMalformedException: Отсутствует связующее свойство у сущности типа node. в функции entity_extract_ids() (строка 7633 в файле C:\Users\Acer\Desktop\OpenServer\domains\site.ru\includes\common.inc).
Тоже не работает.
Ошибку-то какую выдает?
Notice: Undefined variable: node в функции include() (строка 56 в файле C:\Users\Acer\Desktop\OpenServer\domains\site.ru\sites\all\themes\bartik\templates\field--field_link--link.tpl.php).
EntityMalformedException: Отсутствует связующее свойство у сущности типа node. в функции entity_extract_ids() (строка 7633 в файле C:\Users\Acer\Desktop\OpenServer\domains\site.ru\includes\common.inc). Вот такую ошибку выдает
ну конечно, в этом файле объект ноды просто так не доступен. Я подумал, вы этот файл используете node--type.tpl.php
Странно, что вы нашли как темизировать поле, но не разобрались, какие переменные вам доступны. читайте тут https://api.drupal.org/api/drupal/modules!field!theme!field.tpl.php/7
<body>
<?php
$item = reset($items);
?>
<iframe src="<?php print $item['value']; ?>" width="91%" height="323" frameborder="1"> </iframe>
</body>
</html>
Если у вас будет несколько значений в поле, то нужно будет создать цикл по $items.
Переменная $items попадает в шаблон поля обработанной препроцесс-функцией, где value меняется на форматированный вид (['#markup']). Что бы получить "голое" значение поля, стоит обращаться к массиву $element.
Все это справедливо, опять же, если мы говорим о получении первого значения массива "стандартного" текстового поля.
пс
Прошу воспринимать написанное мною лишь как вариант получения нужного значения. Употребление текстовых полей для получения ссылок, без их предварительной специфической валидации, не есть хорошее решение.
ппс
Зачем в шаблоне поля левые обертки у iframe?
спс за замечание, темизацией не занимаюсь, поэтому ошибся, увидел в доках $item, и решил, что это одно из значений поля.
хочу сделать на сайте такую функцию: Пользователь добавляет ссылку в нужное поле, при добавлении ноды, потом в этой ноде в iframe окне показывается страница (внешняя) ссылка на которую добавлена в это поле. Можно ли как нибудь без заморочек это организовать?
Спасибо всем огромное!Получилось!)