No Drupal 7, criei uma exibição que lista vários campos. Os campos são agrupados por outro campo (o termo ID do campo). A marcação aparece assim:
<h3>[Term 1]</h3>
<div class="views-row views-row-1 views-row-odd views-row-first"> [Field Content] </div>
<div class="views-row views-row-2 views-row-even"> [Field Content] </div>
<div class="views-row views-row-3 views-row-odd views-row-last"> [Field Content] </div>
<h3>[Term 2]</h3>
<div class="views-row views-row-1 views-row-odd views-row-first"> [Field Content] </div>
<div class="views-row views-row-2 views-row-even"> [Field Content] </div>
<div class="views-row views-row-3 views-row-odd views-row-last"> [Field Content] </div>
<h3>[Term 3]</h3>
<div class="views-row views-row-1 views-row-odd views-row-first"> [Field Content] </div>
<div class="views-row views-row-2 views-row-even"> [Field Content] </div>
<div class="views-row views-row-3 views-row-odd views-row-last"> [Field Content] </div>
No entanto, eu preciso da marcação para ficar assim:
<div id="term_1">
<h3>[Term 1]</h3>
<div class="views-row views-row-1 views-row-odd views-row-first"> [Field Content] </div>
<div class="views-row views-row-2 views-row-even"> [Field Content] </div>
<div class="views-row views-row-3 views-row-odd views-row-last"> [Field Content] </div>
</div>
<div id="term_2">
<h3>[Term 2]</h3>
<div class="views-row views-row-1 views-row-odd views-row-first"> [Field Content] </div>
<div class="views-row views-row-2 views-row-even"> [Field Content] </div>
<div class="views-row views-row-3 views-row-odd views-row-last"> [Field Content] </div>
</div>
<div id="term_3">
<h3>[Term 3]</h3>
<div class="views-row views-row-1 views-row-odd views-row-first"> [Field Content] </div>
<div class="views-row views-row-2 views-row-even"> [Field Content] </div>
<div class="views-row views-row-3 views-row-odd views-row-last"> [Field Content] </div>
</div>
Eu sei que você pode usar views-view-unformatted.tpl.php (Saída de estilo) para exceder a exibição e inserir um DIV para agrupar o grupo.
No entanto, eu preciso que meu DIV do invólucro seja assim <div id="term_ID_{number of ID}">
. O ID do número corresponderá ao termo que foi usado para agrupar os campos. Por padrão, se você usar views-view-unformatted.tpl.php, não poderá inserir tokens para IDs de termo nele.
Qualquer ajuda seria apreciada.
tpl
arquivo, consulte a resposta aqui drupal.stackexchange.com/questions/11468/… tldr; em sua página de edição vista, sob avançado, clique tema: informaçõesTente Formato: lista HTML. Isso envolverá a coisa toda em uma lista de itens. Para mim, é perfeito (uma lista de itens de taxonomia). Espero que isto ajude.
fonte
Você já experimentou o recurso Reescrever resultados ? Clique no campo que deseja editar e role para baixo até ver Reescrever resultados . Marque a caixa Reescrever a saída desse campo e personalize o HTML conforme necessário. Para os tokens, você pode usar os Padrões de substituição mostrados na caixa abaixo da área de entrada de texto.
Em relação aos padrões de substituição , observe o aviso exibido pelo Views:
Se isso não for suficiente, tente adicionar um novo campo, Global: Texto personalizado . Isso permitirá que você adicione um pouco de HTML arbitrário e os padrões de substituição também estão disponíveis aqui. Você pode usar dois campos de texto Global: Custom separados para adicionar as
<div>
tags de início e fim.fonte
Global: Custom text
efeitos a linha dentro do grupo, mas não fora do grupo,Esses dias eu me deparei com o mesmo problema. E o que eu precisava ao lado do wrapper do grupo era uma classe de CSS como a primeira / a última por grupo.
Então eu adicionei no views-view-unformatted.tpl.php o seguinte código php:
Aqui a parte html com o wrapper e as classes:
A saída será:
Pode ser útil - aproveite
fonte
Então, acho que o maior enigma é como gerar a classe usando o valor do $ title nas tags h3. Eu tentaria o módulo Transliteração e o seguinte trecho:
Isso funcionou para mim quando tive que criar âncoras nomeadas em uma exibição.
fonte
Muito útil - eu precisava adicionar algumas classes alfa / ômega para um layout baseado em grade e também algumas ímpares para poder limpar as duas para cada linha. Eu editei a linha de:
para isso:
O que fornece a saída necessária.
fonte
Você não precisa do módulo de transliteração. O núcleo do Drupal tem a função drupal_html_class para isso.
fonte
Eu tive um problema semelhante hoje, mas precisava de uma classe específica no html do wrapper; no meu caso, a exibição é agrupada por termos de taxonomia e precisamos de um estilo específico para cada termo, portanto, uma classe específica por termo. Veja como alteramos o modelo não formatado da visualização:
Na exibição, a exibição do campo de termo de taxonomia é configurada para: "Mostrar ID da entidade". Portanto, obtemos o ID como parte do nome da classe e carregamos o título com base no mesmo ID.
fonte
Para quem não quer se aprofundar no código e mexer nos modelos, há uma maneira fácil de fazer isso, removendo as classes div padrão usando o Fences e adicionando sua própria div no prefixo e sufixo do campo usando o formatador de campo simples . Se você tiver vários campos, adicione a div que contém no prefixo do primeiro campo e no sufixo do último campo.
Portanto, a estrutura nativa com as áreas de prefixo e sufixo desmarcadas seria algo como:
Se você fosse adicionar a classe "foo", isso se tornaria
fonte
A resposta de chrisjlee acima explica bem, exceto pelo nome do arquivo de modelo. Se você deseja alterar apenas uma visão, o novo arquivo deve incluir o nome da máquina. Você pode encontrar isso no URL da página de edição da visualização. É explicado muito bem neste comentário sobre um problema semelhante: https://www.drupal.org/node/1383696#comment-6729128
Eu precisava de uma classe em torno das linhas usando o valor de $ title para que eu pudesse renderizá-las em 2 colunas. Aqui está o código:
fonte
Me deparei com um problema semelhante. Eu queria que minhas linhas agrupadas fossem exibidas dentro de um acordeão de inicialização. Eu não poderia trabalhar com o módulo Views Bootstrap .
O comentário nº 4 resolveu meu problema.
Aqui está a minha
views-view-unformatted-[my_view_name]-[my_display_name].tpl.php
aparênciaé claro, para que o acordeão funcione, você também precisa editar views-view- [my_view_name] - [my_display_name] .tpl.php para ter
Deixei o código padrão do módulo entre comentários html.
Espero que ajude.
fonte