แสดงจำนวนผลลัพธ์สำหรับตัวกรองแบบเปิดเผย


10

ฉันมีตัวกรองที่เปิดเผยสองสามตัวเพื่อกรองเนื้อหาในมุมมองของฉัน ส่วนใหญ่ของพวกเขาเป็นเงื่อนไขอนุกรมวิธานตอนนี้ฉันต้องการที่จะแสดงจำนวนโหนดที่ติดแท็กด้วยคำว่าหลังคำเทอม

ตัวอย่าง:

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

ความคิดใดที่ฉันสามารถทำได้?

คำตอบ:


4

นี่คือตัวอย่างรหัสให้ทำ:

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

เพียงแค่เปลี่ยนแบบสอบถามเพื่อกลับ 2 คอลัมน์ - tid และชื่อที่มีการนับ


1

hook_form_alter()ฉันสร้างโมดูลที่มี

ในฟังก์ชั่นนั้นฉันสร้างแบบสอบถามที่นับโหนดที่แนบมากับคำศัพท์อนุกรมวิธานบางอย่างและเพิ่มหมายเลขนี้ในตอนท้ายของทุกคำ


มีโอกาสเห็นรหัสที่คุณเคยใช้หรือไม่ ขอบคุณล่วงหน้า!
Volker

@Volker: ผมเพิ่งเพิ่มคำตอบที่มีโค้ดตัวอย่างบาง ...
เฟลิกซ์อีฟ

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

สวัสดีและยินดีต้อนรับ. ในขณะที่รหัสนี้อาจจะตอบคำถามที่ว่ามันจะอยู่ในโทนสีที่ดีที่จะอธิบายว่าทำไมและวิธีการที่มันควรจะทำงานเพื่อ OP จะเรียนรู้จากมันไม่เพียง แต่พึ่งพาผู้อื่นที่จะเขียนชิ้นสำหรับเขา ดูเหมือนความคิดและความรู้เป็นสิ่งที่เขาเป็นหลังและที่เป็นสิ่งที่ดีที่ควรได้รับการส่งเสริม :)
MOLOT

สิ่งที่วนรอบเป็นคำแนะนำที่มีประโยชน์มาก! thks
Kojo


0

นี่คือตัวอย่างจากเว็บไซต์จริงของฉัน field_marka_prochnosti เป็นฟิลด์ของโหนดที่แสดงโดยคำศัพท์อนุกรมวิธาน ฉันใช้ phpMyAdmin เพื่อเรียนรู้ชื่อของตารางและชื่อของเขตข้อมูลของตารางนั้นเพื่อสร้างแบบสอบถาม Bricksale_omega เป็นชื่อธีมของฉัน

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;
  }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.