Example #1
0
function validateSinglePage(class_module_pages_page $objPage)
{
    $arrElements = class_module_pages_pageelement::getAllElementsOnPage($objPage->getSystemid());
    $intI = 0;
    $strPrevPlaceholder = "";
    $strPrevLanguage = "";
    foreach ($arrElements as $objOneElement) {
        $strCurLevel = $objOneElement->getSystemid() . " - " . $objOneElement->getIntSort() . " - " . $objOneElement->getStrRecordClass() . " - " . $objOneElement->getStrDisplayName() . " - " . $objOneElement->getStrPlaceholder();
        if ($strPrevPlaceholder != $objOneElement->getStrPlaceholder() || $strPrevLanguage != $objOneElement->getStrLanguage()) {
            $intI = 1;
        }
        if ($objOneElement->getIntSort() != $intI) {
            $strCurLevel = "<span style='color: red'>expected: " . $intI . ", got " . $objOneElement->getIntSort() . " @ " . $strCurLevel . "</span>";
            if (getGet("doFix") != "") {
                $strCurLevel .= "\nSetting new sort-id to " . $intI . "\n";
                $strQuery = "UPDATE " . _dbprefix_ . "system SET system_sort = ? WHERE system_id = ? ";
                class_carrier::getInstance()->getObjDB()->_pQuery($strQuery, array($intI, $objOneElement->getSystemid()));
            }
        } else {
            $strCurLevel = "<span style='color: green'>" . $strCurLevel . "</span>";
        }
        echo "<div style='padding-left: 25px;'>" . $strCurLevel . "</div>";
        $strPrevPlaceholder = $objOneElement->getStrPlaceholder();
        $strPrevLanguage = $objOneElement->getStrLanguage();
        $intI++;
    }
}
 /**
  *
  * Does the hard work: installs the module and registers needed constants
  *
  * @return string
  */
 public function install()
 {
     $strReturn = "";
     $strReturn .= "Assigning null-properties and elements to the default language.\n";
     if ($this->strContentLanguage == "de") {
         $strReturn .= " Target language: de\n";
         if (class_exists("class_module_pages_page", false) || class_classloader::getInstance()->loadClass("class_module_pages_page") !== false) {
             class_module_pages_page::assignNullProperties("de", true);
         }
         if (class_exists("class_module_pages_pageelement", false) || class_classloader::getInstance()->loadClass("class_module_pages_pageelement") !== false) {
             class_module_pages_pageelement::assignNullElements("de");
         }
         $objLang = new class_module_languages_language();
         $objLang->setStrAdminLanguageToWorkOn("de");
     } else {
         $strReturn .= " Target language: en\n";
         if (class_exists("class_module_pages_page", false) || class_classloader::getInstance()->loadClass("class_module_pages_page") !== false) {
             class_module_pages_page::assignNullProperties("en", true);
         }
         if (class_exists("class_module_pages_pageelement", false) || class_classloader::getInstance()->loadClass("class_module_pages_pageelement") !== false) {
             class_module_pages_pageelement::assignNullElements("en");
         }
         $objLang = new class_module_languages_language();
         $objLang->setStrAdminLanguageToWorkOn("en");
     }
     return $strReturn;
 }
 /**
  * Does the hard work: installs the module and registers needed constants
  *
  * @return string
  */
 public function install()
 {
     $strReturn = "";
     //search the master page
     $objMaster = class_module_pages_page::getPageByName("master");
     if ($objMaster != null) {
         $this->strMasterID = $objMaster->getSystemid();
     }
     if ($this->strMasterID != "") {
         $strReturn .= "Adding languageswitch to master page\n";
         $strReturn .= "ID of master page: " . $this->strMasterID . "\n";
         if (class_module_pages_element::getElement("languageswitch") != null) {
             $objPagelement = new class_module_pages_pageelement();
             $objPagelement->setStrPlaceholder("masterlanguageswitch_languageswitch");
             $objPagelement->setStrName("masterswitch");
             $objPagelement->setStrElement("languageswitch");
             $objPagelement->updateObjectToDb($this->strMasterID);
             $strElementId = $objPagelement->getSystemid();
             $strReturn .= "ID of element: " . $strElementId . "\n";
             $strReturn .= "Element created.\n";
             $strReturn .= "Setting languageswitch template...\n";
             $strQuery = "UPDATE " . _dbprefix_ . "element_universal\n                            SET char1 = ?\n                            WHERE content_id = ? ";
             $this->objDB->_pQuery($strQuery, array("languageswitch.tpl", $strElementId));
         }
     }
     return $strReturn;
 }
 /**
  * Returns the ready image-htmlcode
  *
  * @return string
  */
 public function loadData()
 {
     $strReturn = "";
     $strTemplate = $this->arrElementData["image_template"];
     //fallback
     if ($strTemplate == "") {
         $strTemplate = "image.tpl";
     }
     //choose template section
     if ($this->arrElementData["image_link"] != "") {
         $strTemplateID = $this->objTemplate->readTemplate("/element_image/" . $strTemplate, "image_link");
     } else {
         $strTemplateID = $this->objTemplate->readTemplate("/element_image/" . $strTemplate, "image");
     }
     $this->arrElementData["image_src"] = $this->arrElementData["image_image"];
     //TODO: rename db columns as well and remove this two lines
     $this->arrElementData["image_width"] = $this->arrElementData["image_x"];
     $this->arrElementData["image_height"] = $this->arrElementData["image_y"];
     //Link?
     if ($this->arrElementData["image_link"] != "") {
         //internal page?
         if (class_module_pages_page::getPageByName($this->arrElementData["image_link"]) !== null) {
             $this->arrElementData["link_href"] = getLinkPortalHref($this->arrElementData["image_link"], "");
         } else {
             $this->arrElementData["link_href"] = getLinkPortalHref("", $this->arrElementData["image_link"]);
         }
     }
     $strReturn .= $this->fillTemplate($this->arrElementData, $strTemplateID);
     return $strReturn;
 }
 /**
  * @param $strSearchterm
  * @param class_search_result[] $arrResults
  *
  * @return string
  */
 private function createSearchXML($strSearchterm, $arrResults)
 {
     $strReturn = "";
     $strReturn .= "<search>\n" . "    <searchterm>" . xmlSafeString($strSearchterm) . "</searchterm>\n" . "    <nrofresults>" . count($arrResults) . "</nrofresults>\n";
     //And now all results
     $intI = 0;
     $strReturn .= "    <resultset>\n";
     foreach ($arrResults as $objOneResult) {
         $objPage = class_module_pages_page::getPageByName($objOneResult->getStrPagename());
         if ($objPage === null || !$objPage->rightView() || $objPage->getIntRecordStatus() != 1) {
             continue;
         }
         if (++$intI > self::$INT_MAX_NR_OF_RESULTS) {
             break;
         }
         //create a correct link
         if ($objOneResult->getStrPagelink() == "") {
             $objOneResult->setStrPagelink(getLinkPortal($objOneResult->getStrPagename(), "", "_self", $objOneResult->getStrPagename(), "", "&highlight=" . $strSearchterm . "#" . $strSearchterm));
         }
         $strReturn .= "        <item>\n" . "            <pagename>" . $objOneResult->getStrPagename() . "</pagename>\n" . "            <pagelink>" . $objOneResult->getStrPagelink() . "</pagelink>\n" . "            <score>" . $objOneResult->getIntHits() . "</score>\n" . "            <description>" . xmlSafeString(uniStrTrim($objOneResult->getStrDescription(), 200)) . "</description>\n" . "        </item>\n";
     }
     $strReturn .= "    </resultset>\n";
     $strReturn .= "</search>";
     return $strReturn;
 }
 /**
  * Looks up the last modified-date of the current page
  *
  * @return string the prepared html-output
  */
 public function loadData()
 {
     $strReturn = "";
     //load the current page
     $objPage = class_module_pages_page::getPageByName($this->getPagename());
     if ($objPage != null) {
         $strReturn .= $this->getLang("lastmodified") . timeToString($objPage->getIntLmTime());
     }
     return $strReturn;
 }
 public function testImportExport()
 {
     class_carrier::getInstance()->getObjRights()->setBitTestMode(true);
     $strName = generateSystemid();
     $strBrowsername = generateSystemid();
     $strSeoString = generateSystemid();
     $strDesc = generateSystemid();
     $objPage = new class_module_pages_page();
     $objPage->setStrName($strName);
     $objPage->setStrBrowsername($strBrowsername);
     $objPage->setStrSeostring($strSeoString);
     $objPage->setStrDesc($strDesc);
     $objPage->setStrTemplate("standard.tpl");
     $objPage->updateObjectToDb();
     $strPagesystemid = $objPage->getSystemid();
     $objPagelement = new class_module_pages_pageelement();
     $objPagelement->setStrPlaceholder("text_paragraph");
     $objPagelement->setStrName("text");
     $objPagelement->setStrElement("paragraph");
     $objPagelement->updateObjectToDb($objPage->getSystemid());
     $objElement = new class_element_paragraph_admin($objPagelement->getSystemid());
     $objElement->setSystemid($objPagelement->getSystemid());
     $objElement->loadElementData();
     $objElement->setStrTitle("para_title");
     $objElement->updateForeignElement();
     $objPagelement = new class_module_pages_pageelement($objPagelement->getSystemid());
     class_carrier::getInstance()->setParam("pageExport", $strName);
     $objPageExport = new class_systemtask_pageexport();
     $objPageExport->executeTask();
     $objPage->deleteObjectFromDatabase();
     class_orm_rowcache::flushCache();
     class_db::getInstance()->flushQueryCache();
     $this->assertNull(class_module_pages_page::getPageByName($strName));
     $this->assertFileExists(_realpath_ . _projectpath_ . "/temp/" . $strPagesystemid . ".xml");
     class_carrier::getInstance()->setParam("pageimport_file", _projectpath_ . "/temp/" . $strPagesystemid . ".xml");
     $objImport = new class_systemtask_pageimport();
     $objImport->executeTask();
     $objPage = class_module_pages_page::getPageByName($strName);
     $this->assertNotNull($objPage);
     $this->assertEquals($objPage->getStrName(), $strName);
     $this->assertEquals($objPage->getStrDesc(), $strDesc);
     $this->assertEquals($objPage->getStrSeostring(), $strSeoString);
     $this->assertEquals($objPage->getStrBrowsername(), $strBrowsername);
     $objElements = class_module_pages_pageelement::getAllElementsOnPage($objPage->getSystemid());
     $this->assertEquals(1, count($objElements));
     $objElements = $objElements[0];
     $this->assertEquals($objElements->getStrClassAdmin(), "class_element_paragraph_admin.php");
     $objElement = $objElements->getConcreteAdminInstance();
     $objElement->setSystemid($objElements->getSystemid());
     $objElement->loadElementData();
     $this->assertEquals("para_title", $objElement->getStrTitle());
     $objPage->deleteObjectFromDatabase();
 }
 /**
  * Returns the ready switch-htmlcode
  *
  * @return string
  */
 public function loadData()
 {
     //fallback for old elements not yet using the template
     if (!isset($this->arrElementData["char1"]) || $this->arrElementData["char1"] == "") {
         $this->arrElementData["char1"] = "languageswitch.tpl";
     }
     $arrObjLanguages = class_module_languages_language::getObjectList(true);
     //load the languageset in order to generate more specific switches
     $objLanguageset = class_module_languages_languageset::getLanguagesetForSystemid($this->getParam("systemid"));
     //Iterate over all languages
     $strRows = "";
     foreach ($arrObjLanguages as $objOneLanguage) {
         //Check, if the current page has elements
         $objPage = class_module_pages_page::getPageByName($this->getPagename());
         $objPage->setStrLanguage($objOneLanguage->getStrName());
         if ($objPage === null) {
             continue;
         }
         if ((int) $objPage->getNumberOfElementsOnPage(true) == 0) {
             continue;
         }
         $strTargetSystemid = null;
         if ($objLanguageset != null) {
             $strTargetSystemid = $objLanguageset->getSystemidForLanguageid($objOneLanguage->getSystemid());
         }
         //the languageswitch is content aware. check if the target id is a news-entry
         $strSeoAddon = "";
         if (validateSystemid($strTargetSystemid)) {
             $objRecord = class_objectfactory::getInstance()->getObject($strTargetSystemid);
             $strSeoAddon = $objRecord->getStrDisplayName();
         }
         //and the link
         $arrTemplate = array();
         if ($strTargetSystemid === null) {
             $arrTemplate["href"] = getLinkPortalHref($objPage->getStrName(), "", "", "", "", $objOneLanguage->getStrName(), $strSeoAddon);
         } else {
             $arrTemplate["href"] = getLinkPortalHref($objPage->getStrName(), "", $this->getAction(), "", $strTargetSystemid, $objOneLanguage->getStrName(), $strSeoAddon);
         }
         $arrTemplate["langname_short"] = $objOneLanguage->getStrName();
         $arrTemplate["langname_long"] = $this->getLang("lang_" . $objOneLanguage->getStrName());
         $strTemplateRowID = $this->objTemplate->readTemplate("/element_languageswitch/" . $this->arrElementData["char1"], "languageswitch_entry");
         $strTemplateActiveRowID = $this->objTemplate->readTemplate("/element_languageswitch/" . $this->arrElementData["char1"], "languageswitch_entry_active");
         if ($objOneLanguage->getStrName() == $this->getStrPortalLanguage()) {
             $strRows .= $this->fillTemplate($arrTemplate, $strTemplateActiveRowID);
         } else {
             $strRows .= $this->fillTemplate($arrTemplate, $strTemplateRowID);
         }
     }
     $strTemplateWrapperID = $this->objTemplate->readTemplate("/element_languageswitch/" . $this->arrElementData["char1"], "languageswitch_wrapper");
     return $this->fillTemplate(array("languageswitch_entries" => $strRows), $strTemplateWrapperID);
 }
