Como fazer aritmética em um filtro contextual


9

Em vez de especificar um filtro contextual, é possível especificar um filtro contextual +1 (ou seja, adicionar um ao valor atual do filtro?)

Se você tem uma visão de argumento, entendo que você pode criar um campo de texto global para criar um link para uma visão diferente usando o argumento original.

Ou seja, em view1 / arg1, posso ter um campo de texto global que gera como um link para view2 / arg1

É possível criar um campo de texto global que gera como um link para view2 / arg1 + 1

ou seja, adiciona um ao argumento atual?

Respostas:


1

No Views para D7 (não tenho certeza sobre D6), você pode adicionar um campo do tipo "Expressão matemática" para fazer esse tipo de coisa. Digite a expressão [!1]+1(ou talvez [%1]+1) no campo Expressão matemática e, em seguida, os campos de texto posteriores podem se referir a esse valor (em suas seções Reescrever) como [expression].


0

Views PHP normalmente é a minha resposta, mas parece que ainda não suporta PHP em filtros contextuais ...

Então, você precisará criar um módulo para si e depois:

Estou assumindo que seu primeiro argumento é o que você deseja alterar e não tenho uma visão com a qual possa testar agora, então você precisará print_r($ query-> where [0]); `para ver o que é acontecendo lá e adicione o valor correto.


0

Faça algo assim.

<?php
  $view = views_get_current_view();
  $arg = $view -> args[0];
  $newarg = intval($arg) + 1;
?>
<a href="https://drupal.stackexchange.com/view2/<?php print($newarg); ?>">Increment my contextual filter</a>

0

Você pode criar um modelo de visualizações para suas visualizações e fazer algo assim abaixo.

<?php $arg = arg(1);  ?>
<a href="<?php print base_path() . 'view2/' . ($arg + 1) ;?>">Link to view</a>  
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.