Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

Ancorp

  • *
  • 3
  • +0/-0
    • Просмотр профиля
помогите пожалуйста с выводом объектов на главной. У меня они выводятся случайным образом а хотелось чтоб они выходили по порядку ( порядок чтоб можно было задавать в поле при добавлении объекта) например 1, 2, 3, 4 и т.д
Объясните пожалуйста подробнее, т.к. ни разу не работал с umi

Вот вроде код который выводит объекты на моем сайте:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet SYSTEM "ulang://i18n/constants.dtd:file">

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:umi="http://www.umi-cms.ru/TR/umi">

<!--Каталог товаров и услуг-->
<xsl:template match="result[@module = 'catalog'][@method = 'category']">
<!--<div id="descr_{$pageId}_{generate-id()}" class="text" umi:element-id="{$pageId}" umi:field-name="descr" umi:field-type="wysiwyg" umi:empty="&empty-page-content;">
<xsl:apply-templates select="//property[@name = 'descr']" />
</div>-->

<div class="index_content">
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsListCustom/notemplate/',$pageId,'/0/0/4'))/udata" mode="object_list"/>
</div>
</xsl:template>

<!--Каталог на главной странице-->
<xsl:template match="udata[total != 0]" mode="object_list">
<ul class="items_catalog mainpage_items_catalog">
<xsl:apply-templates select="lines/item" mode="object_list" />
</ul>
<xsl:apply-templates select="numpages" mode="numpages" />
</xsl:template>

<xsl:template match="item" mode="object_list">
<xsl:variable name="page" select="document(concat('upage://',@id))/udata/page" />


<xsl:variable name="name" select="$page//property[@name='discount']/value" />
<xsl:variable name="rasp" select="$page//property[@name='sale']/value" />
<xsl:variable name="akc" select="$page//property[@name='akciya']/value" />
<xsl:variable name="old" select="$page//property[@name='old_price']/value" />
<xsl:variable name="new" select="$page//property[@name='price']/value" />

<li class="simple_catalog_item objectlist ll" umi:region="row" umi:element-id="{@id}" umi:delete="delete" umi:delete-text="&delete-text-catalog-object;">

<xsl:choose>
<xsl:when test="position() mod 3 = 0">
<xsl:attribute name="class">simple_catalog_item objectlist third ll</xsl:attribute>
</xsl:when>
<xsl:when test="$name!=0">
<xsl:attribute name="class">simple_catalog_item objectlist li_edit </xsl:attribute>
</xsl:when>
<xsl:when test="$name!=0 and position() mod 3 = 0">
<xsl:attribute name="class">simple_catalog_item objectlist third li_edit </xsl:attribute>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>


<xsl:if test="$сatalogTitle">
<div class="object_title object_title_top">
<a href="{@link}" umi:field-name="name" umi:field-type="string" umi:empty="&empty-name;" umi:url-attribute="href">
<xsl:value-of select="$page/name" disable-output-escaping="yes" />
</a>
</div>
<div class="object_prefix object_prefix_top" umi:field-name="prefix" umi:field-type="string" umi:empty="&empty-prefix;" >
<xsl:value-of select="$page//property[@name = 'prefix']/value" disable-output-escaping="yes"/>
</div>
</xsl:if>

<xsl:choose>
<xsl:when test="$name!=0">
<div class="procents">
<span><xsl:value-of select="$name" disable-output-escaping="yes" /> %</span>
</div>
<a href="{@link}" class="object_item_img img_li" umi:url-attribute="href">
<img src="{document(concat('udata://system/makeThumbnailFull/(',$page//property[@name = 'header_pic']/value/@path,')/214/160/void/0/1/5/0/90'))/udata/src}" />
</a>
</xsl:when>
<xsl:otherwise>
<a href="{@link}" class="object_item_img " umi:url-attribute="href">
<img src="{document(concat('udata://system/makeThumbnailFull/(',$page//property[@name = 'header_pic']/value/@path,')/214/160/void/0/1/5/0/90'))/udata/src}" />
</a>
</xsl:otherwise>
</xsl:choose>

<div class="cleaner"></div>

<xsl:if test="not($сatalogTitle)">
<div class="object_title object_title_bottom">
<xsl:if test="$name!=0">
<xsl:attribute name="class">object_title object_title_bottom </xsl:attribute>
</xsl:if>

