Gibt es eine Möglichkeit, nach Wochennummer zu filtern?

9

Drupal 7, Ansichten 3

Ich habe mehrere Ansichten konfiguriert, die Daten über viele Jahre anzeigen. Die Daten werden nach Jahr gefiltert, wobei ein Datumsfeld als Filterkriterium verwendet wird. Für jedes Jahr habe ich Anhangsansichten, die ich nach Woche weiter filtern muss. Anstatt die genauen Daten für die Wochen eines jeden Jahres zu bestimmen und sie manuell als Filterkriterien einzugeben, frage ich mich, ob es eine Möglichkeit gibt, ein Filterkriterium hinzuzufügen, um nach Wochennummer zu filtern, dh Woche 1 bis Woche 52. Auf diese Weise die Das einzige Datum, das festgelegt werden muss, ist das Jahr für jede Ansicht. Der Rest erfolgt automatisch entsprechend der Wochennummer.

Ich fasse viele Daten nach Jahr und Woche in einer Tabellenansicht zusammen, in der jede Spalte ein zusätzlicher Ansichtsanhang ist, und versuche zu vermeiden, dass die Filter für Wochentage pro Jahr manuell eingegeben werden müssen.

Hat jemand irgendwelche Ratschläge / Hinweise für mich dazu? Vielen Dank.

Hier ist der Code, mit dem ich gerade spiele:

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;}

Ich sollte hinzufügen, dass dies field_inquiry_date fieldein Unix-Zeitstempel ist.

user1055810
quelle
Ich denke, Sie müssen Ihren eigenen benutzerdefinierten Filter erstellen, um dieses Modul zu sehen. Es kann helfen, drupal.org/project/customfilter
Mohammed Gomma
Es sieht so aus, als ob Balas Link-Ansatz gut funktionieren sollte.
Niall Murphy

Antworten:

2

Hier ist ein Trick: Erstellen Sie ein neues Datumsformat, indem Sie zu Admin> Konfiguration> Regional und Sprache> Datum und Uhrzeit navigieren und auf die Registerkarte Formate (admin / config / regional / Datum-Uhrzeit / Formate) klicken.

Stellen Sie es auf W (das ist W in Großbuchstaben) und Sie erhalten eine Wochennummer, die Sie mit jedem Datum verwenden können.

Auf diese Weise können Sie das Datumsfeld direkt in Ansichten einfügen, den W-Filter festlegen und die Aggregation, den Filter usw. ohne zusätzliche Codierung verwenden.

Antonio Hernandez
quelle