AutorÃa | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>./*** Configurable Reports* A Moodle block for creating customizable reports* @package blocks* @author: Juan leyva <http://www.twitter.com/jleyvadelgado>* @date: 2009*/require_once($CFG->dirroot.'/blocks/configurable_reports/plugin.class.php');class plugin_cuserfield extends plugin_base{public function init() {$this->fullname = get_string('cuserfield', 'block_configurable_reports');$this->reporttypes = array('users');$this->form = true;}public function summary($data) {global $DB;if (strpos($data->field, 'profile_') === 0) {$name = $DB->get_field('user_info_field', 'name', array('shortname' => str_replace('profile_', '', $data->field)));return $name .' '.$data->operator.' '.$data->value;}return get_string($data->field).' '.$data->operator.' '.$data->value;}// Data -> Plugin configuration data.public function execute($data, $user, $courseid) {global $DB;// TODO - Use $DB->sql_like().$ilike = " LIKE ";if (strpos($data->field, 'profile_') === 0) {if ($data->value == "%%CURRENTUSER%%") {$pfname = str_replace('profile_', '', $data->field);$data->value = $user->profile[$pfname];}if ($fieldid = $DB->get_field('user_info_field', 'id', ['shortname' => str_replace('profile_', '', $data->field)])) {switch($data->operator){case 'LIKE % %':$sql = "fieldid = $fieldid AND data $ilike ?";$params = array("%$data->value%");break;default:$sql = "fieldid = $fieldid AND data $data->operator ?";$params = array($data->value);}if ($infodata = $DB->get_records_select('user_info_data', $sql, $params)) {$finalusersid = array();foreach ($infodata as $d) {$finalusersid[] = $d->userid;}return $finalusersid;}}} else {if ($data->value == "%%CURRENTUSER%%") {$data->value = $user->{$data->field};}switch($data->operator) {case 'LIKE % %': $sql = "$data->field $ilike ?";$params = array("%$data->value%");break;default: $sql = "$data->field $data->operator ?";$params = array($data->value);}$users = $DB->get_records_select('user', $sql, $params);if ($users) {return array_keys($users);}}return array();}}