Modx evo защита от вирусов
Что такое MODX?
MODX (Модэкс или Модикс) — это бесплатная система управления содержимым (CMS) с элементами фреймворка для разработки веб-приложений.
Есть 2 версии CMS: актуальная MODX Revo и динозавр MODX Evo. Настоятельно рекомендуется использовать именно MODX Revolution.
ТОП-3 уязвимости MODX
Своего врага нужно знать в лицо. Поэтому рассказываем по-порядку о последних официально зафиксированных уязвимостях.
3 место. 11 июля 2018
Один из массовых взломов MODX был зафиксирован летом 2018-го.
Кодовые названия вирусных атак CVE-2018-1000207 и CVE-2018-1000208.
Взлом проходит по 2-3 классическим сценариям. Вирус выдает себя наличием файлов с подозрительными именами: dbs.php и cache.php в корне сайта (а еще бывает там майнер лежит).
Избежать заражения MODX можно при соблюдении двух условий:
- если папка connectors переименована и закрыт к ней доступ;
- переименована папка assets (при использовании компонента gallery).
Проблема в следующем. MODX передает пользовательские параметры в класс phpthumb без необходимой фильтрации. Для заражения сайта используются скрипт /connectors/system/phpthumb.php или любой другой передающий параметры в класс modphpthumb.class.php. Вредоносный скрипт получает на вход имена функций и параметры через куки. С помощью полученных данных происходит косвенный вызов этих функций. Например, если у вас установлен плагин Gallery (классика жанра), то атака может происходить через скрипт: /assets/components/gallery/connector.php.
Если сайт размещен на аккаунте виртуального хостинга без изоляции сайтов, то данный backdoor позволяет заразить не только хакнутый сайт, но и его “соседей”.
Найти и удалить вирусные файлы, обновить CMS до последней версии.
2 место. 27 октября 2018
Уже через три месяца после предыдущей атаки, была зафиксирована новая уязвимость. На этот раз в сниппете AjaxSearch.
Найти и удалить вирусные файлы, обновить сниппет до последний версии.
1 место. 24 апреля 2019
Самая свежая угроза MODX зафиксирована весной 2019-го.
Проверить свой сайт на такую уязвимость можно следующим образом. Введите в строку любого браузера адрес вашего домена + /setup.
Зайти через SSH или FTP на свой сервер и удалить этот каталог.
Обнаружение вирусов на живых примерах
Теперь на наглядных примерах рассказываю, как может проявлять себя вирус. Под уязвимость попал сайт на системе MODX Revolution 2.6.5-pl. Сразу стоит отметить, что внешне вирус себя особо не выдавал. Т.е. сайт не падал, не было редиректов на странные страницы, картинки отображались корректно и так далее.
Над сайтом проводились работы по сео-оптимизации, в том числе оптимизировалась карта сайта. В один не очень прекрасный день, был скачан файл sitemap.xml, для анализа его корректности. Открыв карту сайта, увидел такую картину:
В хвост url-адресов сайта прописался мусор, сгенерированный вирусом. Проверив в админке правила заполнения карты, я не нашел никаких следов деятельности паразита. Оказалось, что карту просто подменили. Первым делом вернул корректный сайтмап, а потом сразу “побежал” в Google Search Console и Яндекс.Вебмастер за письмами счастья. Пришло уведомление только от гугла, он оказался очень шустрым, когда не надо. В личном кабинете ожидало сообщение о нарушении безопасности.
Понятно. Далее проверил, что творится в индексе гугла и ужаснулся. Японская вакханалия! Как я дальше узнал, это японский SEO-спам.
С этим все понятно, а что думает на этот счет Яндекс? Да ничего. Вирус, как оказалось, чисто гугловый. Хоть одна хорошая новость. Почему так? Есть отличный сервис, который позволяет смотреть на сайт глазами поискового робота.
Выбираем в параметрах просмотра GoogleBot, пишем в строку адрес любой страницы и получаем результат. Японские иероглифы повсюду. Выбираем робота Яндекса — код выглядит естественным образом. Вот так гугл кроулер видит страницы сайта, хотя внешне (для человеческого глаза) они никак не изменились.
Контент зараженной страницы в глазах поисковика именно таков. По сути это японский дорвей. То есть под видом качественной страницы распространяется вирусная информация. Наш сайт находят по релевантному запросу в поиске (как и должно быть), но поверх качественного контента отображается вредоносная информация. В данном случае, как я уже говорил, это видит только гугловый бот. Для человека и бота яндекса страницы выглядят как обычные.
Этот японский вирус был удален из MODX с помощью утилиты ai-bolit. О работе с данной программой написано далее.
Базовые советы, как предупредить заражение сайта на MODX
- Делать резервные копии содержимого сайта.
- Следить за подсказками в Яндекс вебмастере и Гугл серч консоли о состоянии безопасности сайта.
- Проверять регулярно сайт на наличии вирусов скриптом ai-bolit.
- Использовать последние версии патчей для админки и модулей (плагинов).
- Следить за новостями безопасности из официального блога.
Меня заразили. Что делать?
Элементарно. Как можно скорее заняться удалением зловредов. Для SEO-продвижения важно устранить проблему до того, как ее обнаружат гугл или яндекс боты. Если вы опередили ботов, то уже хорошо, но времени на исправление все равно немного.
Как мы убедились ранее, процесс лечения сайта сводится к 2-3 шагам.
- Поиск и удаление вирусов.
- Установка обновлений (патчей), закрывающих уязвимости.
- Смена паролей, но в этом не всегда есть необходимость. Зачастую цель вирусных атак — заражение сайта для собственной выгоды, а не для кражи паролей.
Поиск и удаление вирусов. Как лечить?
Выделим 2 самых популярных способа лечения сайта от вирусов. Эти методы рабочие не только для сайтов, построенных на Модиксе, но и для всех остальных.
- Скачиваем антивирус ai-bolit для сайтов здесь.
- Распаковываем скачанный архив.
- Если у вас есть доступ к серверу через SSH:
-
1) Копируем содержимое папки ai-bolit в корень сайта.
-
2) Заходим на сервер через консольное приложение (например Putty) и переходим в корень сайта cd /путь/до/вашего/сайта.
-
3) Запускаем скрипт командой (в консоли будет отображаться статус проверки):
В отчете могут быть и чистые системные файлы MODX, будьте внимательны
-
2) Заходим на сервер через ftp по известным ip, login и password при помощи FTP клиента (WinSCP или Filezilla).
-
3) В корень копируем содержимое папки ai-bolit: ai-bolit.php (ранее правленый) и AIBOLIT-WHITELIST.db.
- После завершения проверки в корне сайта появится файл-отчет вида: AI-BOLIT-REPORT- - .html. Этот файл нужно скачать и открыть в браузере. В этом отчете будут указаны пути ко всем подозрительным файлам, например:
-
1) Файлы (в системных папках MODX), дублирующие существующие, с небольшим изменением в названиях. Такие файлы содержат закодированные данные и формы для загрузки файлов. Такие файлы необходимо удалять полностью
Cначала редактировать и только потом копировать файл ai-bolit.php, т.к. после копирования хостинг может заблокировать изменение файла
где сайт - название вашего домена,
пароль - ранее прописанный в файл ai-bolit.php.
-
5) При успешном переходе по вышеупомянутому адресу начнется сканирование сайта, по окончании которого генерируется отчет. Но скрипт может не выполнить полное сканирование, из-за стандартных ограничений PHP, установленных хостером и вы увидите на экране ошибку с кодом 50x. В этом случае надо найти в панели управления хостингом, где изменить параметры php и расширить параметры memory_limit до 512mb и max_execution_time до 600 сек, при необходимости и возможности ресурсов вашего хостинга задайте большие значения параметров.
-
6) Также хостер может заблокировать и запись файлов на вашей площадке, т.к. обнаружит активность вредоносных программ. В этом случае обратитесь в техподдержку с подробным описанием проблемы.
-
2) Файлы формата jpg, но не являющиеся изображениями (например, макросы). Это проверяется открытием таких файлов текстовым редактором. Такие файлы необходимо также удалять полностью
-
3) Реальные системные файлы MODX (например index.php), в которые добавлены извне строки вредоносного кода. Например команды, которые шли до комментария по умолчанию (см. ниже) — выше этого комментария кроме открывающегося тега
- После очистки следов вируса могут пострадать системные файлы. Это решается установкой свежей версии MODX и затем всех дополнений.
- Если сайт после очистки работает нормально, все равно обновите MODX!
- Не забываем чистить кеш в папке /core/cache/.
- u1234567_database — база данных, которую использует сайт;
- u1234567_dbuser — пользователь, от имени которого сайт подключается к базе данных;
- password — пароль для подключения к базе данных.
- user — имя пользователя, для услуг хостинга REG.RU имеет вид u1234567;
- site_name — имя сайта.
- u1234567_database — база данных, которую использует сайт;
- u1234567_dbuser — пользователь, от имени которого сайт подключается к базе данных;
- password — пароль для подключения к базе данных.
- Загрузка шаблона(чанка): $tpl=file_get_contents($_SERVER['DOCUMENT_ROOT'].'/assets/TPL/ditto.tpl');
- Если хотите пропарсить реальный чанк, хранящийся в базе MODX: $tpl = $modx->getChunk('ditto_blog'); Надо помнить, что эта функция вернет только текст чанка(сырой чанк). Необработанный. Как есть.
- Назначаем плейсхолдеры: $arr=array(var1=>"val1",var2=>"val2", . ); $modx->placeholders=$arr; Тут надо осторожнее. Чтоб не затереть существующие. Естественно, если будете использовать стандартные плейсхолдеры (id, pagetitle, . ) - этот шаг не надо делать.
- Парсим наш текст: $out=$modx->parseDocumentSource($tpl); .
- Некоторые программеры советуют еще вызвать: $out = $modx->evalSnippets($out); Но я не заметил, что это что-то дает. Как-то обхожусь без этого. Сниппеты и на предыдущем шаге отлично обрабатываются.
- Запускаем сначала сниппет. В нем определяем все функции.
- Ниже, в чанке запускается сниппет с вызовами этих функций.
Закалка MODX или как защитить сайт от вирусов?
Зачастую, вирусные алгоритмы работают по заезженному принципу. Они пробуют определить движок сайта с помощью прямых или косвенных параметров. Потом, используя свои шаблоны, пытаются взломать сайт. Прямые — это когда движок сайта явно указан в коде сайта:
meta name="generator" content="Joomla! 1.5 - Open Source Content Management"
-
Если на сервере сайта произойдет сбой, а php-файлы перестанут исполняться (будет отображаться их исходный код), то злоумышленнику будет несложно получить доступ к базе данных. Во избежании этого надо добавить в .htaccess файл следующую строку, чтобы не показывать код ошибки PHP:
Заключение
MODX подвержен частым вирусным атакам, как и все остальные CMS. Да, мы можем снизить риск заражения, выполнив грамотную настройку сайта, но это не панацея. Вирусы могут заползти оттуда, где их вовсе и не ждали. Поэтому не забрасывайте свои сайты и не пускайте на самотек. Своевременное обнаружение вирусов поможет избежать серьезных проблем с чисткой сайта и SEO-продвижением. Периодически проверяйте здоровье сайта, устанавливайте обновления и следите за новостями кибербезопасности.
Если вы еще ни разу не задумывались о безопасности своих сайтов, поздравляю вас, ваши сайты скорее всего заражены какой-нибудь гадостью.
Уверены, что это не так? Я буду искренне рад ошибиться. Но практика говорит об обратной тенденции. Огромная армия "веб-разработчиков" ни разу не обновляла движок, не просматривала логи, не проверяла наличие посторонних файлов, не меняла годами пароли. Сплошь и рядом встречаешь вопросы о древних версиях движка, а ведь это потенциальные "счастливчики", которые с высокой степенью вероятности являются частью ботнета.
Безопасность - это то, что может и должно делать вас настоящим параноиком. И как настоящий параноик вы должны делать все, чтобы не заразиться каким-нибудь трояном, дорвеем или шеллом.
Но не надо думать, что MODX это дырявый движок и что его постоянно взламывают. Взламывают абсолютно все движки и данная статья в равной степени относится к любой CMS платной или бесплатной. Вопрос безопасности в большинстве случаев зависит не от движка, а от отношения к безопасности сайта.
Вот несколько профилактических советов, которые не уберегут вас, но хотя бы помогут снизить риск:
Начну с самого банального и уже миллион раз сказанного. Никогда не используйте простые пароли! 123456, qwerty, password, admin, test и т.д. ЗАБУДЬТЕ ИХ НАВСЕГДА! Пароль должен состоять из случайного набора букв и цифр. Записывайте эти пароли и меняйте как можно чаще. И вообще, для кого я в левой колонке генератор паролей повесил?
Для поднятия настроения, которое дальше я вам буду усиленно портить, вот анекдот в тему:
— Извините, Ваш пароль используется более 30 дней, необходимо выбрать новый!
— розы
— Извините, слишком мало символов в пароле!
— розовые розы
— Извините, пароль должен содержать хотя бы одну цифру!
— 1 розовая роза
— Извините, не допускается использование пробелов в пароле!
— 1розоваяроза
— Извините, необходимо использовать как минимум 10 различных символов в пароле!
— 1грёбанаярозоваяроза
— Извините, необходимо использовать как минимум одну заглавную букву в пароле!
— 1ГРЁБАНАЯрозоваяроза
— Извините, не допускается использование нескольких заглавных букв, следующих подряд!
— 1ГрёбанаяРозоваяРоза
— Извините, пароль должен состоять более чем из 20 символов!
— 1ГрёбанаяРозоваяРозаБудетТорчатьИзЗадаЕслиМнеНеДашьДоступПрямоБляСейчас!
— Извините, этот пароль уже занят!
Про пароли и так вроде бы все всё знают, поэтому двигаемся далее. Знаете ли вы, что большинство сайтов на MODX имеют пользователя admin, причем это пользователь с административными правами? У вас не так? Поздравляю! Но большинство просто не догадывается использовать какой-то другой логин для администратора, потому что "так было в уроках". Ну а теперь представьте, что у вас администратор с логином admin и паролем 123456. И уверяю вас, таких умников хватает. Ах, да, вторым по популярности пользователем является manager. Беден и скуп русский язык на английские слова.
Кстати, вы уже 15849 посетитель, который неожиданно для себя решил попробовать подобрать логин и пароль к этому сайту :)
В сравнении с предыдущими двумя пунктами это не менее серьезно, но чтоб вы знали, 99,99% сайтов MODX Evolution имеют один и тот же адрес панели управления, и это не смотря на то, что теперь его можно легко менять. Смена адреса админки конечно же не гарантирует 100% защиты сайта, но потенциальному взломщику может усложнить процесс. Если вы настоящий параноик, вы знаете что нужно делать ;)
Для остальных рассказываю:
Каждый движок обладает признаками, по которым его можно определить с высокой степенью вероятности. Есть такие и у MODX. Но это не означает, что вы должны сообщать всем прохожим, что ключ от вашей квартиры лежит под ковриком в подъезде. Да, кстати, этот сайт сделан на Джумле.
Чем больше прошло времени с момента выхода нового обновления до того момента, как вы решили обновиться, тем больше ваш сайт подвержен уязвимости. Выход новых версий, как правило, сопровождается списком внесенных изменений, в том числе и связанных с устранением дыр в системе безопасности. Этому могут предшествовать публикации о взломах или найденных дырах. Т.е. потенциально каждая новая версия движка снижает безопасность старых версий и подвергает их дополнительному риску. Но если вы любитель острых ощущений, просто проигнорируйте этот пункт.
Скрипты, модули, плагины, сниппеты - сколько всего интересных разработок, которые так и хочется использовать в своих проектах! Фу-фу-фу! Очень часто мы сами закачиваем вирусы на свой сервер. Это тот случай, когда самым опасным и уязвимым элементом сайта является его администратор!
Надежных хостингов не существует. Надежных виртуальных хостигов нет вообще. Миф разрушен. Но большинство сайтов расположены именно на виртуальных хостингах. Но, независимо от типа хостинга, выбирайте тот хостинг, где поддержка будет относиться к вам как заботливая мать к неразумному ребенку, т.е. вытирать вам нос на каждый чих. Пожалуй, это единственный объективный критерий любого хостинга.
Помимо непосредственной безопасности сервера, о которой вам никто ничего рассказывать не будет, у виртуальных хостингов есть еще одна повсеместная беда. Общественные IP адреса, которые вам выдают на виртуальном хостинге, очень часто попадают в блеклисты. Происходит это по понятным причинам, чем больше сайтов на одном IP тем выше вероятность заражения какого-нибудь сайта и как следствие блокировки IP. По этой причине НИКОГДА не заводите почтовый сервер на виртуальном хостинге. А если все таки нужна почта на домене, лучше используйте яндексовскую почту для доменов. Хостеры как могут борятся с этой бедой, но за блеклистами следует следить и самостоятельно, например, с помощью этого сервиса, и напоминать хостеру при необходимости.
Риск попадания в блеклисты резко снижает наличие выделенного IP, но за все в этом мире надо платить.
Настоящий параноик хочет только одного, да и этого немного, да почти что ничего, а конкретно он хочет защищенного соединения с сервером. Поэтому, если есть возможность, которую должен предоставить хостер, отказывайтесь от FTP в пользу SSH. Что это и с чем едят, советую изучить заочно. Скачайте SSH-клиент, например WinSCP и наслаждайтесь процессом. Если же ваш хостинг не предоставляет вам такого удовольствия, а предлагает влачить жалкое существование по FTP каналу, то ни в коем случае не храните свои пароли в FTP-клиенте. И пусть вам сопутствует удача.
Визуальный контроль ни коим образом не обезопасит, но вы имеете шанс своевременно узнать о взломе. А чем раньше вы это узнаете, тем проще будет решить проблему. В первую очередь уделяйте внимание системным сообщениям. Информация о том, что были изменены системные файлы является пожарной тревогой. Срочно ищите что было изменено и к чему это привело.
Периодически проверяйте сайт на подозрительные файлы. В этом вам поможет замечательный скрипт AI-Bolit. Несложная инструкция по установке находится здесь. Если у вас нет достаточных знаний, то просто сверяйте все подозрительные файлы с аналогичными из исходников движка.
Делайте бекапы. И этим все сказано. Кто не сохранился, я не виноват.
Большинство пользователей едят перед компьютером и сильно пачкают едой клавиатуру. Еда гниет и из клавиатуры начинают расползаться страшные и вредные вирусы. Поэтому, обязательно мойте руки до, после и желательно вместо клавиатуры. И это не шутка. Но если быть чуть ближе к теме, то под личной гигиеной я подразумеваю чистоту и безопасность тех устройств, через которые вы подключаетесь к серверу или работаете с сайтом. Не пренебрегайте проверками своего компьютера. Именно через ваш компьютер злоумышленникам проще всего добраться до вашего сайта.
Итак, вы прониклись и стали настоящим параноиком в безопасности вашего сайта. Но вас все равно взломали. А я предупреждал, что советы советами, а вирусы все равно не дремлют, в отличии от вас. И первый вопрос, что делать? Ну и далее по классику, кто виноват?
1. В первую очередь необходимо установить хронологию событий. Надо выяснить когда и как это произошло. Помогут в этом access_log и error_log. Если вы не знаете как их посмотреть, обратитесь к хостеру.
2. Смените все пароли!
3. Просканируйте файлы сайта скриптом AI-bolit или попросите об этом своего хостера. Анализ подозрительных файлов поможет выявить угрозы.
4. Проверьте антивирусом все компьютеры, с которых осуществлялся доступ к сайту. Надеюсь, объяснять, что проверяемый компьютер должен быть на это время отключен от интернета, не нужно?
5. Помните, я говорил вам про бекапы? Если выявить и устранить угрозу не получается, восстановите сайт из резервной копии и обратитесь за помощью к специалистам.
Перенос ModX на другой хостинг
Сайт, написанный на ModX, состоит из файлов в формате PHP, файлов контента (изображения и другая информация) и базы данных (БД) в формате SQL. Чтобы сменить хостинг-провайдера, недостаточно просто разместить на его площадке файлы ModX. Перенос сайта на другой хостинг — сложная процедура, которая потребует от вас определенного багажа знаний и опыта в сфере разработки или системе веб-администрирования. Данная инструкция подробно описывает, как перенести сайт ModX (Evolution и Revolution) на другой хостинг, а также помогает устранить возможные ошибки.
Во избежание проблем при переносе на серверы REG.RU вы можете бесплатно воспользоваться помощью наших специалистов: Как перенести сайт на хостинг REG.RU.
Месяц хостинга в подарок за перенос сайта в REG.RU
Промокод на 1 месяц бесплатного пользования виртуальным хостингом или VPS с операционной системой Linux. Акция распространяется на заказ новой услуги или продление существующей.
Видео: Как перенести сайт на хостинг REG.RU
Инструкция по переносу сайта на ModX на хостинг REG.RU
Этот урок пошагово описывает как перенос ModX Evo на другой хостинг, так и перенос ModX Revo на другой хостинг.
Определите, в какой папке находятся файлы вашего сайта. Например, в панели управления ISPmanager корневая директория указана в разделе WWW-домены:
Вне зависимости от их месторасположения, перечень файлов сайта на ModX выглядит следующим образом:
Определите, какую базу данных (БД) использует ваш сайт. Для этого перейдите в корневой каталог сайта и в файле core/config/config.inc.php найдите следующие строки:
Перейдите в phpmyadmin. Используйте для входа имя и пароль пользователя базы данных. Кликните по названию БД:
Определите, в какую папку загрузить файлы вашего сайта. Корневая папка создаётся автоматически при добавлении домена в панель управления хостингом. Если вы уже добавили доменное имя, перейдите к шагу 9.
Перейдите в phpMyAdmin на новой услуге хостинга и выберите базу данных, в которую будет импортирован дамп (резервная копия БД):
Измените пути в конфигурационных файлах сайта:
Узнать путь до каталога сайта на новой услуге можно по инструкции.
Основные ошибки после переноса ModX на другой хостинг:
Причина: неверно указаны данные для подключения к базе данных в файле core/config/config.inc.php.
Решение: проверьте атрибуты доступов к базе данных. В файле core/config/config.inc.php найдите следующие строки:
Если все данные верны, проверьте, нет ли лишних символов или пробелов.
Посмотреть и изменить пароль базы данных можно по инструкции.
Причина: корневая папка сайта отсутствует, в ней нет файлов или назначены некорректные права.
Решение: проверьте наличие файлов сайта, а также корректность прав на папки и файлы сайта. В большинстве случаев права выглядят так:
Если права на файлы и папки отличаются от указанных, измените их по инструкции.
Причина: отсутствует файл .htaccess. для движка МодХ
Как видите, самостоятельный перенос ModX на другой хостинг — довольно сложный и длительный процесс. Если у вас возникли вопросы или вы хотите быстро перенести сайт на ModX, обратитесь в техническую поддержку.
Доверьте хостинг профессионалам. Быстрая работа и круглосуточная техническая поддержка.
Режим API нужен во многих случаях. Естественно, что админка создана для пользователей. Но для программиста чаще удобнее многие вещи делать в коде PHP. Тут уж как вырываешься в степь после душной комнаты). А там уж не обойтись без API. Вернее, можно. Но удобнее с API. Все таки не стоит впадать в пуризм и пренебрегать удобством и комфортом парсера modx. К тому же написание чанков - вообще то дело верстальщика. Но если не контролировать это процесс, можно скатиться в хаос. Приходилось видеть, когда владея только возможностями админки, верстальщики создавали монстрообразные многоуровневые чанки с бесконечным вызовом сниппетов, снова чанков. Приходилось иной раз пол-дня разматывать все связи. Тоже самое можно сделать одним чанком и одним сниппетом. Но это уже другой разговор. Особая вещь - обработка ajax-запросов. Много читал я про извращения с прерываемыми ресурсами, плагинами. Практика показала, что тут больше геморою, чем толку.
Скрипт-ответку на ajax-запрос я, как и многие, называю коннектором. Может это и не очень правильно. Ну да ладно. Далее речь пойдет о скриптах запускаемых вне модх. Т.е. автономно. Например если хотим подсунуть Яндексу онлайн XML-карту сайта. Можно, конечно создать ресурс, но проще запустить внешний скрипт. Чтоб не корячиться с "человеческими урлами", шаблонами, чанками, сниппетами. Иногда удобнее, когда все в одном компактном скрипте. Если мы хотим использовать api modx, парсить чанки, сниппеты, то нужно загрузить сам объект модх. И проинициализировать его. Я использую след код. Взят из генератора XML-карты сайта. После этого можно вызывать методы api. Пользоваться DB-api, парсить чанки, запускать сниппеты и прочее.
Не удалось мне это сделать просто и быстро. Тут словил проблемы. Парсилось не полностью. Меня по началу это сильно озадачило. Нашел таки решение, когда парсятся чанки и сниппеты. Необходимо сначала загрузить текст чанка. И потом пропарсить. На остальном не проверял. Короче делаю вот так:
Есть функция parseText. Например: Которая делает 1 проход и тупо подставляет элементы массива вместо тэгов "[+. +]". И толку от нее совершенно никакого.
Еще одна функции parseChank. Такая же тупая и бесполезная. Использует предыдущую ("parseText"), но для чанка.
Здесь, как правило, без проблем:
В последнее время часто этим пользуюсь. Это так же способ подключения функций с обратным вызовом (колбэки). Очень полезная и крутая вещь. Техника такова:
[!Snippet1!] Надо помнить, что в функциях modx не виден, поэтому надо не забывать добавить:global $modx;.
Далее идет сниппет с вызовами наших функций
В вызываемом PHP-коде все параметры доступны в массиве: при вызове в чанке: В файле PHP имеем:
Получить ИД текущего документа: $curId = $modx->documentIdentifier;
Можно догадаться, что где-то должно храниться текущее состояние страницы. Так и есть. Это объект $modx->documentObject.
При этом свойства страницы - в массиве(ключи - поля таблицы "modx_content"): А TV-параметры в массиве, который - член предыдущего массива
Можно использовать так: $pageTitle=$modx->documentObject['pagetitle'], $priceValue=$modx->documentObject['price'][1]. Т.е. нет необходимости вызывать функции, делать запросы к базе. И тот же id можно получить так: $curId = $modx->documentObject['id'];
$modx->documentListing - массив всех страниц alias=>id :
$modx->documentMap - массив всех страниц Array(parent=>child)
Работа в режиме API сильно упрощает жизнь программисту в MODX. Взять хотя бы извращения со снипетом if и всевозможными фильтрами и модификаторами. При чуть более сложной обработке все быстро вырождается в хаос и безисходность. Режим же API MODX дает кучу возможностей для прозрачного и легкого решения любых задач. Жаль, что не все документировано и пришлось долго рыться в исходниках, чтобы более-менее уверенно себя чувствовать.
Нужно проверить сайт на предмет заражения вирусами.
Сайт постоянно слетает. Хостеры пишут, что в файле index.php содержался неизвестный код.
Во вложении тот самый неизвестный код.
Приложения 1
Могу вылечить, гарантия 3 месяца, сделаю быстрее и лучше всех
#быстро #круто #дешево #рукинеизжопы
5566 проверен 168 0
Вылечу все зараженные файлы, а так-же настрою защиту от взлома.
Гарантия 9 месяцев.
1471 82 0 1
Добрый день. Это вирус. Готов вылечить. Большой опыт подобных задач (см. отзывы).
240 7 0
День добрый, пишите обсудим детали проекта, можем вести диалог в телеге.
Имею опыт в Кибербезопасности и вирусологии
Просмотрел ваш файл в приложении, есть готовое решение, пишите в ЛС
796 62 0
Здравствуйте, сделаю, нужен доступ к панели управления хостингом. telegram: @noparamos
1194 проверен 34 0
Здравствуйте.
Вылечил не одну сотню сайтов. Удалю вредоносные файлы, вычищу зараженные, предприму некоторые меры для предотвращения подобного. Гарантий от последующих заражений дать не могу, так как не от меня это зависит. Нужно обновлять движок, модули, шаблон и т.п.
Специализируюсь больше на ВП и ДЛЕ, лендинги, поддерживаю сайты на Джумле, МодХ. Но часто приходится браться и за другие движки/скрипты. Так как больше работаю с кодом. Но программированием как таковым не занимаюсь. Версткой макетов - тоже.
В основном работа с готовым - установка, настройка, доработка, корректировка.
Обработка картинок (ф-шоп), php, css, html, хостинг, базы и т.п.
----
Скайп blackcat_mla
Моё портфолио BlackCat.com.ua (или BceMoe.ru).
3823 проверен 157 0 3
1407 46 0
Здравствуйте. Готова обсудить. Опыт работы с modx больше 6 лет.
Украина
216 17 0
Добрый день.Могу Вам помочь. skype= tsyuha, [email protected], e-mail= [email protected]
вычищу, обновлю, залатаю
461 11 0
Вылечу сайт с гарантией пол года. Обращайтесь сюда либо в телеграм!
1862 проверен 69 0
Здравствуйте. Готов выполнить. Обращайтесь, буду рад сотрудничеству.
Читайте также: