Как я могу удалить сгенерированные по умолчанию теги в результате просмотра?
Я использую представления на своем веб-сайте drupal. Я установил "стиль" в "Неформатированный" и "Стиль строки" в "Поля'
Также я переписал вывод поля с помощью своих HTML-тегов.
Но в результате у меня возникла проблема. Каждая строка расположена внутри тега [div] , например, первая строка расположена в
<div class="views-row views-row-1 views-row-odd views-row-first"></div>
Как я могу настроить представление, чтобы удалить этот дополнительный тег [div] ?!?!?
Мне не нужна эта обертка.
7 answers
Если вы не хотите касаться темы, вы можете использовать модуль Семантические представления, чтобы удалить все дополнительные div.
Проще всего скопировать файлы шаблонов из "сайты/все/модули/представления/тема/" в вашу тему (обычно я создаю подкаталог "представления/").
Если вы хотите внести это изменение во все темы, отредактируйте"views-view-unformatted.tpl.php ".
Если вы хотите просто изменить это представление, отредактируйте представление, затем нажмите на ссылку Тема: Информация . В нем будут показаны предложения по шаблону для представления. Копировать Если вы хотите внести это изменение для всех тем, скопируйте "views-view-unformatted.tpl.php "к правильному имени и отредактируйте этот файл.
В обоих случаях убедитесь, что вы очистили кэш Drupal, чтобы убедиться, что система найдет новые файлы.
Это решение объединяет и основывается на решениях Дэвида Пола и MDP и последовательно удаляет <div class="views-row ...">
для всех представлений, которые правильно настроены без дополнительных модулей.
Drupal 7 и 8
Шаг 1: Отключите все конфигурации классов в разделе Параметры стиля раздела Формат представления.
Вы должны сделать это для всех видов, с которых хотите удалить оболочку от:
Drupal 7
Шаг 2: Скопируйте views-view-unformatted.tpl.php
из модуля Представления в папку templates
вашей темы и измените логику, чтобы игнорировать div, когда классы пусты.
Измените следующие строки с:
<div<?php if ($classes_array[$id]) { print ' class="' . $classes_array[$id] .'"'; } ?>>
<?php print $row; ?>
</div>
Кому:
<?php if ($classes_array[$id]) : ?><div class="<?php print $classes_array[$id]; ?>"><?php endif; ?>
<?php print $row; ?>
<?php if ($classes_array[$id]) : ?></div><?php endif; ?>
Drupal 8
Шаг 2: Скопируйте views-view-unformatted.html.twig
из модуля Представления в папку templates/views/
вашей темы и измените логику, чтобы игнорировать div, когда {{row.attributes}} пустой.
Измените следующие строки с:
<div{{ row.attributes.addClass(row_classes) }}>
{{ row.content }}
</div>
Кому:
{% if default_row_class or row.attributes is not empty %}
<div{{ row.attributes.addClass(row_classes) }}>
{{ row.content }}
</div>
{% else %}
{{ row.content }}
{% endif %}
Честно говоря, я не уверен, почему модуль Views не делает этого сам... это полный WTF и может быть хорошим улучшением для опыта пользователя.
Вы хотите заглянуть в раздел Theming: Information
и переопределить один из стилизованных шаблонов для вашего представления. Вот где все это происходит. Обязательно используйте кнопку повторного сканирования при создании файла tpl с соответствующим именем, чтобы Drupal его подобрал.
Чтобы удалить это в Drupal 7, вы можете нажать на настройки полей и отключить "Предоставлять элементы оболочки по умолчанию"
Если вы используете Drupal 7, вам не нужно играть с файлами шаблонов, чтобы удалить дивы-оболочки. Эти обертки являются частью вывода, что предполагает, что ими можно управлять в представлении, которое они могут.
В разделе ФОРМАТ> Показать: поля |настройки - нажмите "Настройки", затем снимите флажок "Обертка". Вот и все.