Como usar uma classe div para quebrar alguns campos selecionados de uma exibição de grade

9

Eu vim através disso:

mas não consigo entender como usar uma classe div para quebrar alguns campos selecionados de uma exibição de exibição em grade. No meu caso, quero agrupar três campos de uma exibição em uma classe div, como mostra a imagem abaixo:
insira a descrição da imagem aqui

rakibtg
fonte
Como assim div class? Você quer dizer apenas uma divetiqueta normal ?
Beebee

Respostas:

11

É realmente simples usando as substituições de campo.

Primeiro, defina os campos (author) User: Picturee (author) User: Namepara "Excluir da exibição".

Em seguida, abra as configurações do Content: Post datecampo e abra o conjunto de campos "Reescrever resultados".

Marque "Reescrever a saída deste campo". Isso revelará outro conjunto de campos "Padrões de substituição", que deve mostrar os tokens para todos os campos acima do campo atual. Tudo o que você precisa fazer é colocar um <div>invólucro na caixa de texto e copiar os tokens que deseja entre as tags div.

insira a descrição da imagem aqui

Beebee
fonte
11
Além disso, verifique este post usando o mesmo método mediacurrent.com/blog/ultimate-markup-control-in-views
Andrew Welch
3

você deve usar hook_views_pre_render (& $ views) ou 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
fonte
faltando um par de fechamento}}
Andrew Welch
2

Crie um modelo para a saída do estilo de linhas, por exemplo: vistas-vista-campos - página-promovida-notícia-história - block.tpl.php. Procure em visualizações-> avançado-> temas para obter opções. Copie e cole o nome da especificidade do modelo desejado e crie um arquivo com esse nome e execute 'rescan' para que o Drupal encontre o novo modelo.

Então faça algo como:

<?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>
Andrew Welch
fonte