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

9

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

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

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

Ответы:

11

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

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

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

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

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

BEEBEE
источник
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;
    }
  }
}
harshal
источник
отсутствует пара закрытия}}
Эндрю Уэлч
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>
Эндрю Уэлч
источник