예제 #1
0
 public function test()
 {
     $objDB = class_carrier::getInstance()->getObjDB();
     echo "\tmodul_guestbook...\n";
     echo "creating a new guestbook, moderated...\n";
     $objGuestbook = new class_module_guestbook_guestbook();
     $objGuestbook->setStrGuestbookTitle("test guestbook");
     $objGuestbook->setIntGuestbookModerated(1);
     $objGuestbook->updateObjectToDb();
     $strGBId = $objGuestbook->getSystemid();
     echo "adding a new post...\n";
     $objPost = new class_module_guestbook_post();
     $objPost->setStrGuestbookPostName("subject");
     $objPost->setStrGuestbookPostText("test");
     $objPost->updateObjectToDb($strGBId);
     $objDB->flushQueryCache();
     $this->assertEquals(0, count(class_module_guestbook_post::getPosts($strGBId, true)), __FILE__ . " check nr of posts portal");
     $this->assertEquals(1, count(class_module_guestbook_post::getPosts($strGBId)), __FILE__ . " check nr of posts total");
     echo "setting guestbook non-moderated...\n";
     $objGuestbook->setIntGuestbookModerated(0);
     $objGuestbook->updateObjectToDb();
     $objDB->flushQueryCache();
     echo "adding a new post...\n";
     $objPost = new class_module_guestbook_post();
     $objPost->setStrGuestbookPostName("subject2");
     $objPost->setStrGuestbookPostText("test2");
     $objPost->updateObjectToDb($strGBId);
     $this->assertEquals(1, count(class_module_guestbook_post::getPosts($strGBId, true)), __FILE__ . " check nr of posts portal");
     $this->assertEquals(2, count(class_module_guestbook_post::getPosts($strGBId)), __FILE__ . " check nr of posts total");
     $objDB->flushQueryCache();
     echo "deleting the guestbook...\n";
     $objGuestbook->deleteObjectFromDatabase();
 }
 /**
  * @return class_admin_formgenerator|null
  */
 public function getAdminForm()
 {
     $objForm = parent::getAdminForm();
     $objGuestbooks = class_module_guestbook_guestbook::getObjectList();
     $arrGuestbooks = array();
     foreach ($objGuestbooks as $objOneGuestbook) {
         $arrGuestbooks[$objOneGuestbook->getSystemid()] = $objOneGuestbook->getStrDisplayName();
     }
     $objForm->getField("guestbook")->setArrKeyValues($arrGuestbooks);
     return $objForm;
 }
 /**
  * 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("guestbook");
     if ($objElement != null) {
         $strReturn .= "Deleting page-element 'guestbook'...\n";
         $objElement->deleteObjectFromDatabase();
     } else {
         $strReturn .= "Error finding page-element 'guestbook', aborting.\n";
         return false;
     }
     /** @var class_module_guestbook_guestbook $objOneObject */
     foreach (class_module_guestbook_guestbook::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("guestbook_post", "guestbook_book", "element_guestbook") 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;
 }
 /**
  * Disables new posts if the guestbook itself is moderated.
  *
  * @return bool
  */
 protected function onInsertToDb()
 {
     $objGuestbook = new class_module_guestbook_guestbook($this->getPrevId());
     if ($objGuestbook->getIntGuestbookModerated() == "1") {
         $this->setIntRecordStatus(0);
     }
     return true;
 }
 /**
  * Saves the passed values to db
  *
  * @throws class_exception
  * @return string "" in case of success
  */
 protected function actionSaveGuestbook()
 {
     $strReturn = "";
     if (!$this->validateData()) {
         $this->setParam("eintragen_fehler", $this->getLang("eintragen_fehler"));
         return $this->actionInsertGuestbook($this->getAllParams());
     }
     $objBook = new class_module_guestbook_guestbook($this->arrElementData["guestbook_id"]);
     //check rights
     if ($objBook->rightRight1()) {
         //create a post-object
         $objPost = new class_module_guestbook_post();
         $objPost->setStrGuestbookPostName($this->getParam("gb_post_name"));
         $objPost->setStrGuestbookPostEmail($this->getParam("gb_post_email"));
         $objPost->setStrGuestbookPostPage($this->getParam("gb_post_page"));
         $objPost->setStrGuestbookPostText($this->getParam("gb_post_text"));
         $objPost->setIntGuestbookPostDate(time());
         //save obj to db
         if (!$objPost->updateObjectToDb($objBook->getSystemid())) {
             throw new class_exception("Error saving entry", class_exception::$level_ERROR);
         }
         $strMailtext = $this->getLang("new_post_mail");
         $strMailtext .= getLinkAdminHref("guestbook", "edit", "&systemid=" . $objPost->getSystemid(), false);
         $objMessageHandler = new class_module_messaging_messagehandler();
         $arrGroups = array();
         $allGroups = class_module_user_group::getObjectList();
         foreach ($allGroups as $objOneGroup) {
             if (class_rights::getInstance()->checkPermissionForGroup($objOneGroup->getSystemid(), class_rights::$STR_RIGHT_EDIT, $this->getObjModule()->getSystemid())) {
                 $arrGroups[] = $objOneGroup;
             }
         }
         $objMessageHandler->sendMessage($strMailtext, $arrGroups, new class_messageprovider_guestbook());
         //Flush the page from cache
         $this->flushPageFromPagesCache($this->getPagename());
         $this->portalReload(getLinkPortalHref($this->getPagename()));
     } else {
         $strReturn = $this->getLang("commons_error_permissions");
     }
     return $strReturn;
 }