<a href="{@link}" umi:field-name="name" umi:field-type="string" umi:empty="&empty-name;" umi:url-attribute="href">
<xsl:value-of select="$page/name" disable-output-escaping="yes" />
</a>
</div>
</xsl:if>
<div class="cleaner"></div>
<xsl:choose>
<xsl:when test="$rasp=1">
<div class="sale">
<xsl:choose>
<xsl:when test="$name"></xsl:when>
<xsl:otherwise><xsl:attribute name="class">sale mt</xsl:attribute></xsl:otherwise>
</xsl:choose>
<span>Распродажа</span>
</div>
</xsl:when>
<xsl:when test="$akc=1">
<div class="sale">
<xsl:choose>
<xsl:when test="$name"></xsl:when>
<xsl:otherwise><xsl:attribute name="class">sale mt</xsl:attribute></xsl:otherwise>
</xsl:choose>
<span>Акция</span>
</div>
</xsl:when>
<xsl:otherwise>
<div class="price">
<xsl:choose>
<xsl:when test="$name"></xsl:when>
<xsl:otherwise><xsl:attribute name="class">price mt</xsl:attribute></xsl:otherwise>
</xsl:choose>

<span class="old"><xsl:value-of select="$old" disable-output-escaping="yes" /></span>

<span class="new"><xsl:value-of select="$new" disable-output-escaping="yes" /></span>

</div>
</xsl:otherwise>
</xsl:choose>

</li>



<xsl:if test="position() mod 3 = 0">
<div class="clear_40"></div>
</xsl:if>
</xsl:template>

<xsl:template match="udata[total != 0]" mode="only_catalog_index">
<xsl:call-template name="catalog_index" />
</xsl:template>

<xsl:template match="udata[total != 0]" mode="only_special_offers_index">
<xsl:call-template name="special_offers_index" />
</xsl:template>

<xsl:template name="catalog_index">
<xsl:if test="$isAdmin = 1">
<div class="hidden hidden-text">
<span>&nbsp;&nbsp;&nbsp;&nbsp;
<span>&show-index-catalog;:</span>&nbsp;
<span umi:element-id="{$infoPageId}" umi:field-name="show_index_catalog" umi:field-type="boolean">
<xsl:choose>
<xsl:when test="$infoPagePreferences/property[@name = 'show_index_catalog']/value = 1">&yes;</xsl:when>
<xsl:otherwise>&no;</xsl:otherwise>
</xsl:choose>
</span>
</span>
</div>
        </xsl:if>
<xsl:if test="$infoPagePreferences/property[@name = 'show_index_catalog']/value = 1">
<div class="mainpage_catalog_title h2">
<span class="h2_content" umi:element-id="{$infoPageId}" umi:field-name="mainpage_catalog_title" umi:field-type="string" umi:empty="&empty-catalog-title;" >
<xsl:apply-templates select="$infoPage/property[@name = 'mainpage_catalog_title']" />
</span>
</div>
<div class="index_catalog">
<xsl:choose>
<xsl:when test="$isAdmin = 0">
<ul class="items_catalog mainpage_items_catalog">
<xsl:apply-templates select="document(concat('udata://catalog/getCategoryListFull/null/',page/@id,'/',$indexСatalog,'/1/'))/udata" />
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsListFull/null/',page/@id,'/',$indexСatalog,'/1/'))/udata" />
</ul>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="getCategoryListFull" select="document(concat('udata://catalog/getCategoryListFull/null/',page/@id,'/',$indexСatalog,'/1//1/'))/udata" />
<xsl:variable name="getObjectsListFull" select="document(concat('udata://catalog/getObjectsListFull/null/',page/@id,'/',$indexСatalog,'/1//1/'))/udata" />
<xsl:choose>
<xsl:when test="not($getCategoryListFull/total) and ($getObjectsListFull/total = 0)">
<ul class="items_catalog mainpage_items_catalog" umi:element-id="{page/@id}" umi:module="catalog" umi:button-position="top right" umi:sortable="sortable" umi:add-prepend="prepend">
<li class="hidden no-style">
<div class="hidden-text">
<p>&empty-catalog;</p>
</div>
</li>
</ul>
</xsl:when>
<xsl:otherwise>
<ul class="items_catalog mainpage_items_catalog" umi:element-id="{page/@id}" umi:module="catalog" umi:region="list" umi:button-position="top right" umi:sortable="sortable" umi:add-prepend="prepend">
<xsl:choose>
<xsl:when test="($getCategoryListFull/total != 0) and ($getObjectsListFull/total = 0)">
<xsl:attribute name="umi:add-text">&add-text-catalog;</xsl:attribute>
</xsl:when>
<xsl:when test="not($getCategoryListFull/total) and ($getObjectsListFull/total != 0)">
<xsl:attribute name="umi:add-text">&add-text-catalog-object;</xsl:attribute>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
<xsl:apply-templates select="$getCategoryListFull" />
<xsl:apply-templates select="$getObjectsListFull" />
</ul>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
<xsl:variable name="getObjectsListFullTotal" select="document(concat('udata://catalog/getObjectsListFull/null/',page/@id,'/',$indexСatalog,'/1/'))/udata/total" />
<xsl:variable name="getCategoryListFullTotal" select="document(concat('udata://catalog/getCategoryListFull/null/',page/@id,'/',$indexСatalog,'/1/'))/udata/total" />
<xsl:choose>
<xsl:when test="(($getObjectsListFullTotal &lt;= $indexСatalog) or not($getObjectsListFullTotal))and(($getCategoryListFullTotal &lt;= $indexСatalog) or not($getCategoryListFullTotal))" />
<xsl:when test="$isAdmin = 0">
<xsl:if test="$infoPage/property[@name = 'mainpage_catalog_show_all']/value">
<div class="show_all show_all_catalog" >
<a href="{page/@link}" umi:field-name="mainpage_catalog_show_all" umi:field-type="string" umi:empty="&empty-show-all;"  umi:element-id="{$infoPageId}">
<xsl:apply-templates select="$infoPage/property[@name = 'mainpage_catalog_show_all']" />
</a>
</div>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<div class="show_all show_all_catalog" >
<xsl:if test="not($infoPage/property[@name = 'mainpage_catalog_show_all']/value)">
<xsl:attribute name="class">show_all show_all_catalog hidden</xsl:attribute>
</xsl:if>
<a href="{page/@link}" umi:field-name="mainpage_catalog_show_all" umi:field-type="string" umi:empty="&empty-show-all;"  umi:element-id="{$infoPageId}">
<xsl:apply-templates select="$infoPage/property[@name = 'mainpage_catalog_show_all']" />
</a>
</div>
</xsl:otherwise>
</xsl:choose>
</div>
</xsl:if>
</xsl:template>

