Drupal 7: Cara Mudah Menampilkan Exposed Views Filter Diluar Block Menggunakan File Template

Caranya ternyata mudah, cukup menggunakan fungsi views_get_view('nama_views') dan kemudian membuat dan merender form versi siap cetaknya menggunakan fungsi drupal_build_form('views_exposed_filter',$form_state).


on Sab, 11/28/2015 - 12:22
6.517 View

Setelah sekian lama mencari-cari cara agar dapat menampilkan blok exposed views filter diluar "blok aslinya", akhirnya upaya ku membuahkan hasil. Caranya ternyata mudah, cukup menggunakan fungsi views_get_view('nama_views') dan kemudian membuat dan merender form versi siap cetaknya menggunakan fungsi drupal_build_form('views_exposed_filter',$form_state). Dengan solusi ini, maka jadilah seperti apa yang tertera di halaman Daftar Artikel di rumah kita yang baru ini TutorKeren.com

Berikut tampilannya dalam sekilas:

[[{"fid":"274","view_mode":"wysiwyg","fields":{"format":"wysiwyg","field_file_image_alt_text[und][0][value]":"print exposed views filteroutside views form or block ","field_file_image_title_text[und][0][value]":"print exposed views filter outside views form or block"},"type":"media","link_text":null,"attributes":{"alt":"print exposed views filteroutside views form or block","title":"print exposed views filteroutside views form or block","height":"204","width":"400","class":"media-element file-wysiwyg"}}]]

Kodingnya gimana ? 

Ini dia:

<section id="saringan">
        <?php
            $view = views_get_view('node_beautify');
            $display_id = 'block_3';
            $view->set_display($display_id);
            $view->init_handlers();
            $form_state = array(
              'view' => $view,
              'display' => $view->display_handler->display,
              'exposed_form_plugin' => $view->display_handler->get_plugin('exposed_form'),
              'method' => 'get',
              'rerender' => TRUE,
              'no_redirect' => TRUE,
            );
            
            $form = drupal_build_form('views_exposed_form', $form_state);
        ?>
        <div id="nb-artikel-filter-cnt" class="view-filters row">
            <div class="col-sm-12 col-lg-12">
                <?php print drupal_render($form);?>
            </div>
        </div>
    </section>

Penjelasan:

Yang perlu diganti adalah nama views (machine name) dari display yang ingin dikeluarkan / exposed filternya ingin dicetak diluar, dalam kasus ku nama views nya adalah node_beautify. Kemudian tidak lupa juga nama displaynya, yaitu 'block_3'. Dalam kasus kalian nama displaynya bisa menjadi page, page_1 dan seterusnya, tergantung jenis dari display kalian apa. Untuk melihat nama displaynya gampang, tinggal lihat di bagian theming di pojok kanan bawah.

Sekian tutorial singkat ini, semoga bisa membantu para pencari yang membutuhkannya... dan tentunya bisa membantu diriku juga seandainya perlu solusi ini lagi di lain kesempatan, hihi...

Profil Penulis

User Picture
  • Member Since 9 tahun 10 bulan ago
Aditya Suranata

Embedded System, Internet of Things, Precision Agriculture, Controlled Environment...

Aditya suka menulis, bukan hanya sekedar hobi, menulis menjadi medianya untuk mencurahkan pikiran dan perasaan. Di TutorKeren.com kebanyakan menyumbang tulisan sesuai dengan minat dan keahliannya yaitu pada kategori pemrograman dan elektronika....

Komentar Terbaru

Comments