websfera

websfera

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

[РЕШЕНО] 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
172
0

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

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

Вопрос: в стандартном механизме miniShop2 Связи предусмотрена такая возможность, или это нужно реализовывать дополнительными инструментами?
websfera
12 мая 2019, 13:58
modx.pro
1
178
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
221
-2

ClientConfig Выбор цвета

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

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

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

PageBreaker не срабатывает Ajax

Подскажите в чём может быть проблема и как её диагностировать.
Сделал всё по инструкции, там, благо, всё довольно просто.
1. Добавил в шаблоне:
<div id="pagebreaker_content">
    [[*content]]
</div>
2. Поменял настройку
pagebreaker_ajax Да

3. Проставил
<!-- pagebreak -->
Чанки стили js не правил, вообще ничего больше не трогал.
В результате, вместо работы ajax просто генерируются страницы как будто ajax выключен.
кеширование отключал кеш чистил — не помогло.
MODX 2.5.8-pl

Может поможет понять причину:
В консоли:
SyntaxError: expected expression, got '<'
config.js:1

Но по адресу assets/components/pagebreaker/js/
файла config.js нет

Логи:
[2017-11-27 13:42:12] (ERROR @ ***.com/httpdocs/core/model/modx/modcachemanager.class.php : 344) Error caching lexicon topic lexicon/ru/pagebreaker/setting
websfera
27 ноября 2017, 06:23
modx.pro
457
0

Заперт символов при автосоздании алиаса. Как сделать?

При автоматическом создании алиаса получается:
Книга «Название»
Создаётся адрес:
kniga-«nazvanie»
Как запретить кавычки, чтобы было:
kniga-nazvanie

И можно ли как-то перегенерировать все адреса на сайте уже без кавычек (или других символов), чтобы не править вручную?
websfera
20 ноября 2017, 10:36
modx.pro
1
1 125
0

Как вывести один ресурс в двух и более разделах?

есть Статья = ресурс с id 80
он размещён в категории с id 10
есть ли возможность в MODx вывести эту статью (содержимое этого ресурса) в другой категории (с id 12, например)
т.е. не создавать дубль Статьи (ресурс id 81) а использовать один html код для двух страниц.
websfera
24 июня 2017, 14:57
modx.pro
1 244
0