Como redirecionar uma consulta de filtro exposta para uma página de resultados de exibições que mora em outra página do painel?


8

Minha configuração: Drupal 7.2, painéis 7.x-3.0-alpha3, visualizações 7.x-3.0-beta3, conjunto de ferramentas Chaos 7.x-1.0-beta1

Digamos que eu queira criar um site de diretório de frutas. Nas visualizações, tenho um painel de conteúdo "frutas" com filtros expostos com base em taxonomias "cor". O site deve ter duas páginas de painel. A primeira página do painel exibe apenas a caixa de filtro exposta "pesquisar uma fruta" com uma lista suspensa de "cor" e um botão de pesquisa. Ao escolher a lista suspensa e clicar no botão de pesquisa, o usuário deve ser redirecionado para a segunda página do painel que inclui o painel de conteúdo da exibição exibindo uma lista de frutas que correspondem ao filtro (cor).

O problema é: a caixa de filtro exposta na primeira página não será redirecionada para a página de resultado depois de clicar no botão aplicar. Como configuro vistas e painéis para conseguir isso?

Respostas:


7
function hook_form_alter(&$form, &$form_state, $form_id) {  
  if ($form_id=='views_exposed_form') {
    global $base_url;
    $form['#action'] = $base_url.'/path_that_you_want'; 
  }
}

Isso funciona bem, mas em vez de usar $ base_url, acho que você provavelmente deveria usar url('path_that_you_want').
John Fiala

11
Eu tentei isso sem sucesso. Na verdade, meu atributo 'action' diz outro destino.Como posso corrigir isso?
precisa saber é o seguinte

Ei, onde eu adiciono este código, por favor me avise Obrigado
React Developer

0

Não tenho certeza se existe uma maneira "correta", mas fiz isso acontecer escrevendo um hook_form_alter para o formulário de filtro exposto para alterar o destino.

Não é o ideal, mas obtive os resultados necessários.


Como você fez isso? Você poderia postar seu código?
23911 Michiel

0

A solução mais simples é

  • Crie uma página de visualizações
  • Crie uma vista exposta
  • Em Avançado> formulário exposto. Defina "formulário exposto no bloco: Sim"
  • Adicione o bloco "Formulário exposto: ..." à página inicial necessária.

0

A solução mais simples é criar uma página de visualizações. Criar uma visualização exposta Em Avançado> formulário exposto. Defina "formulário exposto no bloco: Sim" Adicione o bloco "Formulário exposto: ..." à página inicial necessária.

O formulário acima da Interlated me deixou no meio do caminho com o bloco de filtro exposto trabalhando para abrir e exibir resultados em uma nova página.

No entanto, eu também precisava que o bloco de filtro estivesse nessa página de resultados. Então, anexei o formulário (bloco de filtro exposto) através da área de visualização no cabeçalho. Então, encontrei um comportamento recursivo quando os dois são exibidos na mesma exibição.

Para resolver, separei os dois monitores (página e bloco) em suas próprias visualizações - criei um bloco como o filtro exposto que incluía campos para resultados e, em seguida, uma visualização totalmente nova para que a página tenha um URL a ser alcançado. A exibição de página tem um campo (título) que é substituído como espaço em branco (principalmente porque os resultados seriam redundantes, mas também imprecisos - achei resultados exibidos com precisão nos campos no bloco de filtro exposto). Eu mantive as mesmas configurações filtradas entre os dois monitores e usei melhores filtros expostos usando ajax nos dois monitores.

Eu fiz isso no D8, mas provavelmente seria o mesmo no 7.

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.