tampilkan jumlah hasil untuk filter yang terbuka


10

Saya memiliki beberapa filter terbuka untuk memfilter konten dalam pandangan saya. Sebagian besar dari mereka adalah istilah taksonomi, sekarang saya ingin menunjukkan berapa banyak node yang ditandai dengan istilah di belakang istilah taksonomi.

contoh:

London (5)
Paris (3)
Madrid (2)
...

Adakah yang bisa saya lakukan ini?

Jawaban:


4

Berikut ini beberapa contoh kode untuk melakukan ini:

function hook_form_alter(&$form, &$form_state, $form_id) {
    switch($form_id) {
        case 'views_exposed_form':

            $allowed_categories = db_query("SELECT 1 as tid, "Term Name (2)" as `name`")->fetchAllKeyed();
            $allowed_categories = array_reverse($allowed_categories, TRUE);
            $allowed_categories['All'] = '- Any -';
            $allowed_categories = array_reverse($allowed_categories, TRUE);

            $form['field_category_tid']['#options'] = $allowed_categories;

            break;
    }
}

Cukup ubah kueri untuk mengembalikan 2 kolom - tid dan nama dengan hitungan.


1

saya membuat modul dengan hook_form_alter().

Dalam fungsi itu saya membuat kueri yang menghitung node yang dilampirkan pada istilah taksonomi tertentu dan menambahkan nomor ini di akhir setiap istilah.


Adakah peluang untuk melihat kode yang Anda gunakan untuk ini? THX sebelumnya!
Volker

@ Volker: Saya baru saja menambahkan jawaban dengan beberapa kode sampel ...
Felix Eve

1
function hook_form_alter(&$form, &$form_state, $form_id) {
  switch($form_id){
    case 'views_exposed_form':
      if ($form_state['view']->name == 'viewname') {
    //must add some bool so this doesn't get into infinite loop
    if(!isset($form_state['view']->gg)){
      $form_state['view']->gg = TRUE;
      $form_state['view']->execute();
    }

    $form['results_count'] = array(
      '#markup' => t('!count results match your criteria', array('!count' => '<b>'.$form_state['view']->total_rows.'</b>')),
      '#weight' => -99,
    );
      }

      break;
  }
}

Halo dan selamat datang. Walaupun kode ini dapat menjawab pertanyaan, akan lebih baik untuk menjelaskan mengapa dan bagaimana cara kerjanya, sehingga OP dapat belajar darinya, tidak hanya mengandalkan orang lain untuk menulis karya untuknya. Sepertinya ide dan pengetahuan adalah apa yang dia kejar, dan itu adalah hal yang baik yang harus didorong :)
Mołot

lingkarannya adalah saran yang sangat berguna! thks
Kojo


0

Ini adalah contoh dari situs saya yang sebenarnya. field_marka_prochnosti adalah bidang simpul yang diwakili oleh kosa kata taksonomi. Saya menggunakan phpMyAdmin untuk mempelajari nama tabel dan nama bidang tabel itu untuk membuat kueri. bricksale_omega adalah nama tema saya.

function bricksale_omega_form_alter(&$form, &$form_state, $form_id) {
switch($form_id){
case 'views_exposed_form':

  foreach ($form['field_marka_prochnosti_tid']['#options'] as $tid => &$value) {
    $query = db_select('field_data_field_marka_prochnosti', 'f')
            ->condition('f.field_marka_prochnosti_tid', $tid);
    $query->addExpression('COUNT(*)');
    $count = $query->execute()->fetchField();
    $value = $value . ' (' . $count . ')';
  }

  break;
  }
}
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.