/**
  * Removes the elements / modules handled by the current installer.
  * Use the reference param to add a human readable logging.
  *
  * @param string &$strReturn
  *
  * @return bool
  */
 public function remove(&$strReturn)
 {
     //delete the page-element
     if (class_module_system_module::getModuleByName("pages") !== null && class_module_pages_element::getElement("search") != null) {
         $objElement = class_module_pages_element::getElement("search");
         if ($objElement != null) {
             $strReturn .= "Deleting page-element 'search'...\n";
             $objElement->deleteObjectFromDatabase();
         } else {
             $strReturn .= "Error finding page-element 'search', aborting.\n";
             return false;
         }
     }
     /** @var class_module_search_search $objOneObject */
     foreach (class_module_search_search::getObjectList() as $objOneObject) {
         $strReturn .= "Deleting object '" . $objOneObject->getStrDisplayName() . "' ...\n";
         if (!$objOneObject->deleteObjectFromDatabase()) {
             $strReturn .= "Error deleting object, aborting.\n";
             return false;
         }
     }
     //delete the module-node
     $strReturn .= "Deleting the module-registration...\n";
     $objModule = class_module_system_module::getModuleByName($this->objMetadata->getStrTitle(), true);
     if (!$objModule->deleteObjectFromDatabase()) {
         $strReturn .= "Error deleting module, aborting.\n";
         return false;
     }
     //delete the tables
     foreach (array("search_search", "search_log", "element_search", "search_ix_document", "search_ix_content") as $strOneTable) {
         $strReturn .= "Dropping table " . $strOneTable . "...\n";
         if (!$this->objDB->_pQuery("DROP TABLE " . $this->objDB->encloseTableName(_dbprefix_ . $strOneTable) . "", array())) {
             $strReturn .= "Error deleting table, aborting.\n";
             return false;
         }
     }
     return true;
 }
 /**
  * Renders the general list of records
  *
  * @return string
  * @permissions view
  * @autoTestable
  */
 protected function actionList()
 {
     $objArraySectionIterator = new class_array_section_iterator(class_module_search_search::getObjectCount());
     $objArraySectionIterator->setPageNumber((int) ($this->getParam("pv") != "" ? $this->getParam("pv") : 1));
     $objArraySectionIterator->setArraySection(class_module_search_search::getObjectList(false, $objArraySectionIterator->calculateStartPos(), $objArraySectionIterator->calculateEndPos()));
     return $this->renderList($objArraySectionIterator);
 }
 public function getAdminForm()
 {
     $objForm = parent::getAdminForm();
     $arrRawQueries = class_module_search_search::getObjectList();
     $arrQueries = array();
     foreach ($arrRawQueries as $objOneQuery) {
         $arrQueries[$objOneQuery->getSystemid()] = $objOneQuery->getStrDisplayName();
     }
     $objForm->getField("query")->setArrKeyValues($arrQueries);
     return $objForm;
 }