protected function renderFilter($request, $filterData = array())
{
$form = $this->getFilterForm();
switch (true) {
case $form === null:
// No filter form.
return '';
case is_a($form, 'Form'):
// Form object subclass
// Only read form data if the clientSubmit flag has been checked
$clientSubmit = (bool) $request->getUserVar('clientSubmit');
if ($clientSubmit) {
$form->readInputData();
$form->validate();
}
$form->initData($filterData, $request);
return $form->fetch($request);
case is_string($form):
// HTML mark-up
$templateMgr = TemplateManager::getManager($request);
// Assign data to the filter.
$templateMgr->assign('filterData', $filterData);
// Assign current selected filter data.
$filterSelectionData = $this->getFilterSelectionData($request);
$templateMgr->assign('filterSelectionData', $filterSelectionData);
return $templateMgr->fetch($form);
break;
}
assert(false);
}