/** * Restrict the query by these fields. * @param QUERY $query The query to which to apply parameters. * @param stdClass $obj The object from which to extract parameters. */ public function apply_to_query($query, $obj) { $now = time(); switch ($obj->parameters[$this->search_type_name()]) { case Search_date_today: $date_after = new DATE_TIME(mktime(0, 0, 0, date('n'), date('d'), date('Y'))); $date_before = new DATE_TIME($now); break; case Search_date_this_week: $date_after = new DATE_TIME($now - 86400 * 7); $date_before = new DATE_TIME($now); break; case Search_date_this_month: $date_after = new DATE_TIME($now - 86400 * 30); $date_before = new DATE_TIME($now); break; case Search_date_constant: $date_before = $obj->parameters[$this->before_name()]; $date_after = $obj->parameters[$this->after_name()]; break; } if (isset($date_before) && isset($date_after)) { $query->restrict_date($this->full_name($query, $this->base_name), $date_after, $date_before); } }