Ignore:
Timestamp:
May 2, 2016, 12:09:23 PM (3 years ago)
Author:
jrpelegrina
Message:

Updated to moodle 3.0.3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • moodle/trunk/fuentes/admin/tool/log/store/database/classes/log/store.php

    r136 r1331  
    2626defined('MOODLE_INTERNAL') || die();
    2727
    28 class store implements \tool_log\log\writer, \core\log\sql_select_reader {
     28class store implements \tool_log\log\writer, \core\log\sql_reader {
    2929    use \tool_log\helper\store,
    3030        \tool_log\helper\reader,
     
    174174
    175175        foreach ($records as $data) {
    176             $extra = array('origin' => $data->origin, 'realuserid' => $data->realuserid, 'ip' => $data->ip);
    177             $data = (array)$data;
    178             $id = $data['id'];
    179             $data['other'] = unserialize($data['other']);
    180             if ($data['other'] === false) {
    181                 $data['other'] = array();
     176            if ($event = $this->get_log_event($data)) {
     177                $events[$data->id] = $event;
    182178            }
    183             unset($data['origin']);
    184             unset($data['ip']);
    185             unset($data['realuserid']);
    186             unset($data['id']);
    187 
    188             $event = \core\event\base::restore($data, $extra);
    189             // Add event to list if it's valid.
    190             if ($event) {
    191                 $events[$id] = $event;
    192             }
    193179        }
    194180
    195181        return $events;
     182    }
     183
     184    /**
     185     * Fetch records using given criteria returning a Traversable object.
     186     *
     187     * Note that the traversable object contains a moodle_recordset, so
     188     * remember that is important that you call close() once you finish
     189     * using it.
     190     *
     191     * @param string $selectwhere
     192     * @param array $params
     193     * @param string $sort
     194     * @param int $limitfrom
     195     * @param int $limitnum
     196     * @return \core\dml\recordset_walk|\core\event\base[]
     197     */
     198    public function get_events_select_iterator($selectwhere, array $params, $sort, $limitfrom, $limitnum) {
     199        if (!$this->init()) {
     200            return array();
     201        }
     202
     203        if (!$dbtable = $this->get_config('dbtable')) {
     204            return array();
     205        }
     206
     207        $sort = self::tweak_sort_by_id($sort);
     208
     209        $recordset = $this->extdb->get_recordset_select($dbtable, $selectwhere, $params, $sort, '*', $limitfrom, $limitnum);
     210
     211        return new \core\dml\recordset_walk($recordset, array($this, 'get_log_event'));
     212    }
     213
     214    /**
     215     * Returns an event from the log data.
     216     *
     217     * @param stdClass $data Log data
     218     * @return \core\event\base
     219     */
     220    public function get_log_event($data) {
     221
     222        $extra = array('origin' => $data->origin, 'ip' => $data->ip, 'realuserid' => $data->realuserid);
     223        $data = (array)$data;
     224        $id = $data['id'];
     225        $data['other'] = unserialize($data['other']);
     226        if ($data['other'] === false) {
     227            $data['other'] = array();
     228        }
     229        unset($data['origin']);
     230        unset($data['ip']);
     231        unset($data['realuserid']);
     232        unset($data['id']);
     233
     234        if (!$event = \core\event\base::restore($data, $extra)) {
     235            return null;
     236        }
     237
     238        return $event;
    196239    }
    197240
     
    214257
    215258        return $this->extdb->count_records_select($dbtable, $selectwhere, $params);
     259    }
     260
     261    /**
     262     * Get a config value for the store.
     263     *
     264     * @param string $name Config name
     265     * @param mixed $default default value
     266     * @return mixed config value if set, else the default value.
     267     */
     268    public function get_config_value($name, $default = null) {
     269        return $this->get_config($name, $default);
     270    }
     271
     272    /**
     273     * Get the external database object.
     274     *
     275     * @return \moodle_database $extdb
     276     */
     277    public function get_extdb() {
     278        if (!$this->init()) {
     279            return false;
     280        }
     281
     282        return $this->extdb;
    216283    }
    217284
Note: See TracChangeset for help on using the changeset viewer.