Всего 123 800 комментариев

Dan
Dan
04 сентября 2023, 14:25
+1
что бы у всех подкаталогов родителя 31 скрывался артикул
При этом код у вас написан наоборот. Наверное нужно что-то в этом роде:
{if $_modx->resource.parent != 31 || $_modx->resource.id != 31}
  <div class="reward"><span>Артикул:</span> <span class="item">[[+article]]</span></div>
{/if}
Dan
Dan
04 сентября 2023, 14:13
0
Вы хоть свой вызов и чанки покажите
deleted
04 сентября 2023, 12:28
0
Надо будет попробовать)

Вообще мне кажется, что правильнее показывать уведомление об успешной отправке не в «тосте», а в самой форме. «Тост» можно и не заметить, особенно на большом экране. Вроде как отправил форму, а ничего не произошло) Хотя думаю это несложно через событие сделать.

Кстати, компонент сессии использует? Была задача встроить форму через iframe, такая форма не работала из-за сессий. Пришлось переписывать (использовал своё решение, не ajaxform) чтоб данные в кэше хранились.

Есть ли стандартный шаблон для писем?
Konstantin
03 сентября 2023, 17:34
0
Разобрался сам, увидеть нормальную работу плагина можно только при создании нового ресурса, итак, нужно заполнить все поля ресурса, сохранить, затем во вкладке Локализации появится уже созданный пункт для основного языка, остается лишь перевести остальные. Затем весь контент можно будет выводить с помощью методов автора
Pavel Kravchuk
03 сентября 2023, 13:36
0
Благодарю всех за ответы.
Действительно в ClientConfig используется setOption для переопределения системных параметров. Правда он вызывается довольно часто, каждый раз при инициализации modx. К сожалению другого метода не нашел. Думал через кеш решить этот вопрос, но секюрные данные хранить в кеше не хорошо, а установка и сохранение системных настроек приводит к появлению их в БД
$setting = $modx->getObject('modSystemSetting', 'mail_smtp_pass');
                $setting->set('value',  $_ENV['RB_SMTP_KEY']);
                $setting->save();
Николай Савин
03 сентября 2023, 13:15
1
0
Попробуйте метод
$modx->setOption();
Наумов Алексей
03 сентября 2023, 13:02
1
0
Я бы посоветовал посмотреть, как это реализовано в компоненте ClientConfig, он решает похожую задачу: хранит свои настройки не в таблице modx_system_settings, а в другом месте (в своей таблице).

В частности посмотри код плагина.
Вовка
03 сентября 2023, 04:53
0
Доброго времени суток!
[[!mFilter2?
                &parents=`[[*ShopBrandParentID:is=``:then=`[[*id]]`:else=`[[*ShopBrandParentID]]`]]`
                &tplOuter=`tpl.mFilter2.outerShopCategory`
                &element=`msProducts`
                &class=`msProduct`
                &cacheTime=`10800`
                &ajaxMode=`button`
                &filterOptions=`{ "more_tpl": "<div class=\"go-to-catalog btn_more\"><span class=\"more\">[[%polylang_site_47]]</span></div>"}`
                &setMeta=`1`
    
                &tpl=`catalog-box-tpl`
                &tpls=`catalog-box-tpl,catalog-box-tpl-4-box`
                &limit=`24`
                &sortby=`{ "ProdSort":"DESC", "id":"DESC"}`
                &pageLimit=`5`
                &suggestions=`false`
                &innerJoin=`{ "Options":{ "class":"msProductOption"}}`
                &groupby=`msProduct.id`
                &showHidden=`0`
                &includeTVs=`[[*FilterIncludeTVs]],Prod23,Prod24,ProdSort`
                &where=`{ "Prod02":"1"}`
    
                &filters=`[[*FilterFilters]],ms|new:boolean,ms|old_price:boolean,msoc|color~value~color`
                &tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
                &tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
    
                &tplFilter.outer.msoc|color~value~color=`tpl.mFilter2.filter.outer`
                &tplFilter.row.msoc|color~value~color=`tpl.mFilter2.filter.outer`
                &tplFilter.outer.msoption|size=`tpl.mFilter2.filter.outer`
                &tplFilter.row.msoption|size=`tpl.mFilter2.filter.checkboxSize`
            ]]
— [[*FilterFilters]] — TV поле где указываются, фильтра, которые нужно выводить в данном каталоге.
Вот ссылка на каталог, где есть привязанный товар Каталог с присоединенным товаром
Zulya
02 сентября 2023, 01:08
1
+1
Благодаря помощи Артура Шевченко, нашли причину.