Example #9
0
 public function testPortal()
 {
     echo "generating all pages existing to find notices...\n";
     $arrPages = class_module_pages_page::getAllPages();
     $objModule = class_module_system_module::getModuleByName("pages");
     /** @var $objModuleRequested class_module_pages_portal */
     $objModuleRequested = $objModule->getPortalInstanceOfConcreteModule();
     /** @var class_module_pages_page $objOnePage */
     foreach ($arrPages as $objOnePage) {
         echo "generating page " . $objOnePage->getStrName() . "\n";
         $objModuleRequested->setParam("page", $objOnePage->getStrName());
         $objModuleRequested->action("");
     }
 }
 /**
  * Does the hard work: installs the module and registers needed constants
  *
  */
 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();
         }
     }
     $strReturn .= "Creating new page rssfeed...\n";
     $objPage = new class_module_pages_page();
     $objPage->setStrName("rssfeed");
     $objPage->setStrBrowsername("Rssfeed");
     $objPage->setStrTemplate("standard.tpl");
     $objPage->updateObjectToDb($strNaviFolderId);
     $strPageId = $objPage->getSystemid();
     $strReturn .= "ID of new page: " . $strPageId . "\n";
     $strReturn .= "Adding pagelement to new page\n";
     if (class_module_pages_element::getElement("rssfeed") != 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("rssfeed");
         $objPagelement->updateObjectToDb($strPageId);
         $strElementId = $objPagelement->getSystemid();
         $arrParams = array();
         if ($this->strContentLanguage == "de") {
             $arrParams = array("rssfeed.tpl", 10, "http://www.kajona.de/kajona_news.rss", $strElementId);
         } else {
             $arrParams = array("rssfeed.tpl", 10, "http://www.kajona.de/kajona_news_en.rss", $strElementId);
         }
         $strQuery = "UPDATE " . _dbprefix_ . "element_universal\n                            SET char1 = ?,\n                                " . $this->objDB->encloseColumnName("int1") . " = ?,\n                                char2 = ?\n                            WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, $arrParams)) {
             $strReturn .= "Rssfeed element created.\n";
         } else {
             $strReturn .= "Error creating Rssfeed element.\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($strPageId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n                                SET paragraph_title = ?\n                                WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, array("Rssfeed", $strElementId))) {
             $strReturn .= "Headline element created.\n";
         } else {
             $strReturn .= "Error creating headline element.\n";
         }
     }
     return $strReturn;
 }
 /**
  * Returns a list of all categories and all postacomment
  * The list could be filtered by categories
  *
  * @return string
  * @permissions view
  * @autoTestable
  */
 protected function actionList()
 {
     //a small filter would be nice...
     $strReturn = $this->objToolkit->formHeader(getLinkAdminHref($this->arrModule["modul"], "list"));
     $arrPages = array();
     $arrPages[""] = "---";
     foreach (class_module_pages_page::getAllPages() as $objOnePage) {
         $arrPages[$objOnePage->getSystemid()] = $objOnePage->getStrName();
     }
     $strReturn .= $this->objToolkit->formInputDropdown("filterId", $arrPages, $this->getLang("postacomment_filter"), $this->getParam("filterId"));
     $strReturn .= $this->objToolkit->formInputSubmit($this->getLang("postacomment_dofilter"));
     $strReturn .= $this->objToolkit->formClose();
     $strReturn .= $this->objToolkit->divider();
     $objArraySectionIterator = new class_array_section_iterator(class_module_postacomment_post::getNumberOfPostsAvailable(false, $this->getParam("filterId")));
     $objArraySectionIterator->setPageNumber((int) ($this->getParam("pv") != "" ? $this->getParam("pv") : 1));
     $objArraySectionIterator->setArraySection(class_module_postacomment_post::loadPostList(false, $this->getParam("filterId"), false, "", $objArraySectionIterator->calculateStartPos(), $objArraySectionIterator->calculateEndPos()));
     $strReturn .= $this->renderList($objArraySectionIterator);
     return $strReturn;
 }
