как темизировать view?

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

Аватар пользователя gothica@drupal.org gothica@drupal.org 13 января 2010 в 11:31

Как можно темизировать страницу, которая выводится через view? Догадываюсь, что через создание файла определенной маски?

ps. страница localhost/new

Комментарии

Аватар пользователя Freedom Freedom 13 января 2010 в 12:19

Как правило подобные описания завершаются словами переименуйте файл и меняйте как хотите. Вопрос в том как именно менять? Как получить доступ к конкретным полям выводимых во вьюс? По умолчанию он выводит <?php print $content; ?> А как вывести конкретные поля? Например:

Запись 1:
<table>
<tr>
<td> Поле 1 </td>
<td> Поле 2 </td>
</tr>
</table>
Поле 3
Поле 4
<table>
<tr>
<td> Поле 5 </td>
<td> Поле 6 </td>
</tr>
</table>

Запись 2:
<table>
<tr>
<td> Поле 1 </td>
<td> Поле 2 </td>
</tr>
</table>
Поле 3
Поле 4
<table>
<tr>
<td> Поле 5 </td>
<td> Поле 6 </td>
</tr>
</table>

и т.д....

Аватар пользователя Ромка Ромка 13 января 2010 в 12:50

"Freedom" wrote:
По умолчанию он выводит <?php print $content; ?>

Неправда. Посмотрите шаблон views-view-table.tpl.php, в нем можно получить доступ к каждой ячейке каждой строки и вывести его как угодно.

Аватар пользователя Freedom Freedom 13 января 2010 в 12:57

Вот что там лежит:

<?php<table class="<?php print $class?>">
  <?php if (!empty($title)) : ?>
    <caption><?php print $title?></caption>
  <?php endif; ?>
  <thead>
    <tr>
      <?php foreach ($header as $field => $label): ?>
        <th class="views-field views-field-<?php print $fields[$field]; ?>">
          <?php print $label?>
        </th>
      <?php endforeach; ?>
    </tr>
  </thead>
  <tbody>
    <?php foreach ($rows as $count => $row): ?>
      <tr class="<?php print implode(' '$row_classes[$count]); ?>">
        <?php foreach ($row as $field => $content): ?>
          <td class="views-field views-field-<?php print $fields[$field]; ?>">
            <?php print $content?>
          </td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>
  </tbody>
</table>

?>

Аватар пользователя Ромка Ромка 13 января 2010 в 13:14

Ну да, я знаю что там лежит.

Вот этот код:


    <?php foreach ($rows as $count => $row): ?>
      <tr class="<?php print implode(' '$row_classes[$count]); ?>">
        <?php foreach ($row as $field => $content): ?>
          <td class="views-field views-field-<?php print $fields[$field]; ?>">
            <?php print $content?>
          </td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>

выводит данные, переменная $content здесь — это содержимое текущего поля. Если вы знаете имена полей, которые надо вывести, то код можно переписать примерно так:

<?php
foreach($rows as $row) {
   print 
$row['name_1'] . "; " $row['name_2'] . "<br>";
}
?>

имена name_1 и name_2 — это имена полей, которые вы выбрали в настройках представления.

Аватар пользователя gothica@drupal.org gothica@drupal.org 13 января 2010 в 16:37

а как можно обратиться к переменной поля переданной во view, у которой в настройках view указано Exclude from display.. никак не могу разобраться. спасибо!

Аватар пользователя Ромка Ромка 13 января 2010 в 16:49

Дык она на то и exclude, что в шаблон не попадает, так что никак. Если вам нужно просто в шаблоне реализовать какую-то логику отображения в зависимости от значения поля, то его не нужно исключать из отображения, а просто в шаблоне не нужно его выводить.

Аватар пользователя iNFerNo iNFerNo 6 июня 2011 в 13:37

"Ромка" wrote:
имена name_1 и name_2 — это имена полей, которые вы выбрали в настройках представления.

а можно узнать в каких именно настройках то?