Ergebnismenge für belichteten Filter anzeigen

10

Ich habe einige exponierte Filter, um den Inhalt in meiner Ansicht zu filtern. Die meisten davon sind Taxonomiebegriffe. Jetzt möchte ich zeigen, wie viele Knoten mit diesem Begriff hinter dem Taxonomiebegriff gekennzeichnet sind.

Beispiel:

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

Irgendeine Idee, wie ich das machen kann?

blenden
quelle

Antworten:

4

Hier ist ein Beispielcode, um dies zu tun:

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

Ändern Sie einfach die Abfrage, um 2 Spalten zurückzugeben - die tid und den Namen mit einer Zählung.

Felix Eve
quelle
1

Ich habe ein Modul mit einem erstellt hook_form_alter().

In dieser Funktion habe ich eine Abfrage erstellt, die die Knoten zählt, die einem bestimmten Taxonomiebegriff zugeordnet sind, und diese Nummer am Ende jedes Begriffs hinzugefügt.

blenden
quelle
Gibt es eine Chance, den Code zu sehen, den Sie dafür verwendet haben? THX im Voraus!
Volker
@ Volker: Ich habe gerade eine Antwort mit einem Beispielcode hinzugefügt ...
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;
  }
}
das Gleiche-
quelle
Hallo und Willkommen. Während dieser Code die Frage beantworten könnte, wäre es in einem guten Ton zu erklären, warum und wie er funktionieren soll, damit das OP daraus lernen und sich nicht nur darauf verlassen kann, dass andere Stücke für ihn schreiben. Es sieht so aus, als ob Ideen und Wissen das sind, wonach er sucht, und das ist eine gute Sache, die gefördert werden sollte :)
Mołot
Die Loop-Sache war ein sehr nützlicher Rat! thks
Kojo
0

Einige Links (kann nützlich sein)

  1. Modul Taxonomie-Menü mit Zähloption.
  2. Frage zu diesen Dingen, aber ohne vertrauenswürdige Antwort.
Kalabro
quelle
0

Dies ist ein Beispiel von meiner realen Seite. field_marka_prochnosti ist ein Feld eines Knotens, der durch ein Taxonomie-Vokabular dargestellt wird. Ich habe phpMyAdmin verwendet, um den Namen einer Tabelle und den Namen des Feldes dieser Tabelle zu erfahren, um eine Abfrage durchzuführen. bricksale_omega ist der Name meines Themas.

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