Jest jakiś sposób na filtrowanie według numeru tygodnia?

9

Drupal 7, wyświetlenia 3

Mam skonfigurowanych kilka widoków, które wyświetlają dane przez wiele lat. Dane są filtrowane według roku przy użyciu pola daty jako kryterium filtru. Na każdy rok mam widoki załączników, które muszę filtrować dalej według tygodnia. Zamiast określać dokładne daty tygodni każdego roku i wprowadzać je ręcznie jako kryteria filtrowania, zastanawiam się, czy istnieje jakiś sposób, aby dodać kryterium filtrowania do filtrowania według numeru tygodnia, tj. Od tygodnia 1 do tygodnia 52. W ten sposób tylko data, którą należy ustawić, to rok dla każdego widoku, a reszta dzieje się automatycznie zgodnie z numerem tygodnia.

Agreguję wiele danych według roku i tygodnia w widoku tabeli, w którym każda kolumna stanowi załącznik do dodatkowego widoku, i staram się unikać konieczności ręcznego wprowadzania filtrów dla dat tygodnia w roku.

Czy ktoś ma dla mnie jakieś porady / wskazówki? Dziękuję bardzo.

Oto kod, z którym obecnie gram:

function x_week_start($date) {
    $ts = strtotime($date);
    $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts);
    return date('Y-m-d', $start); 
}

function x_week_end($date) {
    $ts = strtotime($date);
    $start = (date('w', $ts) == 0) ? $ts : strtotime('last sunday', $ts);
    return date('Y-m-d', strtotime('next saturday', $start)); 
}

$date = '2013-01-14';
$start = x_week_start($date);
$end = x_week_end($date);
$inquiry_date = date('Y-m-d', $data->field_field_inquiry_date[0]['raw']['value']);

if ($inquiry_date <= $start) {return FALSE;}

Powinienem dodać, że field_inquiry_date fieldjest to uniksowy znacznik czasu.

użytkownik1055810
źródło
Myślę, że musisz stworzyć swój własny filtr. Zobacz ten moduł. Może to pomóc drupal.org/project/customfilter
Mohammed Gomma
Wygląda na to, że podejście Bala link powinno działać dobrze.
Niall Murphy

Odpowiedzi:

2

Oto sztuczka: utwórz nowy format daty, przechodząc do opcji Administrator> Konfiguracja> Regionalny i język> Data i godzina i klikając kartę Formaty (admin / config / regional / date-time / format).

Ustaw na W (to wielkie litery W), a otrzymasz numer tygodnia, którego możesz użyć z dowolną datą.

W ten sposób możesz uwzględnić pole daty bezpośrednio w widokach, ustawić filtr W i użyć agregacji, filtra itp. Bez dodatkowego kodowania.

Antonio Hernandez
źródło