public function getAdminForm() { $objForm = parent::getAdminForm(); $arrRawCats = class_module_faqs_category::getObjectList(); $arrCats = array(); //addd an "i want all" cat ;) $arrCats["0"] = $this->getLang("commons_all_categories"); foreach ($arrRawCats as $objOneCat) { $arrCats[$objOneCat->getSystemid()] = $objOneCat->getStrDisplayName(); } $objForm->getField("category")->setArrKeyValues($arrCats); return $objForm; }
/** * @inheritdoc */ public function generateFieldsFromObject() { parent::generateFieldsFromObject(); //inject the categories formentries $arrCats = class_module_faqs_category::getObjectList(); if (count($arrCats) > 0) { $arrKeyValues = array(); /** @var class_module_faqs_category $objOneCat */ foreach ($arrCats as $objOneCat) { $arrKeyValues[$objOneCat->getSystemid()] = $objOneCat->getStrDisplayName(); } $this->getField("cats")->setStrLabel($this->getLang("commons_categories"))->setArrKeyValues($arrKeyValues); } }
/** * Returns a list of all categories and all faqs * The list can be filtered by categories * * @return string * @autoTestable * @permissions view */ protected function actionList() { $this->setStrCurObjectTypeName("Cat"); $this->setCurObjectClassName("class_module_faqs_cat"); $objIterator = new class_array_section_iterator(class_module_faqs_category::getObjectCount()); $objIterator->setIntElementsPerPage(class_module_faqs_category::getObjectCount()); $objIterator->setPageNumber(1); $objIterator->setArraySection(class_module_faqs_category::getObjectList("", $objIterator->calculateStartPos(), $objIterator->calculateEndPos())); $strReturn = $this->renderList($objIterator, false, class_module_faqs_admin::STR_CAT_LIST); $this->setStrCurObjectTypeName("Faq"); $this->setCurObjectClassName("class_module_faqs_faq"); $objIterator = new class_array_section_iterator(class_module_faqs_faq::getObjectCount($this->getParam("filterId"))); $objIterator->setPageNumber($this->getParam("pv")); $objIterator->setArraySection(class_module_faqs_faq::getObjectList($this->getParam("filterId"), $objIterator->calculateStartPos(), $objIterator->calculateEndPos())); $strReturn .= $this->renderList($objIterator, false, class_module_faqs_admin::STR_FAQ_LIST); return $strReturn; }
/** * Returns a list of faqs. * The category is choosen from the element-data * * @return string */ protected function actionList() { $strReturn = ""; //load categories $arrCategories = array(); if ($this->arrElementData["faqs_category"] == "0") { $arrCategories = class_module_faqs_category::getObjectList(); } else { $arrCategories[] = new class_module_faqs_category($this->arrElementData["faqs_category"]); } //if no cat was created by now, use a dummy cat if (count($arrCategories) == 0) { $arrCategories[] = 1; } //load every category $strCats = ""; foreach ($arrCategories as $objCategory) { //Load faqs if (!is_object($objCategory) && $objCategory == 1) { $arrFaqs = class_module_faqs_faq::loadListFaqsPortal(1); $objCategory = new class_module_faqs_category(); } else { if ($objCategory->getIntRecordStatus() == 0) { continue; } $arrFaqs = class_module_faqs_faq::loadListFaqsPortal($objCategory->getSystemid()); } $strFaqs = ""; //Check rights foreach ($arrFaqs as $objOneFaq) { if ($objOneFaq->rightView()) { $objMapper = new class_template_mapper($objOneFaq); //legacy support $objMapper->addPlaceholder("faq_question", $objOneFaq->getStrQuestion()); $objMapper->addPlaceholder("faq_answer", $objOneFaq->getStrAnswer()); $objMapper->addPlaceholder("faq_systemid", $objOneFaq->getSystemid()); //ratings available? if ($objOneFaq->getFloatRating() !== null && class_module_system_module::getModuleByName("rating") != null) { /** @var $objRating class_module_rating_portal */ $objRating = class_module_system_module::getModuleByName("rating")->getPortalInstanceOfConcreteModule(); $objMapper->addPlaceholder("faq_rating", $objRating->buildRatingBar($objOneFaq->getFloatRating(), $objOneFaq->getIntRatingHits(), $objOneFaq->getSystemid(), $objOneFaq->isRateableByUser(), $objOneFaq->rightRight1())); } $strOneFaq = $objMapper->writeToTemplate("/module_faqs/" . $this->arrElementData["faqs_template"], "faq_faq", false); //Add pe code $arrPeConfig = array("pe_module" => "faqs", "pe_action_edit" => "editFaq", "pe_action_edit_params" => "&systemid=" . $objOneFaq->getSystemid(), "pe_action_new" => "newFaq", "pe_action_new_params" => "", "pe_action_delete" => "deleteFaq", "pe_action_delete_params" => "&systemid=" . $objOneFaq->getSystemid()); $strFaqs .= class_element_portal::addPortalEditorCode($strOneFaq, $objOneFaq->getSystemid(), $arrPeConfig); } } //wrap category around $objMapper = new class_template_mapper($objCategory); //legacy support $objMapper->addPlaceholder("faq_cat_title", $objCategory->getStrTitle()); $objMapper->addPlaceholder("faq_faqs", $strFaqs); $objMapper->addPlaceholder("faq_cat_systemid", $objCategory->getSystemid()); $strCats .= $objMapper->writeToTemplate("/module_faqs/" . $this->arrElementData["faqs_template"], "faq_category"); } //wrap list container around //wrap category around $strListTemplateID = $this->objTemplate->readTemplate("/module_faqs/" . $this->arrElementData["faqs_template"], "faqs_list"); $arrTemplate = array(); $arrTemplate["faq_categories"] = $strCats; $strReturn .= $this->objTemplate->fillTemplate($arrTemplate, $strListTemplateID); return $strReturn; }
/** * 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 $objElement = class_module_pages_element::getElement("faqs"); if ($objElement != null) { $strReturn .= "Deleting page-element 'faqs'...\n"; $objElement->deleteObjectFromDatabase(); } else { $strReturn .= "Error finding page-element 'faqs', aborting.\n"; return false; } //delete all faqs and categories /** @var class_module_faqs_category $objOneCategory */ foreach (class_module_faqs_category::getObjectList() as $objOneCategory) { $strReturn .= "Deleting category '" . $objOneCategory->getStrDisplayName() . "' ...\n"; if (!$objOneCategory->deleteObjectFromDatabase()) { $strReturn .= "Error deleting category, aborting.\n"; return false; } } /** @var class_module_faqs_faq $objOneFaq*/ foreach (class_module_faqs_faq::getObjectList() as $objOneFaq) { $strReturn .= "Deleting faq '" . $objOneFaq->getStrDisplayName() . "' ...\n"; if (!$objOneFaq->deleteObjectFromDatabase()) { $strReturn .= "Error deleting faq, 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("faqs_category", "faqs", "faqs_member", "element_faqs") 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; }