--- /dev/null
+<?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