И снова темизация Views2

Главные вкладки

Аватар пользователя Zigs Zigs 11 февраля 2009 в 19:06

Добрый вечер!!!
Конверчу свой сайтец на 6ку, разбираюсь с темами и пребываю сейчас полнейшем ступоре.
Задача тривиальная, есть свой тип ноды с полями, есть представление, которое должно выводить список этих нод (один див за другим) в собственном формате - заголовок, картинка, обтекающий ее текст. Если в 5ке мы клали в template.php код для сбора полей и в цикле дергали шаблон, в котором из переданных полей можно было лепить какое угодно представление ноды, то в 6ке есть просто шаблоны типа views-view--bla-bla.tpl.php. И я нигде не могу достучаться до непосредственно до полей. Единственное, что приходит в голову, это на каждое поле делать свой шаблон, но почему то мне кажется, что это не совсем правильное решение.

Товарищи, пАмАгите, чайник уже дымится Smile

Комментарии

Аватар пользователя Stan.Ezersky Stan.Ezersky 11 февраля 2009 в 22:29

Ну, в продолжение могу добавить пример вывода новостей такого вида:

заголовок - $fields['title']->content

вывод картинки - $fields['field_npic_fid']->content

автор - echo $fields['name']->content

дата публикации - $fields['created']->content

последний комментарий:
от автора - $fields['last_comment_name']->content
и был добавлен $fields['last_comment_timestamp']->content

тизер (содержание) - $fields['teaser']->content

тэги - $fields['tid']->content

<div class="newspage">
        <div class="title"><h2><?php echo $fields['title']->content;?></h2></div>
        <div class="pic"><?php echo $fields['field_npic_fid']->content;?></div>
        <div class="added">добавил <?php echo $fields['name']->content;?>, <?php echo $fields['created']->content;?> | <span>последний комментарий:</span> <?php echo $fields['last_comment_name']->content;?> <?php echo $fields['last_comment_timestamp']->content;?></div>       
        <div class="teaser"><?php echo $fields['teaser']->content;?></div>
        <div class="tags"><?php echo $fields['tid']->content;?></div>  
</div>

Ну а про стили наверное не надо говорить, что и где прописывать. Вот собственно готовый пример

Аватар пользователя Zigs Zigs 12 февраля 2009 в 1:22

Парни, а это в каком шаблоне? В list, grid, table, unformatted массива $fields нет, он есть только в views-view-fields-VIEWNAME.tpl.php

Аватар пользователя Zga Zga 12 февраля 2009 в 6:35

Ух ты! Господа! Как здорово! А где подсмотреть эти поля, с помощью чего вытащщить эти названия? есть дока или что? Имеется масса вьюсов с различными наборами полей, а как достать массив для каждой не знаю. Поделитесь знанием...

Аватар пользователя frichx frichx 19 мая 2010 в 14:50

Zigs wrote:
в шаблоне полей пишешь print_r($fields).
И разгребаешь, завалившую тебя инфу :)

Еще лучше и нагляднее будет выводится, если ввести:

<?php
print "<PRE>";
print_r($fields);
print 
"</PRE>";
?>
Аватар пользователя Stan.Ezersky Stan.Ezersky 12 февраля 2009 в 15:46

"Zga" wrote:
А где подсмотреть эти поля, с помощью чего вытащщить эти названия?

Нажать ссылку "экспорт" и посмотреть все fields

Аватар пользователя Zigs Zigs 12 февраля 2009 в 17:36

Товарищи, есть В CCK поле, которое картинка. Сделал во вьюхе для нее вывод как "картинка-со-ссылкой-на-ноду". Можно ли как-нибудь, подставить для тега этой картинки свои атрибуты, например, свой класс или align?

Аватар пользователя Stan.Ezersky Stan.Ezersky 12 февраля 2009 в 18:51

По-моему, этот пост единственный, где есть пример для новичков.

