コード例 #1
0
 /**
  * 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;
 }