From 1b452baf24fab74d317e15fcdc135e8766b445a1 Mon Sep 17 00:00:00 2001 From: skodak Date: Fri, 16 Nov 2007 22:12:04 +0000 Subject: [PATCH] MDL-12200 fixed problems when no custom user fields defined; merged from MOODLE_19_STABLE --- user/filters/profilefield.php | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/user/filters/profilefield.php b/user/filters/profilefield.php index 8a1e89824a..bb7fefcb4e 100644 --- a/user/filters/profilefield.php +++ b/user/filters/profilefield.php @@ -73,6 +73,12 @@ class user_filter_profilefield extends user_filter_type { * @return mixed array filter data or false when filter not set */ function check_data($formdata) { + $profile_fields = $this->get_profile_fields(); + + if (empty($profile_fields)) { + return false; + } + $field = $this->_name; $operator = $field.'_op'; $profile = $field.'_fld'; @@ -96,10 +102,19 @@ class user_filter_profilefield extends user_filter_type { function get_sql_filter($data) { global $CFG; + $profile_fields = $this->get_profile_fields(); + if (empty($profile_fields)) { + return ''; + } + $profile = $data['profile']; $operator = $data['operator']; $value = addslashes($data['value']); + if (!array_key_exists($profile, $profile_fields)) { + return ''; + } + $where = ""; $op = " IN "; $ilike = sql_ilike(); @@ -144,17 +159,25 @@ class user_filter_profilefield extends user_filter_type { * @return string active filter label */ function get_label($data) { - $operators = $this->get_operators(); - $profilefields = $this->get_profile_fields(); + $operators = $this->get_operators(); + $profile_fields = $this->get_profile_fields(); + + if (empty($profile_fields)) { + return ''; + } $profile = $data['profile']; $operator = $data['operator']; $value = $data['value']; + if (!array_key_exists($profile, $profile_fields)) { + return ''; + } + $a = new object(); $a->label = $this->_label; $a->value = $value; - $a->profile = $profilefields[$profile]; + $a->profile = $profile_fields[$profile]; $a->operator = $operators[$operator]; switch($operator) { -- 2.39.5