"Zigs" wrote:
Сделал во вьюхе для нее вывод как "картинка-со-ссылкой-на-ноду". Можно ли как-нибудь, подставить для тега этой картинки свои атрибуты, например, свой класс или align?

В полях выберите не картинку, а file path. И оформляйте его как угодно

Аватар пользователя Zigs Zigs 16 февраля 2009 в 22:57

Что-то я не понял как работать с картинкой, у которой формат стоит Path To file. Может кто-нибудь кинуть пример?
Задача то простая, нужно всего навсего вывести картинку, у которой alt будет текстом из заголовка ноды. Вот никак не могу врубиться в каком месте это сделать.

Аватар пользователя Zigs Zigs 17 февраля 2009 в 11:57

EzS wrote:

<img src="<?php echo $fields['PIC']->content;?>" alt="<?php echo $fields['ALT_TEXT']->content;?>" />

Проблема в том, что свойство content выводит уже форматированный html. Если для картинки выставить формат Path To File, то на выходе получаем путь к файлу. Таку же конструкцию не вставишь в scr картинки. Выдирать нужные данные парсингом тоже не правильно. Alt текст, это заголовок ноды, формат вывода отмечен галкой Link this field to its node, соответственно свойство content тоже отображается как ссылка и не пригодна для вставки в alt картинки, хотя это еще можно отключить.
Можно как-то выцепить просто данные, без форматирования самого друпала? Сделать это пытюсь в views-view-fields--ViewName.tpl.php.

Аватар пользователя Stan.Ezersky Stan.Ezersky 17 февраля 2009 в 14:58

"Zigs" wrote:
Если для картинки выставить формат Path To File, то на выходе получаем путь к файлу. Таку же конструкцию не вставишь в scr картинки.

Почему? Выбираем в отображение картинки (пример живой): img200x200_URL

Мы получаем путь: http://site.dom/sites/default/files/imagecache/img200x200/pics/picname.jpg

Поковыряйтесь во Views, там много интересного

Вот с альтом (с выбранной ссылкой на ноду) действительно можно отключить

Аватар пользователя Zigs Zigs 17 февраля 2009 в 15:40

Ээээ, извиняюсь, это я оказывается не дописал. Если стоит Path to file, то на выходе получается /span class=/some class/путь к файлу//span/

Аватар пользователя Stan.Ezersky Stan.Ezersky 17 февраля 2009 в 18:33

"Zigs" wrote:
Если стоит Path to file, то на выходе получается /span class=/some class/путь к файлу//span/

Где-то ошибка у вас. Я когда писал

"EzS" wrote:
Почему? Выбираем в отображение картинки (пример живой): img200x200_URL
Мы получаем путь: http://site.dom/sites/default/files/imagecache/img200x200/pics/picname.jpg
Поковыряйтесь во Views, там много интересного
Вот с альтом (с выбранной ссылкой на ноду) действительно можно отключить

Делал параллельно и всё было гуд, так что проверьте файл с вьюз. А лучше покажите что у вас там

Аватар пользователя Zigs Zigs 19 февраля 2009 в 13:55

EzS wrote:

Делал параллельно и всё было гуд, так что проверьте файл с вьюз. А лучше покажите что у вас там

Сделал новую вьюху. Добавил туда только одно поле, которое картинка. Выставил ему формат Path To File.
Сделал файл views-view-fields--TestView.tpl.php.
Написал туда код:

$fFile = fopen('C:\1.txt', 'a');
foreach ($fields as $id => $field):
        print $field->content;
        fwrite($fFile, $field->content);
endforeach;
fclose($fFile);

В результате в 1.txt следующее содержание:

<span  class=" imagefield-formatter-path">files/images/932/187small.jpg</span>
<span  class=" imagefield-formatter-path">files/images/929/145small.jpg</span>
<span  class=" imagefield-formatter-path">files/images/930/170small.jpg</span>
<span  class=" imagefield-formatter-path">files/images/932/187small.jpg</span>
<span  class=" imagefield-formatter-path">files/images/929/145small.jpg</span>

Зачем тут тэг span, как от него избавиться?