Estou tentando entender meus filtros contextuais novamente! Eu usei um tempo atrás, mas fiquei totalmente perplexo novamente. Aqui está o que estou tentando fazer:
- Gere uma página do nó de conteúdo clonado com termos de taxonomia inseridos nessa página clonada.
ex .: EXAMPLE.com/white-shoes/blue
Quando um usuário acessar a página / white-shoes, ele exibirá a página do nó original voltada para a cor branca. Agora, se o usuário parar em / white-shoes / blue, ele exibirá a mesma página do nó, mas desta vez todo o conteúdo do corpo será reescrito, substituindo a cor branca pela cor azul.
No Views, eu teria que criar uma exibição de página com o caminho de:% /%
Agora, eu criaria um filtro contextual para recuperar o nid. Eu adiciono Conteúdo: nid como um filtro contextual. Eu escolho FORNECER UM VALOR PADRÃO e coloquei neste código PHP:
$ x = drupal_lookup_path ('fonte', arg (0));
$ y = explodir ('/', $ x);
retornar $ y 1 ;
Esse código PHP basicamente converte a parte / white-shoes da URL em um NID. Mas isso não funciona. Testei o código via drush ev através do terminal e, de fato, recebo um resultado retornado, então sei que funciona.
Eu faço o mesmo para o nome do termo de taxonomia e adiciono um filtro contextual para esse também. Desta vez, escolho FORNECER UM VALOR PADRÃO e seleciono VALOR CRU DA URL e seleciono o segundo argumento.
Como você pode ver quando insiro um PREVIEW VALUE para o filtro contextual: AAA / BBB / CCC. Meu valor padrão é ignorado. Ele deveria estar pegando o segundo argumento, mas está recebendo o primeiro apenas. Veja a instrução SQL WHERE e verá que ela está recebendo AAA quando deveria ser BBB.
Portanto, a pergunta é: o que estou fazendo de errado ou há uma solução melhor para o que quero realizar?
Respostas:
Aqui está um vídeo e um artigo relacionado que explica como usá-los. O exemplo usa Animais de estimação (cães, gatos), que pode ser um exemplo simples o suficiente para ajudar a entender como usar os filtros contextuais de visualizações.
VÍDEO: https://www.youtube.com/watch?v=lJFMTDuaxy8 (URL curto do vídeo do YouTube: lJFMTDuaxy8)
ARTIGO: http://www.metaltoad.com/blog/using-drupal-contextual-filters-views
fonte
O filtro contextual é usado para filtrar, saída da visualização por argumentos de URL, também u pode passar os argumentos manualmente neste formato:
onde "$ name" é o nome da sua visualização (por exemplo, 'exemplo_view') e '$ display_id' é o tipo de exibição da sua visualização (por exemplo, 'padrão') e "$ arg1, $ arg2, $ arg3" são argumentos assim como no URL.
Os argumentos de URL têm a seguinte estrutura:
http://example.com/arg_1/arg_2/arg_3 (arg_2 possui o componente de caminho 2 (na página de configuração da exibição)).
Quando o valor do filtro não está disponível:
significa que o drupal não consegue encontrar nenhum filtro.
Forneça o valor padrão:
quando o valor do filtro não está disponível, você pode usar esta opção para criar um filtro para a saída de visualizações, esse filtro pode ser código PHP (se o módulo de filtro PHP estiver ativado) ou pode obter seu valor a partir dos argumentos da URL -> (valor bruto) do URL). A caixa de texto Exceção permite enganar o valor e exibir todos os resultados.
Quando o valor do filtro está disponível
nesse caso, você faz uma validação conforme suas necessidades e algumas outras opções, quando o drupal pode encontrar o valor do filtro.
fonte
VALIDATION (type: PHP Code)
. Com esta opção, você pode usar o objeto de exibição e fazer tudo o que precisa. No seu caso, o/blue
caminho gerado pelas visualizações também seria usado para buscar o ID do nó desse alias.