Comment utiliser une classe div pour encapsuler certains champs sélectionnés d'une vue de vues de grille


9

Je suis passé par là:

mais je ne comprends pas comment utiliser une classe div pour encapsuler certains champs sélectionnés d'une vue de vues de grille. Dans mon cas, je veux envelopper trois champs d'une vue dans une classe div comme l'image montre ci-dessous:
entrez la description de l'image ici


Qu'entendez-vous par div class? Voulez-vous juste dire une divbalise normale ?
Beebee

Réponses:


11

C'est vraiment simple en utilisant les remplacements de champs.

Tout d'abord, définissez les champs (author) User: Pictureet (author) User: Namesur "Exclure de l'affichage".

Ouvrez ensuite les paramètres du Content: Post datechamp et ouvrez le jeu de champs "Réécrire les résultats".

Cochez "Réécrire la sortie de ce champ". Cela révélera un autre jeu de champs "Modèles de remplacement" qui devrait vous montrer les jetons pour tous les champs au-dessus du champ actuel. Tout ce que vous devez faire est de mettre un <div>wrapper dans la zone de texte et de copier les jetons que vous souhaitez entre les balises div.

entrez la description de l'image ici


1
Consultez également ce message en utilisant la même méthode mediacurrent.com/blog/ultimate-markup-control-in-views
Andrew Welch

3

vous devez utiliser 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;
    }
  }
}

manque quelques fermetures}}
Andrew Welch

2

Créez un modèle pour la sortie de style de lignes, par exemple: vues-champs-vue - frontpage-promu-news-story - block.tpl.php. Regardez dans les vues-> avancées-> thèmes pour les options. Copiez et collez le nom de la spécificité du modèle souhaité et créez un fichier avec ce nom, puis exécutez «rescan» pour que Drupal trouve le nouveau modèle.

Ensuite, faites quelque chose comme:

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.