Example #1
0
		public function onCronSyncCurrency(iUmiEventPoint $event) {
			$regedit = regedit::getInstance();
			if(!$regedit->getVal('//modules/emarket/enable-currency')) return false;
			
			$config = mainConfiguration::getInstance();
			$sourceUrl = $config->get('modules', 'emarket.currency.sync.source');
			$xslPath = CURRENT_WORKING_DIR .'/xsl/currencies/' . $config->get('modules', 'emarket.currency.sync.xsl');
			
			$originalXml = umiRemoteFileGetter::get($sourceUrl);
			if(function_exists('mb_detect_encoding') && (mb_detect_encoding($originalXml, "UTF-8, ISO-8859-1, GBK, CP1251") != "UTF-8")) {
				$originalXml = iconv ("CP1251", "UTF-8", $originalXml);
				$originalXml = preg_replace("/(encoding=\"windows-1251\")/i", "encoding=\"UTF-8\"", $originalXml);
			}
			
			$xslt = new xsltProcessor;
			$dom = new DomDocument();
			$dom->loadXML($originalXml);
			$xslt->importStyleSheet(DomDocument::load($xslPath));
			$resultXml = $xslt->transformToXML($dom);
			$tmpPath = SYS_CACHE_RUNTIME . 'tmpcurrencies.xml';
			file_put_contents($tmpPath, $resultXml);
			
			$currenciesList = new baseXmlConfig($tmpPath);
			$currencies = $currenciesList->getList('/Exchange/Exchange_Rates', array (
				'code'		=> '/New_Country',
				'rate'		=> '/Rate',
				'nominal'	=> '/Nominal'
			));
			
			foreach($currencies as $currencyInfo) {
				$code = getArrayKey($currencyInfo, 'code');
				
				try {
					if($currency = $this->getCurrency($code)) {
						$currency->nominal = getArrayKey($currencyInfo, 'nominal');
						$currency->rate = getArrayKey($currencyInfo, 'rate');
						$currency->commit();
					}
				} catch(privateException $e) {}
			}
			
			unlink($tmpPath);
		}
Example #2
0
function PageMaker($xmlfile, $xslfile)
{
    global $options, $id, $df, $cacheLifeTime;
    # Инициализация системы кэширования
    // Подключаем класс вывода PEAR::Cache_Lite
    require_once 'cache/output.php';
    // Создаем объект класса Cache_Lite_Output
    $cache = new Cache_Lite_Output($options);
    // Устанавливаем время жизни кэша для данной части
    $cache->setLifeTime($cacheLifeTime[$id]);
    if (!$cache->start($id)) {
        # Передаем путь к запрошенному документу на вход модуля анализа и преобразования XML+XSLT,
        # формирующего на выходе запрошенный документ в XHTML-формате.
        require_once "inc/nstoxhtml.inc";
        require_once "inc/setformat.inc";
        require_once "inc/nocache.inc";
        $outputformat = 'xml';
        //if ($xslfile !== "xsl/rbcrss.xsl") $xslfile = "xsl/layout.xsl";
        $domxml = new DOMDocument();
        $domxml->substituteEntities = true;
        $domxml->load($xmlfile);
        @fclose($df);
        # Снимаем блокировку с файла *
        $domxsl = new DOMDocument();
        $domxsl->load($xslfile);
        setOutputFormat($domxsl, $outputformat);
        $xsl = new xsltProcessor();
        $xsl->importStylesheet($domxsl);
        $outdom = $xsl->transformtoDOC($domxml);
        $outdom = nstoxhtml($outdom);
        $outdom->formatoutput = true;
        nocache();
        $page = $outdom->saveXML();
        echo TrimStr($page);
        $cache->end();
    }
}
 protected function addRequestParams(xsltProcessor $v801f7201346b43f8ee8390a1ef20ddcd, $vf1f713c9e000f5d3f280adbd124df4f5, $v851f5ac9941d720844d143ed9cfcf60a = "")
 {
     foreach ($vf1f713c9e000f5d3f280adbd124df4f5 as $v3c6e0b8a9c15224a8228b9a98ca1531d => $v3a6d0284e743dc4a9b86f97d6dd1a3bf) {
         $v3c6e0b8a9c15224a8228b9a98ca1531d = strtolower($v3c6e0b8a9c15224a8228b9a98ca1531d);
         if (!is_array($v3a6d0284e743dc4a9b86f97d6dd1a3bf)) {
             if (strpos($v3a6d0284e743dc4a9b86f97d6dd1a3bf, "'") !== false && strpos($v3a6d0284e743dc4a9b86f97d6dd1a3bf, "\"") !== false) {
                 $v3a6d0284e743dc4a9b86f97d6dd1a3bf = str_replace("'", "\\\"", $v3a6d0284e743dc4a9b86f97d6dd1a3bf);
             }
             $v3c6e0b8a9c15224a8228b9a98ca1531d = str_replace(array(':'), array(''), $v3c6e0b8a9c15224a8228b9a98ca1531d);
             $v801f7201346b43f8ee8390a1ef20ddcd->setParameter("", $v851f5ac9941d720844d143ed9cfcf60a . $v3c6e0b8a9c15224a8228b9a98ca1531d, $v3a6d0284e743dc4a9b86f97d6dd1a3bf);
         } else {
             $this->addRequestParams($v801f7201346b43f8ee8390a1ef20ddcd, $v3a6d0284e743dc4a9b86f97d6dd1a3bf, $v851f5ac9941d720844d143ed9cfcf60a . $v3c6e0b8a9c15224a8228b9a98ca1531d . ".");
         }
     }
 }