Example #12
0
 public function testTagAssignment()
 {
     if (class_module_system_module::getModuleByName("pages") === null) {
         return true;
     }
     $strName = generateSystemid();
     $arrPages = class_module_pages_page::getAllPages();
     if (count($arrPages) == 0) {
         return;
     }
     $objTag = new class_module_tags_tag();
     $objTag->setStrName($strName);
     $objTag->updateObjectToDb();
     foreach ($arrPages as $objOnePage) {
         $objTag->assignToSystemrecord($objOnePage->getSystemid());
         break;
     }
     $arrFolder = class_module_pages_folder::getFolderList();
     foreach ($arrFolder as $objOneFolder) {
         $objTag->assignToSystemrecord($objOneFolder->getSystemid());
         break;
     }
     $this->flushDBCache();
     $objTag = class_module_tags_tag::getTagByName($strName);
     $this->assertEquals($objTag->getIntAssignments(), 2);
     $arrPlainAssignments = $objTag->getListOfAssignments();
     $this->assertEquals(count($arrPlainAssignments), 2);
     $arrAssignment = $objTag->getArrAssignedRecords();
     $this->assertEquals(count($arrAssignment), 2);
     $this->assertTrue($arrAssignment[0] instanceof class_module_pages_page || $arrAssignment[0] instanceof class_module_pages_folder);
     $this->assertTrue($arrAssignment[1] instanceof class_module_pages_page || $arrAssignment[1] instanceof class_module_pages_folder);
     $strOldSysid = $objTag->getSystemid();
     $objTag->copyObject();
     $this->assertNotEquals($strOldSysid, $objTag->getSystemid());
     $this->assertEquals($objTag->getStrName(), $strName . "_1");
     $this->assertEquals($objTag->getIntAssignments(), 2);
     $arrAssignment = $objTag->getArrAssignedRecords();
     $this->assertEquals(count($arrAssignment), 2);
     $this->assertTrue($arrAssignment[0] instanceof class_module_pages_page || $arrAssignment[0] instanceof class_module_pages_folder);
     $this->assertTrue($arrAssignment[1] instanceof class_module_pages_page || $arrAssignment[1] instanceof class_module_pages_folder);
     $objTag->deleteObjectFromDatabase();
 }
 /**
  * Calls the single search-functions, sorts the results an creates the output
  *
  * @return string
  * @permissions view
  */
 protected function actionSearch()
 {
     $strReturn = "";
     //Read the config
     $arrTemplate = array();
     $arrTemplate["hitlist"] = "";
     $strReturn .= $this->actionList();
     $objSearchCommons = new class_module_search_commons();
     $this->objSearchSearch->setBitPortalObjectFilter(true);
     $this->objSearchSearch->setStrPortalLangFilter($this->getStrPortalLanguage());
     /** @var $arrHitsSorted class_search_result[] */
     $arrHitsSorted = $objSearchCommons->doPortalSearch($this->objSearchSearch);
     //Resize Array to wanted size
     $arrHitsFilter = $this->objToolkit->pager($this->arrElementData["search_amount"], $this->getParam("pv") != "" ? (int) $this->getParam("pv") : 1, $this->getLang("commons_next"), $this->getLang("commons_back"), "search", $this->arrElementData["search_page"] != "" ? $this->arrElementData["search_page"] : $this->getPagename(), $arrHitsSorted, "&searchterm=" . urlencode(html_entity_decode($this->objSearchSearch->getStrQuery(), ENT_COMPAT, "UTF-8")));
     $strRowTemplateID = $this->objTemplate->readTemplate("/module_search/" . $this->arrElementData["search_template"], "search_hitlist_hit");
     /** @var $objHit class_search_result */
     foreach ($arrHitsFilter["arrData"] as $objHit) {
         if ($objHit->getStrPagename() == "master") {
             continue;
         }
         $objPage = class_module_pages_page::getPageByName($objHit->getStrPagename());
         if ($objPage === null || !$objPage->rightView() || $objPage->getIntRecordStatus() != 1) {
             continue;
         }
         $arrRow = array();
         if ($objHit->getStrPagelink() == "") {
             $arrRow["page_link"] = getLinkPortal($objHit->getStrPagename(), "", "_self", $objHit->getStrPagename(), "", "&highlight=" . urlencode(html_entity_decode($this->objSearchSearch->getStrQuery(), ENT_QUOTES, "UTF-8")) . "#" . uniStrtolower(urlencode(html_entity_decode($this->objSearchSearch->getStrQuery(), ENT_QUOTES, "UTF-8"))));
         } else {
             $arrRow["page_link"] = $objHit->getStrPagelink();
         }
         $arrRow["page_description"] = uniStrTrim($objHit->getStrDescription(), 200);
         $arrTemplate["hitlist"] .= $this->objTemplate->fillTemplate($arrRow, $strRowTemplateID, false);
     }
     //Collect global data
     $arrTemplate["search_term"] = $this->objSearchSearch->getStrQuery();
     $arrTemplate["search_nrresults"] = count($arrHitsSorted);
     $arrTemplate["link_forward"] = $arrHitsFilter["strForward"];
     $arrTemplate["link_back"] = $arrHitsFilter["strBack"];
     $arrTemplate["link_overview"] = $arrHitsFilter["strPages"];
     $strTemplateID = $this->objTemplate->readTemplate("/module_search/" . $this->arrElementData["search_template"], "search_hitlist");
     return $strReturn . $this->fillTemplate($arrTemplate, $strTemplateID);
 }
 /**
  * Does a little "make-up" to the contents
  *
  * @return string
  */
 public function loadData()
 {
     $strReturn = "";
     $strTemplate = $this->arrElementData["paragraph_template"];
     //fallback
     if ($strTemplate == "") {
         $strTemplate = "paragraph.tpl";
     }
     //choose template section
     $strTemplateSection = "paragraph";
     if ($this->arrElementData["paragraph_image"] != "" && $this->arrElementData["paragraph_link"] != "") {
         $strTemplateSection = "paragraph_image_link";
     } else {
         if ($this->arrElementData["paragraph_image"] != "" && $this->arrElementData["paragraph_link"] == "") {
             $strTemplateSection = "paragraph_image";
         } else {
             if ($this->arrElementData["paragraph_image"] == "" && $this->arrElementData["paragraph_link"] != "") {
                 $strTemplateSection = "paragraph_link";
             }
         }
     }
     $strTemplateID = $this->objTemplate->readTemplate("/element_paragraph/" . $strTemplate, $strTemplateSection);
     if ($this->arrElementData["paragraph_image"] != "") {
         //remove the webpath (was added for paragraphs saved pre 3.3.0)
         $this->arrElementData["paragraph_image"] = str_replace("_webpath_", "", $this->arrElementData["paragraph_image"]);
     }
     if ($this->arrElementData["paragraph_link"] != "") {
         //internal page?
         if (class_module_pages_page::getPageByName($this->arrElementData["paragraph_link"]) !== null) {
             $this->arrElementData["paragraph_link"] = getLinkPortalHref($this->arrElementData["paragraph_link"]);
         } else {
             $this->arrElementData["paragraph_link"] = getLinkPortalHref("", $this->arrElementData["paragraph_link"]);
         }
     }
     if ($this->arrElementData["paragraph_title"] != "") {
         $strTemplateTitleID = $this->objTemplate->readTemplate("/element_paragraph/" . $strTemplate, "paragraph_title_tag");
         $this->arrElementData["paragraph_title_tag"] = $this->fillTemplate($this->arrElementData, $strTemplateTitleID);
     }
     $strReturn .= $this->fillTemplate($this->arrElementData, $strTemplateID);
     return $strReturn;
 }
 private function createPageMetadata($strPageId, XMLWriter $objWriter)
 {
     //loop all languages if given
     $objLanguages = new class_module_languages_language();
     $strCurrentLanguage = $objLanguages->getStrAdminLanguageToWorkOn();
     $arrLanguages = class_module_languages_language::getObjectList();
     foreach ($arrLanguages as $objOneLanguage) {
         $objLanguages->setStrAdminLanguageToWorkOn($objOneLanguage->getStrName());
         $objPage = new class_module_pages_page($strPageId);
         $objWriter->startElement("propertyset");
         $objWriter->startAttribute("language");
         $objWriter->text($objOneLanguage->getStrName());
         $objWriter->endAttribute();
         $objWriter->startElement("browsername");
         $objWriter->text($objPage->getStrBrowsername());
         $objWriter->endElement();
         $objWriter->startElement("description");
         $objWriter->text($objPage->getStrDesc());
         $objWriter->endElement();
         $objWriter->startElement("keywords");
         $objWriter->text($objPage->getStrKeywords());
         $objWriter->endElement();
         $objWriter->startElement("template");
         $objWriter->text($objPage->getStrTemplate());
         $objWriter->endElement();
         $objWriter->startElement("seostring");
         $objWriter->text($objPage->getStrSeostring());
         $objWriter->endElement();
         $objWriter->startElement("language");
         $objWriter->text($objPage->getStrLanguage());
         $objWriter->endElement();
         $objWriter->startElement("alias");
         $objWriter->text($objPage->getStrAlias());
         $objWriter->endElement();
         $objWriter->startElement("path");
         $objWriter->text($objPage->getStrPath());
         $objWriter->endElement();
         $objWriter->startElement("target");
         $objWriter->text($objPage->getStrTarget());
         $objWriter->endElement();
         //propertyset
         $objWriter->endElement();
     }
     $objLanguages->setStrAdminLanguageToWorkOn($strCurrentLanguage);
 }
 /**
  * Saves a post to the databases
  *
  * @permissions right1
  * @return string
  */
 protected function actionPostComment()
 {
     if (!$this->validateForm()) {
         return $this->actionList();
     }
     $strSystemidfilter = "";
     if ($this->getSystemid() != "") {
         $strSystemidfilter = $this->getSystemid();
     }
     if (class_module_pages_page::getPageByName($this->getPagename()) !== null) {
         $strPagefilter = class_module_pages_page::getPageByName($this->getPagename())->getSystemid();
     } else {
         $strPagefilter = "";
     }
     $objPost = new class_module_postacomment_post();
     $objPost->setStrUsername($this->getParam("comment_name"));
     $objPost->setStrTitle($this->getParam("comment_subject"));
     $objPost->setStrComment($this->getParam("comment_message"));
     $objPost->setStrAssignedPage($strPagefilter);
     $objPost->setStrAssignedSystemid($strSystemidfilter);
     $objPost->setStrAssignedLanguage($this->getStrPortalLanguage());
     $objPost->updateObjectToDb();
     $this->flushPageFromPagesCache($this->getPagename());
     $strMailtext = $this->getLang("new_comment_mail") . "\r\n\r\n" . $objPost->getStrComment() . "\r\n";
     $strMailtext .= class_link::getLinkAdminHref("postacomment", "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;
         }
     }
     $objMessage = new class_module_messaging_message();
     $objMessage->setStrBody($strMailtext);
     $objMessage->setObjMessageProvider(new class_messageprovider_postacomment());
     $objMessageHandler->sendMessageObject($objMessage, $arrGroups);
     $this->portalReload(_indexpath_ . "?" . $this->getHistory(1));
     return "";
 }
 /**
  * Creates the html-code for one single navigationpoint. The check if the user has the needed rights should have been made before!
  *
  * @param class_module_navigation_point $objPointData
  * @param bool $bitActive
  * @param int $intLevel
  * @param bool $bitFirst
  * @param bool $bitLast
  *
  * @return string
  */
 private function createNavigationPoint(class_module_navigation_point $objPointData, $bitActive, $intLevel, $bitFirst = false, $bitLast = false)
 {
     //and start to create a link and all needed stuff
     $arrTemp = array();
     $arrTemp["page_intern"] = $objPointData->getStrPageI();
     $arrTemp["page_extern"] = $objPointData->getStrPageE();
     $arrTemp["systemid"] = $objPointData->getSystemid();
     $arrTemp["text"] = $objPointData->getStrName();
     $arrTemp["link"] = getLinkPortal($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrTarget(), $arrTemp["text"], $objPointData->getStrLinkAction(), "", $objPointData->getStrLinkSystemid());
     $arrTemp["href"] = getLinkPortalHref($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrLinkAction(), "", $objPointData->getStrLinkSystemid());
     $arrTemp["target"] = $objPointData->getStrTarget();
     if ($objPointData->getStrImage() != "") {
         $arrTemp["image"] = getLinkPortal($arrTemp["page_intern"], $arrTemp["page_extern"], $objPointData->getStrTarget(), "<img src=\"" . _webpath_ . $objPointData->getStrImage() . "\" border=\"0\" alt=\"" . $arrTemp["text"] . "\"/>", $objPointData->getStrLinkAction(), "", $objPointData->getStrSystemid());
         $arrTemp["image_src"] = $objPointData->getStrImage();
     }
     if ($objPointData->getStrPageI() != "") {
         $objPage = class_module_pages_page::getPageByName($objPointData->getStrPageI());
         if ($objPage != null && $objPage->getIntLmTime() != "") {
             $arrTemp["lastmodified"] = strftime("%Y-%m-%dT%H:%M:%S", $objPage->getIntLmTime());
         }
     }
     //Load the correct template
     $strSection = "level_" . $intLevel . "_" . ($bitActive ? "active" : "inactive") . ($bitFirst ? "_first" : "") . ($bitLast ? "_last" : "");
     $strTemplateId = $this->objTemplate->readTemplate("/module_navigation/" . $this->arrElementData["navigation_template"], $strSection);
     //Fill the template
     $strReturn = $this->objTemplate->fillTemplate($arrTemp, $strTemplateId, false);
     //BUT: if we received an empty string and are in the situation of a first or last point, then maybe the template
     //     didn't supply a first / last section. so we'll try to load a regular point
     if ($strReturn == "" && ($bitFirst || $bitLast)) {
         $strSection = "level_" . $intLevel . "_" . ($bitActive ? "active" : "inactive");
         $strTemplateId = $this->objTemplate->readTemplate("/module_navigation/" . $this->arrElementData["navigation_template"], $strSection);
         //And fill it once more
         $strReturn = $this->objTemplate->fillTemplate($arrTemp, $strTemplateId, false);
     }
     return $strReturn;
 }
 /**
  * Does the hard work: installs the module and registers needed constants
  *
  * @return string
  */
 public function install()
 {
     $strReturn = "";
     if (class_module_system_module::getModuleByName("mediamanager") == null) {
         return "Mediamanger not installed, skipping element\n";
     }
     //fetch navifolder-id
     $strNaviFolderId = "";
     $arrFolder = class_module_pages_folder::getFolderList();
     foreach ($arrFolder as $objOneFolder) {
         if ($objOneFolder->getStrName() == "mainnavigation") {
             $strNaviFolderId = $objOneFolder->getSystemid();
         }
     }
     $strReturn .= "Creating new downloads...\n";
     $objDownloads = new class_module_mediamanager_repo();
     $objDownloads->setStrTitle("Sample downloads");
     $objDownloads->setStrPath("/files/downloads");
     $objDownloads->updateObjectToDb();
     $strDownloadsID = $objDownloads->getSystemid();
     $objDownloads->syncRepo();
     $strReturn .= "Adding download-permissions for guests...\n";
     class_carrier::getInstance()->getObjRights()->addGroupToRight(class_module_system_setting::getConfigValue("_guests_group_id_"), $objDownloads->getSystemid(), "right2");
     $strReturn .= "Adding rating-permissions for guests...\n";
     class_carrier::getInstance()->getObjRights()->addGroupToRight(class_module_system_setting::getConfigValue("_guests_group_id_"), $objDownloads->getSystemid(), "right3");
     $strReturn .= "Creating new downloads page...\n";
     $objPage = new class_module_pages_page();
     $objPage->setStrName("downloads");
     $objPage->setStrBrowsername("Downloads");
     $objPage->setStrTemplate("standard.tpl");
     $objPage->updateObjectToDb($strNaviFolderId);
     $strDownloadsPageId = $objPage->getSystemid();
     $strReturn .= "ID of new page: " . $strDownloadsPageId . "\n";
     $strReturn .= "Adding pagelement to new page\n";
     $objPagelement = new class_module_pages_pageelement();
     if (class_module_pages_element::getElement("downloads") != null) {
         $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("downloads");
         $objPagelement->updateObjectToDb($strDownloadsPageId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_downloads\n                            SET download_id = ?,\n                                download_template = ?\n                            WHERE content_id = ? ";
         if ($this->objDB->_pQuery($strQuery, array($strDownloadsID, "downloads.tpl", $strElementId))) {
             $strReturn .= "downloads element created.\n";
         } else {
             $strReturn .= "Error creating downloads element.\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($strDownloadsPageId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n                                SET paragraph_title = ?\n                                WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, array("Downloads", $strElementId))) {
             $strReturn .= "Headline element created.\n";
         } else {
             $strReturn .= "Error creating headline element.\n";
         }
     }
     return $strReturn;
 }
Example #19
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;
 }
 /**
  * Updates placeholders in the db. Replaces all placeholders with a new one, if the template of elements' page
  * corresponds to the given one
  *
  * @param string $strTemplate
  * @param string $strOldPlaceholder
  * @param string $strNewPlaceholder
  *
  * @return bool
  */
 public static function updatePlaceholders($strTemplate, $strOldPlaceholder, $strNewPlaceholder)
 {
     $bitReturn = true;
     //Fetch all pages
     $objORM = new class_orm_objectlist();
     $arrObjPages = class_module_pages_page::getAllPages();
     foreach ($arrObjPages as $objOnePage) {
         if ($objOnePage->getStrTemplate() == $strTemplate || $strTemplate == "-1") {
             //Search for matching elements
             $strQuery = "SELECT system_id\n\t\t\t\t\t\t FROM " . _dbprefix_ . "page_element,\n\t\t\t\t\t\t      " . _dbprefix_ . "element,\n\t\t\t\t\t\t      " . _dbprefix_ . "system\n\t\t\t\t\t\t WHERE system_prev_id= ?\n\t\t\t\t\t\t   AND page_element_ph_element = element_name\n\t\t\t\t\t\t   AND system_id = page_element_id\n\t\t\t\t\t\t   " . $objORM->getDeletedWhereRestriction() . "\n\t\t\t\t\t\t ORDER BY page_element_ph_placeholder ASC,\n\t\t\t\t\t\t \t\tsystem_sort ASC";
             $arrIds = class_carrier::getInstance()->getObjDB()->getPArray($strQuery, array($objOnePage->getSystemid()));
             /** @var class_module_pages_pageelement[] $arrPageElements */
             $arrPageElements = array();
             foreach ($arrIds as $arrOneRow) {
                 $arrPageElements[] = new class_module_pages_pageelement($arrOneRow["system_id"]);
             }
             foreach ($arrPageElements as $objOnePageelement) {
                 if ($objOnePageelement->getStrPlaceholder() == $strOldPlaceholder) {
                     $objOnePageelement->setStrPlaceholder($strNewPlaceholder);
                     if (!$objOnePageelement->updateObjectToDb()) {
                         $bitReturn = false;
                     }
                 }
             }
         }
     }
     return $bitReturn;
 }
 /**
  * Returns all Pages listed in a given folder
  *
  * @param string $strFolderid
  *
  * @return class_module_pages_page[]
  * @static
  */
 public static function getPagesInFolder($strFolderid = "")
 {
     if (!validateSystemid($strFolderid)) {
         $strFolderid = class_module_system_module::getModuleByName("pages")->getSystemid();
     }
     return class_module_pages_page::getObjectList($strFolderid);
 }
