Добавление и удаление товара из корзины со страницы категории и товара

Периодически клиенты просят функционал, чтобы можно было изменять количество товара не только находясь в корзине, но и со страниц категорий и самого товара.
Поэтому поделюсь своим решением. Сразу отмечу, что оно не претендует на позицию идеального, так что если есть замечания и предложения, то с радостью их выслушаю.
ВАЖНО! У меня версия miniShop2 4.2.0. Код будет отличаться для версий ниже. Так например до 4.1.4 отличается метод генерации ключа товара, а до версии 4.1.0 методы add и change корзины возвращают только ключ товара, когда в более новых версиях также есть измененное кол-во товара и прочая информация о нем.

1) Итак, для начала создадим сниппет inCart, который будет отвечать за вывод HTML-разметки, в зависимости от того, есть товар в корзине или нет. И соответственно два чанка tpl.inCart.btn и tpl.inCart.btn.not
Dan
Dan
25 декабря 2023, 01:30
modx.pro
2
1 392
+9

Tickets – вставка изображения в редакторе

Здравствуйте!

Компонент Tickets

При редактировании тикета (поста) в текстовом редакторе для вставки изображения нажимаю на кнопку Insert/Edit Image
В модальном окне, к сожалению, нет кнопки Загрузить изображение, только поле текстовое, куда можно вставить путь к картинке.

Как это можно исправить?

Геннадий

Gennady
24 декабря 2023, 07:19
modx.pro
413
0

[msGallery] не создаются миниатюры

Всем доброго дня.
Может кто сталкивался, не создаются миниатюры в msGallery при загрузке изображений в галерею товара.
disk.yandex.ru/i/OML5iB_TuMDpGA
disk.yandex.ru/i/PZDFmGG0vvhQmw
Обычно разварачиваю сайты на modhost.pro, и с такой проблемой не сталкивался.
Сейчас разрабатываю на beget.ru, может что-то с настройками сервера?
Сергей
23 декабря 2023, 16:32
modx.pro
345
0

Непредсказуемая логика в операции модификатора eq

Здравствуйте!
Почему, когда я залогинен, то сниппет redirect все равно выполняется? Как исправить эту странную логику?

[[!+modx.user.id:isloggedin:eq=`1`:then=`
	. . .			
`:else=`
	[[!redirect]]
`]]

redirect:
header('HTTP/1.1 301 Moved Permanently');
header('Location: /');
Владимир
23 декабря 2023, 14:08
modx.pro
376
0

[FlatFilters] Первая бета ждёт смелых и отчаянных.

Приветствую! Мы строили, строили и наконец построили. Рад представить вашему вниманию первого реального конкурента mFilter2. Пока это только бета версия, поэтому кому-то может показаться, что функционала маловато, пожелания принимаются в комментариях.
Артур Шевченко
22 декабря 2023, 20:58
modx.pro
2
3 308
+11

Подключение к MODX API из внешнего файла

Всем привет
в пределах одного сервера все понятно
а как можно подключиться с удаленного сервера?
что бы скрипт выполнялся на удаленном сервере (не на сервере хостинга сайта),
и можно было пользоваться API MODX для обращений к базе и т.п.
Greza
22 декабря 2023, 18:04
modx.pro
391
0

minishop2.class.php 630 PHP warning: Invalid argument supplied for foreach()

Добрый день!

Прощу помочь со следующей проблемой:

Эта ошибка стала забивать весь журнал ошибок
/public_html/core/components/minishop2/model/minishop2/minishop2.class.php 630
PHP warning: Invalid argument supplied for foreach()
<div id="msGallery0">
  {if $files?} 
    <div id="productSlider" class="flexslider">
      <ul class="slides">
      {foreach $files as $file}
        <li>
          <a href="{$file['450x450']}" data-lightbox="roadtrip">
            <img src="{$file['450x450'] | phpthumbon : 'w=450&h=450&zc=C&f=webp'}" alt="" title="">
          </a>
        </li>
      {/foreach}
      </ul>
    </div>
    <div id="productCarousel" class="flexslider">
      <ul class="slides">
      {foreach $files as $file}
        <li>
          <a href="{$file['450x450']}">
            <img src="{$file['450x450'] | phpthumbon : 'w=100&h=100&zc=C&f=webp'}" alt="" title="">
          </a>
        </li>
      {/foreach}
      </ul>
    </div>
  {else}
    <img class="img-responsive" src="/theme/img/no-image-450.png" alt="" title="">
  {/if}  

</div>
Ругается, видимо на второй вызов {foreach $files as $file}

Как исправить?
adminixi
20 декабря 2023, 12:45
modx.pro
409
0

ecommerce.js - Электронная коммерция (Яндекс.Метрика и Google Analytics) для сайтов на базе MODX + miniShop2

Привет!

Хочу поделиться js скриптом, который позволяет передавать данные электронной коммерции в системы аналитики Яндекс.Метрика и Google Analytics.

Из особенностей отмечу то, что мое решение выполнено не в виде дополнения для MODX, а в виде одного js файла и не имеет в своем составе php кода (сниппетов и т.п.). Также я применил, пожалуй, не самый стандартный подход в том, как будут получаться данные о товарах на страницах сайта.
Наумов Алексей
20 декабря 2023, 12:03
modx.pro
7
1 171
+12

AjaxForm hooks, последовательность вызова email

Всех приветствую!
Столкнулся с такой проблемой. В зависимости от расположения хука email, он либо срабатывает либо нет,
1. 'hooks' => 'FormItSaveForm,email,amocrm,unisender', // работает
2. 'hooks' => 'FormItSaveForm,amocrm,unisender,email', // НЕ работает
3. 'hooks' => 'FormItSaveForm,amocrm,email,unisender', // НЕ работает
т/е почему-то в случаях 2,3 отправка писем не происходит, почему так?
И да, я проверял, отправка в АМО идет, т/е если предположить, что после не срабатывания одного хука другой тоже не работает, этот вариант отпадает.
И второй вопрос, разве хуки не НЕЗАВИСИМЫ? Т/е если один не срабатывает — остальные за ним тоже?

Спасибо!
Роман
20 декабря 2023, 09:05
modx.pro
1
488
0

Content Security Policy в Modx

День добрый!
Пришло сообщение от SEO-шников «На сайте отсутствует защита от атак перекрестного скриптинга Cross-Site Scripting и XSS».
Я в этом дуб дубом. Вроде почитал, но по-моему не понял особо. Нашел дополнение от Василия, но для Modx 3, у нас 2.8.3.
Нашел статью, где достаточно просто добавить строку в htaccess.
Кто сталкивался с такой задачей, кто знает как это решать, тыкните пожалуйста что и где почитать. Заранее спасибо!
Lori
18 декабря 2023, 16:49
modx.pro
1
487
0