Come utilizzare una classe div per avvolgere alcuni campi selezionati di una vista viste griglia


9

Ho superato questo:

ma non riesco a capire come usare una classe div per avvolgere alcuni campi selezionati di una vista di viste griglia. Nel mio caso, voglio avvolgere tre campi di una vista in una classe div come l'immagine mostra di seguito:
inserisci qui la descrizione dell'immagine


Cosa intendi con div class? Intendi semplicemente un divtag normale ?
Beebee,

Risposte:


11

È davvero semplice usando le sovrascritture Field.

Innanzitutto, imposta i campi (author) User: Picturee (author) User: Namesu "Escludi dalla visualizzazione".

Quindi aprire le impostazioni per il Content: Post datecampo e aprire il set di campi "Riscrivi risultati".

Seleziona "Riscrivi l'output di questo campo". Ciò rivelerà un altro "Pattern di sostituzione" del set di campi che dovrebbe mostrare i token per tutti i campi sopra il campo corrente. Tutto quello che devi fare è inserire un <div>wrapper nella casella di testo e copiare i token desiderati tra i tag div.

inserisci qui la descrizione dell'immagine


1
Controlla anche questo post usando lo stesso metodo mediacurrent.com/blog/ultimate-markup-control-in-views
Andrew Welch,

3

dovresti usare 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;
    }
  }
}

manca un paio di chiusure}}
Andrew Welch,

2

Crea un modello per l'output in stile righe, ad esempio: views-view-fields - frontpage-promoted-news-story - block.tpl.php. Cerca in temi-> avanzati-> temi per le opzioni. Copia e incolla il nome della specificità del modello desiderato e crea un file con quel nome, quindi esegui 'rescan' in modo che Drupal trovi il nuovo modello.

Quindi fai qualcosa del tipo:

<?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>

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.