Example #4
0
 /**
  * Builder::Transform()
  * 
  * @param mixed $xslfile
  * @param bool $return
  * @return
  */
 public function Transform($xslfile, $return = false)
 {
     if (Param('_Debug')) {
         header("Content-type: text/xml");
         echo $this->asXML();
         die;
         // exit();
     }
     if (class_exists('xsltCache')) {
         $xslt = new xsltCache();
         $xslt->importStyleSheet(TPL_DIR . $xslfile);
     } else {
         $xslt = new xsltProcessor();
         $xsltDoc = new DomDocument();
         $xsltDoc->load(TPL_DIR . $xslfile);
         $xslt->importStyleSheet($xsltDoc);
     }
     $result = $xslt->transformToXML($this->doc);
     if (!$return) {
         header("Content-type: text/html");
         print $result;
         return null;
     }
     return $result;
 }
Example #5
0
function Transform($n)
{
    $xml = new DOMDocument();
    $xml->loadXML("<dummy/>");
    $xpath = new DOMXPath($n->ownerDocument);
    $xpath->registerNameSpace("txs", "http://www.agencexml.com/txs");
    $xpath->registerNameSpace("xsl", "http://www.w3.org/1999/XSL/Transform");
    if ($xpath->query("txs:input", $n)->length == 0) {
        $xml->documentElement->parentNode->replaceChild($xml->importNode($n->firstChild, true), $xml->documentElement);
    } else {
        $root = $xml->importNode($xpath->query("txs:input/*", $n)->item(0), true);
        $xml->documentElement->parentNode->replaceChild($root, $xml->documentElement);
        $rootNodes = $xpath->query("txs:input/node()", $n);
        for ($i = 0; $i < $rootNodes->length; $i++) {
            $cur = $rootNodes->item($i);
            if ($cur->nodeType == XML_PI_NODE) {
                $root->parentNode->insertBefore($root->ownerDocument->importNode($cur, true), $root);
            }
        }
    }
    $xsl = new DOMDocument();
    $stsh = $n->getAttribute("stylesheet");
    if ($stsh != "") {
        if (substr($stsh, 0, 1) == "#") {
            $stns = $xpath->query("//xsl:stylesheet[@txs:name='" . substr($stsh, 1) . "']");
            $xsl->loadXML("<dummy/>");
            $xsl->documentElement->parentNode->replaceChild($xsl->importNode($stns->item(0), true), $xsl->documentElement);
        } else {
            $xsl->load($stsh);
        }
    } else {
        $xsl->loadXML("<dummy/>");
        $xsl->documentElement->parentNode->replaceChild($xsl->importNode($xpath->query("txs:stylesheet/*", $n)->item(0), true), $xsl->documentElement);
    }
    $xslp = new xsltProcessor();
    $xslp->importStyleSheet($xsl);
    $prms = $xpath->query("txs:with-param", $n);
    foreach ($prms as $prm) {
        $xslp->setParameter("", $prm->getAttribute("name"), $prm->getAttribute("value"));
    }
    $result = $xslp->transformToXml($xml);
    if (substr($result, 0, 1) == "<") {
        $xRes = new DOMDocument();
        $xRes->loadXML($result);
        $n->parentNode->replaceChild($n->ownerDocument->importNode($xRes->documentElement, true), $n);
    } else {
        $n->parentNode->replaceChild($n->ownerDocument->createCDATASection($result), $n);
    }
}
Example #6
0
function Transform($xslfile, $xml, $return = false)
{
    if (Param('_Debug')) {
        header("Content-type: text/xml");
        print $xml;
        exit;
    }
    if (5 == 5) {
        if (class_exists('xsltCache')) {
            $xslt = new xsltCache();
            $xslt->importStyleSheet(TPL_DIR . $xslfile);
        } else {
            $xslt = new xsltProcessor();
            $xsltDoc = DomDocument::load(TPL_DIR . $xslfile);
            $xslt->importStyleSheet($xsltDoc);
        }
        //    $result = $xslt->transformToXML(DomDocument::loadXML($xml));
        $doc = new DOMDocument();
        $load_succesfull = @$doc->loadXML($xml);
        if (!$load_succesfull) {
            $result = $xslt->transformToXML(iceERROR('XML', $xml));
        } else {
            $result = $xslt->transformToXML($doc);
        }
    } else {
        //    ob_end_clean();
        $xslt = domxml_xslt_stylesheet_file(TPL_DIR . $xslfile);
        $dom = @domxml_open_mem($xml);
        if (!$dom) {
            $dom = domxml_open_mem(iceERROR('XML', $xml));
        }
        $final = $xslt->process($dom);
        print serialize($xslt);
        exit;
        $load_end_time = microtime(true);
        $result = $xslt->result_dump_mem($final);
        unset($dom);
        unset($xslt);
    }
    if (!$return) {
        header("Content-type: text/html");
        print $result;
    } else {
        //print $b; // ajax "<sajax>" string
        return $result;
    }
}
Example #7
0
 protected function transform_xsl($url, $xsl_filename, $isstring = 0)
 {
     if (strrchr($url, 'http://') || $this->text != '') {
         if (strrchr($url, '#')) {
             $fragment = array_pop(explode('#', $url));
         }
         if ($this->text != '') {
             $this->use_store = 0;
             $title = 'Using direct Input';
             $url = $this->path . 'direct/';
             $html = method_exists('tidy', 'cleanRepair') ? $this->tidy_html(urldecode($this->text), '', 'php') : urldecode($this->text);
         } else {
             $html = $this->get_file_contents($url);
         }
         if (strlen(trim($html)) === 0) {
             return $this->error('noURL');
         }
         $dom = new DOMDocument('1.0');
         $dom->preserveWhiteSpace = false;
         if ($this->text != '') {
             @$dom->loadXML($html);
         } else {
             @$dom->loadXML($this->tidy_html($html, $url, $this->tidy_option));
         }
         $dom->formatOutput = true;
         $dom->normalizeDocument();
         $title = !isset($title) ? $dom->getElementsByTagName('title')->item(0)->nodeValue : $title;
         if ($this->type == 'rdfa' && !$dom->getElementsByTagName('html')->item(0)->getAttribute('xmlns')) {
             $dom->getElementsByTagName('html')->item(0)->setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');
         }
         if (isset($fragment)) {
             $dom->relaxNGValidateSource($this->valid_schema());
             $element = $dom->getElementById($fragment);
             $content = $dom->saveXML($element);
             $dom = $this->return_html_frag($content, $title);
         }
         if (!method_exists('xsltProcessor', 'transformToXML')) {
             die("Sorry PHP xslt functions unavailable");
         }
         $xslt = new xsltProcessor();
         $xslt->setParameter('', 'transformr', $this->path);
         $xslt->setParameter('', 'url', $url);
         $xslt->setParameter('', 'request-uri', $_SERVER['REQUEST_URI']);
         $xslt->setParameter('', 'base-uri', $url);
         $xslt->setParameter('', 'doc-title', $title);
         $xslt->setParameter('', 'version', $this->version);
         if ($this->use_store == 1) {
             $xslt->setParameter('', 'endpoint-link', $this->path . 'sparql/endpoint?');
         }
         $xslt->importStyleSheet(DomDocument::load($xsl_filename));
         if (!@DomDocument::loadXML($dom->saveXML())) {
             $dom = @DomDocument::loadXML($this->tidy_html($html, $url, $this->tidy_option, 'output-xml'));
             // reload as plain vanilla xml
             if (!$dom) {
                 return $this->error('invalidDoc');
             }
         }
         return $xslt->transformToXML(@DomDocument::loadXML($dom->saveXML()));
     } elseif ($url == 'referer' && getenv("HTTP_REFERER") != '') {
         $referer = getenv("HTTP_REFERER");
         return $this->transform_xsl($referer, $xsl_filename);
     } elseif (getenv("HTTP_REFERER") != '' && $url != '') {
         $referer = getenv("HTTP_REFERER");
         return $this->transform_xsl($referer . '#' . $url, $xsl_filename);
     } else {
         return $this->error('noURL');
     }
 }
