Views. Темизация.

Аватар пользователя UnnamedNETUA UnnamedNETUA 7 октября 2010 в 20:47

Реально ли с помощью Views вывести таблично содержимое ноды в несколько рядков?
Есть http://unnamed.net.ua/downloads надо сделать http://m600.org.ua/downloads
То есть вытянуть картинку, описание и тд.

Комментарии

Аватар пользователя UnnamedNETUA UnnamedNETUA 7 октября 2010 в 23:37

На данный момент получилось то что получилось. http://unnamed.net.ua/downloads
Замечены баги:
Сортирует вертикально при любом значении при Стиль: Сетка (горизонтально/вертикально)
Сортирует всеравно вертикально если Стиль строки: Поле и помечено чекбоксы для сортировки горизонально.

так же присутсвует Ajax ошибка если присутвует добавить поле типа Изображени.

Sad

Аватар пользователя UnnamedNETUA UnnamedNETUA 13 октября 2010 в 13:55

Так. Решит темизировать через шаблон. Создал шаблон и вкинул нужную мне таблицу, на данный момент выглядить это так:

<?php
// $Id: views-view-unformatted.tpl.php,v 1.6.6.1 2010/03/29 20:05:38 dereine Exp $
/**
* [user=file]file[/user] views-view-unformatted.tpl.php
* Default simple view template to display a list of rows.
*
* [user=ingroup]ingroup[/user] views_templates
*/
?>
<table cellspacing="0" cellpadding="0" style="width:100%; margin:10px 0 10px 0;">
        <tr>
                <td id="" class="" colspan="2">
                        <div style="float:left;"><?php if (!empty($title)): ?><h3><?php print $title; ?></h3><?php endif; ?></div>
                </td>
        </tr>
        <tr>
                <td id="" class="" align="center">
                        field_screenshot
                </td>
                <td id="" class="">
                        field_file_opisanie
                </td>
        </tr>
        <tr>
                <td colspan="2" id="" class="">
                        field_category_file field_os OS
                </td>
        </tr>
</table>

<?php foreach ($rows as $id => $row): ?>
  <div class="<?php print $classes_array[$id]; ?>">
    <?php print $row; ?>
  </div>
<?php endforeach; ?>

Как должно быть можно посмотреть тут http://m600.org.ua/downloads
Необходимо из этого :

<?php foreach ($rows as $id => $row): ?>
  <div class="<?php print $classes_array[$id]; ?>">
    <?php print $row?>
  </div>
<?php endforeach; ?>

выдрать поля field_category_file field_os OS field_file_opisanie field_screenshot и расставить в табличке.
Поможет или линк на доку как с $row вытягивать поля и расставлять их или уже готовый код.

Аватар пользователя msidiagnos01 msidiagnos01 11 октября 2010 в 23:51
<?php foreach($row as $id => $row): ?>
<?php 
print $row->id?>
<?php 
endforeach; ?>

Это ты получишь id своих полей.

<?php foreach($row as $id => $row): ?>
     <?php if ($row->id=="один из полученных id'шников")
     {print 
$row;}?>         
     <?php endforeach; ?>

А это ты выведешь поле, с указанным id. Попробуй.

Аватар пользователя UnnamedNETUA UnnamedNETUA 12 октября 2010 в 0:02

Notice: Trying to get property of non-object в include() (строка 12 в /data/www/unnamed.net.ua/themes/bartik/templates/views-view-unformatted--files--page-files.tpl.php).
Это на
<?php print $row->id?>
Матюхается

Аватар пользователя msidiagnos01 msidiagnos01 12 октября 2010 в 0:16

Чет по моему пора идти спать, туплю. Попробуй.

<?php foreach($row as $id => $row): ?>
     <?php if ($row=="field_category_file")
     {print 
$row;}?>         
     <?php endforeach; ?>

Только не забудь убрать.

<?php foreach($row as $id => $row): ?>
<?php 
print $row->id?>
<?php 
endforeach; ?>

Хотя по сути он перебирает все $row с ключом id и собственно последовательно выводит, хз что не так, пускай люди пограмотнее подскажут, если не получится.

Аватар пользователя UnnamedNETUA UnnamedNETUA 12 октября 2010 в 0:57

Не выходит.

Изходя из этого http://xinspace.com/drupal-views-theming-access-other-fields-value-in-yo... посмотреть переменные ноды можно кодом

<?php

foreach($view->$field as $k=>$f){
echo 
$k;
}
exit;

?>

который не работает Sad Fatal error: Cannot access empty property in ...

А вывести значение переменной

<?php

echo $row->{$view->field['FIELD_ID']->field_alias};
?>

Где вместо FIELD_ID надо подставить переменную.

Но второе без первого не работает Sad

Аватар пользователя UnnamedNETUA UnnamedNETUA 12 октября 2010 в 0:55

Могу сказать, облазил пол рунета и пол сайта drupal.ru. Темы с данным вопросом не решены Sad

Аватар пользователя UnnamedNETUA UnnamedNETUA 12 октября 2010 в 22:17

Тактичный бамп.
Облазил остальные пол рунета. Там было для views первой ветки. Не работает. Sad

Янки тоже молчят Sad Sad Sad

Аватар пользователя UnnamedNETUA UnnamedNETUA 12 октября 2010 в 23:38

Это хорошо, но 2 таких огромных модуля :(. И на данный момент не работают из за http://drupal.org/node/938778 так как не ставятся Sad
Теперь, когда почитал, что людей интересует просто версткой шаблона интересует этот $row пусть ему ладно живется.

Аватар пользователя UnnamedNETUA UnnamedNETUA 14 октября 2010 в 3:07

Стиль строки: Поля
Шаблонон views-view-fields--****.tpl.php
Определить значения
<?php foreach ($fields as $id => $field){print $id;}?>
Вывести значение:
<?php print $fields['Полученное значение']->content;?>

Аватар пользователя UnnamedNETUA UnnamedNETUA 14 октября 2010 в 3:33

Так, поля определить можно без кода, заходим во views. та где у нас отобраны поля для отображения
кликаем на последние поле, и получаем имена всех переменных "постановочные шаблоны"
<Поля>
[title] == Материал: Заголовок
[entity_id_1] == Поля: field_category_file
[entity_id_4] == Поля: field_subcategory_file
[entity_id] == Поля: field_os
[entity_id_5] == Поля: field_os_version
[name] == Пользователь: Название
[entity_id_3] == Поля: field_screenshot
[entity_id_2] == Поля: field_file_opisanie

Значит для вывода заголовка нужно писать: <?php print $fields['Полученное значение']->content;?>