Пытаюсь темизировать вывод представления.
Создал файл views-view-unformatted--news.tpl.php , в нём формирую свой html, подставляя нужные данные из объекта $view. Заголовок, тело, и пр находится в массиве $view->result:
<?php
var_dump($view->result);
?>
Вывод:
<span id="thmr_8" class="thmr_call">
array(1) {
[0]=>
object(stdClass)#51 (10) {
["nid"]=>
string(1) "6"
["node_title"]=>
string(50) "Заголовок"
["node_revisions_body"]=>
string(273) "<p>Тело</p>"
["node_revisions_format"]=>
string(1) "1"
["node_data_field_image_news_preview_field_image_news_preview_fid"]=>
string(2) "37"
["node_data_field_image_news_preview_field_image_news_preview_list"]=>
string(1) "1"
["node_data_field_image_news_preview_field_image_news_preview_data"]=>
string(68) "a:3:{s:11:"description";s:0:"";s:3:"alt";s:0:"";s:5:"title";s:0:"";}"
["node_type"]=>
string(4) "news"
["node_vid"]=>
string(1) "6"
["node_created"]=>
string(10) "1272977403"
}
}
array(1) {
[0]=>
object(stdClass)#51 (10) {
["nid"]=>
string(1) "6"
["node_title"]=>
string(50) "Заголовок"
["node_revisions_body"]=>
string(273) "<p>Тело</p>"
["node_revisions_format"]=>
string(1) "1"
["node_data_field_image_news_preview_field_image_news_preview_fid"]=>
string(2) "37"
["node_data_field_image_news_preview_field_image_news_preview_list"]=>
string(1) "1"
["node_data_field_image_news_preview_field_image_news_preview_data"]=>
string(68) "a:3:{s:11:"description";s:0:"";s:3:"alt";s:0:"";s:5:"title";s:0:"";}"
["node_type"]=>
string(4) "news"
["node_vid"]=>
string(1) "6"
["node_created"]=>
string(10) "1272977403"
}
}
А вот как вывести поле картинку (imagecache), залинкованную на ноду, не понимаю.
Подскажите, каким образом можно вывести эту картинку.
Спасибо.
Комментарии
Явно API не читали
Темизировання картинка возвращается из этой функции:
theme('imagecache', 'block_avatar (название блока imagecache, определяющий размер картинки)', внутренний_путь_к_исходной_картинке, 'caption при наведении курсора на картинку', 'альтернативный текст для заблокированной картинки')
Ага, угадали
Не читал, к сожалению. Всё никак не соберусь ))
А где мне взять внутренний_путь_к_исходной_картинке ??...
Вообще-то сейчас вьюз юзер интерфейс все это умеет делать сам, достаточно зайти в настройки поля и выставить галки и выбрать из выпадающего списка имеджкеш_такой-то_линкед_то_нод или если линк не туда нужно вести, то там-же выбрать, чтобы поле было ссылкой, а потом вписать нужный путь, составив его из доступных токенов.
Так я так и делаю. Если просто посмотреть вывод этого view, то выходит картинка залинкованая на ноду. Но мне нужно кастомизировать вывод, и картинку вывести, скажем так, в необычном месте. А вот как получить эту сгенерённую картинку используя объект $view - я не могу понять.
Блин, господа, это просто жэсть... Запихнул в файл вывод var_dump($view->field). Около 3-х миллионов строчек!!! 132 мегабайта файл. Ну и как тут достать этот злосчастный image field? ...
"Ищите, Шура, ищите..."
Там еще галки есть, например такие : "Rewrite the output of this field" и "Exclude from display", после проставления оных мы получаем практически все возможности по порядку вывода и оформлению полей. Например в одном из полей сделали exclude_from_display, а в другом сделали Rewrite_the_output_of_this_field и дописали исключенное поле, обернутое в div или span нужного класса.
Нашёл!
<?php
$image = strip_only($view->field["field_image_news_preview_fid"]->original_value, "span");
?>
После этого, в $image лежит
, и его уже можно вывести куда надо.
А как достать вот эту распечатку, распечатав это var_dump($view->result) (интересует к примеру поле node_language):
[0]=>
object(stdClass)#232 (4) {
["node_created"]=>
string(10) "1336371844"
["nid"]=>
string(2) "44"
["node_language"]=>
string(2) "en"
}
}
Если я нахожусь в файле views-view--news.tpl.php
Заранее спасибо тому, кто хоть как-то ответит)
В очередной раз советую 2 варианта на выбор:
1. Учить PHP
2. Поставить свежий Devel, который рисует путь к элементу
1. Я не спорю
нужно учить.
2. Поставлю, если это как-то мне на данный момент поможет, спасибо!