mostrar a quantidade de resultados para o filtro exposto


10

Eu tenho alguns filtros expostos para filtrar o conteúdo em minha opinião. A maioria deles é termos de taxonomia, agora eu gostaria de mostrar quantos nós estão marcados com esse termo atrás do termo de taxonomia.

exemplo:

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

Alguma idéia de como eu posso fazer isso?

Respostas:


4

Aqui está um código de exemplo para fazer isso:

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

Basta alterar a consulta para retornar 2 colunas - a maré e o nome com uma contagem.


1

Eu criei um módulo com a hook_form_alter().

Nessa função, criei uma consulta que contava os nós anexados a um determinado termo de taxonomia e adicionei esse número ao final de cada termo.


Alguma chance de ver o código que você usou para isso? THX antecipadamente!
Volker

@Volker: Eu apenas acrescentou uma resposta com um código de exemplo ...
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;
  }
}

Olá e bem-vindo. Embora esse código possa responder à pergunta, seria bom explicar o porquê e como ele deve funcionar, para que o OP pudesse aprender com ele, não apenas confiando nos outros para escrever peças para ele. Parece que idéias e conhecimento são o que ele é, afinal, o que é uma coisa boa que devem ser encorajados :)
MOLOT

a coisa do loop foi um conselho muito útil! thks
Kojo


0

Este é um exemplo do meu site real. field_marka_prochnosti é um campo de um nó representado por um vocabulário de taxonomia. Eu usei o phpMyAdmin para aprender o nome de uma tabela e o nome do campo dessa tabela para fazer uma consulta. bricksale_omega é o nome do meu tema.

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;
  }
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.