Как использовать класс div, чтобы обернуть некоторые выбранные поля представления сетки


9

Я прошел через это:

но не могу понять, как использовать класс div, чтобы обернуть некоторые выбранные поля вида сетки. В моем случае я хочу обернуть три поля представления в класс div, как показано на рисунке ниже:
введите описание изображения здесь


Что вы имеете в виду div class? Вы имеете в виду обычный divтег?
Биби

Ответы:


11

Это действительно просто с помощью перезаписи поля.

Во- первых, установите (author) User: Pictureи (author) User: Nameполя «Исключить из дисплея».

Затем откройте настройки для Content: Post dateполя и откройте набор полей «Перезаписать результаты».

Проверьте «Перезаписать вывод этого поля». Это откроет другой набор полей «Шаблоны замены», который должен показать вам токены для всех полей над текущим полем. Все, что вам нужно сделать, это поместить <div>оболочку в текстовое поле и скопировать нужные токены между тегами div.

введите описание изображения здесь


1
Также проверьте этот пост, используя тот же метод mediacurrent.com/blog/ultimate-markup-control-in-views
Эндрю Уэлч

3

Вы должны использовать hook_views_pre_render (& $ views) или theme_process_views_view_field ()

function YOUR_THEME_preprocess_views_view_fields(&$vars) {

  if ($vars['view']->name == 'view_name') {

    foreach( $vars['view']->result as $key => $value) { 
      $add_start_div = '<div class="add_div">';
      $markup_for_field_name_1 = $value->field_name1[0]['rendered']['#markup'] ; 
      $value->field_name1[0]['rendered']['#markup'] = $add_start_div . $markup_for_field_name_1;
      $markup_for_field_name_3 = $value->field_name3[0]['rendered']['#markup'];
      $add_end_div = '</div>';
      $value->field_name3[0]['rendered']['#markup'] = $value->field_name3[0]['rendered']['#markup'] . $add_end_div;
    }
  }
}

отсутствует пара закрытия}}
Эндрю Уэлч

2

Создайте шаблон для вывода стиля строк, например: views-view-fields - frontpage-promooted-news-story - block.tpl.php. Посмотрите в представлении-> дополнительные-> темы для вариантов. Скопируйте и вставьте имя нужного вам шаблона и создайте файл с этим именем, затем запустите 'rescan', чтобы Drupal нашел новый шаблон.

Затем сделайте что-то вроде:

<?php
$field_vals = [];
foreach($fields as $id => $field){
    $field_vals[$id]= $field->content;
}
?>
<!-- layout fields -->
<div class="promoted-news-story">
<!-- image, title, date, body, link -->
    <div class="promoted-news-story__image-wrap">
        <?php print $field_vals['field_standard_header_image'];?>
    </div>
    <div class="promoted-news-story__content-wrap">
        <h2><?php print $field_vals['title'];?></h2>
        <?php print $field_vals['field_news_date'];?>
        <?php print $field_vals['body'];?>
        <?php print $field_vals['view_node'];?>
    </div>
</div>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.