Будь-який спосіб фільтрувати за номером тижня?


9

Drupal 7, Перегляди 3

У мене налаштовано кілька поглядів, які відображають дані протягом багатьох років. Дані фільтруються за роками, використовуючи поле дати в якості критеріїв фільтра. Кожен рік у мене є перегляди вкладених файлів, які мені потрібно додатково фільтрувати за тиждень. Замість того, щоб визначати точні дати для тижнів кожного року та вводити їх вручну як критерії фільтра, мені цікаво, чи є якийсь спосіб додати критерій фільтру для фільтрації за номером тижня, тобто тижнем 1 до 52 тижня. Таким чином Єдина дата, яку потрібно встановити, - це рік для кожного перегляду, а решта відбувається автоматично відповідно до номера тижня.

Я збираю багато даних за роками та тижнями у поданні таблиці, де кожен стовпець є додатковим вкладеним оглядом, і намагаюся уникати необхідності вручну вводити фільтри за тижневими датами на рік.

Хтось має якісь поради / підказки для мене з цього приводу? Дуже дякую.

Ось код, з яким я зараз граю:

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

Варто додати, що field_inquiry_date fieldчасова мітка Unix.


Я думаю, що вам доведеться створити власний спеціальний фільтр, побачити цей модуль Це може допомогти drupal.org/project/customfilter
Mohammed Gomma


Схоже, підхід Бала до посилання повинен добре працювати.
Найлл Мерфі

Відповіді:


2

Ось хитрість: створіть новий формат дати, перейшовши до Адміністратора> Конфігурація> Регіональний та мова> Дата та час та натисніть на вкладку Формати (адміністратор / конфігурація / регіональний / дата-час / формати).

Встановіть його на W (це верхній регістр W), і він дасть вам номер тижня, який ви можете використовувати з будь-якою датою.

Таким чином ви можете включити поле дати безпосередньо у представленнях, встановити W фільтр і використовувати агрегацію, фільтр тощо без додаткового кодування.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.