Adakah cara untuk memfilter berdasarkan nomor minggu?

9

Drupal 7, Tampilan 3

Saya memiliki beberapa tampilan yang dikonfigurasi yang menampilkan data selama bertahun-tahun. Data difilter menurut Tahun menggunakan bidang tanggal sebagai kriteria filter. Untuk setiap tahun saya memiliki tampilan lampiran yang harus saya filter lebih lanjut berdasarkan minggu. Daripada menentukan tanggal pasti untuk minggu setiap tahun dan memasukkannya secara manual sebagai kriteria filter, saya bertanya-tanya apakah ada cara untuk menambahkan kriteria filter untuk memfilter berdasarkan nomor minggu, yaitu minggu 1 hingga minggu 52. Dengan cara itu hanya tanggal yang perlu ditetapkan adalah tahun untuk setiap tampilan, dan sisanya terjadi secara otomatis berdasarkan nomor minggu.

Saya mengumpulkan banyak data berdasarkan tahun dan minggu dalam tampilan tabel di mana setiap kolom adalah lampiran tampilan tambahan dan berusaha menghindari keharusan memasukkan filter secara manual untuk tanggal minggu per tahun.

Adakah yang punya saran / petunjuk untuk saya tentang ini? Terima kasih banyak.

Berikut adalah kode yang saat ini saya mainkan:

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

Saya harus menambahkan bahwa field_inquiry_date fieldini adalah cap waktu unix.

pengguna1055810
sumber
Saya pikir Anda harus membuat filter kustom Anda sendiri melihat modul yang dapat membantu drupal.org/project/customfilter
Mohammed Gomma
Sepertinya pendekatan tautan Bala harus bekerja dengan baik.
Niall Murphy

Jawaban:

2

Berikut triknya: buat format tanggal baru dengan menavigasi ke Admin> Konfigurasi> Regional dan Bahasa> Tanggal dan Waktu dan mengklik tab Format (admin / config / regional / tanggal-waktu / format).

Atur ke W (itu huruf besar W), dan itu akan memberi Anda nomor minggu, yang dapat Anda gunakan dengan tanggal berapa pun.

Dengan begitu Anda bisa memasukkan bidang tanggal secara langsung dalam tampilan, mengatur filter W dan menggunakan agregasi, filter, dll tanpa pengkodean tambahan.

Antonio Hernandez
sumber