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); }
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(); }