Come eseguire l'aritmetica su un filtro contestuale


9

Invece di specificare un filtro contestuale, è possibile specificare un filtro contestuale +1 (ovvero aggiungerne uno al valore di filtro corrente?)

Se hai una visione che prende una discussione, capisco che puoi creare un campo di testo globale per creare un collegamento a una vista diversa usando l'argomento originale.

Vale a dire in view1 / arg1 posso avere un campo di testo globale che genera un collegamento a view2 / arg1

È possibile creare un campo di testo globale che genera come collegamento a view2 / arg1 + 1

cioè aggiunge uno alla discussione corrente?

Risposte:


1

In Views for D7 (non sono sicuro di D6) puoi aggiungere un campo di tipo "Espressione matematica" per fare questo genere di cose. Immettere l'espressione [!1]+1(o forse [%1]+1) nel campo Espressione matematica, quindi i campi di testo successivi possono fare riferimento a questo valore (nelle sezioni Riscrivi) come [expression].


0

Viste PHP normalmente è la mia risposta, ma sembra che non supporti ancora PHP nei filtri contestuali ...

Quindi dovrai crearti un modulo e quindi:

Suppongo che il tuo primo argomento sia quello che vuoi cambiare, e non ho una visione su cui possa provare adesso, quindi dovrai print_r($ query-> where [0]); `per vedere cosa c'è succedendo lì e aggiungendo al valore corretto.


0

Fai qualcosa del genere.

<?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

Puoi creare un modello di visualizzazioni per le tue visualizzazioni e fare qualcosa di simile qui sotto.

<?php $arg = arg(1);  ?>
<a href="<?php print base_path() . 'view2/' . ($arg + 1) ;?>">Link to view</a>  
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.