Alguma maneira de filtrar por número da semana?

9

Drupal 7, Visualizações 3

Eu tenho várias visualizações configuradas que exibem dados ao longo de muitos anos. Os dados são filtrados por ano usando um campo de data como critério de filtro. Para cada ano, tenho visualizações de anexos que precisam ser filtradas ainda mais por semana. Em vez de determinar as datas exatas para as semanas de cada ano e inseri-las manualmente como critérios de filtro, estou pensando se há alguma maneira de adicionar um critério de filtro para filtrar por número da semana, ou seja, da semana 1 à semana 52. Dessa forma, o a única data que precisa ser definida é o ano para cada visualização, e o restante acontece automaticamente de acordo com o número da semana.

Estou agregando muitos dados por ano e semana em uma exibição de tabela em que cada coluna é um anexo de exibição adicional e tentando evitar a necessidade de inserir manualmente os filtros para datas da semana por ano.

Alguém tem algum conselho / dicas para mim sobre isso? Muito obrigado.

Aqui está o código com o qual estou jogando atualmente:

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

Devo acrescentar que o field_inquiry_date fieldé um timestamp unix.

user1055810
fonte
Eu acho que você tem que criar o seu próprio filtro personalizado ver esse módulo Pode ajudar drupal.org/project/customfilter
Mohammed Gomma
Parece que a abordagem do link de Bala deve funcionar bem.
Niall Murphy

Respostas:

2

Aqui está um truque: crie um novo formato de data navegando para Admin> Configuração> Regional e idioma> Data e hora e clicando na guia Formatos (admin / config / regional / date-time / formatos).

Defina-o como W (que é W maiúsculo) e fornecerá o número da semana, que você pode usar em qualquer data.

Dessa forma, você pode incluir o campo de data diretamente nas visualizações, definir o filtro W e usar a agregação, o filtro etc. sem nenhuma codificação adicional.

Antonio Hernandez
fonte