/** * Renders the search form with results * * @permissions view * @return string * @autoTestable */ protected function actionSearch() { $strReturn = ""; $objSearch = new class_module_search_search($this->getParam("systemid")); $objForm = $this->getSearchAdminForm($objSearch); $objForm->updateSourceObject(); if ($this->getParam("filtermodules") != "") { $objSearch->setStrInternalFilterModules($this->getParam("filtermodules")); } if ($this->getParam("search_filter_all") != "") { $objSearch->setStrInternalFilterModules("-1"); } // Search Form $objForm = $this->getSearchAdminForm($objSearch); $strReturn .= $objForm->renderForm(class_link::getLinkAdminHref($this->getArrModule("modul"), "search"), class_admin_formgenerator::BIT_BUTTON_SUBMIT); // Execute Search $objSearchCommons = new class_module_search_commons(); $arrResult = $objSearchCommons->doAdminSearch($objSearch); $objArraySectionIterator = new class_array_section_iterator($objSearchCommons->getIndexedSearchCount($objSearch)); $objArraySectionIterator->setPageNumber((int) ($this->getParam("pv") != "" ? $this->getParam("pv") : 1)); $objArraySectionIterator->setArraySection($objSearchCommons->doIndexedSearch($objSearch, $objArraySectionIterator->calculateStartPos(), $objArraySectionIterator->calculateEndPos())); //convert entries to real objects $arrObjects = array(); /** @var $objSearchResult class_search_result */ foreach ($arrResult as $objSearchResult) { $arrObjects[] = $objSearchResult->getObjObject(); } $objArraySectionIterator->setArrElements($arrObjects); $objArraySectionIterator->setArraySection($objArraySectionIterator->getElementsOnPage(1)); $strQueryAppend = "&filtermodules=" . $objSearch->getStrInternalFilterModules(); if ($objSearch->getObjChangeStartdate() != null) { $strQueryAppend .= "&search_changestartdate=" . $objSearch->getObjChangeStartdate()->getLongTimestamp(); } if ($objSearch->getObjChangeEnddate() != null) { $strQueryAppend .= "&search_changeenddate=" . $objSearch->getObjChangeEnddate()->getLongTimestamp(); } $strReturn .= $this->renderList($objArraySectionIterator, false, "searchResultList", false, "&search_query=" . $objSearch->getStrQuery() . $strQueryAppend); return $strReturn; }