Сергей Шлоков
С нами с 31 января 2013; Место в рейтинге пользователей: #37 часов назад
Постараюсь в свободное время это сделать, спасибо за предложение
[FetchIt] - Полноценная замена AjaxForm без зависимостей 59
8 часов назад
Самое лучшее решение в данной ситуации — это сделать отдельный файл для работы с этим API, например:
/assets/components/mycomponent/api.phpну или про...
[JSON] Как вывести страницу в формате JSON? 2
Вчера в 21:54
Не отображаются добавленные поля в редактировании пользователя.
Добавил одно поле в «общую информацию», для другого создал вкладку, в ней ещё вкладку...
ExtraFields. Дополнительные поля для ресурса (modResource) и пользователя (modUserProfile). 31
Вчера в 11:28
$_modx->resource['tv-name']Или в чанках где-то внутри pdoResources
$_pls['tv-name']но лучше избегать дефис в названиях TV. Дефис н...
Получение tv поля ресурса 4
17 апреля 2024, 19:12
С расположение пакетов это одна из проблем которую на мой взгляд нормально не решишь, всегда на измене что то то можешь затереть
По этому и придумал ...
Эксперимент с Modx Extra + Docker 12
17 апреля 2024, 09:41
Исходники открою ага. В общественный репозиторий пока не переношу.
[modRetailCRM] - теперь бесплатный для всех. 2
16 апреля 2024, 22:00
Координаты можно в админпанели у ресурса в ТВ полях определять…
Для этого советую поставить компонент YandexCoordsTv
Так будет намного проще.
Как сделать отложенную загрузку для скриптов яндекс карт и рекапчи 3? 7
16 апреля 2024, 21:10
Спасибо огромное! Все как надо!
[miniShop2] Как таблицу товаров, сформированную через msGetOrder, разбить на отдельные табли... 2
Проблемы надо решать по мере их поступления. Вот Алексей споткнулся об гигабайтную таблицу и предложил решение. Но опять же, оно нужно не всем, а только тем, у кого аналогичная проблема. Остальным можно не париться.
Ну а отдельная таблица — это явный оверхед. Тогда уж лучше передавать в форму зашифрованные данные из параметров сниппета в скрытый инпут. В этом случае оверхеда будет гораздо меньше.
Т.е. если для 98% пользователей решение отлично подходит, но для 2-х% нет, то его нужно выбросить в пропасть. Ибо это оскорбляет эти 2%. Это не они должны адаптировать решение, а остальные 98%.
А ещё можно в догонку спросить? Сколько дополнений Вы создали?
П.С. Я спрашиваю абсолютно по-дружески. )
Сессии — это просто инструмент. Всё зависит от того, как им пользоваться. Вот из коробки в сессии пишутся группы ресурсов и группы пользователей. В итоге возникает проблема консистентности данных после изменения этих настроек. Это плохое использование сессий. А в ajaxForm использование сессий вполне обосновано.
И это глобально никак не влияет на разрастание таблицы сессий.
По большей части проблема или в неправильной настройке сборщика мусора (не зависит от MODX) или в ботах (о чём писал Алексей в своей статье), ибо каждый запрос бота вызывает создание новой записи в таблице. С гостями особой проблемы нет — запись создаётся только один раз и будет использоваться в течение 7 дней, потом будет удалена и создана другая (разговор про один браузер и стандартные настройки). Пример как игнорировать ботов и не создавать для них сессии есть у меня на сайте.
П.С. К слову, я не сторонник С-ишных названий с префиксом I. Да и суффикс Interface, наверно, всё-таки лишний. По-современному должно быть так — интерфейс SessionHandler, а реализации — modSessionHandler, AntibotSessionHandler и т.п.
Самый простой выход — через js в админке менять хандлер у этого пункта меню, в котором указать свой процессор (поправленную копию системного процессора).
Зачем? Теперь лишняя таблица в базе болтается. Для таких целей используют миграции. В MODX их нет, но можно расширить схему.
Писать в базу нефильтрованный USER_AGENT — это чтобы пощекотать себе нервы?
Ну и про наследование в ООП советовал бы почитать.
Режим «Николай Ланец» OFF. ))
А сам сниппет в 1 строчку
Скачивается только залогиненным пользователем. Гостю отворот-поворот.
Вот для примера файл лежит в modx.local/assets/files/.
Т.е. перед тем, как отдать файл, ты проверяешь права. Так что левый пользователь не сможет загрузить его.
Проверил у себя на Apache, работает.