Example #22
0
 public function testCopyPage()
 {
     $strTitle = generateSystemid();
     $objPage = new class_module_pages_page();
     $objPage->setStrName($strTitle);
     $objPage->setStrBrowsername(generateSystemid());
     $objPage->setStrSeostring(generateSystemid());
     $objPage->setStrDesc(generateSystemid());
     $objPage->setStrTemplate("standard.tpl");
     $objPage->updateObjectToDb();
     $strOldSystemid = $objPage->getSystemid();
     $objPagelement = new class_module_pages_pageelement();
     $objPagelement->setStrPlaceholder("text_paragraph");
     $objPagelement->setStrName("text");
     $objPagelement->setStrElement("paragraph");
     $objPagelement->updateObjectToDb($objPage->getSystemid());
     $objPagelement = new class_module_pages_pageelement($objPagelement->getSystemid());
     //and finally create the object
     /** @var $objElement class_element_paragraph_admin */
     $objElement = $objPagelement->getConcreteAdminInstance();
     $objElement->setStrTitle("autotest");
     $objElement->doBeforeSaveToDb();
     $objElement->updateForeignElement();
     $objElement->doAfterSaveToDb();
     //copy the page itself
     $objPage->copyObject();
     $strNewSystemid = $objPage->getSystemid();
     $this->flushDBCache();
     $objOldPage = new class_module_pages_page($strOldSystemid);
     $objNewPage = new class_module_pages_page($strNewSystemid);
     $this->assertNotEquals($objOldPage->getStrName(), $objNewPage->getStrName());
     $this->assertEquals($objOldPage->getStrBrowsername(), $objNewPage->getStrBrowsername());
     $this->assertEquals($objOldPage->getStrSeostring(), $objNewPage->getStrSeostring());
     $this->assertEquals($objOldPage->getStrDesc(), $objNewPage->getStrDesc());
     $this->assertEquals($objOldPage->getStrTemplate(), $objNewPage->getStrTemplate());
     $arrOldElements = class_module_pages_pageelement::getAllElementsOnPage($strOldSystemid);
     $arrNewElements = class_module_pages_pageelement::getAllElementsOnPage($strNewSystemid);
     $this->assertEquals(count($arrOldElements), count($arrNewElements));
     $this->assertEquals(1, count($arrOldElements));
     $this->assertEquals(1, count($arrNewElements));
     $objOldElement = $arrOldElements[0];
     $objNewElement = $arrNewElements[0];
     $this->assertEquals($objOldElement->getStrPlaceholder(), $objNewElement->getStrPlaceholder());
     $this->assertEquals($objOldElement->getStrLanguage(), $objNewElement->getStrLanguage());
     $this->assertEquals($objOldElement->getStrElement(), $objNewElement->getStrElement());
     /** @var class_element_paragraph_admin $objOldElementInstance */
     $objOldElementInstance = $objOldElement->getConcreteAdminInstance();
     $arrOldElementData = $objOldElementInstance->loadElementData();
     /** @var class_element_paragraph_admin $objNewElementInstance */
     $objNewElementInstance = $objNewElement->getConcreteAdminInstance();
     $arrNewElementData = $objNewElementInstance->loadElementData();
     $this->assertNotEquals($arrOldElementData["content_id"], $arrNewElementData["content_id"]);
     $this->assertEquals($arrOldElementData["paragraph_title"], $arrNewElementData["paragraph_title"]);
     $this->assertEquals($objOldElementInstance->getStrTitle(), $objNewElementInstance->getStrTitle());
     $this->assertEquals($objOldElementInstance->getStrTitle(), "autotest");
     $this->assertEquals($objNewElementInstance->getStrTitle(), "autotest");
     $objNewPage->deleteObjectFromDatabase();
     $objOldPage->deleteObjectFromDatabase();
 }
