Verwenden einer div-Klasse zum Umschließen einiger ausgewählter Felder einer Rasteransichtsansicht

9

Ich habe das durchgemacht:

Ich kann jedoch nicht verstehen, wie eine div-Klasse zum Umschließen einiger ausgewählter Felder einer Rasteransichtsansicht verwendet wird. In meinem Fall möchte ich drei Felder einer Ansicht in eine div-Klasse einschließen, wie das folgende Bild zeigt:
Geben Sie hier die Bildbeschreibung ein

rakibtg
quelle
Was meinst du damit div class? Meinst du nur ein normales divTag?
Beebee

Antworten:

11

Es ist wirklich einfach, die Feldüberschreibungen zu verwenden.

Setzen Sie zuerst die Felder (author) User: Pictureund (author) User: Nameauf "Von Anzeige ausschließen".

Öffnen Sie dann die Einstellungen für das Content: Post dateFeld und öffnen Sie das Feldset "Ergebnisse neu schreiben".

Aktivieren Sie "Ausgabe dieses Feldes neu schreiben". Daraufhin wird ein weiteres Feldset "Ersatzmuster" angezeigt, in dem die Token für alle Felder über dem aktuellen Feld angezeigt werden sollen. Sie müssen <div>lediglich einen Wrapper in das Textfeld einfügen und die gewünschten Token zwischen die div-Tags kopieren.

Geben Sie hier die Bildbeschreibung ein

Beebee
quelle
1
Überprüfen Sie diesen Beitrag auch mit der gleichen Methode mediacurrent.com/blog/ultimate-markup-control-in-views
Andrew Welch
3

Sie sollten hook_views_pre_render (& $ views) oder theme_process_views_view_field () verwenden.

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
quelle
fehlt ein paar schließen}}
Andrew Welch
2

Erstellen Sie eine Vorlage für die Ausgabe im Zeilenstil, z. B.: Ansichten-Ansichtsfelder - Frontpage-Promoted-News-Story - block.tpl.php. Suchen Sie in Ansichten-> Erweitert-> Themen nach Optionen. Kopieren Sie den Namen der gewünschten Vorlage und fügen Sie ihn ein. Erstellen Sie eine Datei mit diesem Namen. Führen Sie dann "Rescan" aus, damit Drupal die neue Vorlage findet.

Dann mach so etwas wie:

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