/** * Searches for a passed string * * @return string * @permissions view * @xml */ protected function actionSearchXml() { $strReturn = ""; $strSearchterm = ""; if ($this->getParam("search_query") != "") { $strSearchterm = htmlToString(urldecode($this->getParam("search_query")), false); } $objSearch = new class_module_search_search(); $objSearch->setStrQuery($strSearchterm); $arrResult = array(); $objSearchCommons = new class_module_search_commons(); if ($strSearchterm != "") { $arrResult = $objSearchCommons->doAdminSearch($objSearch, 0, self::INT_MAX_NR_OF_RESULTS); } $objSearchFunc = function (class_search_result $objA, class_search_result $objB) { //first by module, second by score if ($objA->getObjObject() instanceof class_model && $objB->getObjObject() instanceof class_model) { $intCmp = strcmp($objA->getObjObject()->getArrModule("modul"), $objB->getObjObject()->getArrModule("modul")); if ($intCmp != 0) { return $intCmp; } else { return $objA->getIntScore() < $objB->getIntScore(); } } //fallback: score only return $objA->getIntScore() < $objB->getIntScore(); }; uasort($arrResult, $objSearchFunc); if ($this->getParam("asJson") != "") { $strReturn .= $this->createSearchJson($strSearchterm, $arrResult); } else { $strReturn .= $this->createSearchXML($strSearchterm, $arrResult); } return $strReturn; }