Jak wykonać arytmetykę na filtrze kontekstowym

9

Czy zamiast określać filtr kontekstowy, można określić filtr kontekstowy +1 (tzn. Dodać go do bieżącej wartości filtra?)

Jeśli masz widok z argumentem, rozumiem, że możesz utworzyć globalne pole tekstowe, aby utworzyć link do innego widoku za pomocą oryginalnego argumentu.

Tj. W view1 / arg1 i mogę mieć globalne pole tekstowe, które wyprowadza jako łącze do view2 / arg1

Czy można utworzyć globalne pole tekstowe, które będzie generowane jako łącze do view2 / arg1 + 1

tzn. dodaje jeden do bieżącego argumentu?

Aaron
źródło

Odpowiedzi:

1

W Widoku dla D7 (nie jestem pewien co do D6) możesz dodać pole typu „Wyrażenie matematyczne”, aby zrobić coś takiego. Wprowadź wyrażenie [!1]+1(a może [%1]+1) w polu Wyrażenie matematyczne, a następnie pola tekstowe mogą odnosić się do tej wartości (w swoich sekcjach Przepisz) jako [expression].

benjifisher
źródło
0

Widoki PHP zwykle są moją odpowiedzią, ale wygląda na to, że nie obsługuje jeszcze PHP w filtrach kontekstowych ...

Musisz więc stworzyć moduł, a następnie:

Zakładam, że twoim pierwszym argumentem jest ten, który chcesz zmienić, i nie mam widoku, na którym mógłbym teraz przetestować, więc musisz print_r($ $ -> gdzie [0]); `, aby zobaczyć, co jest dzieje się tam i dodaje prawidłową wartość.

Jim Kirkpatrick
źródło
0

Zrób coś takiego.

<?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.
źródło
0

Możesz utworzyć szablon widoków dla swoich widoków i zrobić coś takiego poniżej.

<?php $arg = arg(1);  ?>
<a href="<?php print base_path() . 'view2/' . ($arg + 1) ;?>">Link to view</a>  
Jayendra Kainthola
źródło