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

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - idu.kuru

Страницы: [1] 2
1
Добрый день,

Бизнес-логика такова, что часть товара в каталоге проценивается в штуках, а продается только упаковками по 25шт. и менять ее нельзя.
Подскажите пожалуйста как реализовать в интернет-магазине возможность устанавливать для некоторых товаров минимальное количество доступное к заказу.



2
в модуле blogs20 в функции, которая выводит содержимое поста (postView) есть вызов функции (prepareContent) котрая обрабатывает контент и вней есть четкие инструкции по преобразованию  "\n" -> "<br />\n"

если необходимы файлы с этими правками пишите, скину
спасибо, сам нашел по вашей наводке и пофиксил

3
В шаблоне на основе demodizzy столкнулся с тем что в модуле блоги XSLT генерирует лишние теги <br> экранируя каждый элемент в контенте
на входе имеем
<p>...</p>
<h2>...</h2>
<p>...</p>
<h2>...</h2>
<p>...</p>

а на выходе
<div xmlns:umi="http://www.umi-cms.ru/TR/umi" class="entry-content" umi:element-id="41" umi:field-name="content"><p>...</p>
<br>
<h2>...</h2>
<br>
<p>...</p>
<br>
<h2>...</h2>
<br>
<p>...</p>
</div>

во всех остальных модулях контент выводится нормально без лишних тегов.
проверил на чистом demodizzy там тоже самое даже на http://demo.umi-cms.ru/


откуда эти теги беруться как это можно исправить?

4
разобрался сам
оказывается надо было делать вызов
<xsl:apply-templates select="document('udata://blogs20/postsList/notemplate/5')/udata/items" mode="lastposts_mainpage" />

5
Сделал вывод последних записей блога на главную через вызов шаблона
<xsl:apply-templates select="document('udata://blogs20/postslist/notemplate/5')/udata/items" mode="lastposts_mainpage" />

под админом все работает замечательно, но если войти на сайт гостем или обычным пользователем то вызов не работает

через
site.ru/udata/blogs20/postslist/notemplate/5
выходит такой ответ
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="blogs20" method="postslist" generation-time="0.010721">
<error code="require-more-permissions">
Ваших прав недостаточно, чтобы совершить это действие.
</error>
</udata>

хотя просто записи блога гости и обычные юзеры видят
не пойму в каком направлении копать, не давать же гостям права администрирования блога?

6
при удалении этого параметра ни чего не меняет,
плюс еще если нет доп. фото, то нужно скрывать блок с тумбами

7
тогда так добавить внутри шаблона дочернего раздела "left-column-children" проверку на активность и если активен снова вызвать шаблон основного раздела "left-column"
<xsl:template match="udata[@method = 'getCategoryList']" mode="left-column">
    <ul class="catalog_menu" umi:button-position="bottom left"
        umi:element-id="{@category-id}" umi:region="list" umi:module="catalog" umi:sortable="sortable">

        <xsl:apply-templates select="//item" mode="left-column" />
    </ul>
</xsl:template>
 
<xsl:template match="udata[@method = 'getCategoryList']" mode="left-column-children">
    <ul class="children" umi:button-position="bottom left"
        umi:element-id="{@category-id}" umi:region="list" umi:module="catalog" umi:sortable="sortable">

        <xsl:apply-templates select="//item" mode="left-column-children" />
    </ul>
</xsl:template>


    <xsl:template match="udata[@method = 'getCategoryList']//item" mode="left-column-children">
        <li class="cat-item" umi:element-id="{@id}" umi:region="row">
            <xsl:variable name="is_active" select="document(concat('udata://custom/is_active/', @id, '/xslt'))/udata" />
            <xsl:if test = "$is_active = 1">

                <xsl:attribute name="class">cat-item current-cat</xsl:attribute>

            </xsl:if>



            <a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
                <xsl:value-of select="." />
            </a>
            <span class="count">
                (<xsl:value-of select="document(concat('udata://catalog/getObjectsList/no/', @id, '//1/10'))/udata/total" />)
            </span>
            <xsl:if test = "$is_active = 1">

                <xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id, '//1/'))" mode="left-column"/>

            </xsl:if>
            </li>
    </xsl:template>

