46
Шаблоны XSLT / Re:Выгрузка в YML
« : 28 Апреля 2014, 15:23:39 »
Код пробовал
Результат 1 в 1 - ошибка
выгрузку попробую чуть позже сделать
Результат 1 в 1 - ошибка
выгрузку попробую чуть позже сделать
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
<?xml version="1.0" encoding="UTF-8"?>
<!--
TODO: // Write here your own templates
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl"
xmlns:udt="http://umi-cms.ru/2007/UData/templates"
extension-element-prefixes="php"
exclude-result-prefixes="xsl php udt">
<xsl:template match="page[basetype/@method = 'object']">
<xsl:param name="price" select="document(concat('udata://emarket/price/', @id, '/0/0'))/udata/price/actual" />
<xsl:if test="$price > 0">
<offer id="{@id}">
<xsl:choose>
<xsl:when test=".//property[@name = $vendor]/value != '' and .//property[@name = $model]/value != ''">
<xsl:attribute name="type">vendor.model</xsl:attribute>
</xsl:when>
<xsl:when test=".//property[@name = $isbn]/value != ''">
<xsl:attribute name="type">book</xsl:attribute>
</xsl:when>
<xsl:when test=".//property[@name = $title]/value != ''">
<xsl:attribute name="type">artist.title</xsl:attribute>
</xsl:when>
<xsl:when test=".//property[@name = $place]/value != ''">
<xsl:attribute name="type">event-ticket</xsl:attribute>
</xsl:when>
<xsl:when test=".//property[@name = $transport]/value != ''">
<xsl:attribute name="type">tour</xsl:attribute>
</xsl:when>
</xsl:choose>
<xsl:attribute name="available">
<xsl:choose>
<xsl:when test=".//property[@name = 'common_quantity']/value > 0"><xsl:text>true</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>false</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<url><xsl:value-of select="concat('http://', /umidump/meta/domain, @link)" /></url>
<price><xsl:value-of select="$price"/></price>
<currencyId>
<xsl:choose>
<xsl:when test="string-length($default-currency)"><xsl:value-of select="$default-currency" /></xsl:when>
<xsl:otherwise>RUR</xsl:otherwise>
</xsl:choose>
</currencyId>
<categoryId><xsl:value-of select="@parentId"/></categoryId>
<xsl:if test=".//property[@name = 'photo']/value != ''">
<picture>
<xsl:value-of select="concat('http://', /umidump/meta/domain, .//property[@name = 'photo']/value)"/>
</picture>
</xsl:if>
<!--
<delivery>!!!delivery(true|false)!!!</delivery>
-->
<xsl:choose>
<!-- vendor.model -->
<xsl:when test="(.//property[@name = $vendor]/value != '') and (.//property[@name = $model]/value != '')">
<xsl:if test=".//property[@name = $typePrefix]/value != ''">
<typePrefix><xsl:value-of select=".//property[@name = $typePrefix]/value"/></typePrefix>
</xsl:if>
<vendor><xsl:value-of select=".//property[@name = $vendor]/value"/></vendor>
<model><xsl:value-of select=".//property[@name = $model]/value"/></model>
</xsl:when>
<!-- book -->
<xsl:when test=".//property[@name = $isbn]/value != ''">
<xsl:if test=".//property[@name = $author]/value != ''">
<author><xsl:value-of select=".//property[@name = $author]/value"/></author>
</xsl:if>
<name><xsl:value-of select="name"/></name>
<xsl:if test=".//property[@name = $publisher]/value != ''">
<publisher><xsl:value-of select=".//property[@name = $publisher]/value"/></publisher>
</xsl:if>
<xsl:if test=".//property[@name = $series]/value != ''">
<series><xsl:value-of select=".//property[@name = $series]/value"/></series>
</xsl:if>
<xsl:if test=".//property[@name = $year]/value != ''">
<year><xsl:value-of select=".//property[@name = $year]/value"/></year>
</xsl:if>
<xsl:if test=".//property[@name = $isbn]/value != ''">
<ISBN><xsl:value-of select=".//property[@name = $isbn]/value"/></ISBN>
</xsl:if>
</xsl:when>
<!-- artist.title -->
<xsl:when test=".//property[@name = $title]/value != ''">
<xsl:if test=".//property[@name = $artist]/value != ''">
<artist><xsl:value-of select=".//property[@name = $artist]/value"/></artist>
</xsl:if>
<title><xsl:value-of select=".//property[@name = $title]/value"/></title>
<xsl:if test=".//property[@name = $year]/value != ''">
<year><xsl:value-of select=".//property[@name = $year]/value"/></year>
</xsl:if>
<xsl:if test=".//property[@name = $media]/value != ''">
<media><xsl:value-of select=".//property[@name = $media]/value"/></media>
</xsl:if>
<xsl:if test=".//property[@name = $starring]/value != ''">
<starring><xsl:value-of select=".//property[@name = $starring]/value"/></starring>
</xsl:if>
<xsl:if test=".//property[@name = $director]/value != ''">
<director><xsl:value-of select=".//property[@name = $director]/value"/></director>
</xsl:if>
<xsl:if test=".//property[@name = $originalName]/value != ''">
<originalName><xsl:value-of select=".//property[@name = $originalName]/value"/></originalName>
</xsl:if>
<xsl:if test=".//property[@name = $country]/value != ''">
<country><xsl:value-of select=".//property[@name = $country]/value"/></country>
</xsl:if>
</xsl:when>
<!-- event-ticket -->
<xsl:when test=".//property[@name = $place]/value != ''">
<name><xsl:value-of select="name"/></name>
<place><xsl:value-of select=".//property[@name = $place]/value"/></place>
<xsl:if test="(.//property[@name = $hall]/value != '') and (.//property[@name = $hall-plan]/value != '')">
<hall plan="{.//property[@name = $hall-plan]/value}"><xsl:value-of select=".//property[@name = $hall]/value"/></hall>
</xsl:if>
<xsl:if test=".//property[@name = $hall_part]/value != ''">
<hall_part><xsl:value-of select=".//property[@name = $hall_part]/value"/></hall_part>
</xsl:if>
<xsl:if test=".//property[@name = $date]/value != ''">
<date><xsl:value-of select=".//property[@name = $date]/value"/></date>
</xsl:if>
<xsl:if test=".//property[@name = $is_premiere]/value != ''">
<is_premiere><xsl:value-of select=".//property[@name = $is_premiere]/value"/></is_premiere>
</xsl:if>
<xsl:if test=".//property[@name = $is_kids]/value != ''">
<is_kids><xsl:value-of select=".//property[@name = $is_kids]/value"/></is_kids>
</xsl:if>
</xsl:when>
<!-- tour -->
<xsl:when test=".//property[@name = $transport]/value != ''">
<xsl:if test=".//property[@name = $worldRegion]/value != ''">
<worldRegion><xsl:value-of select=".//property[@name = $worldRegion]/value"/></worldRegion>
</xsl:if>
<xsl:if test=".//property[@name = $country]/value != ''">
<country><xsl:value-of select=".//property[@name = $country]/value"/></country>
</xsl:if>
<xsl:if test=".//property[@name = $region]/value != ''">
<region><xsl:value-of select=".//property[@name = $region]/value"/></region>
</xsl:if>
<xsl:if test=".//property[@name = $days]/value != ''">
<days><xsl:value-of select=".//property[@name = $days]/value"/></days>
</xsl:if>
<xsl:if test=".//property[@name = $dataTour]/value != ''">
<dataTour><xsl:value-of select=".//property[@name = $dataTour]/value"/></dataTour>
</xsl:if>
<name><xsl:value-of select="name"/></name>
<xsl:if test=".//property[@name = $hotel_stars]/value != ''">
<hotel_stars><xsl:value-of select=".//property[@name = $hotel_stars]/value"/></hotel_stars>
</xsl:if>
<xsl:if test=".//property[@name = $room]/value != ''">
<room><xsl:value-of select=".//property[@name = $room]/value"/></room>
</xsl:if>
<xsl:if test=".//property[@name = $meal]/value != ''">
<meal><xsl:value-of select=".//property[@name = $meal]/value"/></meal>
</xsl:if>
<xsl:if test=".//property[@name = $included]/value != ''">
<included><xsl:value-of select=".//property[@name = $included]/value"/></included>
</xsl:if>
<xsl:if test=".//property[@name = $transport]/value != ''">
<transport><xsl:value-of select=".//property[@name = $transport]/value"/></transport>
</xsl:if>
<xsl:if test=".//property[@name = 'price_min']/value != ''">
<price_min><xsl:value-of select=".//property[@name = 'price_min']/value"/></price_min>
</xsl:if>
<xsl:if test=".//property[@name = 'price_max']/value != ''">
<price_max><xsl:value-of select=".//property[@name = 'price_max']/value"/></price_max>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<name><xsl:value-of select="name"/></name>
</xsl:otherwise>
</xsl:choose>
<xsl:if test=".//property[@name = 'description']/value != ''">
<description><xsl:value-of select=".//property[@name = 'description']/value"/></description>
</xsl:if>
<xsl:if test=".//property[@name = 'bar_code']/value != '' and string-length(.//property[@name = 'bar_code']/value) < 13">
<barcode><xsl:value-of select=".//property[@name = 'bar_code']/value"/></barcode>
</xsl:if>
<xsl:variable name="type_id" select="@type-id" />
<xsl:variable name="page_id" select="@id" />
<xsl:apply-templates select="../../types/type[@id = $type_id]" mode="filterable">
<xsl:with-param name="page_id" select="$page_id" />
</xsl:apply-templates>
</offer>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<xsl:template match="page[basetype/@method = 'object']">
</xsl:template>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl"
xmlns:udt="http://umi-cms.ru/2007/UData/templates"
extension-element-prefixes="php"
exclude-result-prefixes="xsl php udt">
<xsl:param name="price" select="number(.//property[@name = 'price']/value)" />
<xsl:param name="price" select="document(concat('udata://emarket/price/', @id, '/0/0'))/udata/price/actual" />
<xsl:value-of select="document(concat('udata://emarket/price/', @id))/udata/price/actual" />
<form enctype="multipart/form-data" method="post" action="/users/custom_adress_do/" role="form">
<div xmlns="" class="form-group70 form-group required">
<label for="field70">Город:</label>
<input type="text" name="data[854][city]" id="field70" placeholder="" class="form-control" value="4">
</div>
<div xmlns="" class="form-group71 form-group required">
<label for="field71">Улица:</label>
<input type="text" name="data[854][street]" id="field71" placeholder="" class="form-control" value="5">
</div>
<div xmlns="" class="form-group72 form-group required">
<label for="field72">Дом:</label>
<input type="text" name="data[854][house]" id="field72" placeholder="" class="form-control" value="6">
</div>
<div xmlns="" class="form-group73 form-group ">
<label for="field73">Квартира:</label>
<input type="text" name="data[854][flat]" id="field73" placeholder="" class="form-control" value="7">
</div>
<div xmlns="" class="form-group433 form-group ">
<label for="field433">Корпус:</label>
<input type="text" name="data[854][korpus]" id="field433" placeholder="" class="form-control">
</div>
<div xmlns="" class="form-group434 form-group ">
<label for="field434">Телефон:</label>
<input type="text" name="data[854][telefon]" id="field434" placeholder="" class="form-control">
</div>
<button type="submit" class="btn btn-default pull-right">Сохранить</button>
</form>
<ul style="overflow: hidden; list-style: none;">
<xsl:for-each select="$user//properties/group[@name='more_info']/property[@name='delivery_addresses']/value/item">
<li style="overflow: hidden; overflow: hidden; border: 1px solid silver; padding: 0px 20px 20px; margin-bottom: 20px;">
<h5><xsl:value-of select="document(concat('uobject://',@id))/udata/object/properties/group/property[@name='street']" /></h5>
<form enctype="multipart/form-data" method="post" action="/users/custom_adress_do/" role="form">
<xsl:apply-templates select="document(concat('udata://data/getEditForm/',@id))/udata" />
<button type="submit" class="btn btn-default pull-right">&save;</button>
</form>
</li>
</xsl:for-each>
</ul>
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="data" method="getEditForm" generation-time="0.009451">
<group name="common" title="Основное">
<field name="country" title="Страна" field_id="67" input_name="data[854][country]" type="string" id="67" required="required">1</field>
<field name="index" title="Почтовый индекс" field_id="68" input_name="data[854][index]" type="int" id="68" required="required">2</field>
<field name="region" title="Регион" field_id="69" input_name="data[854][region]" type="string" id="69">3</field>
<field name="city" title="Город" field_id="70" input_name="data[854][city]" type="string" id="70" required="required">4</field>
<field name="street" title="Улица" field_id="71" input_name="data[854][street]" type="string" id="71" required="required">5</field>
<field name="house" title="Дом" field_id="72" input_name="data[854][house]" type="string" id="72" required="required">6</field>
<field name="flat" title="Квартира" field_id="73" input_name="data[854][flat]" type="string" id="73">7</field>
</group>
</udata>
public function custom_adress_do($template = "default") {
$objectsCollection = umiObjectsCollection::getInstance();
$cmsController = cmsController::getInstance();
$object_id = (int) getRequest('param0');
if(!permissionsCollection::getInstance()->isOwnerOfObject($object_id)) {
return "%data_edit_foregin_object%";
}
$object = $objectsCollection->getObject($object_id);
$data_module = $cmsController->getModule('data');
$data_module->saveEditedObject($object_id);
$object->commit();
$url = getRequest("from_page");
if (!$url) {
$url = ($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : $this->pre_lang . "/users/settings/";
}
$this->redirect($url);
}
<xsl:variable name="discountId" select="document(concat('udata://emarket/price/',page/@id))/udata/discount/@id" />
<xsl:value-of select="document(concat('uobject://',$discountId,'.discount_rules_id'))/udata/property/value/item/@id" />
<xsl:value-of select="document(concat('uobject://',$discountId,'.discount_rules_id'))/udata/property/value/item[@name='dateRange']/@id" />
<xsl:value-of select="document(concat('udata://emarket/price/',page/@id))" />
.........
18000
14400
..........
<xsl:value-of select="document('uobject://834.end_date')//value" />