/**
  * 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);
     }
 }