MDL-36767 Administration: user_filter_yesno use different name for sql filter
authorRajesh Taneja <rajesh@moodle.com>
Thu, 22 Nov 2012 06:55:50 +0000 (14:55 +0800)
committerRajesh Taneja <rajesh@moodle.com>
Tue, 27 Nov 2012 03:52:53 +0000 (11:52 +0800)
user_filter_yesno extends user_filter_simpleselect, so if user bulk action filter has both
user_filter_simpleselect and user_filter_yesno, they use the same filter name but counter is
different as they are different classes. Hence using different filter name will avoid confilts

user/filters/yesno.php

index ee22711..f314a67 100644 (file)
@@ -15,4 +15,22 @@ class user_filter_yesno extends user_filter_simpleselect {
     function user_filter_yesno($name, $label, $advanced, $field) {
         parent::user_filter_simpleselect($name, $label, $advanced, $field, array(0=>get_string('no'), 1=>get_string('yes')));
     }
+
+    /**
+     * Returns the condition to be used with SQL
+     *
+     * @param array $data filter settings
+     * @return array sql string and $params
+     */
+    function get_sql_filter($data) {
+        static $counter = 0;
+        $name = 'ex_yesno'.$counter++;
+
+        $value = $data['value'];
+        $field = $this->_field;
+        if ($value == '') {
+            return array();
+        }
+        return array("$field=:$name", array($name => $value));
+    }
 }