/**
  * Get an array of events based on the passed on params.
  *
  * @param string $selectwhere select conditions.
  * @param array $params params.
  * @param string $sort sortorder.
  * @param int $limitfrom limit constraints.
  * @param int $limitnum limit constraints.
  *
  * @return array|\core\event\base[] array of events.
  */
 public function get_events_select($selectwhere, array $params, $sort, $limitfrom, $limitnum)
 {
     if (!$this->init()) {
         return array();
     }
     if (!($dbtable = $this->get_config('dbtable'))) {
         return array();
     }
     $sort = self::tweak_sort_by_id($sort);
     $events = array();
     $records = $this->extdb->get_records_select($dbtable, $selectwhere, $params, $sort, '*', $limitfrom, $limitnum);
     foreach ($records as $data) {
         $extra = array('origin' => $data->origin, 'realuserid' => $data->realuserid, 'ip' => $data->ip);
         $data = (array) $data;
         $id = $data['id'];
         $data['other'] = unserialize($data['other']);
         if ($data['other'] === false) {
             $data['other'] = array();
         }
         unset($data['origin']);
         unset($data['ip']);
         unset($data['realuserid']);
         unset($data['id']);
         $event = \core\event\base::restore($data, $extra);
         // Add event to list if it's valid.
         if ($event) {
             $events[$id] = $event;
         }
     }
     return $events;
 }
Exemple #2
0
 /**
  * Get an array of events based on the passed on params.
  *
  * @param string $selectwhere select conditions.
  * @param array $params params.
  * @param string $sort sortorder.
  * @param int $limitfrom limit constraints.
  * @param int $limitnum limit constraints.
  *
  * @return array|\core\event\base[] array of events.
  */
 public function get_events_select($selectwhere, array $params, $sort, $limitfrom, $limitnum)
 {
     if (!$this->init()) {
         return array();
     }
     if (!($dbtable = $this->get_config('dbtable'))) {
         return array();
     }
     $sort = self::tweak_sort_by_id($sort);
     $events = array();
     $records = $this->extdb->get_records_select($dbtable, $selectwhere, $params, $sort, '*', $limitfrom, $limitnum);
     foreach ($records as $data) {
         if ($event = $this->get_log_event($data)) {
             $events[$data->id] = $event;
         }
     }
     return $events;
 }