Cómo usar una clase div para ajustar algunos campos seleccionados de una vista de vistas de cuadrícula

Respuestas:

11

Es realmente simple usando las sobrescrituras de campo.

Primero, configure los campos (author) User: Picturey (author) User: Namepara "Excluir de la pantalla".

Luego abra la configuración del Content: Post datecampo y abra el conjunto de campos "Reescribir resultados".

Marque "Reescribir la salida de este campo". Esto revelará otro conjunto de campos "Patrones de reemplazo" que debería mostrarle los tokens para todos los campos sobre el campo actual. Todo lo que necesita hacer es colocar un <div>contenedor en el cuadro de texto y copiar los tokens que desee entre las etiquetas div.

ingrese la descripción de la imagen aquí

Abeja
fuente
1
También revise esta publicación usando el mismo método mediacurrent.com/blog/ultimate-markup-control-in-views
Andrew Welch
3

debe usar hook_views_pre_render (& $ views) o 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
fuente
falta un par de cierre}}
Andrew Welch
2

Cree una plantilla para la salida de estilo de filas, por ejemplo: views-view-fields - frontpage-promotion-news-story - block.tpl.php. Busque en las vistas-> avanzado-> temas para ver las opciones. Copie y pegue el nombre de la especificidad de la plantilla que desea y cree un archivo con ese nombre, luego ejecute 'volver a escanear' para que Drupal encuentre la nueva plantilla.

Luego haz 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
fuente