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); }
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)); }
public function testPageElementDeleteSorting() { $objPage = new class_module_pages_page(); $objPage->setStrName("sortTest"); $objPage->updateObjectToDb(); $objLangugage = new class_module_languages_language(); $objPagelementb1 = new class_module_pages_pageelement(); $objPagelementb1->setStrPlaceholder("b_test"); $objPagelementb1->setStrName("b"); $objPagelementb1->setStrElement("row"); $objPagelementb1->setStrLanguage($objLangugage->getStrAdminLanguageToWorkOn()); $objPagelementb1->updateObjectToDb($objPage->getSystemid()); $objPagelementb2 = new class_module_pages_pageelement(); $objPagelementb2->setStrPlaceholder("b_test"); $objPagelementb2->setStrName("b"); $objPagelementb2->setStrElement("row"); $objPagelementb2->setStrLanguage($objLangugage->getStrAdminLanguageToWorkOn()); $objPagelementb2->updateObjectToDb($objPage->getSystemid()); $objPagelementb3 = new class_module_pages_pageelement(); $objPagelementb3->setStrPlaceholder("b_test"); $objPagelementb3->setStrName("b"); $objPagelementb3->setStrElement("row"); $objPagelementb3->setStrLanguage($objLangugage->getStrAdminLanguageToWorkOn()); $objPagelementb3->updateObjectToDb($objPage->getSystemid()); $arrElements = class_module_pages_pageelement::getElementsByPlaceholderAndPage($objPage->getSystemid(), "b_test", $objLangugage->getStrAdminLanguageToWorkOn(), 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()); $objPagelementb2->deleteObjectFromDatabase(); $this->flushDBCache(); $arrElements = class_module_pages_pageelement::getElementsByPlaceholderAndPage($objPage->getSystemid(), "b_test", $objLangugage->getStrAdminLanguageToWorkOn(), 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()); $objPage->deleteObjectFromDatabase(); }
if ($strSearched !== false) { echo " \n\nfound installer " . $strFilename . " \n"; include_once _realpath_ . $strSearched; $strName = $strClass = "class_" . str_replace(".php", "", $strFilename); $objInstaller = new $strName(); $objLang = new class_module_languages_language(); if ($objInstaller instanceof interface_sc_installer) { $strModule = $objInstaller->getCorrespondingModule(); echo "Module " . $strModule . "...\n"; $objModule = class_module_system_module::getModuleByName($strModule); if ($objModule == null) { echo "\t... not installed!\n"; } else { echo "\t... installed.\n"; $objInstaller->setObjDb(class_carrier::getInstance()->getObjDB()); $objInstaller->setStrContentlanguage($objLang->getStrAdminLanguageToWorkOn()); echo $objInstaller->install(); } } } echo "time needed: " . round((time() - $intStart) / 60, 3) . " min\n\n\n"; } } function get_php_classes($php_code) { $classes = array(); $tokens = token_get_all($php_code); $count = count($tokens); for ($i = 2; $i < $count; $i++) { if ($tokens[$i - 2][0] == T_CLASS && $tokens[$i - 1][0] == T_WHITESPACE && $tokens[$i][0] == T_STRING) { $class_name = $tokens[$i][1];