Андрей
С нами с 29 февраля 2020; Место в рейтинге пользователей: #716Вывод категорий товара
            Всем доброго времени суток!
Возникла задача вывести все категории к которым принадлежит товар.
Структура категорий следующая:
Категория 1
— -Подкатегория 1
— -Подкатегория 2
— -Подкатегория 3
Категория 2
— -Подкатегория 1
— -Подкатегория 2
— -Подкатегория 3
И т.д.
Товар может быть сразу в нескольких подкатегориях каждой категории.
Решил следующим образом.
Взял этот сниппет: docs.modx.pro/komponentyi/minishop2/poleznyie-vyiborki/vyivod-vsex-kategorij-tovara
Поправил его таким образом, чтобы на выходе получались id товаров через запятую. Далее в списке товаров делаю несколько вызовов pdoResource:
Все работает отлично, за исключением одного нюанса. Сниппет выдает id всех категорий, к которым принадлежит товар, кроме той в которой он был создан первоначально. Как получить в этом сниппете id базовой категории в том числе?
Всем спасибо!
        
        
        
    Возникла задача вывести все категории к которым принадлежит товар.
Структура категорий следующая:
Категория 1
— -Подкатегория 1
— -Подкатегория 2
— -Подкатегория 3
Категория 2
— -Подкатегория 1
— -Подкатегория 2
— -Подкатегория 3
И т.д.
Товар может быть сразу в нескольких подкатегориях каждой категории.
Решил следующим образом.
Взял этот сниппет: docs.modx.pro/komponentyi/minishop2/poleznyie-vyiborki/vyivod-vsex-kategorij-tovara
<?php
if (empty($rid)) {$rid = $modx->resource->id;}
if (empty($pid)) {$pid = $modx->resource->parent;}
if (empty($delimeter)) {$delimeter = ' , ';}
$scheme = $modx->getOption('link_tag_scheme', null, 'full', true);
$q = $modx->newQuery('msCategory');
$q->leftJoin('msCategoryMember', 'msCategoryMember', array(
    '`msCategory`.`id` = `msCategoryMember`.`category_id`'
));
$q->sortby('pagetitle','ASC');
$q->groupby('id');
$q->select(array('id','pagetitle'));
$q->where('`msCategoryMember`.`product_id` = '.$rid.' OR `id` = '.$pid);
$result = array();
if ($q->prepare() && $q->stmt->execute()) {
    while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
        $url = $modx->makeUrl($row['id'], '', '', $scheme);
        $result[] = '<a href="'.$url.'">'.$row['pagetitle'].'</a>';
    }
}
return implode($delimeter, $result);Поправил его таким образом, чтобы на выходе получались id товаров через запятую. Далее в списке товаров делаю несколько вызовов pdoResource:
[[pdoResources?
    &parents=`11` // здесь указываю родителя из которого нужно вывести категории которым назначен товар
    &resources=`[[newGetCategories?&rid=`[[+id]]`]]` // здесь список id-шников
    &tpl=`cat_tpl`
]]Все работает отлично, за исключением одного нюанса. Сниппет выдает id всех категорий, к которым принадлежит товар, кроме той в которой он был создан первоначально. Как получить в этом сниппете id базовой категории в том числе?
Всем спасибо!
Minishop2 Обязательные поля для способа оплаты
            Всем доброго времени суток!
Есть корзина на сайте (не кликабельная, даю прямую ссылку): lasmik.com/cart
Товары можно добавить отсюда: lasmik.com/dev-page
В корзине есть два способа доставки: Самовывоз и Доставка. У обоих из них есть способ оплаты «Выставление счета для юрлиц». Есть группа полей «Юр. лицо». Поля добавлял по этой инструкции: modx.pro/solutions/10040 Поля работают, в админку все приходит корректно.
Эти поля должны быть обязательны для заполнения только для вышеуказанного способа оплаты.
В minishop2 обязательные поля привязываются к способу доставки, к оплате привязать нельзя. Я решил воспользоваться js калбеками и перехватить событие до отправки заказа:
        
        
        
        
    Есть корзина на сайте (не кликабельная, даю прямую ссылку): lasmik.com/cart
