- Заметки 47
- Комментарии 25
Вчера в 17:14
В vesp долго переезжать. Нету модульности никакой и с авторизацией, в смысле с разграничением прав, там Василий особо не напрягался :-)
Плюсы и минусы Vue и gtsAPI 17
Вчера в 15:41
Параметр sortby сортирует по полю в базе. У вас в базе нет поля «pagetitle:getSurname», есть только «pagetitle».
Я бы предложил фамилию записать в ...
Модификатор сортировки pdoResources по pagetitle 2
Вчера в 13:01
Забыл написать версия modx 3.0.5
И сама форма
<form data-si-form="FormSlider" data-si-preset="slider_form" data-si-event=&quo...
[SendIt 2.0.0] Пагинация и обновлённая загрузка файлов 20
Вчера в 09:34
В критерия должны передаваться параметры where это все что можно передать
т.е.
возможно только так
$criteria = array(
"article:LIKE =>...
Массовое удаление 7
25 ноября 2024, 22:34
Вдруг кому понадобится… Прописать TV параметр в источнике файлов для MIGX можно так (для примера TV `ln`):
[[!migxResourceMediaPath...
Источник файлов и migx 6
25 ноября 2024, 21:01
Привет
Подскажи, пжл как добавить поля из компонента msFieldsmanager?
Скрин
msPre - фильтры по опциям minishop2 11
25 ноября 2024, 20:03
А как добавить если чекбоксы?
msPre добавление кастомного поля (списка с автодополнением) 4
25 ноября 2024, 08:00
ну тогда groupby и having«query» принимает все параметры pdoFetch и в нем есть и groupby и having. Пример навскидку:
"query":{
&quo...
Кейс gtsAPI. CRUD пользователей на фронте 2
24 ноября 2024, 20:31
Правильный вариант из текущей документации такой:
{set $condition = 1}
{switch $condition}
{case 0, 1, 2}
сработае...
Конструкция switch case без break в Fenom 6
Проблема замечалась еще в 2012 году, но за все время поисков я не смог найти адекватного ее решения. В основном все советуют отключать сжатие css js, чистить кэш и прочее, но это не помогает.
Чего я только не делал за эту неделю, но методом проб, ошибок и кучи потраченных нервов мне удалось прийти к самому простому и эффективному решению данной проблемы, которое не затронет структуру вашего сайта и БД.
В шапке оставил теги, по которым люди чаще всего ищут решение данной проблемы.
Теперь к сути:
Конкретного решения (то есть из за чего возникает данная проблема и как решить ее точечно) я не нашел, хотя очень хотелось бы. Но нашлось решение другое, возможно даже лучшее. Нам не потребуются новые домены и базы данных.
По пунктам:
1. Выходим из админки MODX.
2. Удаляем оба файла .htaccess (в корне сайта и в /core).
3. Вручную чистим кэш (удаляем всё из папки /core/cache).
4. Выгружаем нашу базу данных любым удобным способом (я делал через phpMyAdmin).
5. Удаляем все таблицы из БД(чтобы база данных была пустая).
6. Скачиваем с офсайта MODX файлы для установки.
7. Заливаем их на сервер поверх наших файлов с заменой (перезаписать все совпадения) и не забываем про папку setup.
8. Далее идем по адресу 'ваш-сайт.ру/setup' и устанавливаем MODX (не обновляем, а именно устанавливаем, первый пункт в списке предложенных). Я так же отключал сжатие css js. Тут как обычно, выбираем нашу ранее очищенную БД и устанавливаем. В конце установки уберите галочку «удалить установочные файлы», так как папка setup нам еще понадобится.
9. Далее идем в базу данных, удаляем вновь созданные таблицы и импортируем нашу старую базу, которую мы выгрузили в пункте 4. Чистим кэш (/core/cache).
10. Снова идем по адресу 'ваш-сайт.ру/setup', тут нам могут сказать, что надо удалить папку .locked в папке setup чтобы продолжить, делаем это и перезагружаем страницу установки. Теперь все нормально и нам остается лишь выбрать второй пункт «обновить», убрать чекбокс «сжатие css js» и обновить MODX.
11. Снова чистим кэш и пробуем заползти в админку. У меня после такого обновления (О, ЧУДО) админка ожила и все работает как раньше, ничего не слетело и не уехало, все на месте. Не забываем переименовать файлы ht.access
За время поисков решения я смог предположить несколько вариантов появления данной проблемы, но это лишь предположения:
— Вредоносный php скрипт (проблемы с безопасностью)
— Неверное системное время (возможно заходили в админку с компьютера с неправильно настроенным временем) — Мутные делишки хоста. За время поисков обнаружилось аж 4-ро людей с такой проблемой, которые хостились на MasterHost, как и я. «Совпадение? Не думаю...». Хотя с данным хостингом работаю на MODX давно и таких проблем на прошлом проекте с версией 2.5.2 не возникало. Может быть и правда совпадение, но я все же новый проект перенес на более популярный хост))
Еще на счет хостинга — еще до начала недельной эпопеи, греша на хост, я переправил сайт на новое место, но проблема осталась, так что нельзя быть на 100% уверенным в «мутных делишках» хоста, хотя возможно какие-то сбои повредили js-скрипты. Тут лучше судить знающим людям.
Надеюсь, что моя инструкция поможет с решением данный проблемы тем, у кого она возникла. Спасибо за внимание)
Ну так можно украсть?
Хоть бы слово сказал, где был этот сниффер. Т.е. загружался откуда то или файл был залит на сервер? Это разные вектора атаки.
Вообще, тема безопасности будет подниматься всё чаще. Информатизация общества. Интел опять заявил о дырке в процессоре. На хабре попадалась статья про расширения браузера, сливающие данные. А ещё недобросовестные разработчики — недавно Николай Ланец выкладывал ссылку про очень известное дополнение для Node.js, которое воровало биткоины. Плюс огромная армия младоразработчиков, которые умудряются оставлять дырки даже в статических файлах или устраиваются работать в крутые студии. И в результате видим такое. Да даже Facebook хранил пароли в открытом виде.
Самая главная уязвимость — человек. )
П.С. Оставлю тут, может кому пригодится.
Если ты что то новое добавляешь в карту объекта и базу данных (уточню на всякий случай что еще и таблицу базы данных нужно расширять ручками) — то так же ручками нужно добавлять новый дополнительный код в js массив полей.
Обычно делают отдельный плагин, чтобы не вносить правки в исходный код MODX.
Вот пример, прямо из рабочего проекта дернул
На выходе получилось вот так prntscr.com/mnm25m
Открыл сниппет mFilter2 и увидел там вот это:
Это значит что для отсутствующих фильтров можно указать чанк, а не просто отключить вывод пустых результатов параметром
В документации упоминания о «tplFilter.empty.» не нашел.
Я создал чанк с неактивным чекбоксом, в итоге для одного чекбокса получился вот такой вызов:
И в итоге получил вот такой результат:
И вставил сюда
В будущем планируется поддержка двух версий платной и бесплатное.
От вирусов оно конечно не избавит, но поможет разобраться с вашей файловой системой.
Смысл в том что во время сканирования происходит заказчка вашей версия MODX из репозитория https://ilyaut.ru/download-modx/ (только чистая)
Затем все распаковывается в папке core/cache/default/scannermodx/repository/modx-2.6.5-pl
Запускается паук который ищет все файлы с расширение: php,js,html,tpl,css,scss,sass,less (можно свои добавить)
И во время поиска сравниваются файлы ядра с версией ядра из репозитория.
Если в файлах ядра были какие то изменения то вы это все увидите.
В общем пробуем: https://yadi.sk/d/mLKu-jXq3a7jJU
Так же составляется список карантинных файлов и список доверенных файлов и директорий.
Чтобы не сканировать все подряд.
Так же еще можно открыть файл и посмотреть что в нем.
Вот так это все выглядит:
Если будут какие то идеи по улучшению то пишите.
Особенно нужны алгоритмы для отлова вирусных файлов. Чтобы можно было вычислять зараженные файлы.
Директории и файлы:
переносишь список файлов к удалению в отдельный текстовый файл, в нем каждая строка — удаляемый файл и путь к нему
И да, вместо PuTTY под винду лучше www.bitvise.com/
Парсер MODX запускается перед феномом только для обработки кэшируемых тегов. Вообще парсинг выглядит так:
1. Запускается парсер MODX и обрабатывает кэшируемые теги. Феном теги остаются необработанные.
2. Запускается парсер фенома, если есть теги Fenom.
3. Запускается парсер MODX и обрабатывает некэшируемые теги пока они есть. Нераспарсенные не удаляются.
Пункты 2 и 3 могут выполняться в цикле до 10 раз, если есть нераспарсенные теги.
4. Запускается парсер фенома, если есть теги Fenom.
5. Запускается парсер MODX и обрабатывает некэшируемые теги пока они есть. Нераспарсенные теги удаляются.
Пункты 4 и 5 пункт могут выполняться в цикле до 10 раз, если есть нераспарсенные теги.
Многие, наверно, обращали внимание на тормоза, если указан несуществующий плейсхолдер.
Выглядит эта конструкция, мягко говоря, как вид жопы сбоку. У этих парсеров разный принцип работы. По хорошему, разработчикам MODX нужно или вообще отказываться от парсера и просто дать возможность пользователям самим выбирать (я сделал маленький шажок в эту сторону) или дорабатывать его до более-менее функционального уровня (я это тоже пробовал).
Я бы посоветовал использовать оба парсера так:
— юзать только кэшируемые теги MODX ([[*tag]], [[$chunk]], [[++system]], [[snippet]]). Хорошо для оптимизации.
— для остального использовать феном.
В этих режимах парсеры не пересекаются.
Просто в файле подключаете modx api, разбираете xml и из готового массива с данными товаров обновляете цены с помощью процессора modx.
если очень схематично, то так
Если нужно обновлять только одно поле, то можно не через процессор а так