Решение:
У меня на сайте было 2 контекста.
При регистрации с автологином, юзер почему-то привязывался к контексту web. Но у меня контекст web был пустой и не использовался. Поэтому в сниппете Register, добавила параметр
&authenticateContexts=`web,meb`
.
После этого, авторизованный пользователь получил доступ к оценкам тикетов, комментариев, добавление в избранное.
Dan
Dan
01 сентября 2023, 17:04
0
Вызов сниппета бы увидеть
Николай Савин
01 сентября 2023, 16:36
0
Здравствуйте. Определить подходящее время и день недели поможет такое условие
$showWA = true;
if ( date('w') > 5 || (date('w') == 5 && date('H') >= 16) ||  (date('w') < 5 && date('H') >= 17)) {   
    $showWA = false;
}
return $showWA;
Панда
01 сентября 2023, 11:15
0
Добрый день, столкнулись с таким багом. Сделали промокод со скидкой на 3 т.р., который появляется при добавлении в корзину товаров на 10 т.р. Как я понимаю стандартное применение данного компонента.

В итоге пользователь может добавить товаров на 10 т.р., появится промокод, добавляет его в корзину, после чего уменьшить сумму покупок на ~7 т.р.

В итоге у пользователя товары в корзину на ~3 т.р. и промокод на ту же сумму. После можно без проблем оплатить 10-100 рублей и ждать свой заказ на 3 т.р.

Как-то можно пофиксить этот баг? Или мы просто некорректно установили компонент?
biper
01 сентября 2023, 09:49
0
модалка содержит форму ajax, при отправке формы после заполнения (правильного, неправильного — все едино… или при обновлении страницы) окно закрывается вместе с сообщениями об отправке/ошибке, которые в модальном окне отображаются в это время… А нужно, чтобы событие обрабатывалось полностью в модалке — т.е. открытая модалка закрывалась бы ТОЛЬКО принудительно, с кнопки «закрыть окно». Вопрос: как сие реализовать ?!
Zulya
31 августа 2023, 21:57
0
Изменила context на load, list, view. Почистила кэш, перезагрузила права, завершила все сеансы.
По новому авторизовалась как обычный пользователь и попробовала снова оценить тикет и чужие комментарии. Ситуация не изменилась. Пишет permission_denied_processor.
Но вот комментировать может. Комментарии сохраняются.
Артур Шевченко
31 августа 2023, 21:40
+1
Доступ к контексту web должен быть не context, а load, list, view.
Zulya
31 августа 2023, 21:00
0
Здравствуйте! Да, политика TicketUserPolicy добавлена.
skrinshoter.ru/sLaq6rnydnH?a (скриншот). Для авторизации используется компонент Login.
Проверила в админке пользователей, которые регистрируются на сайте. Проверила, присваивается ли пользователь к группе пользователей или нет. Оказывается, корректно присваивается.
skrinshoter.ru/sLaEBS7X08W?a (скриншот).
Николай Савин
31 августа 2023, 19:59
+1
Согласно документации
Группе пользователей, которые получают права на написание комментариев и т.д. нужно добавить политику TicketUserPolicy. Вы это сделали?
Zulya
31 августа 2023, 19:16
0
Я полностью удалила компонент Tickets и установила. Но проблема, все таки не исчезла.
Когда авторизованный пользователь оценивает комментарий или тикет, выходит ошибка permission_denied_processor.
А когда админ оценивает, пишет, у вас недостаточно прав для этого действия.
Alexey
31 августа 2023, 16:59
0
Искал тоже. Вопрос решился за 5 минут. В ЭДО сбиса был прекрасный шаблон. Адаптивный + более компактно печатается чем выше представленные. Советую. Думаю они есть в любом ЭДО, но в некоторый могут быть более сложно сверстаны и запрятаны стили.
Семён Кудрявцев
31 августа 2023, 16:23
0
К сожалению директива map работает только в контексте http, поэтому её использовать на modhost.pro не получится.
Но можно попробовать другой вариант, правда более медленный, но если получится напишите сюда. Я честно его не пробовал, просто первое, что в голову пришло, но теоретически развить этот вариант можно попробовать
http {
    server {
        listen 80;
        
        location / {
            if ($http_accept ~* "text/html") {
                # Do something if the Accept header contains "text/html"
            }
        }
    }
}