Товары можно добавить отсюда: lasmik.com/dev-page
В корзине есть два способа доставки: Самовывоз и Доставка. У обоих из них есть способ оплаты «Выставление счета для юрлиц». Есть группа полей «Юр. лицо». Поля добавлял по этой инструкции: modx.pro/solutions/10040 Поля работают, в админку все приходит корректно.
Эти поля должны быть обязательны для заполнения только для вышеуказанного способа оплаты.
В minishop2 обязательные поля привязываются к способу доставки, к оплате привязать нельзя. Я решил воспользоваться js калбеками и перехватить событие до отправки заказа:
[РЕШЕНО] minishop2 фото товаров листается по два раза
            Доброго времени суток!
Ссылка на страницу: mebelsom.ru/katalog/mebel-dlya-personala/serii-mebeli/public-comfort
Возникла странная проблема. В фотогалерее каждое фото листается дважды подряд. Это происходит и при автоскролле (сейчас его отключил) и при листании стрелками и при нажатии на миниатюры. При этом листается не через две фотки, а именно выбирается нужная фотка, и следом она же повторно листается. Не знаю как объяснить, на сайте можно увидеть наглядно. Грубо говоря анимация листания срабатывает два раза.
Вот вызов галереи товара:
Содержимое product-gallery:
        
        
        
    Ссылка на страницу: mebelsom.ru/katalog/mebel-dlya-personala/serii-mebeli/public-comfort
Возникла странная проблема. В фотогалерее каждое фото листается дважды подряд. Это происходит и при автоскролле (сейчас его отключил) и при листании стрелками и при нажатии на миниатюры. При этом листается не через две фотки, а именно выбирается нужная фотка, и следом она же повторно листается. Не знаю как объяснить, на сайте можно увидеть наглядно. Грубо говоря анимация листания срабатывает два раза.
Вот вызов галереи товара:
[[!msGallery?tpl=`product-gallery`]]Содержимое product-gallery:
<div id="msGallery">
    {if $files?}
        <div class="fotorama"
            data-nav="thumbs"
            data-width="100%"
            data-navwidth="100%"
            data-thumbheight="105"
            data-thumbwidth="200"
            data-thumbmargin="20"
            data-allowfullscreen="true"
            data-swipe="true"
            data-fit="cover"
            data-autoplay="false">
            {foreach $files as $file}
                <a href="{$file['url']}" target="_blank">
                    <img src="{$file['small']}" alt="{$file['description']}" title="{$file['name']}">
                </a>
            {/foreach}
        </div>
    {else}
        <img src="{('assets_url' | option) ~ 'components/minishop2/img/web/ms2_medium.png'}"
            srcset="{('assets_url' | option) ~ 'components/minishop2/img/web/ms2_medium@2x.png'} 2x"
            alt="" title=""/>
    {/if}
</div>        Tickets. Как включить поле загрузки файлов в комментариях для гостей.
            Здравствуйте!
Подскажите пожалуйста, как в комментариях вывести поле для загрузки файлов, для неавторизованных? Понимаю что по умолчанию это не предусмотрено, но мне нужно просто сделать отзывы для пользователей с возможностью прикреплять фото к отзыву. Хотелось бы избежать подключения авторизации, т.к. больше она ни для чего не нужна.
Вот сайт: veramebel31.ru/каталог-товаров/шкафы/надшкафы/шкаф-sm-tilda Вкладка Отзывы.
Сниппет вызываю следующим образом:
        
        
        
        
    Подскажите пожалуйста, как в комментариях вывести поле для загрузки файлов, для неавторизованных? Понимаю что по умолчанию это не предусмотрено, но мне нужно просто сделать отзывы для пользователей с возможностью прикреплять фото к отзыву. Хотелось бы избежать подключения авторизации, т.к. больше она ни для чего не нужна.
Вот сайт: veramebel31.ru/каталог-товаров/шкафы/надшкафы/шкаф-sm-tilda Вкладка Отзывы.
Сниппет вызываю следующим образом:
[[!TicketComments? 
    &allowGuest=`1` 
    &tplCommentForm=`comment-form-tpl` 
    &tplCommentFormGuest=`comment-form-guest-tpl` 
    &allowFiles=`1`
]]В результате в форме выводится Авторизуйтесь для возможности загрузки файлов.Нашел в сниппете TicketComments такое место: