Достать image cache картинку из $view [РЕШЕНО]

Аватар пользователя patison@drupal.org patison@drupal.org 7 мая 2010 в 18:05

Пытаюсь темизировать вывод представления.
Создал файл 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"
  }
}

А вот как вывести поле картинку (imagecache), залинкованную на ноду, не понимаю.
Подскажите, каким образом можно вывести эту картинку.

Спасибо.

Комментарии

Аватар пользователя elia elia 7 мая 2010 в 19:34

Явно API не читали Smile
Темизировання картинка возвращается из этой функции:
theme('imagecache', 'block_avatar (название блока imagecache, определяющий размер картинки)', внутренний_путь_к_исходной_картинке, 'caption при наведении курсора на картинку', 'альтернативный текст для заблокированной картинки')

Аватар пользователя patison@drupal.org patison@drupal.org 7 мая 2010 в 21:28

Ага, угадали Smile Не читал, к сожалению. Всё никак не соберусь ))
А где мне взять внутренний_путь_к_исходной_картинке ??...

Аватар пользователя gorr gorr 8 мая 2010 в 14:55

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

Аватар пользователя patison@drupal.org patison@drupal.org 9 мая 2010 в 0:18

Так я так и делаю. Если просто посмотреть вывод этого view, то выходит картинка залинкованая на ноду. Но мне нужно кастомизировать вывод, и картинку вывести, скажем так, в необычном месте. А вот как получить эту сгенерённую картинку используя объект $view - я не могу понять.

Аватар пользователя patison@drupal.org patison@drupal.org 9 мая 2010 в 1:37

Блин, господа, это просто жэсть... Запихнул в файл вывод var_dump($view->field). Около 3-х миллионов строчек!!! 132 мегабайта файл. Ну и как тут достать этот злосчастный image field? ...

Аватар пользователя gorr gorr 9 мая 2010 в 10:53

"Ищите, Шура, ищите..."
Там еще галки есть, например такие : "Rewrite the output of this field" и "Exclude from display", после проставления оных мы получаем практически все возможности по порядку вывода и оформлению полей. Например в одном из полей сделали exclude_from_display, а в другом сделали Rewrite_the_output_of_this_field и дописали исключенное поле, обернутое в div или span нужного класса.

Аватар пользователя patison@drupal.org patison@drupal.org 9 мая 2010 в 21:50

Нашёл! Smile

$image strip_only($view->field["field_image_news_preview_fid"]->original_value"span");
?>

После этого, в $image лежит , и его уже можно вывести куда надо.

Аватар пользователя AnreeChess AnreeChess 7 мая 2012 в 12:14

А как достать вот эту распечатку, распечатав это var_dump($view->result) (интересует к примеру поле node_language):

array(1) {
  [0]=>
  object(stdClass)#232 (4) {
    ["node_created"]=>
    string(10) "1336371844"
    ["nid"]=>
    string(2) "44"
    ["node_language"]=>
    string(2) "en"
  }
}

Если я нахожусь в файле views-view--news.tpl.php

Заранее спасибо тому, кто хоть как-то ответит)

Аватар пользователя AnreeChess AnreeChess 7 мая 2012 в 12:26

1. Я не спорю Smile нужно учить.
2. Поставлю, если это как-то мне на данный момент поможет, спасибо!