Алексей Шумаев
С нами с 30 ноября -0001; Место в рейтинге пользователей: #24Вчера в 20:16
UPD
Добавил подключение js.cookie.min.js и ваш код заработал. Спасибо!
Как вывести похожие товары по списку опций? 12
Вчера в 19:45
Установил)), кода удалил composer remove nesbot/carbon
UDP
Ни фига не установилось)) Видимо моих знаний не достаточно, чтобы пользоваться этим доп...
Новый тип дополнений: mmxDatabase и mmxForms 33
Вчера в 13:29
Здравствуйте. Статус заказа меняется на «Оплачено» после того как покупатель оплатил товар и произошёл редирект обратно сайт. Появились случаи когда п...
[mspSberbank] Оплата заказов miniShop2 через процессинг Сбербанка 108
Вчера в 13:27
Так вроде, пошустрее будет ):
$sql = "
SELECT tvr.value, tv.caption
FROM {$modx->getTableName('modTemplateVarResource')} t...
Получение всех TV полей ресурса из конкретной категории и вывод в чанк 1
03 мая 2024, 11:45
Всем привет! Подскажите пожалуйста а можно ли сделать фильтр в 2 уровня и как это сделать? Т.е. например мне нужно сделать: домен/бренд-из-сео-фильтра...
Анонс SeoFilter - ЧПУ+SEO для mFilter2 и не только 120
02 мая 2024, 15:27
Есть у кого-то идеи? или в данном случае через плагин и событие пробовать, или мсинк тупо всё обрезает?
Msync как записать html контент, а не обработанный без тегов? 1
02 мая 2024, 12:15
воротите, что хотите. Вплоть до удаления исходников сайта, это уже на ваше усмотрение.
Это определённо очень важная возможность 😊
mmxFenom - нативная интеграция шаблонизатора 3
02 мая 2024, 11:30
Управляя настройками mysql, можно задать параметр sql_mode пустым значением (после чего все заработает), но хостер такую возможность не дает… Есть ли ...
pdoTools и sql_mode=only_full_group_by - ошибки при работе PdoPage 1
02 мая 2024, 10:27
<?php
$id = $modx->getOption('id', $scriptProperties, $modx->resource->id);
$field = $modx->getOption('field', $scriptProperties);
$tpl...
Вывод даты msTimeStamp полей MiniShop2: new, favorite, popular... 3
Конечно, у товаров должно быть унифицированное поле — артикул или id какой-то внешней БД-источника. Какой id будет у ресурса в системе при этом значения не имеет.
Попробуйте сделать так: загрузите на новый сайт товары из сторонней БД и артикулом укажите id товара в сторонней БД. Или расширьте таблицу msProduct (или modResource — по желанию) и пишите этот id в новое поле (например extID). Синхронизация будет идти по выбранному полю.
Если БД с таблицей товаров доступна извне, то обращаетесь к ней напрямую, если нет — выгружайте на ftp например в csv и забирайте данные оттуда — это тоже без проблем работает.
Ничего сложного тут нет, и весь функционал MS2 также будет в вашим услугам.
Нашёл маленькую опечатку: prntscr.com/kxu486
1. Выносите в ClientConfig поля для внешних скриптов (метрика, ets). например: ExtJSHead, ExtJSBody, ExtJSFooter
2. Выводите эти поля, где надо через сниппет:
Сниппет:
Переменные передаются.
Например определяем переменную {var $docid = $_modx->resource.id} в шаблоне, и эта переменная $docid доступна в расширении.
Если в расширении будет вставка файлового элемента, например:
{include 'file:templates/page.tpl'}, то $docid будет доступна и там.
Удобно, однако.
1. настройку ms2_services (если есть, от версии зависит. в старых не помню как было организовано) — указаны ли там посторонние классы для корзины
2. директорию core/components/minishop2/custom/cart — тут может быть кастомный класс, где переопределен метод добавления в корзину. Хотя он может быть где угодно )
Проще всего зайти в phpMyAdmin, найти таблицу префикс_site_plugin_events и поискать в ней по полю event значения: msOnBeforeAddToCart, msOnAddToCart (на всякий случай). Если что найдётся — смотреть плагин с id, который будет в поле pluginid.
Если нет — тогда не знаю — надо в сайте копаться…
Смотрите где округление начинается: в карточке или только в корзине или после оформления заказа.
Если сайт не на базовом функционале — смотрите ваши данные — единицы измерения, плагины, кастомизации штатных методов — где-то что-то округляет, наверное.
Если есть интерес этому вопросу, нужно отдельную тему создать.
Для меня странно, что никому эта тема особо не интересна. Либо все уже умеют защищаться, либо (что вероятнее) большинство народа не знает или не заморачивается. Почему это плохо, я написал выше.
Если вы знаете, как защищать ограниченные полномочия (указанные выше в обсуждении общеизвестны и не достаточны в этом контексте) — напишите статью, лично я буду очень благодарен. Я вот пока не знаю. Идеи есть, но надо проверять.
Евгений указал путь, за что ему спасибо.
Насчёт остального — не согласен, и особенно если вы не прекращаете сотрудничество после сдачи проекта — большинству клиентов нужна поддержка/обновления и т.д.
Впрочем, это сугубо моё дело, ваша точка зрения понятна и оправданна.
Защититься на 100% нельзя, никто не спорит.
Тут важно именно следующее: многие (и я в т.ч.) полагали, что у нас CMS и ограниченная учётка может отдаваться контент-менеджеру без особых опасений.
Евгений продемонстрировал, что это не так. Для меня это важно и я буду думать над изменением политики работы с modx.
Ещё раз извиняюсь за старт обсуждения в вашей теме.
Извинился выше, минуса почикал как смог…
Тема же не про ваше дополнение! Оно отличное и никак во взломе не виновато!
Майнер можно не найти годами, а у вас на примете сайт на модх с 10000 уников.
Последствия понятны, я думаю.
У меня есть печальный опыт борьбы с последствиями инсайда. Тут тоже самое — добыл ограниченный доступ к панели (это просто!) — сохранил в ресурсе сниппет и готово — авторизовался под админом (например). Редиске даже думать не надо будет — «эксплоит» он сможет купить где надо.
Для любого серьёзного сайта — это крайне опасно. Выход тут действительно один — не давать доступ вообще. Никакие базовые авторизации глобально не помогут, корпоративные сети никто не отменял. Про резервные копии — когда вы обнаружите проблему, чистых уже может у вас и не быть (проходили).