Example #8
0
<?php

session_start();
header("Content-Type: text/xml");
ob_start();
print "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
$db = mysql_connect("localhost", "root", "123") or die('<error>Unable to connect to mysql server. try edit index.php file</error>');
if (!mysql_select_db('lab3')) {
    sql_install();
}
include_once 'common.php';
mysql_close($db);
$xml = ob_get_contents();
ob_end_clean();
$xslt = new xsltProcessor();
$xslt->importStyleSheet(DomDocument::load('common.xsl'));
print $xslt->transformToXML(DomDocument::loadXML($xml));
//print $xml;
function sql_install()
{
    mysql_query("CREATE DATABASE lab3;");
    mysql_select_db('lab3');
    mysql_query("\r\n\t\tCREATE TABLE IF NOT EXISTS lab3_category (\r\n\t\t`c_category` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, \r\n\t\t`c_category_name` varchar(50) NOT NULL, \r\n\t\t`c_added_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, \r\n\t\t`c_added_user` int(10) NOT NULL DEFAULT '0', \r\n\t\t`c_sortorder` mediumint(5) NOT NULL DEFAULT '10000' \r\n\t\t);\r\n\t\t");
    mysql_query("\r\n\t\tCREATE TABLE IF NOT EXISTS lab3_user (\r\n\t\t`u_user` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, \r\n\t\t`u_name` varchar(50) NOT NULL, \r\n\t\t`u_password` varchar(32) NOT NULL DEFAULT '', \r\n\t\t`u_group` mediumint(5) NOT NULL DEFAULT '9', \r\n\t\t`u_extra` text,\r\n\t\tUNIQUE (`u_name`)\r\n\t\t);\r\n\t\t");
    mysql_query("\r\n\t\tCREATE TABLE IF NOT EXISTS lab3_theme (\r\n\t\t`t_theme` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, \r\n\t\t`t_category` int(10) NOT NULL, \r\n\t\t`t_theme_name` varchar(50) NOT NULL, \r\n\t\t`t_added_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, \r\n\t\t`t_added_user` int(10) NOT NULL DEFAULT '0', \r\n\t\t`t_sortorder` mediumint(5) NOT NULL DEFAULT '10000' \r\n\t\t);\r\n\t\t");
    mysql_query("\r\n\t\tCREATE TABLE IF NOT EXISTS lab3_test (\r\n\t\t`e_test` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, \r\n\t\t`e_test_name` varchar(50) NOT NULL, \r\n\t\t`e_added_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, \r\n\t\t`e_added_user` int(10) NOT NULL DEFAULT '0', \r\n\t\t`e_sortorder` mediumint(5) NOT NULL DEFAULT '10000',\r\n\t\t`e_limit` mediumint(5) NOT NULL DEFAULT '1'\r\n\t\t);\r\n\t\t");
    mysql_query("\r\n\t\tCREATE TABLE IF NOT EXISTS lab3_test_theme (\r\n\t\t`tt_id` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, \r\n\t\t`tt_test` int(10) NOT NULL, \r\n\t\t`tt_theme` int(10) NOT NULL\r\n\t\t);\r\n\t\t");
    mysql_query("\r\n\t\tCREATE TABLE IF NOT EXISTS lab3_question (\r\n\t\t`q_question` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, \r\n\t\t`q_theme` int(10) NOT NULL, \r\n\t\t`q_type` mediumint(5) NOT NULL DEFAULT '0', \r\n\t\t`q_text` text NOT NULL, \r\n\t\t`q_correct_answer` text NOT NULL, \r\n\t\t`q_added_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, \r\n\t\t`q_added_user` int(10) NOT NULL DEFAULT '0', \r\n\t\t`q_sortorder` mediumint(5) NOT NULL DEFAULT '10000',\r\n\t\t`q_correct_tries` mediumint(5) NOT NULL DEFAULT '0', \r\n\t\t`q_tries` mediumint(5) NOT NULL DEFAULT '0'\r\n\t\t);\r\n\t\t");
    mysql_query("\r\n\t\tCREATE TABLE IF NOT EXISTS lab3_answer (\r\n\t\t`a_answer` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, \r\n\t\t`a_question` int(10) NOT NULL, \r\n\t\t`a_text` text NOT NULL, \r\n\t\t`a_type` mediumint(5) NOT NULL DEFAULT '0', \r\n\t\t`a_sortorder` mediumint(5) NOT NULL DEFAULT '10000'\r\n\t\t);\r\n\t\t");
    mysql_query("\r\n\t\tCREATE TABLE IF NOT EXISTS lab3_solution (\r\n\t\t`s_solution` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, \r\n\t\t`s_question` int(10) NOT NULL, \r\n\t\t`s_parent` int(10) NOT NULL, \r\n\t\t`s_child` int(10) \r\n\t\t);\r\n\t\t");
    mysql_query("\r\n\t\tCREATE TABLE IF NOT EXISTS lab3_result (\r\n\t\t`r_result` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT, \r\n\t\t`r_test` int(10) NOT NULL, \r\n\t\t`r_user` int(10) NOT NULL, \r\n\t\t`r_text` text, \r\n\t\t`r_started_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, \r\n\t\t`r_ended_timestamp` TIMESTAMP\r\n\t\t);\r\n\t\t");
Example #9
0
function xslfilter($buffer)
{
    global $__xslfilter_debug;
    global $__xslfilter_phpfunc;
    global $__xslfilter_prehook;
    global $__xslfilter_posthook;
    global $__xslfilter_start_utime;
    global $__xslfilter_i18n;
    if (empty($buffer)) {
        return false;
    }
    if ($__xslfilter_debug) {
        return false;
    }
    libxml_use_internal_errors(true);
    if (!array_key_exists('WEB_LAYOUT', $_SERVER) && !array_key_exists('XSL_DIR', $_SERVER) && !array_key_exists('XSL_STYLESHEET', $_SERVER)) {
        return __xslfilter_do_error("Missing stylesheet information", "None of the environment variables <code>WEB_LAYOUT</code>, " . "<code>XSL_DIR</code> or <code>XSL_STYLESHEET</code> " . "have been defined");
    }
    libxml_clear_errors();
    // Load document
    $doc = new DOMDocument();
    if (!$doc->loadXML($buffer, LIBXML_NONET)) {
        return __xslfilter_do_error("Error in current document", __xslfilter_build_xmlerrors(libxml_get_errors()));
    }
    // Processing instruction
    if ($r = __xslfilter_process_pi($doc)) {
        return $r;
    }
    // XSLT Processor
    $xslt = new xsltProcessor();
    // Basic information
    $xslt->setParameter('', 'lastmod', gmstrftime("%Y%m%d%H%M%SZ", getlastmod()));
    $xslt->setParameter('', 'now', gmstrftime("%Y%m%d%H%M%SZ", time()));
    // Information about http request
    $xslt->setParameter('', 'http-referer', array_key_exists('HTTP_REFERER', $_SERVER) ? $_SERVER['HTTP_REFERER'] : null);
    $xslt->setParameter('', 'request-uri', array_key_exists('REQUEST_URI', $_SERVER) ? $_SERVER['REQUEST_URI'] : null);
    $xslt->setParameter('', 'base-uri', array_key_exists('SCRIPT_FILENAME', $_SERVER) ? dirname($_SERVER['SCRIPT_FILENAME']) : null);
    $xslt->setParameter('', 'server-name', array_key_exists('SERVER_NAME', $_SERVER) ? $_SERVER['SERVER_NAME'] : null);
    $xslt->setParameter('', 'secure', array_key_exists('HTTPS', $_SERVER) ? 'true' : null);
    $xslt->setParameter('', 'protocol', array_key_exists('HTTPS', $_SERVER) ? 'https' : 'http');
    if (($script_uri = parse_url($_SERVER['SCRIPT_URI'])) !== false) {
        $xslt->setParameter('', 'uri-scheme', @$script_uri['scheme']);
        $xslt->setParameter('', 'uri-host', @$script_uri['host']);
        $xslt->setParameter('', 'uri-port', @$script_uri['port']);
        $xslt->setParameter('', 'uri-path', @$script_uri['path']);
        $xslt->setParameter('', 'uri-query', @$script_uri['query']);
        $xslt->setParameter('', 'uri-fragment', @$script_uri['fragment']);
    } else {
        $xslt->setParameter('', 'uri-scheme', null);
        $xslt->setParameter('', 'uri-host', null);
        $xslt->setParameter('', 'uri-port', null);
        $xslt->setParameter('', 'uri-path', null);
        $xslt->setParameter('', 'uri-query', null);
        $xslt->setParameter('', 'uri-fragment', null);
    }
    // Parameters set from apache server
    $xslt->setParameter('', 'pagedesc-default-xml', array_key_exists('WEB_LAYOUT', $_SERVER) ? $_SERVER['WEB_LAYOUT'] . '/defaults.xml' : null);
    $xslt->setParameter('', 'expect-lang', array_key_exists('expect-lang', $_SERVER) ? $_SERVER['expect-lang'] : null);
    $xslt->setParameter('', 'handheld-client', array_key_exists('handheld-client', $_SERVER) ? $_SERVER['handheld-client'] : null);
    // Pre hook
    if (!is_null($__xslfilter_prehook) && ($r = $__xslfilter_prehook($doc, $xslt)) !== true) {
        return $r;
    }
    // PHP function enabling
    if ($__xslfilter_phpfunc) {
        $xslt->registerPHPFunctions(is_array($__xslfilter_phpfunc) ? $__xslfilter_phpfunc : null);
    }
    // Lang to import localization templates
    $lang = '';
    if ($__xslfilter_i18n === null || $__xslfilter_i18n) {
        $lang = $doc->documentElement->getAttribute('lang');
    }
    if (empty($lang) && !is_null($__xslfilter_i18n) && is_string($__xslfilter_i18n)) {
        $lang = $__xslfilter_i18n;
    }
    // Listing stylesheet
    $stylesheet = array();
    if (array_key_exists('WEB_LAYOUT', $_SERVER) || array_key_exists('XSL_DIR', $_SERVER)) {
        $xsl_dir = array_key_exists('XSL_DIR', $_SERVER) ? $_SERVER['XSL_DIR'] : $_SERVER['WEB_LAYOUT'];
        $style = __xslfilter_get_stylesheet($doc, 'text/xsl');
        foreach ($style as $s) {
            if (!($href = $s['href'])) {
                continue;
            }
            if ($href[0] == '/' || preg_match('|^\\w+://|', $href)) {
                return __xslfilter_do_error("Error in current document", "Only local and relative stylesheet are allowed");
            }
            $stylesheet[] = $xsl_dir . '/' . $href;
        }
        if (empty($stylesheet) && array_key_exists('XSL_STYLESHEET', $_SERVER)) {
            $href = $_SERVER['XSL_STYLESHEET'];
            if ($href[0] != '/') {
                array_push($stylesheet, $xsl_dir . '/' . $href);
            }
        }
        if (!empty($lang)) {
            $href = 'l10n/' . $lang . '.xsl';
            if (file_exists($file = $xsl_dir . '/' . $href)) {
                $stylesheet[] = $file;
            }
        }
    } else {
        if (array_key_exists('XSL_STYLESHEET', $_SERVER)) {
            array_push($stylesheet, $_SERVER['XSL_STYLESHEET']);
            if (!empty($lang)) {
                $file = dirname($_SERVER['XSL_STYLESHEET']) . '/' . 'l10n/' . $lang . '.xsl';
                if (file_exists($file)) {
                    $stylesheet[] = $file;
                }
            }
        } else {
            return __xslfilter_do_error("No usable stylesheet", "Missing stylesheet at server and document level");
        }
    }
    // Importing stylesheet
    if (count($stylesheet) <= 1) {
        // Correct code for importing stylesheet
        // Unfortunately PHP only take into account the last import
        foreach ($stylesheet as $file) {
            libxml_clear_errors();
            $xsl = new DomDocument();
            $xsl->substituteEntities = true;
            // LIBXML_NOENT
            if (!$xsl->load($file, LIBXML_NONET)) {
                return __xslfilter_do_error("Error in stylesheet: {$href}", __xslfilter_build_xmlerrors(libxml_get_errors()));
            }
            $xslt->importStyleSheet($xsl);
        }
    } else {
        // Fix code to import several stysheets
        // By faking a top level stylesheet with import statements
        libxml_clear_errors();
        $xsl = new DomDocument('1.0');
        $xsl->substituteEntities = true;
        // LIBXML_NOENT
        $root = $xsl->createElementNS('http://www.w3.org/1999/XSL/Transform', 'xsl:stylesheet');
        $v = $xsl->createAttribute('version');
        $v->value = "1.0";
        $root->appendChild($v);
        $xsl->appendChild($root);
        foreach ($stylesheet as $file) {
            $s = $xsl->createElementNS('http://www.w3.org/1999/XSL/Transform', 'xsl:import');
            $h = $xsl->createAttribute('href');
            $h->value = $file;
            $s->appendChild($h);
            $root->appendChild($s);
        }
        $xslt->importStyleSheet($xsl);
    }
    // Applying transformation
    $r = $xslt->transformToXML($doc);
    if ($errors = libxml_get_errors()) {
        return __xslfilter_do_error("Error while rendering document", __xslfilter_build_xmlerrors($errors));
    }
    // Something wrong, but we have no clue
    if ($r == false) {
        return __xslfilter_do_error("Error while rendering document", "Check document and associated stylesheets");
    }
    // Job's done
    return $r;
}
Example #10
0
    function transform($xslfile, $xml, $no_dbg = false)
    {
        if (Param('_DBG') && !$no_dbg) {
            //print_r(debug_backtrace());
            //setcookie('111', '222');
            //die();
            header("Content-type: text/xml");
            print trim($xml);
            die;
        }
        //$phpver = explode('.', PHP_VERSION);
        //if ($phpver[0] == 5) {
        if (extension_loaded('xslcache')) {
            $xslt = new xsltCache();
            $xslt->importStyleSheet($xslfile);
        } else {
            $xslt = new xsltProcessor();
            $xsltDoc = DomDocument::load($xslfile);
            $xslt->importStyleSheet($xsltDoc);
        }
        $doc = new DOMDocument();
        $load_succesfull = $doc->loadXML($xml);
        if ((!$load_succesfull || @$_GET['_BAD_XML_TEST']) && !Param('_DBG')) {
            //error
            //Redirect( '/error.php?error=xml&url='.$_SERVER['REQUEST_URI'] );
            if (SITE == 'http://dev.starhit.ru') {
                die(file_get_contents('http://www.starhit.ru/error.php?error=xml'));
            }
            die(file_get_contents(SITE . '/error.php?error=xml'));
        } else {
            $galleries = $doc->getElementsByTagName('gallery');
            foreach ($galleries as $gallery) {
                $images = $gallery->getElementsByTagName('image');
                foreach ($images as $image) {
                    foreach ($this->dsp->ae->size as $size => $params) {
                        $img = $image->getElementsByTagName($size)->item(0);
                        $width = $img->getAttribute('width');
                        if (!$width) {
                            $img_sizes = $this->dsp->eis->GetSizeByURL($img->nodeValue);
                            $img->setAttribute('width', $img_sizes[0]);
                            $img->setAttribute('height', $img_sizes[1]);
                        }
                    }
                }
            }
            $result = $xslt->transformToXML($doc);
        }
        //}
        if (@$_GET['XSLT_INFO']) {
            echo '$xslt->hasExsltSupport(): ' . $xslt->hasExsltSupport() . '
			$xslfile: ' . $xslfile . '
			extension_loaded("xslcache"): ' . extension_loaded("xslcache") . '
			XSL_CLONE_AUTO: ' . XSL_CLONE_AUTO . '
			XSL_CLONE_NEVER: ' . XSL_CLONE_NEVER . '
			XSL_CLONE_ALWAYS: ' . XSL_CLONE_ALWAYS . '
			LIBXSLT_VERSION: ' . LIBXSLT_VERSION . '
			LIBXSLT_DOTTED_VERSION: ' . LIBXSLT_DOTTED_VERSION . '
			LIBEXSLT_VERSION: ' . LIBEXSLT_VERSION . '
			LIBEXSLT_DOTTED_VERSION: ' . LIBEXSLT_DOTTED_VERSION . '
			$xslt: ' . print_r($xslt, 1) . '
			';
            var_dump($doc->saveXML(), $xsltDoc->saveXML(), $xslt->transformToXML($doc));
            die;
        }
        return $result;
    }
Example #11
0
 private function processTransformation()
 {
     $v3d788fa62d7c185a1bee4c9147ee1091 = new DOMXpath($this->dom);
     $vca15fd43dfaeb80eb8c125735e0479b0 = $v3d788fa62d7c185a1bee4c9147ee1091->query("/sitemap/match[@pattern = '{$this->pattern}']/transform");
     foreach ($vca15fd43dfaeb80eb8c125735e0479b0 as $v36c4536996ca5615dcf9911f068786dc) {
         $v25d902c24283ab8cfbac54dfa101ad31 = $this->replaceParams($v36c4536996ca5615dcf9911f068786dc->getAttribute("src"));
         if (file_exists($v25d902c24283ab8cfbac54dfa101ad31)) {
             $vc3aaa7dd2c4cf0305f95e82438b46e82 = new DOMDocument('1.0', 'utf-8');
             $vc3aaa7dd2c4cf0305f95e82438b46e82->load($v25d902c24283ab8cfbac54dfa101ad31);
             $v801f7201346b43f8ee8390a1ef20ddcd = new xsltProcessor();
             $v801f7201346b43f8ee8390a1ef20ddcd->registerPHPFunctions();
             $v801f7201346b43f8ee8390a1ef20ddcd->importStyleSheet($vc3aaa7dd2c4cf0305f95e82438b46e82);
             $v21ffce5b8a6cc8cc6a41448dd69623c9 = $this->extractParams($v36c4536996ca5615dcf9911f068786dc);
             foreach ($v21ffce5b8a6cc8cc6a41448dd69623c9 as $vb068931cc450442b63f5b3d276ea4297 => $v2063c1608d6e0baf80249c42e2be5804) {
                 $v2063c1608d6e0baf80249c42e2be5804 = $this->replaceParams($v2063c1608d6e0baf80249c42e2be5804);
                 $v801f7201346b43f8ee8390a1ef20ddcd->setParameter("", $vb068931cc450442b63f5b3d276ea4297, $v2063c1608d6e0baf80249c42e2be5804);
             }
             $this->buffer = $v801f7201346b43f8ee8390a1ef20ddcd->transformToXML($this->loadBufferDom());
         } else {
             throw new coreException("Transformation failed. File {$v25d902c24283ab8cfbac54dfa101ad31} doesn't exists.");
         }
     }
 }
Example #12
0
    foreach ($row as $name => $value) {
        if ($value == "") {
            continue;
        }
        $textNode = $node->appendChild($doc->createElement(strtoupper($name)));
        $textNode->appendChild($doc->createTextNode($value));
    }
    // end for
}
// end while
// stylesheet files
$styleSheet = $_SERVER["DOCUMENT_ROOT"] . $TOOL_URL . "/sql/debug.xsl";
if ($SHOW_XML) {
    $styleSheet = $_SERVER["DOCUMENT_ROOT"] . $TOOL_URL . "/sql/debug.xsl";
}
$xslt = new xsltProcessor();
$xsl = DOMDocument::load($styleSheet);
$xslt->importStyleSheet($xsl);
//$xslt->registerPHPFunctions(); // allow php functions to be called using: php:function
//$xmldata = $doc->saveXML(); // complete xml document as text
//print $xslt->transformToXML($doc);
// When generating a pure XML file, use the following headers:
//header( "Content-Type: text/html; charset=utf-8;" );
//header( "Content-Encoding: utf-8" );
?>

