Темизация Views

Аватар пользователя ElenaSerg ElenaSerg 25 июня 2018 в 10:56

Доброго дня! Drupal 7, не понимаю как добраться до сути.
Ковыряю шаблон Style Output (views), сделала что мне нужно (вместо $row['content'] свой код), но как получить поля в этом шаблоне?
Или нужно сделать каждое поле отдельно и собрать это из миллиона файлов?
Подскажите, уже несколько дней ищу информацию, ничего не выходит.
$row['title'] не помогает

Лучший ответ

Аватар пользователя _viktor_ _viktor_ 25 июня 2018 в 17:09
1

В views-view-fields.tpl.php происходит вывод полей.
Создайте свой файл в соответствии с Расширенные/Другое/Тема: Информация

Поля по отдельности выводятся так
Пример для поля field_contacts_phone


<?php if ($fields['field_contacts_phone']->content) : ?>
            <div class="uk-margin-small-bottom">
                <span class="uk-text-bold">Телефон: </span>
                <?php print $fields['field_contacts_phone']->content?>
            </div>
        <?php endif ?>

Комментарии

Аватар пользователя bumble bumble 25 июня 2018 в 13:20

ElenaSerg wrote:

Ковыряю шаблон

ElenaSerg wrote:

сделала что мне нужно

ElenaSerg wrote:

Подскажите

А Вы напишите что Вы делаете, и что Вам нужно.

Очень вероятно, что Вам нужно не поля выуживать из представления, а работать непосредственно с сущностями и их полями, темизируя их и выводя результат уже с помощью представлений.

Аватар пользователя ElenaSerg ElenaSerg 25 июня 2018 в 13:58

Необходимо переопределить вывод views. Есть конкретный код, который должен быть на выходе. С миллионом оберток до сих пор не могу справится - слишком долго и муторно. Потом, когда необходимо внести мелкое изменение - опять лопатить кучу всего... Вот tpl вьюхи:

           
           
 
           
<?php if (!empty($title)): ?>
  <h3><?php print $title ?></h3>
<?php endif ?>

<div id="views-bootstrap-grid-<?php print $id ?>" class="<?php print $classes ?>">
  <?php if ($options['alignment'] == 'horizontal'): ?>

    <?php foreach ($items as $row): ?>
      <div class="row text-center">
        <?php foreach ($row['content'] as $key => $column): ?>
          <div class="<?php print $col_classes ?>">
           
           
            <!-- шаблон конечного вида -->

                                                            <!-- Featured image -->
                              <div class="view overlay rounded z-depth-2 mb-4">
                                <img class="img-fluid" src="https://mdbootstrap.com/img/Photos/Others/images/81.jpg" alt="Sample image">
                                <a>
                                  <div class="mask rgba-white-slight"></div>
                                </a>
                              </div>
                       
                              <!-- Category -->
                              <a href="#!" class="pink-text"><h6 class="font-weight-bold mb-3"><i class="fa fa-map pr-2"></i>Adventure</h6></a>
                              <!-- Post title -->
                              <h4 class="font-weight-bold mb-3"><strong>Название</strong></h4>
                              <!-- Post data -->
                              <p>15/07/2018</p>
                              <!-- Excerpt -->
                              <p class="dark-grey-text">Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus voluptas.</p>
                              <!-- Read more button -->
                              <a class="btn btn-pink btn-rounded btn-md">Read more</a>
                             
                              <!-- шаблон конечного вида -->
                             
          </div>

          <?php /* Add clearfix divs if required */ ?>
          <?php if ($options['columns_horizontal'] == -1 && !empty($options['clear_columns']) && $key != 0): ?>
            <?php foreach ($clearfix as $screen => $count): ?>
              <?php if (($key + 1) % $count == 0): ?>
                <div class="clearfix visible-<?php print $screen; ?>-block"></div>
              <?php endif; ?>
            <?php endforeach; ?>
          <?php endif; ?>
        <?php endforeach ?>
      </div>
    <?php endforeach ?>

  <?php else: ?>

    <div class="row">
      <?php foreach ($items as $column): ?>
        <div class="<?php print $col_classes ?>">
          <?php foreach ($column['content'] as $row): ?>
              <?php print $row['content'] ?>
          <?php endforeach ?>
        </div>
      <?php endforeach ?>
    </div>

  <?php endif ?>
</div>

Аватар пользователя ElenaSerg ElenaSerg 25 июня 2018 в 13:59

Да и в общем - темизация views какая-то замороченная штука. Ничего понятного (для себя) не нашла.
Если с формами, нодами и пр. понятно, то тут - засада

Аватар пользователя Semantics Semantics 25 июня 2018 в 14:15

Темизация вьюсов по готовому коду - простейшая штука.
Определяете нужный темплейт, удаляете всё, размещаете туда HTML, где требуется - выводите поля.

Аватар пользователя Olegars Olegars 25 июня 2018 в 14:22

ничего замороченного, все просто как лом, даже проще чем нода, там надо искать какой шаблон используется, а тут все прописано