Example #23
0
 public function testPageElementDeleteSortingMultiLanguage()
 {
     $objPage = new class_module_pages_page();
     $objPage->setStrName("sortTest");
     $objPage->updateObjectToDb();
     $objPagelementb1 = new class_module_pages_pageelement();
     $objPagelementb1->setStrPlaceholder("b_test");
     $objPagelementb1->setStrName("b");
     $objPagelementb1->setStrElement("row");
     $objPagelementb1->setStrLanguage("a1");
     $objPagelementb1->updateObjectToDb($objPage->getSystemid());
     $objPagelementc1 = new class_module_pages_pageelement();
     $objPagelementc1->setStrPlaceholder("b_test");
     $objPagelementc1->setStrName("b");
     $objPagelementc1->setStrElement("row");
     $objPagelementc1->setStrLanguage("a2");
     $objPagelementc1->updateObjectToDb($objPage->getSystemid());
     $objPagelementb2 = new class_module_pages_pageelement();
     $objPagelementb2->setStrPlaceholder("b_test");
     $objPagelementb2->setStrName("b");
     $objPagelementb2->setStrElement("row");
     $objPagelementb2->setStrLanguage("a1");
     $objPagelementb2->updateObjectToDb($objPage->getSystemid());
     $objPagelementb3 = new class_module_pages_pageelement();
     $objPagelementb3->setStrPlaceholder("b_test");
     $objPagelementb3->setStrName("b");
     $objPagelementb3->setStrElement("row");
     $objPagelementb3->setStrLanguage("a1");
     $objPagelementb3->updateObjectToDb($objPage->getSystemid());
     $objPagelementc2 = new class_module_pages_pageelement();
     $objPagelementc2->setStrPlaceholder("b_test");
     $objPagelementc2->setStrName("b");
     $objPagelementc2->setStrElement("row");
     $objPagelementc2->setStrLanguage("a2");
     $objPagelementc2->updateObjectToDb($objPage->getSystemid());
     $objPagelementc3 = new class_module_pages_pageelement();
     $objPagelementc3->setStrPlaceholder("b_test");
     $objPagelementc3->setStrName("b");
     $objPagelementc3->setStrElement("row");
     $objPagelementc3->setStrLanguage("a2");
     $objPagelementc3->updateObjectToDb($objPage->getSystemid());
     $arrElements = class_module_pages_pageelement::getElementsByPlaceholderAndPage($objPage->getSystemid(), "b_test", "a1", false);
     $this->assertEquals(3, count($arrElements));
     $this->assertEquals(1, $arrElements[0]->getIntSort());
     $this->assertEquals($objPagelementb1->getSystemid(), $arrElements[0]->getSystemid());
     $this->assertEquals(2, $arrElements[1]->getIntSort());
     $this->assertEquals($objPagelementb2->getSystemid(), $arrElements[1]->getSystemid());
     $this->assertEquals(3, $arrElements[2]->getIntSort());
     $this->assertEquals($objPagelementb3->getSystemid(), $arrElements[2]->getSystemid());
     $arrElements = class_module_pages_pageelement::getElementsByPlaceholderAndPage($objPage->getSystemid(), "b_test", "a2", false);
     $this->assertEquals(3, count($arrElements));
     $this->assertEquals(1, $arrElements[0]->getIntSort());
     $this->assertEquals($objPagelementc1->getSystemid(), $arrElements[0]->getSystemid());
     $this->assertEquals(2, $arrElements[1]->getIntSort());
     $this->assertEquals($objPagelementc2->getSystemid(), $arrElements[1]->getSystemid());
     $this->assertEquals(3, $arrElements[2]->getIntSort());
     $this->assertEquals($objPagelementc3->getSystemid(), $arrElements[2]->getSystemid());
     $objPagelementb2->deleteObjectFromDatabase();
     $this->flushDBCache();
     $arrElements = class_module_pages_pageelement::getElementsByPlaceholderAndPage($objPage->getSystemid(), "b_test", "a1", false);
     $this->assertEquals(2, count($arrElements));
     $this->assertEquals(1, $arrElements[0]->getIntSort());
     $this->assertEquals($objPagelementb1->getSystemid(), $arrElements[0]->getSystemid());
     $this->assertEquals(2, $arrElements[1]->getIntSort());
     $this->assertEquals($objPagelementb3->getSystemid(), $arrElements[1]->getSystemid());
     $arrElements = class_module_pages_pageelement::getElementsByPlaceholderAndPage($objPage->getSystemid(), "b_test", "a2", false);
     $this->assertEquals(3, count($arrElements));
     $this->assertEquals(1, $arrElements[0]->getIntSort());
     $this->assertEquals($objPagelementc1->getSystemid(), $arrElements[0]->getSystemid());
     $this->assertEquals(2, $arrElements[1]->getIntSort());
     $this->assertEquals($objPagelementc2->getSystemid(), $arrElements[1]->getSystemid());
     $this->assertEquals(3, $arrElements[2]->getIntSort());
     $this->assertEquals($objPagelementc3->getSystemid(), $arrElements[2]->getSystemid());
     $objPage->deleteObjectFromDatabase();
 }
 /**
  * Does the hard work: installs the module and registers needed constants
  *
  * @return string
  */
 public function install()
 {
     //search the master page
     $objMaster = class_module_pages_page::getPageByName("master");
     if ($objMaster != null) {
         $this->strMasterID = $objMaster->getSystemid();
     }
     //fetch navifolder-id
     $strNaviFolderId = "";
     $arrFolder = class_module_pages_folder::getFolderList();
     foreach ($arrFolder as $objOneFolder) {
         if ($objOneFolder->getStrName() == "mainnavigation") {
             $strNaviFolderId = $objOneFolder->getSystemid();
         }
     }
     $strReturn = "";
     $strReturn .= "Creating new mainnavigation-tree\n";
     $objNaviTree = new class_module_navigation_tree();
     $objNaviTree->setStrName("mainnavigation");
     $objNaviTree->setStrFolderId($strNaviFolderId);
     $objNaviTree->updateObjectToDb();
     $strTreeId = $objNaviTree->getSystemid();
     $strReturn .= "ID of new navigation-tree: " . $strTreeId . "\n";
     $strReturn .= "Creating new portalnavigation-tree\n";
     $objNaviTree = new class_module_navigation_tree();
     $objNaviTree->setStrName("portalnavigation");
     $objNaviTree->updateObjectToDb();
     $strTreePortalId = $objNaviTree->getSystemid();
     $strReturn .= "ID of new navigation-tree: " . $strTreePortalId . "\n";
     $strReturn .= "Creating navigation points\n";
     $objNaviPoint = new class_module_navigation_point();
     $objNaviPoint->setStrName("Home");
     $objNaviPoint->setStrPageI("index");
     $objNaviPoint->updateObjectToDb($strTreePortalId);
     if ($this->strMasterID != "") {
         $strReturn .= "Adding mainnavigation to master page\n";
         $strReturn .= "ID of master page: " . $this->strMasterID . "\n";
         if (class_module_pages_element::getElement("navigation") != null) {
             $objPagelement = new class_module_pages_pageelement();
             $objPagelement->setStrPlaceholder("mastermainnavi_navigation");
             $objPagelement->setStrName("mastermainnavi");
             $objPagelement->setStrElement("navigation");
             $objPagelement->updateObjectToDb($this->strMasterID);
             $strElementId = $objPagelement->getSystemid();
             $strQuery = "UPDATE " . _dbprefix_ . "element_navigation\n                                SET navigation_id= ?,\n                                    navigation_template = ?\n                                WHERE content_id = ?";
             if ($this->objDB->_pQuery($strQuery, array($strTreeId, "mainnavi.tpl", $strElementId))) {
                 $strReturn .= "Navigation element created.\n";
             } else {
                 $strReturn .= "Error creating navigation element.\n";
             }
         }
         $strReturn .= "Adding portalnavigation to master page\n";
         $strReturn .= "ID of master page: " . $this->strMasterID . "\n";
         if (class_module_pages_element::getElement("navigation") != null) {
             $objPagelement = new class_module_pages_pageelement();
             $objPagelement->setStrPlaceholder("masterportalnavi_navigation");
             $objPagelement->setStrName("masterportalnavi");
             $objPagelement->setStrElement("navigation");
             $objPagelement->updateObjectToDb($this->strMasterID);
             $strElementId = $objPagelement->getSystemid();
             $strQuery = "UPDATE " . _dbprefix_ . "element_navigation\n                                SET navigation_id= ?,\n                                    navigation_template = ?\n                                WHERE content_id = ?";
             if ($this->objDB->_pQuery($strQuery, array($strTreePortalId, "portalnavi.tpl", $strElementId))) {
                 $strReturn .= "Navigation element created.\n";
             } else {
                 $strReturn .= "Error creating navigation element.\n";
             }
         }
         $strReturn .= "Adding pathnavigation to master page\n";
         $strReturn .= "ID of master page: " . $this->strMasterID . "\n";
         if (class_module_pages_element::getElement("navigation") != null) {
             $objPagelement = new class_module_pages_pageelement();
             $objPagelement->setStrPlaceholder("masterpathnavi_navigation");
             $objPagelement->setStrName("masterpathnavi");
             $objPagelement->setStrElement("navigation");
             $objPagelement->updateObjectToDb($this->strMasterID);
             $strElementId = $objPagelement->getSystemid();
             $strQuery = "UPDATE " . _dbprefix_ . "element_navigation\n                                SET navigation_id= ?,\n                                    navigation_template = ?\n                                WHERE content_id = ?";
             if ($this->objDB->_pQuery($strQuery, array($strTreeId, "breadcrumbnavi.tpl", $strElementId))) {
                 $strReturn .= "Navigation element created.\n";
             } else {
                 $strReturn .= "Error creating navigation element.\n";
             }
         }
     }
     $strReturn .= "Creating simple sitemap...\n";
     $objPage = new class_module_pages_page();
     $objPage->setStrName("sitemap");
     $objPage->setStrBrowsername("Sitemap");
     $objPage->setStrTemplate("standard.tpl");
     $objPage->updateObjectToDb();
     $strSitemapId = $objPage->getSystemid();
     $strReturn .= "ID of new page: " . $strSitemapId . "\n";
     $strReturn .= "Adding sitemap to new page\n";
     if (class_module_pages_element::getElement("navigation") != 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("navigation");
         $objPagelement->updateObjectToDb($strSitemapId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_navigation\n                            SET navigation_id=?,\n                                navigation_template = ?\n                                WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, array($strTreeId, "sitemap.tpl", $strElementId))) {
             $strReturn .= "Sitemapelement created.\n";
         } else {
             $strReturn .= "Error creating sitemapelement.\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($strSitemapId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n                            SET paragraph_title = ?\n                          WHERE content_id = ? ";
         if ($this->objDB->_pQuery($strQuery, array("Sitemap", $strElementId))) {
             $strReturn .= "Headline element created.\n";
         } else {
             $strReturn .= "Error creating headline element.\n";
         }
     }
     $strReturn .= "Creating navigation points\n";
     $objNaviPoint = new class_module_navigation_point();
     $objNaviPoint->setStrName("Sitemap");
     $objNaviPoint->setStrPageI("sitemap");
     $objNaviPoint->updateObjectToDb($strTreePortalId);
     $strReturn .= "ID of new navigation point " . $objNaviPoint->getSystemid() . ".\n";
     $objNaviPoint = new class_module_navigation_point();
     if ($this->strContentLanguage == "de") {
         $objNaviPoint->setStrName("Impressum");
     } else {
         $objNaviPoint->setStrName("Imprint");
     }
     $objNaviPoint->setStrPageI("imprint");
     $objNaviPoint->updateObjectToDb($strTreePortalId);
     $strReturn .= "ID of new navigation point " . $objNaviPoint->getSystemid() . ".\n";
     return $strReturn;
 }
 /**
  * Provides a form to set up the params needed to copy a single element from one placeholder to another.
  * Collects the target language, the target page and the target placeholder, invokes the copy-procedure.
  *
  * @throws class_exception
  * @return string , "" in case of success
  * @permissions edit
  */
 protected function actionCopyElement()
 {
     $strReturn = "";
     $this->setArrModuleEntry("template", "/folderview.tpl");
     $objSourceElement = new class_module_pages_pageelement($this->getSystemid());
     if ($objSourceElement->rightEdit($this->getSystemid())) {
         $objLang = null;
         if ($this->getParam("copyElement_language") != "") {
             $objLang = new class_module_languages_language($this->getParam("copyElement_language"));
         } else {
             $objLang = class_module_languages_language::getLanguageByName($this->getLanguageToWorkOn());
         }
         $objPage = null;
         if ($this->getParam("copyElement_page") != "") {
             $objPage = class_module_pages_page::getPageByName($this->getParam("copyElement_page"));
             if ($objPage == null) {
                 throw new class_exception("failed to load page " . $this->getParam("copyElement_page"), class_exception::$level_ERROR);
             }
             $objPage->setStrLanguage($objLang->getStrName());
             $objPage->initObject();
         } else {
             $objPage = new class_module_pages_page($objSourceElement->getPrevId());
         }
         //form header
         $strReturn .= $this->objToolkit->formHeader(class_link::getLinkAdminHref("pages_content", "copyElement"), "formCopyElement");
         $strReturn .= $this->objToolkit->formInputHidden("copyElement_doCopy", 1);
         $strReturn .= $this->objToolkit->formInputHidden("systemid", $this->getSystemid());
         $strReturn .= $this->objToolkit->formHeadline($this->getLang("copyElement_element") . " " . $objSourceElement->getStrName() . "_" . $objSourceElement->getStrElement() . " (" . $objSourceElement->getStrTitle() . ")");
         //step one: language selection
         $arrLanguages = class_module_languages_language::getObjectList(true);
         $arrLanguageDD = array();
         foreach ($arrLanguages as $objSingleLanguage) {
             $arrLanguageDD[$objSingleLanguage->getSystemid()] = $this->getLang("lang_" . $objSingleLanguage->getStrName(), "languages");
         }
         $strReturn .= $this->objToolkit->formInputDropdown("copyElement_language", $arrLanguageDD, $this->getLang("copyElement_language"), $objLang->getSystemid());
         //step two: page selection
         $strReturn .= $this->objToolkit->formInputPageSelector("copyElement_page", $this->getLang("copyElement_page"), $objPage->getStrName(), "inputText", false);
         //step three: placeholder-selection
         //here comes the tricky part. load the template, analyze the placeholders and validate all those against things like repeatable and more...
         $strTemplate = $objPage->getStrTemplate();
         //load the placeholders
         $strTemplateId = $this->objTemplate->readTemplate("/module_pages/" . $strTemplate);
         $arrPlaceholders = $this->objTemplate->getElements($strTemplateId);
         $arrPlaceholdersDD = array();
         foreach ($arrPlaceholders as $arrSinglePlaceholder) {
             foreach ($arrSinglePlaceholder["elementlist"] as $arrSinglePlaceholderlist) {
                 if ($objSourceElement->getStrElement() == $arrSinglePlaceholderlist["element"]) {
                     if ($objSourceElement->getIntRepeat() == 1) {
                         //repeatable, ok in every case
                         $arrPlaceholdersDD[$arrSinglePlaceholder["placeholder"]] = $arrSinglePlaceholder["placeholder"];
                     } else {
                         //not repeatable - element already existing at placeholder?
                         $arrElementsOnPage = class_module_pages_pageelement::getElementsOnPage($objPage->getSystemid(), false, $objLang->getStrName());
                         //loop in order to find same element-types - other elements may be possible due to piped placeholders, too
                         $bitAdd = true;
                         //var_dump($arrElementsOnPage);
                         foreach ($arrElementsOnPage as $objSingleElementOnPage) {
                             if ($objSingleElementOnPage->getStrElement() == $objSourceElement->getStrElement()) {
                                 $bitAdd = false;
                             }
                         }
                         if ($bitAdd) {
                             $arrPlaceholdersDD[$arrSinglePlaceholder["placeholder"]] = $arrSinglePlaceholder["placeholder"];
                         }
                     }
                 }
             }
         }
         $bitCopyingAllowed = true;
         if (count($arrPlaceholdersDD) == 0) {
             $strReturn .= $this->objToolkit->formTextRow($this->getLang("copyElement_err_placeholder"));
             $bitCopyingAllowed = false;
         } else {
             $strReturn .= $this->objToolkit->formInputDropdown("copyElement_placeholder", $arrPlaceholdersDD, $this->getLang("copyElement_placeholder"));
         }
         $strReturn .= $this->objToolkit->formTextRow($this->getLang("copyElement_template") . " " . $strTemplate);
         $strReturn .= $this->objToolkit->divider();
         $strReturn .= $this->objToolkit->formInputSubmit($this->getLang("copyElement_submit"), "Submit", "", "inputSubmit", $bitCopyingAllowed);
         $strReturn .= $this->objToolkit->formClose();
         $strReturn .= "\n                <script type=\"text/javascript\">\n\n                \$(function() {\n                        var reloadForm = function() {\n                            setTimeout( function() {\n                                document.getElementById('copyElement_doCopy').value = 0;\n                                var formElement = document.getElementById('formCopyElement');\n                                formElement.submit();\n                            }, 100);\n\n                        };\n\n\t                    KAJONA.admin.copyElement_page.bind('autocompleteselect', reloadForm);\n\n\t                    var languageField = document.getElementById('copyElement_language');\n\t                    languageField.onchange = reloadForm;\n\n                        var pageField = document.getElementById('copyElement_page');\n\t                    pageField.onchange = reloadForm;\n\t             });\n\n                </script>";
         //any actions to take?
         if ($this->getParam("copyElement_doCopy") == 1) {
             $objNewElement = $objSourceElement->copyObject($objPage->getSystemid());
             $objNewElement->setStrLanguage($objLang->getStrName());
             $objNewElement->setStrPlaceholder($this->getParam("copyElement_placeholder"));
             if ($objNewElement->updateObjectToDb()) {
                 $this->setSystemid($objNewElement->getSystemid());
                 $strReturn = "";
                 $this->adminReload(class_link::getLinkAdminHref("pages_content", "list", "systemid=" . $objNewElement->getPrevId() . "&blockAction=1&peClose=1"));
             } else {
                 throw new class_exception("Error copying the pageelement " . $objSourceElement->getSystemid(), class_exception::$level_ERROR);
             }
         }
     } else {
         $strReturn = $this->getLang("commons_error_permissions");
     }
     return $strReturn;
 }
