Tenho uma visualização de um tipo de conteúdo que contém dois campos de data diferentes (um com repetições de data e um com datas únicas com vários valores). Somente um campo de data é preenchido a qualquer momento. Na exibição da visualização, combinei os dois campos ocultando o primeiro campo de data e reescrevendo o segundo e incluindo o token de substituição do primeiro e do segundo. Existe alguma maneira de agora usar o campo reescrito para classificar a exibição em ordem crescente com base nesse campo de data combinado? Parece que o classifica com base no valor original do campo de data.
Eu fiz minha pesquisa e só encontrei tópicos antigos, um tanto relacionados, com becos sem saída.
visualizações classificando por campo reescrito?
A tabela não classifica no campo reescrito, mas no campo original
Exibições: campo personalizado para critérios de classificação
Classificar por global: texto personalizado. É possível?
Eu esperava que houvesse uma maneira nova ou sorrateira de fazer isso acontecer.
Respostas:
Se você não quiser seguir a rota do módulo, esta é uma alternativa:
1) instale o módulo Campo computado
2) adicione um campo computado ao seu tipo de conteúdo
3) nas configurações do campo, na área de texto Código computado (PHP), você pode acessar os dados do campo.
Obtenha seus campos de data em sua linguagem atual para uma variável.
Seus valores de data agora podem ser encontrados em
Faça a lógica necessária com os campos de data e atribua o resultado a
Agora você tem um campo classificável que pode ser usado nas visualizações, mas primeiro é necessário atualizar todos os nós, pois o campo computado será computado e salvo apenas no banco de dados ao salvar o nó. Existem várias maneiras de fazer isso: uma é usando o Views Bulk Operations; oferece a opção de salvar novamente nós em admin / content.
fonte
[und]
sintaxe. Use field_get_items.Eu acho que você pode fazer isso com o Views Natural Sort . Tem a opção de classificar os campos significa - Ativar classificação para campos específicos . Se você seguir este tutorial , terá uma idéia !!.
fonte
A única maneira sorrateira de fazer isso acontecer é que, se você não usar a paginação, poderá usar a classificação PHP em uma substituição de consulta personalizada que não depende do banco de dados.
De acordo com stevector ,
Portanto, a solução mais prática e confiável é usar o Campo Computado, conforme mencionado por Kari Kääriäinen.
fonte
Essa é uma maneira um tanto hacky de fazer isso, mas funciona e você não precisa de módulos adicionais.
Crie um rótulo para o campo que você deseja classificar e NÃO o exclua da exibição. Em vez disso, reescreva a exibição como "em branco" adicionando um
<!---->
comentário html vazio como valor de reescrita. Em seguida, adicione seu outro campo php / reescrito como filho desta coluna.Isso exibirá o cabeçalho da tabela para a coluna correta para classificação.
fonte