Вывод отображения: views-view.tpl.php, views-view--commerce-line-item-table.tpl.php, views-view--commerce.tpl.php, views-view--commerce.tpl.php, views-view--default.tpl.php, views-view--commerce-line-item-table--default.tpl.php
Стиль вывода: views-view-table.tpl.php, views-view-table--commerce-line-item-table.tpl.php, views-view-table--commerce.tpl.php, views-view-table--commerce.tpl.php, views-view-table--default.tpl.php, views-view-table--commerce-line-item-table--default.tpl.php
Поле Commerce Line Item: ID позиции (ID: line_item_id): views-view-field.tpl.php, views-view-field--line-item-id.tpl.php, views-view-field--commerce-line-item-table.tpl.php, views-view-field--commerce-line-item-table--line-item-id.tpl.php, views-view-field--default.tpl.php, views-view-field--default--line-item-id.tpl.php, views-view-field--commerce-line-item-table--default.tpl.php, views-view-field--commerce-line-item-table--default--line-item-id.tpl.php
Поле Commerce Line Item: Тип (ID: type): views-view-field.tpl.php, views-view-field--type.tpl.php, views-view-field--commerce-line-item-table.tpl.php, views-view-field--commerce-line-item-table--type.tpl.php, views-view-field--default.tpl.php, views-view-field--default--type.tpl.php, views-view-field--commerce-line-item-table--default.tpl.php, views-view-field--commerce-line-item-table--default--type.tpl.php
Поле Commerce Line Item: Заголовок (ID: line_item_title): views-view-field.tpl.php, views-view-field--line-item-title.tpl.php, views-view-field--commerce-line-item-table.tpl.php, views-view-field--commerce-line-item-table--line-item-title.tpl.php, views-view-field--default.tpl.php, views-view-field--default--line-item-title.tpl.php, views-view-field--commerce-line-item-table--default.tpl.php, views-view-field--commerce-line-item-table--default--line-item-title.tpl.php
Поле Commerce Line Item: Метка (ID: line_item_label): views-view-field.tpl.php, views-view-field--line-item-label.tpl.php, views-view-field--commerce-line-item-table.tpl.php, views-view-field--commerce-line-item-table--line-item-label.tpl.php, views-view-field--default.tpl.php, views-view-field--default--line-item-label.tpl.php, views-view-field--commerce-line-item-table--default.tpl.php, views-view-field--commerce-line-item-table--default--line-item-label.tpl.php
Поле Commerce Line item: Цена (ID: commerce_unit_price): views-view-field.tpl.php, views-view-field--commerce-unit-price.tpl.php, views-view-field--commerce-line-item-table.tpl.php, views-view-field--commerce-line-item-table--commerce-unit-price.tpl.php, views-view-field--default.tpl.php, views-view-field--default--commerce-unit-price.tpl.php, views-view-field--commerce-line-item-table--default.tpl.php, views-view-field--commerce-line-item-table--default--commerce-unit-price.tpl.php
Поле Commerce Line Item: Количество (ID: quantity): views-view-field.tpl.php, views-view-field--quantity.tpl.php, views-view-field--commerce-line-item-table.tpl.php, views-view-field--commerce-line-item-table--quantity.tpl.php, views-view-field--default.tpl.php, views-view-field--default--quantity.tpl.php, views-view-field--commerce-line-item-table--default.tpl.php, views-view-field--commerce-line-item-table--default--quantity.tpl.php
Поле Commerce Line item: Итого (ID: commerce_total): views-view-field.tpl.php, views-view-field--commerce-total.tpl.php, views-view-field--commerce-line-item-table.tpl.php, views-view-field--commerce-line-item-table--commerce-total.tpl.php, views-view-field--default.tpl.php, views-view-field--default--commerce-total.tpl.php, views-view-field--commerce-line-item-table--default.tpl.php, views-view-field--commerce-line-item-table--default--commerce-total.tpl.php

просто выбирайте нужный шаблон, и ковыряйте как душе угодно
При этом нажав на заголовок вы получите код по умолчанию для шаблона

Аватар пользователя _viktor_ _viktor_ 25 июня 2018 в 17:03

стандартные файлы вывода находятся в модуле views/theme
За вывод views отвечают несколько файлов
первый - views-view.tpl.php
второй в зависимость от формата вывода.
если не форматированный список то - views-view-unformatted.tpl.php
далее происходит вывод полей - views-view-fields.tpl.php

посмотрите в вашей views
Расширенные/Другое/Тема: Информация, там прописана вся иерархия.

Создавайте свои файлы на основании вышеперечисленных и в них делайте любые обертки.
Дополнительно в вашей views в Формат/Поля:настройки уберите галочку с Предоставлять элементы обертки полей по умолчанию.

Аватар пользователя _viktor_ _viktor_ 25 июня 2018 в 17:09
1

В views-view-fields.tpl.php происходит вывод полей.
Создайте свой файл в соответствии с Расширенные/Другое/Тема: Информация

Поля по отдельности выводятся так
Пример для поля field_contacts_phone


<?php if ($fields['field_contacts_phone']->content) : ?>
            <div class="uk-margin-small-bottom">
                <span class="uk-text-bold">Телефон: </span>
                <?php print $fields['field_contacts_phone']->content?>
            </div>
        <?php endif ?>
Аватар пользователя _viktor_ _viktor_ 26 июня 2018 в 9:17

Еще дам совет.
Внимательно изучите информацию в Расширенные/Другое/Тема: Информация
Если вы создадите файл views-view-fields.tpl.php и в нем будите делать вывод полей, то это коснется всех созданных views.
Если например у вас есть одна вьюха, а в ней несколько блоков, то одним файлом можно сделать вывод всех вьюх, списков или полей блоков, а можно для каждого блока сделать свой вывод применяя оригинальные названия файлов из Расширенные/Другое/Тема: Информация.
Созданным блокам и страницам давайте свое "машинное имя". Меньше путаницы будет