<?php
+use \PFF\HtmlBuilder\Tag as Tag;
+
interface IPF_Admin_ListFilter
{
function title();
+ function paramName();
function setParams($params);
- function render($extraParams);
+ function getItems();
}
abstract class IPF_Admin_Component
{
throw new IPF_Exception('Reordering is not implemented.');
}
-}
+ function renderFilter($filter)
+ {
+ $params = $this->request->GET;
+ $paramName = $filter->paramName();
+
+ $ul = Tag::ul();
+ foreach ($filter->getItems() as $item) {
+ unset($params[$paramName]);
+ if ($item['id'] !== null) {
+ $params[$paramName] = $item['id'];
+ }
+ $url = '?'.IPF_HTTP_URL::generateParams($params, false);
+
+ $ul->append(Tag::li()
+ ->toggleClass('selected', $item['selected'])
+ ->append(Tag::a()
+ ->attr('href', $url)
+ ->append($item['label'])
+ )
+ );
+ }
+
+ return $ul->html();
+ }
+}