उजागर फ़िल्टर के लिए परिणामों की मात्रा दिखाएं


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()

उस फ़ंक्शन में मैंने एक क्वेरी बनाई जो एक निश्चित टैक्सोनॉमी टर्म से जुड़ी नोड्स को गिना और हर टर्म के अंत में इस नंबर को जोड़ा।


इसके लिए आपके द्वारा उपयोग किए गए कोड को देखने का कोई मौका? अग्रिम में!
वोल्कर

@ वॉलर: मैंने अभी कुछ सैंपल कोड के साथ एक उत्तर जोड़ा है ...
फेलिक्स ईव

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

नमस्ते और आपका स्वागत है। हालांकि यह कोड प्रश्न का उत्तर दे सकता है, यह एक अच्छे लहजे में होगा कि यह समझा जाए कि इसे क्यों और कैसे काम करना चाहिए, इसलिए ओपी इससे सीख सकता है, न केवल दूसरों पर भरोसा करने के लिए उसके लिए टुकड़े लिखना। ऐसा लगता है कि विचार और ज्ञान वह है जो वह है, और यह एक अच्छी बात है जिसे प्रोत्साहित किया जाना चाहिए :)
Mołot

पाश बात एक बहुत ही उपयोगी सलाह थी! thks
कोजो


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;
  }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.