Доброго дня! Drupal 7, не понимаю как добраться до сути.
Ковыряю шаблон Style Output (views), сделала что мне нужно (вместо $row['content'] свой код), но как получить поля в этом шаблоне?
Или нужно сделать каждое поле отдельно и собрать это из миллиона файлов?
Подскажите, уже несколько дней ищу информацию, ничего не выходит.
$row['title'] не помогает
Темизация Views
Главные вкладки
Лучший ответ
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 ?>
Комментарии
А Вы напишите что Вы делаете, и что Вам нужно.
Очень вероятно, что Вам нужно не поля выуживать из представления, а работать непосредственно с сущностями и их полями, темизируя их и выводя результат уже с помощью представлений.
Необходимо переопределить вывод 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>
Да и в общем - темизация views какая-то замороченная штука. Ничего понятного (для себя) не нашла.
Если с формами, нодами и пр. понятно, то тут - засада
Темизация вьюсов по готовому коду - простейшая штука.
Определяете нужный темплейт, удаляете всё, размещаете туда HTML, где требуется - выводите поля.
ничего замороченного, все просто как лом, даже проще чем нода, там надо искать какой шаблон используется, а тут все прописано
просто выбирайте нужный шаблон, и ковыряйте как душе угодно
При этом нажав на заголовок вы получите код по умолчанию для шаблона
стандартные файлы вывода находятся в модуле views/theme
За вывод views отвечают несколько файлов
первый - views-view.tpl.php
второй в зависимость от формата вывода.
если не форматированный список то - views-view-unformatted.tpl.php
далее происходит вывод полей - views-view-fields.tpl.php
посмотрите в вашей views
Расширенные/Другое/Тема: Информация, там прописана вся иерархия.
Создавайте свои файлы на основании вышеперечисленных и в них делайте любые обертки.
Дополнительно в вашей views в Формат/Поля:настройки уберите галочку с Предоставлять элементы обертки полей по умолчанию.
В 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 ?>
Виктор, огромное спасибо! То, что было нужно...
Еще дам совет.
Внимательно изучите информацию в Расширенные/Другое/Тема: Информация
Если вы создадите файл views-view-fields.tpl.php и в нем будите делать вывод полей, то это коснется всех созданных views.
Если например у вас есть одна вьюха, а в ней несколько блоков, то одним файлом можно сделать вывод всех вьюх, списков или полей блоков, а можно для каждого блока сделать свой вывод применяя оригинальные названия файлов из Расширенные/Другое/Тема: Информация.
Созданным блокам и страницам давайте свое "машинное имя". Меньше путаницы будет