Como nomear visualizações-expostas-form.tpl.php por exibição de visualizações

8

Eu tentei, views-exposed-form--"view_name"--"display_name".tpl.phpmas não funciona. É possível criar um arquivo de modelo que se aplique apenas ao filtro exposto de uma exibição de visualizações?

Eu tenho dois filtros expostos de duas telas diferentes em uma mesma exibição e gostaria de tema os dois filtros expostos de maneira diferente por dois arquivos de modelo.

chinita7
fonte
Não, estou tentando. Mas não está funcionando.
Esta não é realmente uma resposta para a pergunta. Talvez seja melhor fazer a pergunta novamente e explicar como e por que a solução existente não funciona para você '?
Neograph734
Isso não fornece uma resposta para a pergunta. Depois de ter reputação suficiente, você poderá comentar qualquer postagem ; em vez disso, forneça respostas que não exijam esclarecimentos do solicitante . - Do comentário
Shawn Conn

Respostas:

2

Tudo é possível no Drupal;)

Provavelmente, o Views não fornece automaticamente sugestões de modelo para o filtro exposto, como faz para os próprios campos. Então, você precisará fazer um pouco mais de trabalho para este:

  1. Use o módulo devel_themer para descobrir qual função / modelo está usando o filtro exposto.
  2. Crie um pré - processador para essa função / modelo de tema. No seu pré-processador, você pode inserir sugestões de modelos dinâmicos que serão disparados com base em qualquer condição desejada. Você pode criar esse pré-processador no arquivo template.php do seu tema personalizado ou em um de seus módulos personalizados. Este artigo DO orientará você na criação da sugestão de modelo dinâmico.

Assumirei que você exibirá diferentes exibições de visualizações com base em um caminho de URL. Se esse fosse o caso, você poderá usar a arg()função do Drupal em seu pré-processador para descobrir qual é a tela View que você está exibindo no momento e construir sua sugestão de modelo usando essas informações.

Depois de configurar suas sugestões corretamente, o Drupal chamará automaticamente o modelo apropriado e pronto, você terá diferentes modelos de filtro com base no caminho (ou em qualquer outra condição especificada no pré-processador).

barista amador
fonte
25

No Drupal 7, você pode usar o formulário de exibição de exibição - view_name - display_name.tpl.php (Substitua sublinhados por traços no nome da exibição e no nome da exibição.)

Funcionou para mim dessa maneira.

milkovsky
fonte
Isso funcionou comigo. Aqui está um exemplo do meu nome de modelo de formulário exposto: views -posed-form - trunk_shows - panel-pane-1.tpl.php
albertski
Embora seu formulário de exibições expostas - view_name - display_name.tpl.php possa não estar listado quando você fizer isso, ao adicionar seu novo arquivo de modelo, você também deve editar a exibição, clique em Avançado-> Outros-> Tema -> Informações e clique no botão Verificar novamente os arquivos de modelo.
Kbrinner 19/04
Você não precisa do nome para exibição, se não precisar ser tão específico. Para minha visualização em bloco, "Visualização de Eventos", nomear meu arquivo de modelo "exibições-expostas-formulário - eventos-visualização.tpl.php" funcionou para mim. Obrigado, @kaimlaluno. Provavelmente essa deve ser a resposta aceita.
ProGrammar 15/03
3

em drupal8

/ admin / structure / views / view / event_related

seria

views-expos--form - event_related.html.twig

Matoeil
fonte
1

Para o drupal 8, o modo de depuração do tema não exibe as sugestões de modelos disponíveis. Você pode descobrir quais estão disponíveis usando o kint () ou criar novas neste gancho:

/**
 * Implements template_theme_suggestions_node_HOOK_alter().
 * Add theme suggestions to the view exposed forms.
 */
function YOUR_THEME_theme_suggestions_views_exposed_form_alter(&$suggestions, $vars, $hook) {
  kint($vars['form']['#theme']);
  //$suggestions[] = 'views__exposed__form__' . $anything; 
}
Interdruper
fonte