public function translate(DomDocument $v9a09b4dfda82e3e665e31092d1c3ec8d) { $v2245023265ae4cf87d02c8b6ba991139 = mainConfiguration::getInstance(); $vd0c75bac742760cf71fd76cd75d0c02a = CURRENT_WORKING_DIR . '/xsl/import/' . $this->type . '.xsl'; if (!is_file($vd0c75bac742760cf71fd76cd75d0c02a)) { throw new publicException("Can't load translator {$vd0c75bac742760cf71fd76cd75d0c02a}"); } $v640eac53ad75db5c49a9ec86390d8530 = umiTemplater::create('XSLT', $vd0c75bac742760cf71fd76cd75d0c02a); return $v640eac53ad75db5c49a9ec86390d8530->parse($v9a09b4dfda82e3e665e31092d1c3ec8d); }
public static function executeMacroses($v56491f2e1c74898e18bb6e47d2425b19, $vaf0bf69b4590545119c86ee0e59c088d = false, $v5d8603331b744a86bd36e07552225714 = false) { if (self::isParseTPLMacrosesAllowed()) { if (strpos($v56491f2e1c74898e18bb6e47d2425b19, '%') === false) { return $v56491f2e1c74898e18bb6e47d2425b19; } $v8980246496f088322ddf9eca96750755 = umiTemplater::create('TPL'); $v8980246496f088322ddf9eca96750755->executeOnlyAllowedMacroses(self::getAllowedTplMacroses()); $v8980246496f088322ddf9eca96750755->setScope($vaf0bf69b4590545119c86ee0e59c088d, $v5d8603331b744a86bd36e07552225714); $v56491f2e1c74898e18bb6e47d2425b19 = $v8980246496f088322ddf9eca96750755->parse(array(), $v56491f2e1c74898e18bb6e47d2425b19); } return $v56491f2e1c74898e18bb6e47d2425b19; }
public function export($v92ec19ffde05e15769b1bb3ee05ad745) { if (!count($v92ec19ffde05e15769b1bb3ee05ad745)) { $v8be74552df93e31bbdd6b36ed74bdb6a = new selector('pages'); $v8be74552df93e31bbdd6b36ed74bdb6a->where('hierarchy')->page(0)->childs(0); $v92ec19ffde05e15769b1bb3ee05ad745 = $v8be74552df93e31bbdd6b36ed74bdb6a->result(); } $vbbd738a112791dd1d0cb6bd0d61d878f = $this->getUmiDump($v92ec19ffde05e15769b1bb3ee05ad745, "commerceML2"); $vd0c75bac742760cf71fd76cd75d0c02a = './xsl/export/' . $this->type . '.xsl'; if (!is_file($vd0c75bac742760cf71fd76cd75d0c02a)) { throw new publicException("Can't load exporter {$vd0c75bac742760cf71fd76cd75d0c02a}"); } $v9a09b4dfda82e3e665e31092d1c3ec8d = new DOMDocument("1.0", "utf-8"); $v9a09b4dfda82e3e665e31092d1c3ec8d->formatOutput = XML_FORMAT_OUTPUT; $v9a09b4dfda82e3e665e31092d1c3ec8d->loadXML($vbbd738a112791dd1d0cb6bd0d61d878f); $v640eac53ad75db5c49a9ec86390d8530 = umiTemplater::create('XSLT', $vd0c75bac742760cf71fd76cd75d0c02a); return $v640eac53ad75db5c49a9ec86390d8530->parse($v9a09b4dfda82e3e665e31092d1c3ec8d); }
public function export($v01af57e4ae6d799566f5695b3679756b) { $v8be74552df93e31bbdd6b36ed74bdb6a = new selector('objects'); $v8be74552df93e31bbdd6b36ed74bdb6a->types('object-type')->name('emarket', 'order'); $v8be74552df93e31bbdd6b36ed74bdb6a->where('need_export')->equals(1); $vbbd738a112791dd1d0cb6bd0d61d878f = $this->getUmiDumpObjects($v8be74552df93e31bbdd6b36ed74bdb6a->result, "CommerceML2"); $vd0c75bac742760cf71fd76cd75d0c02a = './xsl/export/' . $this->type . '.xsl'; if (!is_file($vd0c75bac742760cf71fd76cd75d0c02a)) { throw new publicException("Can't load exporter {$vd0c75bac742760cf71fd76cd75d0c02a}"); } $v9a09b4dfda82e3e665e31092d1c3ec8d = new DOMDocument("1.0", "utf-8"); $v9a09b4dfda82e3e665e31092d1c3ec8d->formatOutput = XML_FORMAT_OUTPUT; $v9a09b4dfda82e3e665e31092d1c3ec8d->loadXML($vbbd738a112791dd1d0cb6bd0d61d878f); $v640eac53ad75db5c49a9ec86390d8530 = umiTemplater::create('XSLT', $vd0c75bac742760cf71fd76cd75d0c02a); $result = $v640eac53ad75db5c49a9ec86390d8530->parse($v9a09b4dfda82e3e665e31092d1c3ec8d); $result = str_replace('<?xml version="1.0" encoding="utf-8"?>', '<?xml version="1.0" encoding="windows-1251"?>', $result); $result = iconv("UTF-8", "CP1251//IGNORE", $result); return $result; }
public function export($v92ec19ffde05e15769b1bb3ee05ad745) { $v8be74552df93e31bbdd6b36ed74bdb6a = new selector('pages'); $v8be74552df93e31bbdd6b36ed74bdb6a->types('hierarchy-type')->name('catalog', 'object'); if (count($v92ec19ffde05e15769b1bb3ee05ad745)) { foreach ($v92ec19ffde05e15769b1bb3ee05ad745 as $v9603a224b40d7b67210b78f2e390d00f) { $v8be74552df93e31bbdd6b36ed74bdb6a->where('hierarchy')->page($v9603a224b40d7b67210b78f2e390d00f->id)->childs(1000); } } $ved780287e302ec3b9fd3c5e78771919f = new xmlExporter("CommerceML2"); $ved780287e302ec3b9fd3c5e78771919f->addElements($v8be74552df93e31bbdd6b36ed74bdb6a->result()); $ved780287e302ec3b9fd3c5e78771919f->setIgnoreRelations(); $vbbd738a112791dd1d0cb6bd0d61d878f = $ved780287e302ec3b9fd3c5e78771919f->execute(); $vd0c75bac742760cf71fd76cd75d0c02a = './xsl/export/' . $this->type . '.xsl'; if (!is_file($vd0c75bac742760cf71fd76cd75d0c02a)) { throw new publicException("Can't load exporter {$vd0c75bac742760cf71fd76cd75d0c02a}"); } $v9a09b4dfda82e3e665e31092d1c3ec8d = new DOMDocument("1.0", "utf-8"); $v9a09b4dfda82e3e665e31092d1c3ec8d->formatOutput = XML_FORMAT_OUTPUT; $v9a09b4dfda82e3e665e31092d1c3ec8d->loadXML($vbbd738a112791dd1d0cb6bd0d61d878f->saveXML()); $v640eac53ad75db5c49a9ec86390d8530 = umiTemplater::create('XSLT', $vd0c75bac742760cf71fd76cd75d0c02a); return $v640eac53ad75db5c49a9ec86390d8530->parse($v9a09b4dfda82e3e665e31092d1c3ec8d); }
class umiTemplaterXSLTParsePageTest extends umiTestCase {protected static $templater;protected static $page;protected static $globalVars = array();protected static $actualResult;protected static $xPath;public static function setUpBeforeClass() {self::$page = self::createPageFixture(__CLASS__, 'content', '');self::$page->content = 'Content';self::$page->title = 'Title';self::$page->meta_keywords = 'Keywords';self::$page->meta_descriptions = 'Description';self::$page->h1 = 'Header';self::$page->commit();$_REQUEST['path'] = '/' . self::$page->getAltName() . "/";self::controller()->analyzePath(true);$_REQUEST['test_request_param'] = 'testRequestParamValue';$_SERVER['test_server_param'] = 'testServerParamValue';self::$templater = umiTemplater::create('XSLT', dirname(__FILE__) . "/data/umiTemplaterXSLTParsePageTest.xsl");self::$templater->setScope(self::$page->getId());self::$globalVars = self::controller()->getGlobalVariables();$v136a063334d3fa03b2febfbb4855cbc3 = self::$templater->parse(self::$globalVars);self::$actualResult = new DOMDocument('1.0', 'utf-8');self::$actualResult->loadXML($v136a063334d3fa03b2febfbb4855cbc3);self::$xPath = new DOMXPath(self::$actualResult);}public static function tearDownAfterClass() {parent::tearDownAfterClass();unset($_REQUEST['path']);unset($_REQUEST['test_request_param']);unset($_SERVER['test_server_param']);}public function testRequestParam() {$v1a13105b7e4eb5fb2e7c9515ac06aa48 = self::$xPath->evaluate("//test[@name = 'testRequestParam']");$this->assertEquals('testRequestParamValue', $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0)->nodeValue, 'Не передаются $_REQUEST-параметры в шаблон.');}public function testServerParam() {$v1a13105b7e4eb5fb2e7c9515ac06aa48 = self::$xPath->evaluate("//test[@name = 'testServerParam']");$this->assertEquals('testServerParamValue', $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0)->nodeValue, 'Не передаются $_SERVER-параметры в шаблон.');}public function testRepeatParse() {$v6052c20bf53f16f57139c21feff8ff8f = self::$actualResult;$v301ee7860666c81ec19ababbba418f26 = self::$templater->parse(self::$globalVars);$v1d137762d9282b91ae92344127e9cc59 = new DOMDocument('1.0', 'utf-8');$v1d137762d9282b91ae92344127e9cc59->loadXML($v301ee7860666c81ec19ababbba418f26);$this->assertEquals($v1d137762d9282b91ae92344127e9cc59->saveXML(), $v6052c20bf53f16f57139c21feff8ff8f->saveXML());}public function testParseSimpleProperties() {$v1a13105b7e4eb5fb2e7c9515ac06aa48 = self::$xPath->evaluate("//test[@name = 'testParseProperies']/prop[@name = 'title']");$this->assertNotEmpty($v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0));$this->assertEquals(self::$page->title, $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0)->nodeValue);$v1a13105b7e4eb5fb2e7c9515ac06aa48 = self::$xPath->evaluate("//test[@name = 'testParseProperies']/prop[@name = 'meta_keywords']");$this->assertNotEmpty($v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0));$this->assertEquals(self::$page->meta_keywords, $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0)->nodeValue);$v1a13105b7e4eb5fb2e7c9515ac06aa48 = self::$xPath->evaluate("//test[@name = 'testParseProperies']/prop[@name = 'meta_descriptions']");$this->assertNotEmpty($v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0));$this->assertEquals(self::$page->meta_descriptions, $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0)->nodeValue);$this->assertNotEmpty($v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0));$v1a13105b7e4eb5fb2e7c9515ac06aa48 = self::$xPath->evaluate("//test[@name = 'testParseProperies']/prop[@name = 'h1']");$this->assertEquals(self::$page->h1, $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0)->nodeValue);}public function testParseTplScopeMacroses() {if (defined('XML_MACROSES_DISABLE') && XML_MACROSES_DISABLE) {throw new Exception("Не могу протестировать обработку TPL-макросов, включена опция XML_MACROSES_DISABLE");}self::$page->content = '%meta_keywords%,%pid%';self::$page->commit();$v136a063334d3fa03b2febfbb4855cbc3 = self::$templater->parse(self::$globalVars);$v4dbdfdb5f7e507c8955733a7117cb0b3 = new DOMDocument('1.0', 'utf-8');$v4dbdfdb5f7e507c8955733a7117cb0b3->loadXML($v136a063334d3fa03b2febfbb4855cbc3);$v5e9f367e6f6a355657c806a522cc5afb = new DOMXPath($v4dbdfdb5f7e507c8955733a7117cb0b3);$v1a13105b7e4eb5fb2e7c9515ac06aa48 = $v5e9f367e6f6a355657c806a522cc5afb->evaluate("//test[@name = 'testParseProperies']/prop[@name = 'content']");$this->assertEquals(self::$page->meta_keywords. "," . self::$page->getId(), $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0)->nodeValue);}}
public static function getInstance($v4a8a08f09d37b73795649038408b5f33 = NULL) { return umiTemplater::create('TPL', null); }
class umiTemplaterXSLTTest extends umiTestCase {protected static $templater;public static function setUpBeforeClass() {self::$templater = umiTemplater::create('XSLT', dirname(__FILE__) . "/data/umiTemplaterXSLTTest.xsl");}public static function tearDownAfterClass() {}public function testValidInstance() {$this->assertInstanceOf('umiTemplaterXSLT', self::$templater);}public function testGlobalVariables() {$vb63119da730344b345cdc8f62a4711e9 = self::controller()->getGlobalVariables();$this->assertArrayHasKey('@module', $vb63119da730344b345cdc8f62a4711e9);}public function testGetTemplates() {$v5a5dd4fd29235b1438d822b2a353c386 = self::$templater->getTemplatesSource();$v4dbdfdb5f7e507c8955733a7117cb0b3 = self::$templater->getTemplates($v5a5dd4fd29235b1438d822b2a353c386, 'template1', 'template2', 'template3');$v6b0e852a75c7df2e71d825ff0b3e1f6c = array( 0 => 'file://' . $v5a5dd4fd29235b1438d822b2a353c386 . "#template1", 1 => 'file://' . $v5a5dd4fd29235b1438d822b2a353c386 . "#template2", 2 => 'file://' . $v5a5dd4fd29235b1438d822b2a353c386 . "#template3" );$this->assertEquals($v6b0e852a75c7df2e71d825ff0b3e1f6c, $v4dbdfdb5f7e507c8955733a7117cb0b3);}}?>
/** * @static * Выполняет разбор шаблона для отправки письма * Если в template пришел URI шаблона, для обработки используется umiTemplaterXSTL * * @param string $template - шаблон для разбора * @param array $arr - массив переменнх * @param bool|int $parseElementPropsId - установить id страницы в качестве области видимости блока * @param bool|int $parseObjectPropsId - установить id объекта в качестве области видимости блока * @return mixed - результат разбора шаблона */ public static function parseTemplateForMail($template, $arr, $parseElementPropsId = false, $parseObjectPropsId = false) { if (strpos($template, 'file://') === 0) { // Используем xslt-шаблонизатор $templateURL = @parse_url($template); if (!is_array($templateURL)) { throw new publicException('Невозможно обработать шаблон "' . $template . '"'); } $templateSource = $templateURL['path']; $templateFragment = isset($templateURL['fragment']) && strlen($templateURL['fragment']) ? $templateURL['fragment'] : 'result'; $templater = umiTemplater::create('XSLT', $templateSource); return $templater->parse(array($templateFragment => $arr)); } else { // Используем tpl-шаблонизатор return def_module::parseTemplate($template, $arr, $parseElementPropsId, $parseObjectPropsId, false); } }
private function initAdminModeTemplater() { $v2245023265ae4cf87d02c8b6ba991139 = mainConfiguration::getInstance(); $vd0445781d0ea0874702f04eb72c588d5 = $v2245023265ae4cf87d02c8b6ba991139->includeParam('templates.skins', array('skin' => system_get_skinName())); $v41275a535677f79ff347e01bc530c176 = permissionsCollection::getInstance(); $v8e44f0089b076e18a718eb9ca3d94674 = $v41275a535677f79ff347e01bc530c176->getUserId(); $vca02d1555c813b1b1ad637654c0fe111 = $v41275a535677f79ff347e01bc530c176->isAllowedMethod($v8e44f0089b076e18a718eb9ca3d94674, $this->current_module, $this->current_method); $v5b063e275d506f65ebf1b02d926f19a4 = 'main.xsl'; if (!$v41275a535677f79ff347e01bc530c176->isAdmin(false, true) || !$vca02d1555c813b1b1ad637654c0fe111) { if ($v41275a535677f79ff347e01bc530c176->isAuth()) { $v90f805bfcba6ab75df4ad6da8e6afd9b = "owner_id = {$v8e44f0089b076e18a718eb9ca3d94674}"; $v8e59688c095c0b0bad04d8476df25db3 = umiObjectsCollection::getInstance()->getObject($v8e44f0089b076e18a718eb9ca3d94674)->getValue('groups'); foreach ($v8e59688c095c0b0bad04d8476df25db3 as $vf2f5fbe4a9d4cc9a39e7a62a513580e9) { $v90f805bfcba6ab75df4ad6da8e6afd9b .= " or owner_id = {$vf2f5fbe4a9d4cc9a39e7a62a513580e9}"; } $vac5c74b64b4b8352ef2f181affb5ac2a = "SELECT `module` FROM cms_permissions WHERE (" . $v90f805bfcba6ab75df4ad6da8e6afd9b . ") and (method = '' or method is null)"; $result = l_mysql_query($vac5c74b64b4b8352ef2f181affb5ac2a); if (mysql_num_rows($result) !== 0) { $vb1444fb0c07653567ad325aa25d4e37a = regedit::getInstance(); while ($vf1965a857bc285d26fe22023aa5ab50d = mysql_fetch_array($result)) { $v22884db148f0ffb0d830ba431102b0b5 = $vf1965a857bc285d26fe22023aa5ab50d[0]; $vea9f6aca279138c58f705c8d4cb4b8ce = $vb1444fb0c07653567ad325aa25d4e37a->getVal("//modules/{$v22884db148f0ffb0d830ba431102b0b5}/default_method_admin"); if ($v41275a535677f79ff347e01bc530c176->isAllowedMethod($v8e44f0089b076e18a718eb9ca3d94674, $v22884db148f0ffb0d830ba431102b0b5, $vea9f6aca279138c58f705c8d4cb4b8ce)) { def_module::redirect('http://' . $this->getCurrentDomain()->getHost() . '/admin/' . $v22884db148f0ffb0d830ba431102b0b5 . '/' . $vea9f6aca279138c58f705c8d4cb4b8ce . "/"); break; } } } } $v5b063e275d506f65ebf1b02d926f19a4 = 'main_login.xsl'; } $vfbf236c2ed0d94c877048bc5bb1db3d9 = $vd0445781d0ea0874702f04eb72c588d5 . $v5b063e275d506f65ebf1b02d926f19a4; if (!is_file($vfbf236c2ed0d94c877048bc5bb1db3d9)) { throw new coreException('Template "' . $vfbf236c2ed0d94c877048bc5bb1db3d9 . '" not found.'); } outputBuffer::contentGenerator('XSLT, ADMIN MODE'); return umiTemplater::create('XSLT', $vfbf236c2ed0d94c877048bc5bb1db3d9); }
public function updateYML() { $v100664c6e2c0333b19a729f2f3ddb7dd = CURRENT_WORKING_DIR . "/sys-temp/yml/"; $v100664c6e2c0333b19a729f2f3ddb7dd = CURRENT_WORKING_DIR . "/sys-temp/yml/"; $v6942e8fa62b3cc9d93881a58210e2fd7 = umiHierarchyTypesCollection::getInstance(); $v8c028488715d341980c5985fd02bfa1e = $v6942e8fa62b3cc9d93881a58210e2fd7->getTypeByName("catalog", "object"); $v3e78669aa9a1bfe336037e3d77a22705 = $v6942e8fa62b3cc9d93881a58210e2fd7->getTypeByName("catalog", "category"); $vb81ca7c0ccaa77e7aa91936ab0070695 = umiHierarchy::getInstance(); if (!$v8c028488715d341980c5985fd02bfa1e || !$v3e78669aa9a1bfe336037e3d77a22705) { return false; } if ($this->getHierarchyType()->getId() == $v3e78669aa9a1bfe336037e3d77a22705->getId()) { $this->checkYMLinclude(); if (!$this->is_active || $this->is_deleted) { $v397c47bd29ed2de23a264b3de9d0aeaf = $vb81ca7c0ccaa77e7aa91936ab0070695->getChildIds($this->getId(), false); foreach ($v397c47bd29ed2de23a264b3de9d0aeaf as $vf4f40123eb510dd3290125b38f4eb898) { $v0f635d0e0f3874fff8b581c132e6c7a7 = $v100664c6e2c0333b19a729f2f3ddb7dd . $vf4f40123eb510dd3290125b38f4eb898 . ".txt"; if (file_exists($v0f635d0e0f3874fff8b581c132e6c7a7)) { unlink($v0f635d0e0f3874fff8b581c132e6c7a7); } } } return true; } if ($this->getHierarchyType()->getId() != $v8c028488715d341980c5985fd02bfa1e->getId()) { return false; } if (!is_dir($v100664c6e2c0333b19a729f2f3ddb7dd)) { mkdir($v100664c6e2c0333b19a729f2f3ddb7dd, 0777, true); } $v0f635d0e0f3874fff8b581c132e6c7a7 = $v100664c6e2c0333b19a729f2f3ddb7dd . "{$this->id}.txt"; if (file_exists($v0f635d0e0f3874fff8b581c132e6c7a7)) { unlink($v0f635d0e0f3874fff8b581c132e6c7a7); } if ($this->is_active && !$this->is_deleted) { $v9c28d32df234037773be184dbdafc274 = $this->checkYMLinclude(); if (!count($v9c28d32df234037773be184dbdafc274)) { return false; } $vbfa030fe63bacd523dd70a76cfaed98a = $this->getParentId(); if ($vbfa030fe63bacd523dd70a76cfaed98a) { $vd0e45878043844ffc41aac437e86b602 = umiHierarchy::getInstance()->getElement($vbfa030fe63bacd523dd70a76cfaed98a, true, true); if ($vd0e45878043844ffc41aac437e86b602->getHierarchyType()->getId() != $v3e78669aa9a1bfe336037e3d77a22705->getId()) { $vbfa030fe63bacd523dd70a76cfaed98a = false; $vc68ad910ed49ac65f21f1bf2c5dbf912 = $vb81ca7c0ccaa77e7aa91936ab0070695->getAllParents($this->id, true, true); for ($v865c0c0b4ab0e063e5caa3387c1a8741 = count($vc68ad910ed49ac65f21f1bf2c5dbf912) - 1; $v865c0c0b4ab0e063e5caa3387c1a8741 >= 0; $v865c0c0b4ab0e063e5caa3387c1a8741--) { $veb26d1e3d9eea8920caf827a786b187f = $vc68ad910ed49ac65f21f1bf2c5dbf912[$v865c0c0b4ab0e063e5caa3387c1a8741]; $v0b7a661d35d52d96b26b9f3f3bd32aab = $vb81ca7c0ccaa77e7aa91936ab0070695->getElement($veb26d1e3d9eea8920caf827a786b187f, true); if ($v0b7a661d35d52d96b26b9f3f3bd32aab instanceof umiHierarchyElement && $v0b7a661d35d52d96b26b9f3f3bd32aab->getHierarchyType()->getId() == $v3e78669aa9a1bfe336037e3d77a22705->getId()) { $vbfa030fe63bacd523dd70a76cfaed98a = $veb26d1e3d9eea8920caf827a786b187f; break; } } } } if (!$vbfa030fe63bacd523dd70a76cfaed98a) { throw new publicAdminException(getLabel('error-update-yml')); } $ved780287e302ec3b9fd3c5e78771919f = new xmlExporter('yml'); $ved780287e302ec3b9fd3c5e78771919f->addElements(array($this->id)); $ved780287e302ec3b9fd3c5e78771919f->setIgnoreRelations(); $vbbd738a112791dd1d0cb6bd0d61d878f = $ved780287e302ec3b9fd3c5e78771919f->execute(); $vd0c75bac742760cf71fd76cd75d0c02a = CURRENT_WORKING_DIR . '/xsl/export/YML.xsl'; if (!is_file($vd0c75bac742760cf71fd76cd75d0c02a)) { throw new publicException("Can't load exporter {$vd0c75bac742760cf71fd76cd75d0c02a}"); } $v9a09b4dfda82e3e665e31092d1c3ec8d = new DOMDocument("1.0", "utf-8"); $v9a09b4dfda82e3e665e31092d1c3ec8d->formatOutput = XML_FORMAT_OUTPUT; $v9a09b4dfda82e3e665e31092d1c3ec8d->loadXML($vbbd738a112791dd1d0cb6bd0d61d878f->saveXML()); $v640eac53ad75db5c49a9ec86390d8530 = umiTemplater::create('XSLT', $vd0c75bac742760cf71fd76cd75d0c02a); $result = $v640eac53ad75db5c49a9ec86390d8530->parse($v9a09b4dfda82e3e665e31092d1c3ec8d); $vdd988cfd769c9f7fbd795a0f5da8e751 = new DOMDocument(); $vdd988cfd769c9f7fbd795a0f5da8e751->loadXML($result); $vd60db28d94d538bbb249dcc7f2273ab1 = $vdd988cfd769c9f7fbd795a0f5da8e751->getElementsByTagName('offer')->item(0); if ($vd60db28d94d538bbb249dcc7f2273ab1) { $vc4ef352f74e502ef5e7bc98e6f4e493d = $vd60db28d94d538bbb249dcc7f2273ab1->getElementsByTagName('categoryId')->item(0); if ($vc4ef352f74e502ef5e7bc98e6f4e493d) { $vc4ef352f74e502ef5e7bc98e6f4e493d->nodeValue = $vbfa030fe63bacd523dd70a76cfaed98a; } $v9a0364b9e99bb480dd25e1f0284c8555 = iconv("UTF-8", "CP1251//IGNORE", $vdd988cfd769c9f7fbd795a0f5da8e751->saveXML($vd60db28d94d538bbb249dcc7f2273ab1)); file_put_contents($v0f635d0e0f3874fff8b581c132e6c7a7, $v9a0364b9e99bb480dd25e1f0284c8555); } $v7f24d9fc4140045241b3f97bcf36bf03 = $vdd988cfd769c9f7fbd795a0f5da8e751->getElementsByTagName('currencies')->item(0); $v09c2a312ca0311b5e24340fe8f827077 = iconv("UTF-8", "CP1251//IGNORE", $vdd988cfd769c9f7fbd795a0f5da8e751->saveXML($v7f24d9fc4140045241b3f97bcf36bf03)); file_put_contents($v100664c6e2c0333b19a729f2f3ddb7dd . 'currencies', $v09c2a312ca0311b5e24340fe8f827077); $vdaeed474badc5873f59f5c1933dfa304 = $vdd988cfd769c9f7fbd795a0f5da8e751->getElementsByTagName('name')->item(0); $vb068931cc450442b63f5b3d276ea4297 = $vdaeed474badc5873f59f5c1933dfa304->nodeValue; $v93c731f1c3a84ef05cd54d044c379eaa = $vdd988cfd769c9f7fbd795a0f5da8e751->getElementsByTagName('company')->item(0); $vdb486e4cdf8b2048591e59f683319c4c = $v93c731f1c3a84ef05cd54d044c379eaa->nodeValue; foreach ($v9c28d32df234037773be184dbdafc274 as $v013b012140e3049c2436475764dfba3c) { file_put_contents($v100664c6e2c0333b19a729f2f3ddb7dd . 'shop' . $v013b012140e3049c2436475764dfba3c, '<name>' . iconv("UTF-8", "CP1251//IGNORE", $vb068931cc450442b63f5b3d276ea4297) . '</name><company>' . iconv("UTF-8", "CP1251", $vdb486e4cdf8b2048591e59f683319c4c) . '</company><url>http://' . domainsCollection::getInstance()->getDomain($this->getDomainId())->getHost() . '</url>'); } } }
class umiTemplaterTPLParsePageTest extends umiTestCase {protected static $templater;protected static $page;protected static $globalVars = array();public static function setUpBeforeClass() {self::$page = self::createPageFixture(__CLASS__, 'content', '');self::$page->content = 'Content';self::$page->title = 'Title';self::$page->meta_keywords = 'Keywords';self::$page->meta_descriptions = 'Description';self::$page->h1 = 'Header';self::$page->commit();$_REQUEST['path'] = '/' . self::$page->getAltName() . "/";self::controller()->analyzePath();$_REQUEST['test_request_param'] = 'testRequestParamValue';$_SERVER['test_server_param'] = 'testServerParamValue';self::$globalVars = self::controller()->getGlobalVariables();self::$templater = umiTemplater::create('TPL', dirname(__FILE__) . "/data/umiTemplaterTPLParsePageTest.tpl");self::$templater->setScope(self::$page->getId());}public static function tearDownAfterClass() {parent::tearDownAfterClass();unset($_REQUEST['path']);unset($_REQUEST['test_request_param']);unset($_SERVER['test_server_param']);}public function testParseShortMacroses() {$v9a0364b9e99bb480dd25e1f0284c8555 = "%header%";$v4dbdfdb5f7e507c8955733a7117cb0b3 = self::$templater->parse(self::$globalVars, $v9a0364b9e99bb480dd25e1f0284c8555);$this->assertEquals('Header', $v4dbdfdb5f7e507c8955733a7117cb0b3);}public function testParsePage() {$v9cd3487945daada914909f0b525e1284 = self::$templater->getTemplatesSource();list($v511e361e2a3590145939f3c570b28689) = self::$templater->getTemplates($v9cd3487945daada914909f0b525e1284, 'common');$v9931b1f15d0ba2b903c892bbfcff0448 = file_get_contents($v9cd3487945daada914909f0b525e1284);$this->assertEquals($v9931b1f15d0ba2b903c892bbfcff0448, $v511e361e2a3590145939f3c570b28689, 'Ошибка загрузки основного шаблона');$v13904f6a3227fdaa70cb2fb689caff5e = self::$templater->parse(self::$globalVars, $v511e361e2a3590145939f3c570b28689);$v71860c77c6745379b0d44304d66b6a13 = self::$page;$v0db3209e1adc6d67be435a81baf9a66e = $v71860c77c6745379b0d44304d66b6a13->getId();$vd2a2244210ba075db32a5f093f85ad7e = <<<EOF
class umiTemplaterXSLTParseAdminPageTest extends umiTestCase {protected static $templater;protected static $page;protected static $globalVars = array();protected static $actualResult;protected static $xPath;public static function setUpBeforeClass() {self::$page = self::createPageFixture(__CLASS__, 'content', '');self::$page->content = 'Content';self::$page->title = 'Title';self::$page->meta_keywords = 'Keywords';self::$page->meta_descriptions = 'Description';self::$page->h1 = 'Header';self::$page->commit();self::controller()->setCurrentMode('admin');$_REQUEST['path'] = '/admin/content/edit/' . self::$page->getId() . "/";self::controller()->analyzePath();$_REQUEST['test_request_param'] = 'testRequestParamValue';$_SERVER['test_server_param'] = 'testServerParamValue';self::$templater = umiTemplater::create('XSLT', dirname(__FILE__) . "/data/umiTemplaterXSLTParsePageTest.xsl");self::$globalVars = self::controller()->getGlobalVariables();$v136a063334d3fa03b2febfbb4855cbc3 = self::$templater->parse(self::$globalVars);self::$actualResult = new DOMDocument('1.0', 'utf-8');self::$actualResult->loadXML($v136a063334d3fa03b2febfbb4855cbc3);self::$xPath = new DOMXPath(self::$actualResult);}public static function tearDownAfterClass() {parent::tearDownAfterClass();unset($_REQUEST['path']);unset($_REQUEST['test_request_param']);unset($_SERVER['test_server_param']);}public function _testStreamWork() {$result = file_get_contents('udata://system/get_module_tabs/content/content');}public function testRequestParam() {$v1a13105b7e4eb5fb2e7c9515ac06aa48 = self::$xPath->evaluate("//test[@name = 'testRequestParam']");$this->assertEquals('testRequestParamValue', $v1a13105b7e4eb5fb2e7c9515ac06aa48->item(0)->nodeValue, 'Не передаются $_REQUEST-параметры в шаблон.');}}
public function generateFeed($elementId, $xslPath, $typeId = null) { $this->errorSetErrorPage('/'); if ($elementId && (!umiHierarchy::getInstance()->isExists($elementId) || !umiHierarchy::getInstance()->getElement($elementId)->getIsActive())) { if (def_module::isXSLTResultMode()) { $result = array('error' => '%data_feed_nofeed%'); return def_module::parseTemplate('', $result); } else { return '%data_feed_nofeed%'; } } if ($typeId) { list($name, $ext) = explode('-', $typeId); $hierarchyType = umiHierarchyTypesCollection::getInstance()->getTypeByName($name, $ext); if ($hierarchyType) { $typeId = umiObjectTypesCollection::getInstance()->getTypeByHierarchyTypeId($hierarchyType->getId()); } } elseif ($elementId) { $typeId = umiHierarchy::getInstance()->getDominantTypeId($elementId); } else { $typeId = umiObjectTypesCollection::getInstance()->getTypeIdByGUID('news-item'); } $type = umiObjectTypesCollection::getInstance()->getType($typeId); if ($type instanceof umiObjectType) { $module = $type->getModule(); $method = $type->getMethod(); } if (!isset($module) && !isset($method)) { if (def_module::isXSLTResultMode()) { $result = array('error' => '%data_feed_nofeed%'); return def_module::parseTemplate('', $result); } else { return '%data_feed_nofeed%'; } } if (!$this->checkIfFeedable($module, $method)) { if (def_module::isXSLTResultMode()) { $result = array('error' => '%data_feed_wrong%'); return def_module::parseTemplate('', $result); } else { return '%data_feed_wrong%'; } } $rss_per_page = (int) regedit::getInstance()->getVal("//modules/news/rss_per_page"); $rss_per_page = $rss_per_page > 0 ? $rss_per_page : 10; $sel = new selector('pages'); $sel->option('return')->value('id'); $sel->where('hierarchy')->page($elementId)->childs(100); $sel->types('hierarchy-type')->name($module, $method); if ($type->getFieldId('publish_time')) { $sel->order('publish_time')->desc(); } $sel->limit(0, $rss_per_page); $result = array(); foreach ($sel->result() as $res) { $result[] = $res['id']; } $exporter = new xmlExporter('rss'); $exporter->addElements($result); $exporter->setIgnoreRelations(); $umiDump = $exporter->execute(); $styleFile = CURRENT_WORKING_DIR . "/" . $xslPath; if (!is_file($styleFile)) { throw new publicException("Can't load exporter {$styleFile}"); } $doc = new DOMDocument("1.0", "utf-8"); $doc->formatOutput = XML_FORMAT_OUTPUT; $doc->loadXML($umiDump->saveXML()); if (!$elementId) { $elementId = umiHierarchy::getInstance()->getDefaultElementId(); } $element = umiHierarchy::getInstance()->getElement($elementId); $language = langsCollection::getInstance()->getLang($element->getLangId())->getPrefix(); $link = umiHierarchy::getInstance()->getPathById($elementId); $description = $element->getIsDefault() ? '' : $element->getName(); $templater = umiTemplater::create('XSLT', $styleFile); $templater->setAdditionalVariables(array('link' => $link, 'description' => $description, 'language' => $language)); $resultXml = $templater->parse($doc); $buffer = outputBuffer::current(); $buffer->contentType('text/xml'); $buffer->clear(); $buffer->push($resultXml); $buffer->end(); }
class umiTemplaterTPLTest extends umiTestCase {protected static $templater;public static function setUpBeforeClass() {self::$templater = umiTemplater::create('TPL', dirname(__FILE__) . "/data/umiTemplaterTPLTest.tpl");}public function testValidInstance() {$this->assertInstanceOf('umiTemplaterTPL', self::$templater);}public function testGetTemplates() {$v5a5dd4fd29235b1438d822b2a353c386 = self::$templater->getTemplatesSource();$v4dbdfdb5f7e507c8955733a7117cb0b3 = self::$templater->getTemplates($v5a5dd4fd29235b1438d822b2a353c386, 'template1', 'template2', 'template3');$v6b0e852a75c7df2e71d825ff0b3e1f6c = array(0 => 'template1', 1 => 'template2', 2 => 'template3');$this->assertEquals($v6b0e852a75c7df2e71d825ff0b3e1f6c, $v4dbdfdb5f7e507c8955733a7117cb0b3);}}?>