Example #26
0
 /**
  * Creates a raw Link for the portal (just the href)
  *
  * @param string $strPageI
  * @param string $strPageE
  * @param string $strAction
  * @param string $strParams
  * @param string $strSystemid
  * @param string $strLanguage
  * @param string $strSeoAddon Only used if using mod_rewrite
  * @return string
  */
 public static function getLinkPortalHref($strPageI, $strPageE = "", $strAction = "", $strParams = "", $strSystemid = "", $strLanguage = "", $strSeoAddon = "")
 {
     $strReturn = "";
     $bitInternal = true;
     //return "#" if neither an internal nor an external page is set
     if ($strPageI == "" && $strPageE == "") {
         return "#";
     }
     //Internal links are more important than external links!
     if ($strPageI == "" && $strPageE != "") {
         $bitInternal = false;
     }
     //create an array out of the params
     if ($strSystemid != "") {
         $strParams .= "&systemid=" . $strSystemid;
         $strSystemid = "";
     }
     $arrParams = self::parseParamsString($strParams, $strSystemid);
     // any anchors set to the page?
     $strAnchor = "";
     if (uniStrpos($strPageI, "#") !== false) {
         //get anchor, remove anchor from link
         $strAnchor = urlencode(uniSubstr($strPageI, uniStrpos($strPageI, "#") + 1));
         $strPageI = uniSubstr($strPageI, 0, uniStrpos($strPageI, "#"));
     }
     //urlencoding
     $strPageI = urlencode($strPageI);
     $strAction = urlencode($strAction);
     //more than one language installed?
     if ($strLanguage == "" && self::getIntNumberOfPortalLanguages() > 1) {
         $strLanguage = self::getStrPortalLanguage();
     } else {
         if ($strLanguage != "" && self::getIntNumberOfPortalLanguages() <= 1) {
             $strLanguage = "";
         }
     }
     $strHref = "";
     if ($bitInternal) {
         //check, if we could use mod_rewrite
         $bitRegularLink = true;
         if (class_module_system_setting::getConfigValue("_system_mod_rewrite_") == "true") {
             $strAddKeys = "";
             //used later to add seo-relevant keywords
             $objPage = class_module_pages_page::getPageByName($strPageI);
             if ($objPage !== null) {
                 if ($strLanguage != "") {
                     $objPage->setStrLanguage($strLanguage);
                     $objPage->initObject();
                 }
                 $strAddKeys = $objPage->getStrSeostring() . ($strSeoAddon != "" && $objPage->getStrSeostring() != "" ? "-" : "") . urlSafeString($strSeoAddon);
                 if (uniStrlen($strAddKeys) > 0 && uniStrlen($strAddKeys) <= 2) {
                     $strAddKeys .= "__";
                 }
                 //trim string
                 $strAddKeys = uniStrTrim($strAddKeys, 100, "");
                 if ($strLanguage != "") {
                     $strHref .= $strLanguage . "/";
                 }
                 $strPath = $objPage->getStrPath();
                 if ($strPath == "") {
                     $objPage->updatePath();
                     $strPath = $objPage->getStrPath();
                     $objPage->updateObjectToDb();
                 }
                 if ($strPath != "") {
                     $strHref .= $strPath . "/";
                 }
             }
             //ok, here we go. schema for rewrite_links: pagename.addKeywords.action.systemid.language.html
             //but: special case: just pagename & language
             if ($strAction == "" && $strSystemid == "" && $strAddKeys == "") {
                 $strHref .= $strPageI . ".html";
             } elseif ($strAction == "" && $strSystemid == "") {
                 $strHref .= $strPageI . ($strAddKeys == "" ? "" : "." . $strAddKeys) . ".html";
             } elseif ($strAction != "" && $strSystemid == "") {
                 $strHref .= $strPageI . "." . $strAddKeys . "." . $strAction . ".html";
             } else {
                 $strHref .= $strPageI . "." . $strAddKeys . "." . $strAction . "." . $strSystemid . ".html";
             }
             //params?
             if (count($arrParams) > 0) {
                 $strHref .= "?" . implode("&amp;", $arrParams);
             }
             // add anchor if given
             if ($strAnchor != "") {
                 $strHref .= "#" . $strAnchor;
             }
             //plus the domain as a prefix
             $strHref = "_webpath_" . "/" . $strHref;
             $bitRegularLink = false;
         }
         if ($bitRegularLink) {
             $strHref = "_indexpath_" . "?" . ($strPageI != "" ? "page=" . $strPageI : "") . "" . ($strSystemid != "" ? "&amp;systemid=" . $strSystemid : "") . ($strAction != "" ? "&amp;action=" . $strAction : "") . ($strLanguage != "" ? "&amp;language=" . $strLanguage : "") . (count($arrParams) > 0 ? "&amp;" . implode("&amp;", $arrParams) : "") . ($strAnchor != "" ? "#" . $strAnchor : "") . "";
         }
     } else {
         $strHref = $strPageE;
     }
     $strReturn .= $strHref;
     return $strReturn;
 }
 /**
  * saves a post in the database and returns the post as html.
  * In case of missing fields, the form is returned again
  *
  * @return string
  * @permissons right1
  */
 protected function actionSavePost()
 {
     $strXMLContent = "";
     //validate needed fields
     if (!$this->validateForm()) {
         //Create form to reenter values
         $strTemplateID = $this->objTemplate->readTemplate("/module_postacomment/" . $this->getParam("comment_template"), "postacomment_form");
         $arrForm = array();
         $arrForm["formaction"] = class_link::getLinkPortalHref($this->getPagename(), "", "postComment", "", $this->getSystemid());
         $arrForm["comment_name"] = $this->getParam("comment_name");
         $arrForm["comment_subject"] = $this->getParam("comment_subject");
         $arrForm["comment_message"] = $this->getParam("comment_message");
         $arrForm["comment_template"] = $this->getParam("comment_template");
         $arrForm["comment_systemid"] = $this->getParam("comment_systemid");
         $arrForm["comment_page"] = $this->getParam("comment_page");
         $arrForm["validation_errors"] = $this->strErrors;
         foreach ($arrForm as $strKey => $strValue) {
             if (uniStrpos($strKey, "comment_") !== false) {
                 $arrForm[$strKey] = htmlspecialchars($strValue, ENT_QUOTES, "UTF-8", false);
             }
         }
         //texts
         $arrForm["postacomment_write_new"] = $this->getLang("postacomment_write_new");
         $arrForm["form_name_label"] = $this->getLang("form_name_label");
         $arrForm["form_subject_label"] = $this->getLang("form_subject_label");
         $arrForm["form_message_label"] = $this->getLang("form_message_label");
         $arrForm["form_captcha_label"] = $this->getLang("commons_captcha");
         $arrForm["form_captcha_reload_label"] = $this->getLang("commons_captcha_reload");
         $arrForm["form_submit_label"] = $this->getLang("form_submit_label");
         $strXMLContent .= $this->fillTemplate($arrForm, $strTemplateID);
     } else {
         //save the post to the db
         //pageid or systemid to filter?
         $strSystemidfilter = $this->getParam("comment_systemid");
         if (class_module_pages_page::getPageByName($this->getParam("comment_page")) !== null) {
             $strPagefilter = class_module_pages_page::getPageByName($this->getParam("comment_page"))->getSystemid();
         } else {
             $strPagefilter = "";
         }
         $objPost = new class_module_postacomment_post();
         $objPost->setStrUsername($this->getParam("comment_name"));
         $objPost->setStrTitle($this->getParam("comment_subject"));
         $objPost->setStrComment($this->getParam("comment_message"));
         $objPost->setStrAssignedPage($strPagefilter);
         $objPost->setStrAssignedSystemid($strSystemidfilter);
         $objPost->setStrAssignedLanguage($this->getStrPortalLanguage());
         $objPost->updateObjectToDb();
         $this->flushPageFromPagesCache($this->getPagename());
         $strMailtext = $this->getLang("new_comment_mail") . "\r\n\r\n" . $objPost->getStrComment() . "\r\n";
         $strMailtext .= class_link::getLinkAdminHref("postacomment", "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_postacomment());
         //reinit post -> encoded entities
         $objPost->initObject();
         //load the post as a new post to add it at top of the list
         $arrOnePost = array();
         $arrOnePost["postacomment_post_name"] = $objPost->getStrUsername();
         $arrOnePost["postacomment_post_subject"] = $objPost->getStrTitle();
         $arrOnePost["postacomment_post_message"] = $objPost->getStrComment();
         $arrOnePost["postacomment_post_systemid"] = $objPost->getSystemid();
         $arrOnePost["postacomment_post_date"] = timeToString($objPost->getIntDate(), true);
         $strTemplateID = $this->objTemplate->readTemplate("/module_postacomment/" . $this->getParam("comment_template"), "postacomment_post");
         $strXMLContent .= $this->objTemplate->fillTemplate($arrOnePost, $strTemplateID);
     }
     class_response_object::getInstance()->setStrResponseType(class_http_responsetypes::STR_TYPE_JSON);
     return $strXMLContent;
 }
 private function processSinglePage($arrPage, $bitReplaceExisting, $strTopFolderId)
 {
     $strReturn = "";
     $arrMetadata = $arrPage["metadata"][0];
     $arrElements = $arrPage["elements"][0]["element"];
     //create page itself
     $strPagename = $arrMetadata["pagename"][0]["value"];
     $strPrevId = "";
     //check if the exported prev-values may be used
     $strImportPrevName = $arrMetadata["prevname"][0]["value"];
     if ($strImportPrevName != "") {
         $objPage = class_module_pages_page::getPageByName($strImportPrevName);
         if ($objPage !== null) {
             $strPrevId = $objPage->getSystemid();
         }
     } elseif (validateSystemid($arrMetadata["previd"][0]["value"])) {
         $objRoot = class_objectfactory::getInstance()->getObject($arrMetadata["previd"][0]["value"]);
         if ($objRoot !== null) {
             $strPrevId = $arrMetadata["previd"][0]["value"];
         }
     }
     if ($strPrevId == "") {
         $strPrevId = $strTopFolderId;
     }
     //check if an existing page should be replaced
     if ($bitReplaceExisting) {
         $objPage = class_module_pages_page::getPageByName($strPagename);
         if ($objPage !== null) {
             $strPrevId = $objPage->getPrevId();
             $objPage->deleteObject();
         }
         class_carrier::getInstance()->getObjDB()->flushQueryCache();
     }
     $objPage = new class_module_pages_page();
     $objPage->setStrName($strPagename);
     $objPage->updateObjectToDb($strPrevId);
     $strPageId = $objPage->getSystemid();
     $strReturn .= "created page " . $objPage->getStrName() . "\n";
     //save propertysets
     $objLanguages = new class_module_languages_language();
     $strCurrentLanguage = $objLanguages->getStrAdminLanguageToWorkOn();
     $arrPropertysets = $arrMetadata["pageproperties"][0]["propertyset"];
     foreach ($arrPropertysets as $arrOnePropSet) {
         class_carrier::getInstance()->getObjDB()->flushQueryCache();
         $objLanguages->setStrAdminLanguageToWorkOn($arrOnePropSet["attributes"]["language"]);
         //reload page to save correct prop-sets
         $objPage = new class_module_pages_page($strPageId);
         $objPage->setStrLanguage($arrOnePropSet["language"][0]["value"]);
         $objPage->setStrBrowsername($arrOnePropSet["browsername"][0]["value"]);
         $objPage->setStrDesc($arrOnePropSet["description"][0]["value"]);
         $objPage->setStrKeywords($arrOnePropSet["keywords"][0]["value"]);
         $objPage->setStrTemplate($arrOnePropSet["template"][0]["value"]);
         $objPage->setStrSeostring($arrOnePropSet["seostring"][0]["value"]);
         $objPage->setStrLanguage($arrOnePropSet["language"][0]["value"]);
         $objPage->setStrAlias($arrOnePropSet["alias"][0]["value"]);
         $objPage->setStrTarget($arrOnePropSet["target"][0]["value"]);
         $objPage->setStrPath($arrOnePropSet["path"][0]["value"]);
         $objPage->updateObjectToDb();
         $strReturn .= "saved propertyset for language " . $objPage->getStrLanguage() . "\n";
     }
     $objLanguages->setStrAdminLanguageToWorkOn($strCurrentLanguage);
     //and import each element
     foreach ($arrElements as $arrSingleElement) {
         //validate if element exists
         $strElementName = $arrSingleElement["metadata"][0]["element"][0]["value"];
         if (class_module_pages_element::getElement($strElementName) !== null) {
             $objElement = new class_module_pages_pageelement();
             $objElement->setStrPlaceholder($arrSingleElement["metadata"][0]["placeholder"][0]["value"]);
             $objElement->setStrName($arrSingleElement["metadata"][0]["name"][0]["value"]);
             $objElement->setStrElement($arrSingleElement["metadata"][0]["element"][0]["value"]);
             $objElement->setStrTitle($arrSingleElement["metadata"][0]["title"][0]["value"]);
             $objElement->setStrLanguage($arrSingleElement["metadata"][0]["language"][0]["value"]);
             $objElement->updateObjectToDb($strPageId);
             //and the foreign table
             $strTable = $arrSingleElement["foreignTable"][0]["attributes"]["table"];
             $arrValues = array();
             foreach ($arrSingleElement["foreignTable"][0]["column"] as $arrColumn) {
                 $arrValues[$arrColumn["attributes"]["name"]] = isset($arrColumn["value"]) ? $arrColumn["value"] : "";
             }
             unset($arrValues["content_id"]);
             //and build the query itself
             $strQuery = "UPDATE " . class_carrier::getInstance()->getObjDB()->encloseTableName(_dbprefix_ . $strTable) . " SET ";
             $arrInsertValues = array();
             $arrEscapes = array();
             $arrColumns = class_carrier::getInstance()->getObjDB()->getColumnsOfTable(_dbprefix_ . $strTable);
             $arrColumns = array_map(function ($arrColumn) {
                 return $arrColumn["columnName"];
             }, $arrColumns);
             foreach ($arrValues as $strColumn => $strValue) {
                 if (!in_array($strColumn, $arrColumns)) {
                     continue;
                 }
                 $strQuery .= class_carrier::getInstance()->getObjDB()->encloseColumnName($strColumn) . " = ? ,";
                 $arrInsertValues[] = $strValue;
                 $arrEscapes[] = false;
             }
             $strQuery = uniSubstr($strQuery, 0, -1);
             $strQuery .= " WHERE content_id = ?";
             $arrInsertValues[] = $objElement->getSystemid();
             class_carrier::getInstance()->getObjDB()->_pQuery($strQuery, $arrInsertValues, $arrEscapes);
             $strReturn .= "created element " . $objElement->getStrName() . "\n";
         } else {
             $strReturn .= "error: element " . $strElementName . " not existing";
         }
     }
     return $this->objToolkit->getPreformatted(array($strReturn));
 }
 /**
  * Does the hard work: installs the module and registers needed constants
  *
  */
 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();
         }
     }
     $strReturn .= "Creating new page contact...\n";
     $objPage = new class_module_pages_page();
     $objPage->setStrName("contact");
     $objPage->setStrBrowsername("Contact");
     $objPage->setStrTemplate("standard.tpl");
     $objPage->updateObjectToDb($strNaviFolderId);
     $strPageId = $objPage->getSystemid();
     $strReturn .= "ID of new page: " . $strPageId . "\n";
     $strReturn .= "Adding pagelement to new page\n";
     $objPagelement = new class_module_pages_pageelement();
     if (class_module_pages_element::getElement("form") != null) {
         $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("form");
         $objPagelement->updateObjectToDb($strPageId);
         $strElementId = $objPagelement->getSystemid();
         $arrParams = array();
         if ($this->strContentLanguage == "de") {
             $arrParams[] = "class_formular_contact.php";
             $arrParams[] = class_module_system_setting::getConfigValue("_system_admin_email_");
             $arrParams[] = "contact.tpl";
             $arrParams[] = $strElementId;
         } else {
             $arrParams[] = "class_formular_contact.php";
             $arrParams[] = class_module_system_setting::getConfigValue("_system_admin_email_");
             $arrParams[] = "contact.tpl";
             $arrParams[] = $strElementId;
         }
         $strQuery = "UPDATE " . _dbprefix_ . "element_formular\n                        SET formular_class = ?,\n                            formular_email = ?,\n                            formular_template = ?\n                        WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, $arrParams)) {
             $strReturn .= "Contact element created.\n";
         } else {
             $strReturn .= "Error creating Contact element.\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($strPageId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n                                SET paragraph_title = ?\n                                WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, array("Contact", $strElementId))) {
             $strReturn .= "Headline element created.\n";
         } else {
             $strReturn .= "Error creating headline element.\n";
         }
     }
     $strReturn .= "Adding paragraph-element to new page\n";
     if (class_module_pages_element::getElement("paragraph") != null) {
         $objPagelement = new class_module_pages_pageelement();
         $objPagelement->setStrPlaceholder("content_paragraph");
         $objPagelement->setStrName("content");
         $objPagelement->setStrElement("paragraph");
         $objPagelement->updateObjectToDb($strPageId);
         $strElementId = $objPagelement->getSystemid();
         $arrParams = array();
         if ($this->strContentLanguage == "de") {
             $arrParams[] = "";
             $arrParams[] = "Hinweis: Das Formular sendet per default die Anfragen an die E-Mail Adresse des Administrators.<br />\n                                Um diese Adresse zu ändern öffnen Sie bitte die Seite in der Administration und bearbeiten das Seitenelement &quot;Formular&quot;.<br /><br />";
             $arrParams[] = "";
             $arrParams[] = $strElementId;
         } else {
             $arrParams[] = "";
             $arrParams[] = "Note: By default, the form sends the messages to the administators email-address.<br />\n                               To change this address, open the current page using the administration and edit the page-element &quot;form&quot;.<br /><br />";
             $arrParams[] = "";
             $arrParams[] = $strElementId;
         }
         $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n                                SET paragraph_title = ?,\n                                    paragraph_content = ?,\n                                    paragraph_image = ?\n                                WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, $arrParams, array(true, false))) {
             $strReturn .= "Paragraph element created.\n";
         } else {
             $strReturn .= "Error creating paragraph element.\n";
         }
     }
     return $strReturn;
 }
 /**
  * Does the hard work: installs the module and registers needed constants
  *
  * @return string
  */
 public function install()
 {
     if (class_module_system_module::getModuleByName("mediamanager") == null) {
         return "Mediamanger not installed, skipping element\n";
     }
     $strReturn = "";
     //fetch navifolder-id
     $strNaviFolderId = "";
     $arrFolder = class_module_pages_folder::getFolderList();
     foreach ($arrFolder as $objOneFolder) {
         if ($objOneFolder->getStrName() == "mainnavigation") {
             $strNaviFolderId = $objOneFolder->getSystemid();
         }
     }
     $strReturn .= "Creating new gallery...\n";
     $objGallery = new class_module_mediamanager_repo();
     $objGallery->setStrTitle("Sample Gallery");
     $objGallery->setStrPath(_filespath_ . "/images/samples");
     $objGallery->setStrUploadFilter(".jpg,.png,.gif,.jpeg");
     $objGallery->setStrViewFilter(".jpg,.png,.gif,.jpeg");
     $objGallery->updateObjectToDb();
     $objGallery->syncRepo();
     $strGalleryID = $objGallery->getSystemid();
     $strReturn .= "Modify rights to allow guests to rate images...\n";
     class_carrier::getInstance()->getObjRights()->addGroupToRight(class_module_system_setting::getConfigValue("_guests_group_id_"), $objGallery->getSystemid(), "right3");
     $strReturn .= "Creating new gallery page...\n";
     $objPage = new class_module_pages_page();
     $objPage->setStrName("gallery");
     $objPage->setStrBrowsername("Gallery");
     $objPage->setStrTemplate("standard.tpl");
     $objPage->updateObjectToDb($strNaviFolderId);
     $strGalleryPageId = $objPage->getSystemid();
     $strReturn .= "ID of new page: " . $strGalleryPageId . "\n";
     $strReturn .= "Adding pagelement to new page\n";
     if (class_module_pages_element::getElement("gallery") != 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("gallery");
         $objPagelement->updateObjectToDb($strGalleryPageId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_gallery\n                            SET gallery_id = ?,\n                                gallery_mode = ?,\n                                gallery_template = ?,\n                                gallery_maxh_d = ?,\n                                gallery_maxw_d = ?,\n                                gallery_imagesperpage = ?,\n                                gallery_text = ?,\n                                gallery_text_x = ?,\n                                gallery_text_y = ?\n                            WHERE content_id = ? ";
         if ($this->objDB->_pQuery($strQuery, array($strGalleryID, 0, "gallery_imagelightbox.tpl", 600, 600, 0, "(c) kajona.de", 5, 15, $strElementId))) {
             $strReturn .= "Gallery element created.\n";
         } else {
             $strReturn .= "Error creating Gallery element.\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($strGalleryPageId);
         $strElementId = $objPagelement->getSystemid();
         $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n                                SET paragraph_title = ?\n                                WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, array("Gallery", $strElementId))) {
             $strReturn .= "Headline element created.\n";
         } else {
             $strReturn .= "Error creating headline element.\n";
         }
     }
     $strReturn .= "Adding paragraph-element to new page\n";
     if (class_module_pages_element::getElement("paragraph") != null) {
         $objPagelement = new class_module_pages_pageelement();
         $objPagelement->setStrPlaceholder("text_paragraph");
         $objPagelement->setStrName("text");
         $objPagelement->setStrElement("paragraph");
         $objPagelement->updateObjectToDb($strGalleryPageId);
         $strElementId = $objPagelement->getSystemid();
         $arrParams = array();
         if ($this->strContentLanguage == "de") {
             $arrParams[] = "";
             $arrParams[] = "Alle Beispielbilder &copy; by kajona.de";
             $arrParams[] = $strElementId;
         } else {
             $arrParams[] = "";
             $arrParams[] = "All sample images &copy; by kajona.de";
             $arrParams[] = $strElementId;
         }
         $strQuery = "UPDATE " . _dbprefix_ . "element_paragraph\n                                SET paragraph_title = ?,\n                                    paragraph_content = ?\n                                WHERE content_id = ?";
         if ($this->objDB->_pQuery($strQuery, $arrParams)) {
             $strReturn .= "Paragraph element created.\n";
         } else {
             $strReturn .= "Error creating paragraph element.\n";
         }
     }
     return $strReturn;
 }