14 августа 2021, 15:01 А ещё интересно, какая связь между квадратными скобками для фронта и списком товаров в админке? Вопросы / [РЕШЕНО] minishop2 перестал выводить товары в документах "Категория товаров" 9 0
09 августа 2021, 09:09 @Иван Бочкарев Давно уже напрашивается добавить в название сайта «Revolution». Или на логотип. Вопросы / Переношу modx evo 1.0.15 ошибка 500. при смене php 5 0
05 августа 2021, 06:50 И придётся придумывать всё то, что уже есть в сессии. Вообще, в чём проблема-то? В сессии эти данные занимают байты. Ну пусть для всех пользователей это будет килобайты. Ну если уж у тебя большой сайт, то десятки МБ. И то при условии, что все ломятся на страницу с формой. А у большинства это какая-нибудь страница с обратной связью. Проблемы надо решать по мере их поступления. Вот Алексей споткнулся об гигабайтную таблицу и предложил решение. Но опять же, оно нужно не всем, а только тем, у кого аналогичная проблема. Остальным можно не париться. Ну а отдельная таблица — это явный оверхед. Тогда уж лучше передавать в форму зашифрованные данные из параметров сниппета в скрытый инпут. В этом случае оверхеда будет гораздо меньше. Для разработчиков / Почему AjaxForm использует сессии? 23 +2
04 августа 2021, 21:12 В сессиях обычно хранится уникальная информация пользователя. Вот у меня только один вопрос — у Вас большой опыт программирования? Вы можете гарантировать, что в форме не будет уникальной информации, как написал Василий? Ой, это второй вопрос. Т.е. если для 98% пользователей решение отлично подходит, но для 2-х% нет, то его нужно выбросить в пропасть. Ибо это оскорбляет эти 2%. Это не они должны адаптировать решение, а остальные 98%. Можно было просто создавать записи в БД для группы пользователей, использование сессии здесь не нужно.А ещё можно в догонку спросить? Сколько дополнений Вы создали? П.С. Я спрашиваю абсолютно по-дружески. ) Для разработчиков / Почему AjaxForm использует сессии? 23 +1
04 августа 2021, 10:46 BaseSessionHandler?Подойдёт. Таким образом есть понимание, где интерфейс, а где реализация (при DI). Но как правило, одновременно интерфейсы и абстрактные классы используют редко. Для проекта достаточно абстрактного класса, для библиотеки — интерфейса. В общих случаях. Ну и пространства имён никто не отменял (для одинаковых названий). Новые дополнения и их версии / Еще немного про сессии MODX, компонент smartSessions 76 0
04 августа 2021, 10:41 увидел ветку комментариев про хранение данных в сессии. Казалось бы, совершенно заслуженный камень в мой огород, как автора дополнения.А вот спроси этого человека как сделать без сессий проще, лучше и чтоб работало из коробки у всех, ответит что-нибудь в духе «не моё дело, я с MODX не работаю». Главное сказать, что сессии — зло. Почему и чем так они страшны? Думаю, объективного ответа не дождёмся. Сессии — это просто инструмент. Всё зависит от того, как им пользоваться. Вот из коробки в сессии пишутся группы ресурсов и группы пользователей. В итоге возникает проблема консистентности данных после изменения этих настроек. Это плохое использование сессий. А в ajaxForm использование сессий вполне обосновано. И это глобально никак не влияет на разрастание таблицы сессий. По большей части проблема или в неправильной настройке сборщика мусора (не зависит от MODX) или в ботах (о чём писал Алексей в своей статье), ибо каждый запрос бота вызывает создание новой записи в таблице. С гостями особой проблемы нет — запись создаётся только один раз и будет использоваться в течение 7 дней, потом будет удалена и создана другая (разговор про один браузер и стандартные настройки). Пример как игнорировать ботов и не создавать для них сессии есть у меня на сайте. Для разработчиков / Почему AjaxForm использует сессии? 23 +3
04 августа 2021, 10:21 Правильный — да, реальный — нет. В двойку это не добавят, а тройка никогда не выйдет. Поэтому нужно рулить в рамках пакета. П.С. К слову, я не сторонник С-ишных названий с префиксом I. Да и суффикс Interface, наверно, всё-таки лишний. По-современному должно быть так — интерфейс SessionHandler, а реализации — modSessionHandler, AntibotSessionHandler и т.п. Новые дополнения и их версии / Еще немного про сессии MODX, компонент smartSessions 76 0
03 августа 2021, 17:08 MODX не умеет очищать сессии, если используется иной, отличный от modSessionHandler класс.Вот это шляпа. По хорошему нужно править это. Самый простой выход — через js в админке менять хандлер у этого пункта меню, в котором указать свой процессор (поправленную копию системного процессора). Новые дополнения и их версии / Еще немного про сессии MODX, компонент smartSessions 76 +2
03 августа 2021, 08:31 А какое количество ресурсов возвращает первый сниппет? Максимально. Просто интересно оценить размер, так сказать, ущерба. Вопросы / Вызов сниппета из сниппета и параметры 13 +1
30 июля 2021, 07:33 Выступлю в роли Николая Ланца… Идея отличная!!! Но к реализации очень много вопросов. — для сессий создана новая таблица modx_smart_sessions, которая повторяет родную modx_sessionsЗачем? Теперь лишняя таблица в базе болтается. Для таких целей используют миграции. В MODX их нет, но можно расширить схему. Писать в базу нефильтрованный USER_AGENT — это чтобы пощекотать себе нервы? Ну и про наследование в ООП советовал бы почитать. Режим «Николай Ланец» OFF. )) Новые дополнения и их версии / Еще немного про сессии MODX, компонент smartSessions 76 +5
08 июля 2021, 11:15 будем благодарны вам за публикацию решенияЭто баг и проявляется он только на сайтах с большим количеством товаров. Решение простое — править. Вопросы / Запрос при создании товара 9 0
06 июля 2021, 07:55 Скорее всего тег MODX с фильтром stripString перевели в тег Fenom, а фильтр указали как модификатор. Но у Fenom нет такого модификатора из коробки. Вот он и ругается. Используйте вместо stripString модификатор replace. Вопросы / stripString не находит спиппет 3 +1
06 июля 2021, 06:49 Хватит простого сниппета-обёртки [[!ShowComments? &allowGuest=`1` &autoPublish=`0` &autoPublishGuest=`0` &allowGuestEdit=`0`]]А сам сниппет в 1 строчку return $modx->resource->parent == 236 ? $modx->runSnippet('TicketComments', $scriptProperties) : ''; Вопросы / [РЕШЕНО] Тикеты [tickets] добавляют в header лишний код 8 +2
05 июля 2021, 16:47 Сниппет pdoResources никаким образом не добавляет указанные скрипты и стили от Tickets. Вопросы / [РЕШЕНО] Тикеты [tickets] добавляют в header лишний код 8 0
03 июля 2021, 07:19 Бегло пробежался по коду. pdoTools подключается только для использования сниппета pdoMenu. Зачем нужно включать феном вопрос. Новые дополнения и их версии / loginSetting - быстрая настройка авторизации в MODX на основе Login 30 0
03 июля 2021, 07:11 Theme.Bootstrap и pdoTools. Зачем они нужны в пакете совершенно не ясно. Но очевидно, что данный пакет выдернут из текущего проекта автора без какой-либо подготовки для универсального использования (что как бы подразумевается для пакетов). Даже айдишки жестко зашиты. Т.е. я не рекомендую использовать данный пакет (пусть простит меня автор за моё мнение). Я бы такой пакет не одобрил. Новые дополнения и их версии / loginSetting - быстрая настройка авторизации в MODX на основе Login 30 +2
21 июня 2021, 06:17 Вообще, хорошим тоном считается тянут как можно меньше зависимостей. А тут аж целый две лишних. Новые дополнения и их версии / loginSetting - быстрая настройка авторизации в MODX на основе Login 30 0
10 июня 2021, 19:50 Вот простейший сниппет, который вызывается на странице modx.local/download?file=dl.txt if ($modx->user->isAuthenticated('web')) { $file = basename($_GET['file']); if (!empty($file) && file_exists(MODX_BASE_PATH . "assets/files/{$file}")) { header("Location: http://modx.local/assets/files/{$file}"); exit(); } else { header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found'); } } else { return 'Иди отседова.'; }Скачивается только залогиненным пользователем. Гостю отворот-поворот. Вопросы / Альтернатива Sharepoint с помощью MODX Revolution 20 +2
10 июня 2021, 19:31 А как можно увидеть прямую ссылку? Ты её формируешь на странице download. Пользователь её не видит. А когда файл отдаётся на скачивание, то ссылка тоже не светится. Вот для примера файл лежит в modx.local/assets/files/. Т.е. перед тем, как отдать файл, ты проверяешь права. Так что левый пользователь не сможет загрузить его. Вопросы / Альтернатива Sharepoint с помощью MODX Revolution 20 +1
10 июня 2021, 18:48 Ясно. Тогда я бы сделал так — для проверенных пользователей выводил бы список файлов. Кликнул «скачать» — идёт переадресация на страницу site.ru/download?file=filename. На ней проверяются права, счётчик и идёт переадресация на статический файл. Nginx нужно настроить на скачивание файлов вместо отдачи. Таким образом, PHP не используется. Проверил у себя на Apache, работает. Вопросы / Альтернатива Sharepoint с помощью MODX Revolution 20 0
Возможно ли реализовать возможность предоплаты за доставку на сайте? В любом случаем стандартный флоу минишоп2 рассчитан на оплату по ссылке, т.е. чтобы получить информацию об оплате, нужно чтобы заказ существовал. Чтобы сделать иначе, нужно использ...
Редизайн сообщества На больших экранах основной текст статьи я бы сделал 18 px. Да и текст комментариев можно таким сделать. Для меня лично 16 — мелковато на больших экранах (в комментариях вообще 15 ...
MiniShop3 1.11.0 при клике на radio идет пересчет итоговой суммы в orderUI, в зависимости от способов(оплаты доставки) я так поняла. попробуй код запуска события поставить ниже чем orderUI, после
ImageOptimizer - WebP/AVIF и responsive <picture> для MODX 3 Дополнение доступно modstore.pro/packages/photos-and-files/imageoptimizer
Localizator3 для MODX 3: перевод полей и TV без отдельного context на язык, Vue 3 + PrimeV... Добавил localizator3_default_language
msInShopNotify Начиная с версии 3.0.0-beta добавлена поддержка MiniShop3 Минимальные требования: PHP 8.4 MODX 3.2 MiniShop3
MaxNotify Обновление 1.2.0-pl (03.07.2026) — добавлены уведомления о заявках FormIt через hook-сниппет `maxNotifyFormIt`; — добавлены уведомления о заявках SendIt через hook-...
[msBonus2] 1.3.0 Бонус-коды, уведомления о сгорании и совместимость с msMultiCurre... Да, планируется. Даже чуть больше, чем просто бонусная система)
Проблемы надо решать по мере их поступления. Вот Алексей споткнулся об гигабайтную таблицу и предложил решение. Но опять же, оно нужно не всем, а только тем, у кого аналогичная проблема. Остальным можно не париться.
Ну а отдельная таблица — это явный оверхед. Тогда уж лучше передавать в форму зашифрованные данные из параметров сниппета в скрытый инпут. В этом случае оверхеда будет гораздо меньше.
Т.е. если для 98% пользователей решение отлично подходит, но для 2-х% нет, то его нужно выбросить в пропасть. Ибо это оскорбляет эти 2%. Это не они должны адаптировать решение, а остальные 98%.
А ещё можно в догонку спросить? Сколько дополнений Вы создали?
П.С. Я спрашиваю абсолютно по-дружески. )
Сессии — это просто инструмент. Всё зависит от того, как им пользоваться. Вот из коробки в сессии пишутся группы ресурсов и группы пользователей. В итоге возникает проблема консистентности данных после изменения этих настроек. Это плохое использование сессий. А в ajaxForm использование сессий вполне обосновано.
И это глобально никак не влияет на разрастание таблицы сессий.
По большей части проблема или в неправильной настройке сборщика мусора (не зависит от MODX) или в ботах (о чём писал Алексей в своей статье), ибо каждый запрос бота вызывает создание новой записи в таблице. С гостями особой проблемы нет — запись создаётся только один раз и будет использоваться в течение 7 дней, потом будет удалена и создана другая (разговор про один браузер и стандартные настройки). Пример как игнорировать ботов и не создавать для них сессии есть у меня на сайте.
П.С. К слову, я не сторонник С-ишных названий с префиксом I. Да и суффикс Interface, наверно, всё-таки лишний. По-современному должно быть так — интерфейс SessionHandler, а реализации — modSessionHandler, AntibotSessionHandler и т.п.
Самый простой выход — через js в админке менять хандлер у этого пункта меню, в котором указать свой процессор (поправленную копию системного процессора).
Зачем? Теперь лишняя таблица в базе болтается. Для таких целей используют миграции. В MODX их нет, но можно расширить схему.
Писать в базу нефильтрованный USER_AGENT — это чтобы пощекотать себе нервы?
Ну и про наследование в ООП советовал бы почитать.
Режим «Николай Ланец» OFF. ))
А сам сниппет в 1 строчку
Скачивается только залогиненным пользователем. Гостю отворот-поворот.
Вот для примера файл лежит в modx.local/assets/files/.
Т.е. перед тем, как отдать файл, ты проверяешь права. Так что левый пользователь не сможет загрузить его.
Проверил у себя на Apache, работает.