<?php 
include $ACCOUNTS_PATH . 'include/top_header.php';
// INCLUDE THE HTML HEAD
?>
<script>
 protected function applyXslTransformation(DOMDocument $vdd988cfd769c9f7fbd795a0f5da8e751, $v6a559eac8ab38b0b76a6fca32dcb9749)
 {
     $v2245023265ae4cf87d02c8b6ba991139 = mainConfiguration::getInstance();
     if ($v6829cdfdefd69b947abedd8fa2c4bcc7 = cmsController::getInstance()->getResourcesDirectory()) {
         $vf2ce473b36fb79a44028293890c685be = $v6829cdfdefd69b947abedd8fa2c4bcc7 . "/xslt/";
     } else {
         $vf2ce473b36fb79a44028293890c685be = $v2245023265ae4cf87d02c8b6ba991139->includeParam('templates.xsl');
     }
     $v47826cacc65c665212b821e6ff80b9b0 = $vf2ce473b36fb79a44028293890c685be . $v6a559eac8ab38b0b76a6fca32dcb9749;
     if (is_file($v47826cacc65c665212b821e6ff80b9b0) == false) {
         throw new publicException("Udata trasform xsl-template was not found \"{$v47826cacc65c665212b821e6ff80b9b0}\"");
     }
     $vc3aaa7dd2c4cf0305f95e82438b46e82 = DomDocument::load($v47826cacc65c665212b821e6ff80b9b0, DOM_LOAD_OPTIONS);
     checkXmlError($vc3aaa7dd2c4cf0305f95e82438b46e82);
     $v801f7201346b43f8ee8390a1ef20ddcd = new xsltProcessor();
     $v801f7201346b43f8ee8390a1ef20ddcd->registerPHPFunctions();
     $v801f7201346b43f8ee8390a1ef20ddcd->importStyleSheet($vc3aaa7dd2c4cf0305f95e82438b46e82);
     return $v801f7201346b43f8ee8390a1ef20ddcd->transformToXML($vdd988cfd769c9f7fbd795a0f5da8e751);
 }