Cómo hacer aritmética en un filtro contextual

9

En lugar de especificar un filtro contextual, ¿es posible especificar un filtro contextual +1 (es decir, agregar uno al valor del filtro actual?)

Si tiene una vista que toma un argumento, entiendo que puede crear un campo de texto global para hacer un enlace a una vista diferente usando el argumento original.

Es decir, en view1 / arg1 puedo tener un campo de texto global que sale como un enlace para view2 / arg1

¿Es posible crear un campo de texto global que salga como un enlace para ver2 / arg1 + 1

es decir, agrega uno al argumento actual?

Aaron
fuente

Respuestas:

1

En Vistas para D7 (no estoy seguro acerca de D6) puede agregar un campo de tipo "Expresión matemática" para hacer este tipo de cosas. Ingrese la expresión [!1]+1(o tal vez [%1]+1) en el campo de expresión matemática, y luego los campos de texto posteriores pueden referirse a este valor (en sus secciones Reescribir) como [expression].

benjifisher
fuente
0

Las vistas PHP normalmente son mi respuesta, pero parece que todavía no es compatible con PHP en los filtros contextuales ...

Por lo tanto, deberá crearse un módulo y luego:

Supongo que su primer argumento es el que desea cambiar, y no tengo una vista con la que pueda probar ahora, por lo que necesitará print_r($ query-> where [0]); `para ver qué hay pasando allí y agregue al valor correcto.

Jim Kirkpatrick
fuente
0

Haz algo como esto.

<?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>
Eric N
fuente
0

Puede crear una plantilla de vistas para sus vistas y hacer algo como esto a continuación.

<?php $arg = arg(1);  ?>
<a href="<?php print base_path() . 'view2/' . ($arg + 1) ;?>">Link to view</a>  
Jayendra Kainthola
fuente