<xsl:template match="udata[@method = 'getCategoryList']//item" mode="left-column">
    <li class="cat-item" umi:element-id="{@id}" umi:region="row">
        <xsl:variable name="is_active" select="document(concat('udata://custom/is_active/', @id, '/xslt'))/udata" />
        <xsl:if test = "$is_active = 1">

            <xsl:attribute name="class">cat-item current-cat</xsl:attribute>

        </xsl:if>



        <a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
                <xsl:value-of select="." />
            </a>
            <span class="count">
                (<xsl:value-of select="document(concat('udata://catalog/getObjectsList/no/', @id, '//1/10'))/udata/total" />)
            </span>
        <xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id, '//1/'))" mode="left-column-children"/>
    </li>
</xsl:template>
на выходе имеем


со стилями косяк но это уже мелочи

8
не совсем понятно что значит "конкретный" раздел каталога, если это активный раздел то можно так вывести
<xsl:template match="udata[@method = 'getCategoryList']" mode="left-column">
    <ul class="catalog_menu" umi:button-position="bottom left"
        umi:element-id="{@category-id}" umi:region="list" umi:module="catalog" umi:sortable="sortable">

        <xsl:apply-templates select="//item" mode="left-column" />
    </ul>
</xsl:template>

<xsl:template match="udata[@method = 'getCategoryList']" mode="left-column-children">
    <ul class="children" umi:button-position="bottom left"
        umi:element-id="{@category-id}" umi:region="list" umi:module="catalog" umi:sortable="sortable">

        <xsl:apply-templates select="//item" mode="left-column" />
    </ul>
</xsl:template>


<xsl:template match="udata[@method = 'getCategoryList']//item" mode="left-column">
    <li class="cat-item" umi:element-id="{@id}" umi:region="row">
        <xsl:variable name="is_active" select="document(concat('udata://custom/is_active/', @id, '/xslt'))/udata" />
        <xsl:if test="$is_active = 1">
            <xsl:attribute name="class">cat-item current-cat</xsl:attribute>
        </xsl:if>
        <a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
                <xsl:value-of select="." />
            </a>
            <span class="count">
                (<xsl:value-of select="document(concat('udata://catalog/getObjectsList/no/', @id, '//1/10'))/udata/total" />)
            </span>
        <xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id, '//1/'))" mode="left-column-children"/>
    </li>
</xsl:template>

выглядит вот так


описано все тут
http://wiki.umisoft.ru/%D0%9E%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B0%D1%82%D1%8C_%D0%B2_%D0%BC%D0%B5%D0%BD%D1%8E_%D0%B4%D0%B5%D0%BC%D0%BE%D0%B4%D0%B8%D0%B7%D0%B8_%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8B%D0%BC_%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BF%D1%83%D0%BD%D0%BA%D1%82_%D0%BC%D0%B5%D0%BD%D1%8E

9
В описании товара создал дополнительные поля для фото с индентификаторами photo_2, photo_3 итд.

в шаблоне товара object-view.xsl добавил вывод для каждого из этих фото
<div class="slide">
<xsl:call-template name="catalog-thumbnail">
<xsl:with-param name="element-id" select="page/@id" />
<xsl:with-param name="empty">&empty-photo;</xsl:with-param>
<xsl:with-param name="field-name">photo_xxx</xsl:with-param>
<xsl:with-param name="width">495</xsl:with-param>
</xsl:call-template>
</div>
Но если у товара нет дополнительных фото то шаблон так же как для основной фотографии начинает выводить плашку "фото временно отсутствует".

