Cara menggunakan kelas div untuk membungkus beberapa bidang yang dipilih dari tampilan tampilan grid


9

Saya telah melalui ini:

tetapi tidak dapat memahami cara menggunakan kelas div untuk membungkus beberapa bidang yang dipilih dari tampilan tampilan grid. Dalam kasus saya, saya ingin membungkus tiga bidang tampilan ke dalam kelas div seperti yang ditunjukkan gambar di bawah ini:
masukkan deskripsi gambar di sini


Apa maksudmu div class? Apakah yang Anda maksud adalah divtag normal ?
Beebee

Jawaban:


11

Ini sangat sederhana dengan menggunakan penimpaan Field.

Pertama, setel (author) User: Picturedan (author) User: Namebidang ke "Kecualikan dari tampilan".

Kemudian buka pengaturan untuk Content: Post datebidang, dan buka bidang "Tulis ulang hasil".

Centang "Tulis ulang keluaran bidang ini". Ini akan mengungkapkan fieldset lain "Pola Penggantian" yang akan menunjukkan kepada Anda token untuk semua bidang di atas bidang saat ini. Yang perlu Anda lakukan adalah meletakkan <div>pembungkus di kotak teks dan menyalin token yang Anda inginkan di antara tag div.

masukkan deskripsi gambar di sini


1
Juga periksa pos ini menggunakan metode yang sama mediacurrent.com/blog/ultimate-markup-control-in-views
Andrew Welch

3

Anda harus menggunakan hook_views_pre_render (& $ views) atau 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;
    }
  }
}

melewatkan beberapa penutupan}}
Andrew Welch

2

Buat template untuk output gaya baris misalnya: view-view-fields - frontpage-dipromosikan-news-story - block.tpl.php. Lihat di views-> advanced-> themes untuk opsi. Salin dan tempel nama spesifisitas templat yang Anda inginkan dan buat file dengan nama itu, kemudian jalankan 'pindai ulang' sehingga Drupal menemukan templat baru.

Kemudian lakukan sesuatu seperti:

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.