9 часов назад
Попробуйте мой компонент. IskWaf — Web Application Firewall (MODX3) iskwaf2x (MODX2)
Может поможет.
А то мало скачиваний даже немного обидно))
[Внимание] SQL-инъекция через miniShop2 (msPayment) в MODX — разбор и поиск причины 4
21 июня 2025, 11:02
Прошло уже больше 3-х лет с выхода компонента, но что то развития нет:
Нельзя создавать отдельные меню, только делать вложения в основное Нельзя коп...
Компонент для создания кастомного меню 18
20 июня 2025, 11:16
Пакет замечательный, использую во всех новых проектах с моментам выхода, спасибо автору!
Есть одно замечание, которое надеюсь появится в следующей ве...
StaticElementsLive 31
19 июня 2025, 21:26
Дошли руки до обновления ), выпусти версию 1.0.3-pl
Попробуйте… я просто убрал код, вызывающий ошибку, но к сожалению самому проверить сейчас негде.
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс 29
19 июня 2025, 16:46
Кстати вот нужно создать новый бакет и надпись что трафик платный.
Modhost и облачное хранилище S3 (timeweb cloud) 6
19 июня 2025, 14:34
Этот функционал очень нужен, поддерживаю. Просто вывести цены товаров в комплекте на вкладке комплекты
msProductKits - удобное управление товарами-комплектами (наборами товаров) 27
17 июня 2025, 15:16
Удалил компонент Ace и вот уже 2 недели чисто на сервере, возможно где-то в нем уязвимость
Вирусы майнеры 34
17 июня 2025, 13:21
При добавлении записи вылезает ошибка:
SocialNetworksItem_err_saveВ логах вот такая ошибка:
[2025-06-17 10:14:14] (ERROR @ C:\webserver\doma...
SocialNetworks 19
15 июня 2025, 12:39
Из названия таблицы кажется очевидным её назначение: записывать просмотры тикетов. Если просмотры нигде не фигурируют можешь чистить хоть каждый день....
Что делает в Tickets таблица tickets_views? 1
Если ты перетаскиваешь весь контент в другие таблицы, то какой-нибудь GoogleSiteMap для них карту сайта не построит, а mSearch2 их для поиска не проиндексирует.
Сегодня есть pdoTools, и с его помощью можно выводить данные из любых таблиц, для которых есть схема, но опять же, все его родные сниппеты заточены именно под ресурсы. Например, в pdoResources прописана сортировка именно по publishedon, которого может не быть в другой таблице. А pdoMenu использует карту ресурсов в modX::getParentIds для построения меню.
У меня тоже.
Но это у меня и тебя, в наших непубличных проектах.
А теперь представь себе условный miniShop3, который хранит миллионы товаров в своих собственных таблицах. К нему нужно будет поставить и полный набор всех сниппетов для вывода этих товаров, генерации меню, хлебных крошек и т.д.
Как оно, сильно больше Collections будет? Одну документацию писать замучаешься, а потом баги отлавливать и править.
Говорю же, я много об этом думал и пришёл к выводу, что делать подобное не стоит. Ну а если и делать, то как отдельную независимую либу, которую потом интегрировать с MODX.
Собственно, как Андрей Чирко уже сделал с Shopkeeper 4 — и что-то большого успеха на рынке MODX у такого решения не видать.
Нет, никто так не делает во фреймворках, там ты всё пишешь под себя.
Именно поэтому я и доказываю тебе, что в ресурсы в MODX — они именно что для контента. Это ограничивает систему, но делает её удобной для новичков и небольших сайтов.
Использование modResource в MODX — это единственно верный путь для хранения пользовательского контента в 99% использования системы. А если кому-то это не подходит, нужно поискать другую систему, таков мой вывод.
Слишком большой объём работы и непонятный выхлоп. Экономически не выгодно.
А как только ты захочешь написать популярное дополнение, которое будет хранить свой контент не в ресурсах, тебе сразу придётся написать еще кучу сниппетов для генерации по ним меню, карты сайта, хлебных крошек и т.д.
То есть, создать параллельную инфраструктуру сайта для твоего допа. Которую людям надо будет осваивать вместо обычной.
Я вот до сих пор этого не сделал, хотя одно время всерьёз над этим подумывал, как вектор для развития miniShop.
Стало быть, храниться в нём будут обычные ресурсы. Вот и подтверждение в процессоре publish на строке 32
Дальше мне копать исходники лень, но вроде и так всё понятно.
И по умолчанию в админке создаётся именно modDocument. Это не для хранения контента? И все сниппеты заточены именно под вывод этих документов, и для построения по ним навигации. Да и поля у этих документов как-бы намекают: published, pub_date, hide_menu, link_attributes и т.д.
Что бы там Джейсон себе не фантазировал, но как только разработчик доходит до мысли, что нужные ему данные проще хранить в своих таблицах, ему резко перестают быть нужны ТВ, шаблоны, чанки и сам MODX.
Потому что он переходит работать на фреймворки, которые создают таблицы и модели гораздо проще и быстрее.
miniShop2 делает так же, но это всё равно ресурсы — они так же попадают в кэш ресурсов сайта и так же приведут к тормозам, если их будет много.
Принципиальной разницы я не вижу.
markdowntohtml.com
Отпускаю с миром.
Потому что, внезапно, скрипты нужно куда-то вставить, для их работы. И если на странице нет body — то вставлять их некуда.
Это после загрузки страницы javascript подставляет количество комментов. Открой исходник страницы и увидишь на месте переменной, что там пусто.
Да и дело даже не в скорости, а в том, что при добавлении нового комментария их общее количество изменится, а склонение — нет.
Поэтому лучше или оставить как есть, без склонения, или делать его на js — и тогда total вообще не нужен.
Так что сейчас у тебя нет этой переменной, он пустая, и количество комментариев выставляется через javascript.
Укажи &setTotal=`1` в вызове TicketsComments, и всё должно заработать.
А вот до сих пор никому было не нужно. Да и сейчас толпы желающих не видно, ты один.
Отсутствие кэширования чего-либо, это не глюк.
Голословно. Fenom выигрывает в производительности за счёт других возможностей.
«Покажи», «кто-то исправил» — хорошо устроился. Тебя волнует — ты и исправляй, не жди никого.
Разрешите выполнять? Бегом?
Ну так ты чего тут сидишь, раз нет проблем?
Да вот вообще никакого желания тратить своё время на тебя нет.
Тему закрываю, всё осудили.
— Fenom дёргает pdoTools::runSnippet()
— Тот дёргает pdoTools::_loadElement()
— Ну а тот делает modX::getObject() для получения содержимого сниппета из БД
Вот и лишний запрос. Наверное, можно переписать так, чтобы без запроса проверять кэш, но пусть это делает тот, кому это сильно надо.
Не нужна работа с файлами, не нужно наследование шаблонов, не нужны циклы и функции, присвоение переменных — не мучай себя, работай с парсером MODX, раз он супербыстрый.
Может потом вдруг окажется, что из-за костылей с парсером, когда нужно вызвать несколько сниппетов, вместо одного цикла, у тебя просадки по скорости выйдут значительно серьёзнее.