Как можно отключить вывод дополнительных фото если они не указаны в описании товара?

10
сработало!!!

(<xsl:value-of select="document(concat('udata://catalog/getObjectsList/no/', @id, '//1/10'))/udata/total" />)

спасибо!

11
спасибо, так вышел XML
<streams-call total-time="1.187919">
<call generation-time="0.032665">upage://contacts</call>
<call generation-time="0.027292">uobject://2</call>
<call generation-time="0.418241">udata://emarket/cart/</call>
<call generation-time="0.000914">udata://system/listErrorMessages</call>
<call generation-time="0.000810">udata://system/includeQuickEditJs</call>
<call generation-time="0.009933">uobject://352</call>
<call generation-time="0.012688">udata://menu/draw/hmenu</call>
<call generation-time="0.223195">udata://emarket/cart</call>
<call generation-time="0.015857">udata://content/menu/(null)/1/</call>
<call generation-time="0.012696">udata://news/lastlist/(news)</call>
<call generation-time="0.000536">udata://emarket/getCompareList</call>
<call generation-time="0.017168">udata://vote/insertlast/</call>
<call generation-time="0.013741">udata://dispatches/subscribe/</call>
<call generation-time="0.000399">udata://content/getRecentPages////3</call>
<call generation-time="0.093517">udata://banners/fastInsert/right_block/</call>
<call generation-time="0.012478">udata://catalog/getCategoryList/void/shop//1/</call>
<call generation-time="0.006961">udata://catalog/getObjectsList/no/35///10</call>
<call generation-time="0.006718">udata://catalog/getCategoryList/void/35//1/</call>
<call generation-time="0.002391">udata://catalog/getObjectsList/no/39///10</call>
<call generation-time="0.002422">udata://catalog/getObjectsList/no/40///10</call>
<call generation-time="0.002311">udata://catalog/getObjectsList/no/41///10</call>
<call generation-time="0.009430">udata://catalog/getObjectsList/no/37///10</call>
<call generation-time="0.009734">udata://catalog/getCategoryList/void/37//1/</call>
<call generation-time="0.002441">udata://catalog/getObjectsList/no/48///10</call>
<call generation-time="0.002368">udata://catalog/getObjectsList/no/2///10</call>
<call generation-time="0.002377">udata://catalog/getObjectsList/no/47///10</call>
<call generation-time="0.002311">udata://catalog/getObjectsList/no/46///10</call>
<call generation-time="0.016476">udata://catalog/getObjectsList/no/36///10</call>
<call generation-time="0.012292">udata://catalog/getCategoryList/void/36//1/</call>
<call generation-time="0.004707">udata://catalog/getObjectsList/no/45///10</call>
<call generation-time="0.002562">udata://catalog/getObjectsList/no/44///10</call>
<call generation-time="0.002447">udata://catalog/getObjectsList/no/42///10</call>
<call generation-time="0.002488">udata://catalog/getObjectsList/no/43///10</call>
<call generation-time="0.004403">udata://catalog/getObjectsList/no/38///10</call>
<call generation-time="0.010223">udata://catalog/getCategoryList/void/38//1/</call>
<call generation-time="0.002433">udata://catalog/getObjectsList/no/49///10</call>
<call generation-time="0.002415">udata://catalog/getObjectsList/no/51///10</call>
<call generation-time="0.002392">udata://catalog/getObjectsList/no/50///10</call>
<call generation-time="0.008864">udata://catalog/getObjectsList/37////2/</call>
<call generation-time="0.001201">udata://catalog/search</call>
<call generation-time="0.025526">upage://79</call>
<call generation-time="0.000962">upage://79.photo</call>
<call generation-time="0.054492">
udata://system/makeThumbnailFull/(./images/cms/data/magn_315.jpg)/154/110/void/0/1/
</call>
<call generation-time="0.010034">udata://emarket/price/79</call>
<call generation-time="0.004575">utype://124.item_properties</call>
<call generation-time="0.000541">udata://emarket/getCompareLink/79</call>
<call generation-time="0.004758">udata://comments/countComments/79</call>
<call generation-time="0.020027">upage://81</call>
<call generation-time="0.000946">upage://81.photo</call>
<call generation-time="0.029486">
udata://system/makeThumbnailFull/(./images/cms/data/technics_sb-g800.jpg)/154/110/void/0/1/
</call>
<call generation-time="0.005654">udata://emarket/price/81</call>
<call generation-time="0.000504">udata://emarket/getCompareLink/81</call>
<call generation-time="0.001404">udata://comments/countComments/81</call>
<call generation-time="0.001058">udata://system/numpages/11/9</call>
<call generation-time="0.012540">usel://info-pages</call>
<call generation-time="0.000651">udata://content/getMobileModesList/</call>
<call generation-time="0.000264">udata://system/convertDate/now/(Y)</call>
</streams-call>
<!--
 This page generated in 2.566432 secs by XSLT, SITE MODE
