Официальный канал русскоязычного drupal

Чистый вывод полей

Здравствуйте, уважаемые посетители!
Третий день бьюсь на решением следующей задачи:
Требуется реализовать функционал основанный на дополнительных полях. В шапке сайта имеются имиджевые картинки, которые подгружаются индвидуально для каждой страницы. Также должна быть возможность включения и выключения правой колонки по средствам выпадающего списка к примеру.

Разбираемся с имиджевым блоком:
Для этого создал новый тип материала — Страница (Имиджевый. блок). К типу материала добавил дополнительное поле «Изображение»(тип поля и виджет — Изображение) — из которого и должны подгружаться картинки в следующую область кода:
<span style="color: #009900;"><<a href="http://december.com/html/4/element/div.html"   rel="nofollow" ><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"collage"</span>></span>

<span style="color: #000000">    <span style="color: #0000BB"><?php<br />        </span><span style="color: #FF8000">//Выводим регион "collage", если в поле "Изображение" пустое<br />        </span><span style="color: #007700">echo </span><span style="color: #0000BB">render</span><span style="color: #007700">(</span><span style="color: #0000BB">$page</span><span style="color: #007700">[</span><span style="color: #DD0000">'collage'</span><span style="color: #007700">];);<br />    </span><span style="color: #0000BB">?></span></span>

<span style="color: #009900;"><<a href="http://december.com/html/4/element/div.html"   rel="nofollow" ><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"collage-group"</span>></span>

<span style="color: #000000">        <span style="color: #0000BB"><?php<br />            </span><span style="color: #FF8000">// выводим содержимое поля "Изображение", в поле ихображение подгружатсья может до 5-ти картинок.<br />            </span><span style="color: #0000BB">$images </span><span style="color: #007700">= </span><span style="color: #0000BB">field_get_items</span><span style="color: #007700">(</span><span style="color: #DD0000">'node'</span><span style="color: #007700">, </span><span style="color: #0000BB">$node</span><span style="color: #007700">, </span><span style="color: #DD0000">'field_img'</span><span style="color: #007700">);<br />            </span><span style="color: #0000BB">$field_image </span><span style="color: #007700">= </span><span style="color: #0000BB">field_view_value</span><span style="color: #007700">(</span><span style="color: #DD0000">'node'</span><span style="color: #007700">, </span><span style="color: #0000BB">$node</span><span style="color: #007700">, </span><span style="color: #DD0000">'field_img'</span><span style="color: #007700">, </span><span style="color: #0000BB">$images</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">], </span><span style="color: #0000BB">$options</span><span style="color: #007700">);<br />            </span><span style="color: #0000BB">$output </span><span style="color: #007700">= </span><span style="color: #0000BB">render</span><span style="color: #007700">(</span><span style="color: #0000BB">$field_image</span><span style="color: #007700">);<br />        </span><span style="color: #0000BB">?></span></span>

<span style="color: #009900;"><<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"   rel="nofollow" ><span style="color: #000000; font-weight: bold;">div</span></a>></span>
<span style="color: #009900;"><<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"   rel="nofollow" ><span style="color: #000000; font-weight: bold;">div</span></a>></span>

И собственно на этом я сижу уже три дня, нужно корректное получение «чистого» html, в идеале тег img обёрнутый в div.
Понял что помошники в этом задании мне будут функции field_get_items() — получение нескольких значений из поля, и field_view_field(); — отображение поля.
На хабре например пишут что так на прямую из базы брать плохо:
<span style="color: #000000"><span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">// Это неверный пример<br /></span><span style="color: #0000BB">$block</span><span style="color: #007700">[</span><span style="color: #DD0000">'content'</span><span style="color: #007700">] = </span><span style="color: #0000BB">$node</span><span style="color: #007700">-></span><span style="color: #0000BB">field_name</span><span style="color: #007700">[</span><span style="color: #DD0000">'und'</span><span style="color: #007700">][</span><span style="color: #0000BB">0</span><span style="color: #007700">][</span><span style="color: #DD0000">'safe_value'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">?></span></span>

А правильно:
<span style="color: #000000"><span style="color: #0000BB"><?php $output </span><span style="color: #007700">= </span><span style="color: #0000BB">field_view_field</span><span style="color: #007700">(</span><span style="color: #DD0000">'node'</span><span style="color: #007700">, </span><span style="color: #0000BB">$node</span><span style="color: #007700">, </span><span style="color: #DD0000">'field_name'</span><span style="color: #007700">);</span><span style="color: #0000BB">?></span></span>

Но какие вариации я не пробовал результат либо такой:

Либо всевозможные ошибки или пустая страница. Я очень прошу помочь.

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

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.