/**
  * 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;
 }
示例#2
0
 public function install()
 {
     $strReturn = "";
     //fetch navifolder-id
     $strNaviFolderId = "";
     $arrFolder = class_module_pages_folder::getFolderList();
     foreach ($arrFolder as $objOneFolder) {
         if ($objOneFolder->getStrName() == "mainnavigation") {
             $strNaviFolderId = $objOneFolder->getSystemid();
         }
     }
     //search the index page
     $objIndex = class_module_pages_page::getPageByName("index");
     if ($objIndex != null) {
         $this->strIndexID = $objIndex->getSystemid();
     }
     $strReturn .= "Creating faqs\n";
     $objFaq1 = new class_module_faqs_faq();
     $objFaq2 = new class_module_faqs_faq();
     if ($this->strContentLanguage == "de") {
         $objFaq1->setStrQuestion("Was ist Kajona?");
         $objFaq1->setStrAnswer("Kajona ist ein Open Source Content Management System basierend auf PHP und einer Datenbank. Dank der modularen Bauweise ist Kajona einfach erweiter- und anpassbar.");
         $objFaq2->setStrQuestion("Wer entwickelt Kajona, wo gibt es weitere Infos?");
         $objFaq2->setStrAnswer("Kajona wird von einer Open Source Community entwickelt. Da Kajona ständig weiterentwickelt wird, sind wir jederzeit auf der Suche nach Helfern, seien es Programmierer, Grafiker, Betatester und auch Anwender. Weitere Informationen hierzu finden Sie auf <a href=\"http://www.kajona.de\">www.kajona.de</a>.");
     } else {
         $objFaq1->setStrQuestion("What is Kajona?");
         $objFaq1->setStrAnswer("Kajona is an open source content management system based on PHP and a database. Due to it's modular design, it can be extended and adopted very easily.");
         $objFaq2->setStrQuestion("Who develops Kajona, where can I find more infos?");
         $objFaq2->setStrAnswer("Kajona is being developed by an open source community. Since Kajona is still being developed, we are searching for contributors. Further information can be found at <a href=\"http://www.kajona.de\">www.kajona.de</a>.");
     }
     $strReturn .= "Saving faqs...\n";
     $objFaq1->updateObjectToDb();
     $objFaq2->updateObjectToDb();
     $strReturn .= "Creating faqs-page\n";
     $objPage = new class_module_pages_page();
     $objPage->setStrName("faqs");
     $objPage->setStrBrowsername("FAQs");
     $objPage->setStrTemplate("standard.tpl");
     $objPage->updateObjectToDb($strNaviFolderId);
     $strFaqsPageId = $objPage->getSystemid();
     $strReturn .= "ID of new page: " . $strFaqsPageId . "\n";
     $strReturn .= "Adding faqs-element to new page\n";
     if (class_module_pages_element::getElement("faqs") != null) {
         $objPagelement = new class_module_pages_pageelement();
         $objPagelement->setStrPlaceholder("special_news|guestbook|downloads|gallery|galleryRandom|form|tellafriend|maps|search|navigation|faqs|postacomment|votings|userlist|rssfeed|tagto|portallogin|portalregistration|portalupload|directorybrowser|lastmodified|tagcloud|downloadstoplist|flash|mediaplayer|tags|eventmanager");
         $objPagelement->setStrName("special");
         $objPagelement->setStrElement("faqs");
         $objPagelement->updateObjectToDb($strFaqsPageId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_faqs\n                            SET faqs_category= ?,\n                                faqs_template = ?\n                          WHERE content_id = ? ";
         if ($this->objDB->_pQuery($strQuery, array(0, "demo_foldable.tpl", $strElementId))) {
             $strReturn .= "faqselement created.\n";
         } else {
             $strReturn .= "Error creating faqselement.\n";
         }
     }
     $strReturn .= "Adding headline-element to new page\n";
     if (class_module_pages_element::getElement("row") != null) {
         $objPagelement = new class_module_pages_pageelement();
         $objPagelement->setStrPlaceholder("headline_row");
         $objPagelement->setStrName("headline");
         $objPagelement->setStrElement("row");
         $objPagelement->updateObjectToDb($strFaqsPageId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n                             SET paragraph_title = ?\n                           WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, array("FAQs", $strElementId))) {
             $strReturn .= "Headline element created.\n";
         } else {
             $strReturn .= "Error creating headline element.\n";
         }
     }
     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;
 }