Eu tive um problema muito semelhante e não apenas encontrei a solução, mas também aprendi coisas novas sobre como a exibição funciona. Deixe-me compartilhar o que aprendi e a solução para o seu problema também.
Ao criar uma visualização com um ou mais filtros contextuais, a visualização deve receber valores desses filtros de algum lugar. Isso pode ser feito por -
- Escolhendo o (s) valor (es) do filtro de contexto da URL
- Normalmente, você teria uma visualização de página para tais finalidades, com URL do formulário
foo/%/bar
ou foo/bar/%
para filtro contextual único OU do formulário foo/%/bar/%
ou foo/bar/%/%
para vários filtros
- Caso você tenha vários filtros, o valor da URL que aparece primeiro é mapeado para o primeiro filtro, próximo ao segundo filtro e assim por diante.
- Visualizações permite que você diga o que fazer se os valores do filtro não estiverem disponíveis no URL . Isso geralmente é usado para visualizações de bloco .
- Você pode escolher entre diferentes ações e também configurar a escolha.
asdfj kajsdf
- Outra coisa que o visualizador permite é dizer o que fazer com os valores do filtro se eles forem encontrados no URL, conforme descrito no item 1 acima. Os casos de uso típicos são: criação de títulos dinâmicos com base em valores de filtro, validação de valores de filtro etc.
- Ao validar valores de filtro, você também pode alterar os valores! (É aí que está a nossa solução). Isso é muito parecido com o modo como podemos alterar os valores de $ form nos retornos de chamada de validação de formulário drupal.
A solução para o seu problema específico está no uso de um código muito semelhante nas seções apontadas pelas setas na imagem acima.
Este link provou ser uma grande ajuda para mim. Aqui está um trecho:
$np = explode('/', drupal_get_normal_path($argument));
if (!empty($np[1])) {
$handler->argument = $np[1];
return TRUE;
} else {
return FALSE;
}