]> git.andy128k.dev Git - ipf.git/commitdiff
IPF_Admin_Filters_ModelList
authorAlexander Meteiko <ameteiko@gmail.com>
Fri, 26 Feb 2010 15:50:31 +0000 (17:50 +0200)
committerAlexander Meteiko <ameteiko@gmail.com>
Fri, 26 Feb 2010 15:50:31 +0000 (17:50 +0200)
ipf/admin/filters/modellist.php [new file with mode: 0644]

diff --git a/ipf/admin/filters/modellist.php b/ipf/admin/filters/modellist.php
new file mode 100644 (file)
index 0000000..0ff029a
--- /dev/null
@@ -0,0 +1,55 @@
+<?php\r
+\r
+class IPF_Admin_Filters_ModelList extends ListFilter\r
+{\r
+    function __construct($local, $foreign, $request, $coll, $title)\r
+    {\r
+        $fname = 'filter_'.$local;\r
+\r
+        $sel_id = @$request->GET[$fname];\r
+\r
+        $choices = array(\r
+            array(\r
+                'id'       => null,\r
+                'param'    => '',\r
+                'name'     => 'All',\r
+                'selected' => ($sel_id==''),\r
+            ),\r
+            array(\r
+                'id'       => '0',\r
+                'param'    => $fname.'=0',\r
+                'name'     => 'None',\r
+                'selected' => ($sel_id=='0'),\r
+            ),        \r
+        );\r
+\r
+        foreach ($coll as $item)\r
+        {\r
+            $id = (string)$item->id;\r
+\r
+            $choices[] = array(\r
+                'id'       => $id,\r
+                'param'    => $fname.'='.$id,\r
+                'name'     => (string)$item,\r
+                'selected' => ($sel_id == $id),\r
+            );\r
+        }\r
\r
+        parent::__construct($local, $foreign, $choices, $title);\r
+    }\r
+\r
+    function FilterQuery($request,$q)\r
+    {\r
+        $param_name = 'filter_'.$this->local;\r
+        if (isset($request->GET[$param_name]))\r
+        {\r
+            $id = $request->GET[$param_name];\r
+            if ($this->IsChoice($id))\r
+            {\r
+                if ($id == '0')\r
+                     $q->where($this->local.' is null');\r
+                else $q->where($this->local.'='.$id);\r
+            }\r
+        }\r
+    }\r
+}
\ No newline at end of file