<xsl:template name="special_offers_index">
<xsl:variable name="max_special_offers" select="$infoPagePreferences/property[@name = 'index_max_special_offers']" />
<xsl:if test="$isAdmin = 1">
<div class="hidden hidden-text">
<span>
<span>&show-special-offers;:</span>&nbsp;
<span umi:element-id="{$infoPageId}" umi:field-name="index_catalog_show_special_offer" umi:field-type="boolean">
<xsl:choose>
<xsl:when test="$infoPagePreferences/property[@name = 'index_catalog_show_special_offer']/value = 1">&yes;</xsl:when>
<xsl:otherwise>&no;</xsl:otherwise>
</xsl:choose>
</span>
</span>
</div>
        </xsl:if>
<xsl:if test="$infoPagePreferences/property[@name = 'index_catalog_show_special_offer']/value = 1">
<xsl:variable name="special_offers" select="document(concat('udata://catalog/getSpecialOffers/?limit=', $max_special_offers/value))/udata" />
<xsl:if test="$special_offers/total &gt; 0">
<div class="index_catalog index_special_offers">
<div class="decoration_1" />
<div class="mainpage_special_offers_title h2">
<span class="h2_content" umi:element-id="{$infoPageId}" umi:empty="&empty-special-offers;" umi:field-name="mainpage_special_offers_title" umi:field-type="string">
<xsl:apply-templates select="$infoPage/property[@name = 'mainpage_special_offers_title']" />
</span>
</div>
<ul class="special_offers_list items_catalog">
<xsl:apply-templates select="$special_offers" mode="special_offers"/>
</ul>
<div class="decoration_2" />
</div>
</xsl:if>
</xsl:if>
</xsl:template>

</xsl:stylesheet>
« Последнее редактирование: 30 Ноябрь 2013, 17:22:42 от Ancorp »

*

Ancorp

  • *
  • 3
  • +0/-0
    • Просмотр профиля
Неужели нельзя такую функцию реализовать? перерыл весь форум, все не то

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
У Вас вызывается кастомный маркос getObjectsListCustom

Попробуйте использовать стандартный http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/katalog/catalog_getobjectslist/

В нем есть параметр field_id - можете указать название своего поля для сортировки.

Если не получится, напишите в ЛС, посмотрю, что можно сделать.
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

Ancorp

  • *
  • 3
  • +0/-0
    • Просмотр профиля
Проблема решена, спасибо пользователю e.ioffe