-->

12
Все верно товаров меньше 9 суммарно

left-column-category-list.xsl
<?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:umi="http://www.umi-cms.ru/TR/umi">


<xsl:template match="udata[@method = 'getCategoryList']" mode="left-column">
<ul class="catalog_menu" umi:button-position="bottom left"
umi:element-id="{@category-id}" umi:region="list" umi:module="catalog" umi:sortable="sortable">
<xsl:apply-templates select="//item" mode="left-column" />
</ul>
</xsl:template>


<xsl:template match="udata[@method = 'getCategoryList']//item" mode="left-column">
<li umi:element-id="{@id}" umi:region="row">
<span>
<a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
<xsl:value-of select="." />
</a>(<xsl:value-of select="document(concat('udata://catalog/getObjectsList/no/', @id, '///10'))/udata/total" />)
</span>
[b]<xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/', @id, '//1/'))" />[/b]
</li>
</xsl:template>

</xsl:stylesheet>

category-list.xsl
<?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:umi="http://www.umi-cms.ru/TR/umi">


<xsl:template match="udata[@method = 'getCategoryList']">
<ul umi:element-id="{@category-id}" umi:region="list" umi:module="catalog" umi:sortable="sortable" umi:button-position="top right">
<xsl:apply-templates select="//item" />
</ul>
</xsl:template>


<xsl:template match="udata[@method = 'getCategoryList']//item">
<li umi:element-id="{@id}" umi:region="row">
<a href="{@link}" umi:field-name="name" umi:delete="delete" umi:empty="&empty-section-name;">
<xsl:value-of select="." />
</a>(<xsl:value-of select="document(concat('udata://catalog/getObjectsList/no/', @id, '///10'))/udata/total" />)
</li>
</xsl:template>

</xsl:stylesheet>

глюк на страницах
http://localhost/shop/audiotehnika/?p=1
http://localhost/shop/televizory/?p=1

http://localhost/shop/audiotehnika/?p=1?showStreamsCalls выдает туже страницу вместо XML

13
делал вывод количества объектов в категории
делал все строго по одноименной статье из вики http://wiki.umisoft.ru/%D0%92%D1%8B%D0%B2%D0%BE%D0%B4_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_%D0%B2_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8._XSLT

в результате получаю вывод как в статье


затем уменьшаю количество объектов на странице до 9 в стандартном шаблоне demodizzy в разделах Аудиотехникa и Телевизоры появляется пагинация. Затем если в любом из этих двух разделов перехожу на вторую страницу получаю следующий результат


во всех разделах кроме этих двух отображется 0 объектов

что я делаю не так?

14
Ладно проще стили немного изменить, чем дополнительные конструкции в xslt делать - быстрее работать будет.

15
а каким образом подгружаете всплывающее окно?
просто скоро самому понадобится реализовывать это же

Страницы: [1] 2