diff --git a/calendar/inc/class.calendar_so.inc.php b/calendar/inc/class.calendar_so.inc.php index 17f487881d..1c35c3884e 100644 --- a/calendar/inc/class.calendar_so.inc.php +++ b/calendar/inc/class.calendar_so.inc.php @@ -739,11 +739,18 @@ class calendar_so } elseif ($params['query']) { - foreach(array('cal_title','cal_description','cal_location') as $col) + if(is_numeric($params['query'])) { - $to_or[] = $col.' '.$this->db->capabilities[Api\Db::CAPABILITY_CASE_INSENSITIV_LIKE].' '.$this->db->quote('%'.$params['query'].'%'); + $where[] = $this->cal_table.'.cal_id = ' . (int)$params['query']; + } + else + { + foreach(array('cal_title','cal_description','cal_location') as $col) + { + $to_or[] = $col.' '.$this->db->capabilities[Api\Db::CAPABILITY_CASE_INSENSITIV_LIKE].' '.$this->db->quote('%'.$params['query'].'%'); + } + $where[] = '('.implode(' OR ',$to_or).')'; } - $where[] = '('.implode(' OR ',$to_or).')'; // Searching - restrict private to own or private grant if (!isset($params['private_grants']))