websfera

websfera

С нами с 30 марта 2017; Место в рейтинге пользователей: #411

Не обновляется на лету корзина miniShop2 при изменении к-ва товаров

В корзине была добавлена колонка подсчёта цены за к-во товаров.
<!-- количество товаров -->
 <td class="count">
    <form method="post" class="ms2_form form-inline" role="form">
        <input type="hidden" name="key" value="{$product.key}"/>
        <div class="form-group">
            <span class="count">{'ms2_cart_count' | lexicon}: </span><input type="number" name="count" value="{$product.count}"
                   class="input-sm form-control"/>
            <span class="d-none d-sm-block">{$product.options.variant?:('ms2_frontend_count_unit' | lexicon)}</span>
            <button class="btn btn-default" type="submit" name="ms2_action" value="cart/change">
               <i class="fa fa-redo"></i>
            </button>
        </div>
    </form>
</td>
<!-- цена за единицу -->
<td class="price">
    <span class="price">{'ms2_cart_price' | lexicon}: </span><span>{$product.price}</span> {'ms2_frontend_currency' | lexicon}

</td>
<!-- сумма (цена * к-во товаров -->
<td class="cost">
    {set $cost = $product.price | replace: ' ' : ''}
    <span class="cost">{'ms2_cart_cost' | lexicon}: </span><span>{$cost * $product.count}</span> {'ms2_frontend_currency' | lexicon}
</td>
При изменении количества товаров вместо суммы появляется надпись NaN руб (см скрин)


При этом в строке Итого — цена меняется корректно.
Помогите, пожалуйста, найти ошибку.
websfera
12 марта 2020, 02:28
modx.pro
97
0

Условие скрытия категории без товаров.

Приветствую!
Есть вывод всех товаров типа прайс-лист.
В данном решении при пустой категории выводится строка «Товары на стадии добавления»
Прошу подсказать, каким должно быть условие, чтобы если в категории нет товаров, то она не выводилась.
{* Выборка ID категорий с разбивкой 'sortby' => 'msCategory.menuindex', , 'showLog' => 1 *} 
{var $cats = ('pdoResources' | snippet : [ 'parents' => 2, 'limit' => 0, 'returnIds' => 1, 'sortdir' => 'ASC', 'where' => '{"class_key":"msCategory"}' ] | split : ',')}
{* Если категории есть - перебираем их *}
{if $cats ?} {foreach $cats as $cat} {* Выводим заголовок категории *}
<h3>{'pdoField' | snippet : ['id' => $cat]}</h3>
<ul class="options-list">
{* Выборка товаров *} 
{'msProducts' | snippet : [ 'parents' => $cat, 'tpl' => '@INLINE
<li class="ml-0"><a href="[[+uri]]">{$pagetitle}</a> <span class="">{$price} руб.</span></li>
', 'sortby' => '{"menuindex": "asc"}', 'limit' => 0, 'depth' => 0, ] ?: 'Товары на стадии добавления'}</ul> {/foreach} {/if}
websfera
17 декабря 2019, 12:01
modx.pro
145
0

[РЕШЕНО] Настройка доступа для miniShop2 для менеждера по продажам

Сделал пользователя — Менеджер по продажам.
Ему должно быть видно только окно заказа.
Проблема в том, что окно видно, но списка заказов нет.
Подскажите, что нужно исправить, чтобы этот список был виден.
websfera
28 ноября 2019, 19:39
modx.pro
166
0

[РЕШЕНО] miniShop2. Связи товаров, вывод с условием, Fenom

Подскажите, пожалуйста, как правильно указать переменную условия наличия у товара связанных товаров?..
Вызываю Связанные товары с условием:
{if ***************}
<h3>Сопутствующие товары:</h3>
     {'!pdoPage@Bootstrap4' | snippet : [
            'element' => 'msProducts',
            'tpl' => 'tpl.msProducts.row',
            'parents' => '2',
            'link' => '1',
            'limit' => '5',
            'master' => $_modx->resource.id,
        ]}
{/if}
Решение:
{var $links = '!pdoPage@Bootstrap4' | snippet : [
    'element' => 'msProducts',
    'tpl' => 'tpl.msProducts.row',
    'parents' => '2',
    'link' => '1',
    'limit' => '5',
    'master' => $_modx->resource.id,
	'showlog' => 1
]}
{if $links?}
<h3>Сопутствующие товары:</h3>
<div class="card-deck">
    <div class="row justify-content-around">
        {$links}
   </div>
</div>
{'page.nav' | placeholder}
{/if}
websfera
19 мая 2019, 11:50
modx.pro
617
0

miniShop2: Сопутствующие товары. Связи

Приветствую!
Друзья, небольшой вопрос.
Есть необходимость при выводе сгруппировать связанные товары по категориям, чтобы они выводились не все подряд, а группировались по вкладкам.
1 категория = 1 вкладка (а внутри вкладки уже товары).
Пример реализации

Вопрос: в стандартном механизме miniShop2 Связи предусмотрена такая возможность, или это нужно реализовывать дополнительными инструментами?
websfera
12 мая 2019, 13:58
modx.pro
1
415
0

Автоматическое создание артикула для miniShop2 (с проверкой на уникальность)

Три года назад этот вопрос поднимался вот здесь.
В результате есть работающий код:
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;
$resource->set('article', substr($resource->get('alias'),0,2).'-'.$resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Артикулы получаются типа: pl-38125
Также есть вариант для TV генерирующий артикулы в числовом виде.
<?php
if ($modx->event->name == "OnDocFormSave") 
{    
    $tv = 'articul';
    $id = $resource->get('id');
    $parent = $resource->get('parent');
    $tvv = $resource->getTVValue($tv);
    
    if (empty($tvv))
    {
	   switch ($str=strlen($parent.$id))
       {
         case ($str <= 4): $article = mt_rand(0, 9).mt_rand(0, 9).$parent.$id; break;     
         case ($str == 5): $article = mt_rand(0, 9).$parent.$id; break;   
         case ($str == 6): $article = $parent.$id; break;
         case ($str >= 7): $article = substr($parent.$id, 1); break;
       }		
               $resource->setTVValue($tv, $article);
    }
}
Просьба специалистам в PHP модифицировать первый код так, чтобы в miniShop2 можно было создавать артикулы в цифровом виде.
Ну а если этот плагин будет ещё проверять на уникальность артикула, ему вообще цены не будет ))

РЕШЕНИЕ (чтобы не копаться в комментах).
Артикулы получаются уникальные типа: 38125 — ID категории и товара
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;
$resource->set('article', $resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Также есть вариант артикула формата: Случайное число от 0 до 999-IDродитель-IDтовара
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;

// Создаем артикул формата Случайное число от 0 до 999-IDродитель-IDтовара
$resource->set('article', mt_rand(0, 999).$resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Благодарность iWatchYouFromAfar и Николай приветствуется ))
websfera
04 мая 2019, 11:44
modx.pro
1
496
-2

ClientConfig Выбор цвета

Кто может объяснить, как правильно использовать выбор цвета?
Например, у меня в css прописан цвет ссылок.
В ClientConfig я задал переменную цвета linkColor
Как админу предоставить возможность управлять этой переменной?
Т.е. куда ставить тег [[++linkColor]]? Прямо в код css?
типа
a {
    color: #[[++linkColor]];
}
websfera
17 марта 2019, 20:20
modx.pro
1
285
0

Несколько форм на одной странице AjaxForm [Решено]

На странице выводится список услуг (дочерние ресурсы) c кнопкой ЗАКАЗАТЬ
Как реализовать чтобы в сабжах отправляемых писем вставлялся {$pagetitle} ресурса соответствующей услуги
{'!pdoPage' | snippet : [
    'ajaxMode' => 'default',
    'tpl' => '@INLINE 
***
<h2 class="media-heading">{$pagetitle}</h2>
***
<button type="button" class="btn btn-secondary btn-lg btn-block" data-toggle="modal" data-target="#adviceModal">ЗАКАЗАТЬ</button>
***
{$content}
***',
    'limit' => 10,
    'includeTVs' => 'img',
    'tvPrefix' => '',
    'includeContent' => 1,
  ]}
По клику на кнопку ЗАКАЗАТЬ открываются модальные окна Bootstrap
Вызов AjaxForm:
[[!AjaxForm?
    &snippet=`FormIt`
    &form=`kontact-form`
    &emailTpl=`tpl-kontact-form`
    &hooks=`spam,email`
    &emailSubject=`Сообщение с сайта [[++site_url]]`
    &emailTo=`***@gmail.com`
    &validate=`name:required,email:required`
    &validationErrorMessage=`В форме содержатся ошибки!`
    &successMessage=`Сообщение успешно отправлено!`
]]
Решение в комменте ниже
websfera
24 августа 2018, 23:28
modx.pro
977
0

pdoResources. Вывод избранных ресурсов на главную страницу

Вывожу на главную стр. дочерние ресурсы из Collections таким образом:
{'pdoResources' | snippet : [
                'parents' => 15,
                'limit' => 4,
                'tpl' => '@INLINE <article class="d-flex col-12 col-md-3 col-sm-6 p-t-10 p-b-10"><div class="bg10">
                      {if $img}
                        <a href="{$uri}" title="{$longtitle}">
                          <img class="img-fluid mx-auto" src="{$img | phpthumbon : "w=600&h=338&zc=1"}" alt="{$pagetitle}">
                        </a>
                      {/if}
                        <h4 class="p-t-10 p-b-10"><a href="{$uri}" title="{$longtitle}">{$pagetitle}</a></h4>
                        <p class=""><span class="glyphicon glyphicon-calendar"></span> {$publishedon | date_format : "%d.%m.%Y г."}</p>
                        <small>{$content | striptags | ellipsis : "110"}</small>
                      
                    </div></article>',
                'includeContent' => 1,
                'includeTVs' => 'img',
                'tvPrefix' => '',
            ]}
Вопрос — как реализовать вывод не всех, а только избранных ресурсов из раздела?
НИгде не нашёл такой возможности
Прошу прощения если вопрос тривиальный, в модексе новичёк.
Может вообще это делается по другому без применения pdoResources?
websfera
16 августа 2018, 10:34
modx.pro
449
0

Как открыть просмотр отключённого сайта для определённого IP?

Есть: отключённый сайт.
Требуется: дать возможность для определённого IP его просмотреть (не включая сайт, т.е. «site_status» — Нет)
Но чтобы админы продолжали работать как обычно с разных IP.
Или другие способы предоставить просмотр не включая сайт есть?
websfera
22 декабря 2017, 09:07
modx.pro
1
777
0