0.00
97 читателей, 70 топиков

Устранение вирусов на сайте с CMS ModX Evolution (Evolution CMS)

Приметы, что у вас на сайте вирусы:

  • Появление множества подозрительных файлов в корневой и других директориях
  • Не открываются страницы сайта помимо главной
  • Повышенная нагрузка на сервер
  • Наличие посторонних пользователей с правами администратора
  • Наличие файлов с расширением php или неизвестными расширениями там, где их быть не должно (например каталог с изображениями)

Читать дальше →

Console

Однажды bumkaka выложил простенькое, но полезное дополнение: MODx EVO console. Консоль неказистая, конечно, но не раз помогала. В новых версиях Evo она не работает, так что я на скорую руку исправил (теперь не будет работать в старых версиях), а заодно добавил туда редактор Ace. Почему не CodeMirror? Потому что Ace умеет показывать ошибки в php.

Если кому нужно, то лежит здесь: github.com/Pathologic/console

Сниппет для получения всякой информации о пользователе

Делал как-то для tiptop , может еще кому пригодится: https://github.com/Pathologic/userEnv. С помощью сниппета можно получить такие данные: IP, браузер, географические данные (страна, регион, город, координаты). Для получения геоданных используется база Sypex Geo City (UTF-8), базу нужно периодически обновлять.

Сниппет можно указать в параметре prepare или prepareProcess при вызове FormLister, тогда можно будет использовать плейсхолдеры [+env.ip+], [+env.browser+], [+env.country+], [+env.region+], [+env.city+], [+env.coords+].

Можно и как обычный сниппет вызвать, указав чанк в параметре &tpl. Плейсхолдеры будут без префикса env. Например:

[!
userEnv?
&tpl=`@CODE:Ваш IP: [+ip+]`
!]

Вывод даты создания, если дата публикации отсутствует

При переносе данных из Wordpress в EVO, столкнулся с такой проблемой – дата публикации для документа не указана. А в уже настроенных шаблонах что-то менять было лень. Кроме того, просто указывать в качестве даты документа — дату создания не всегда уместно – бывает отложенная публикация.
Так как вывод документов идёт через Doclister, добавляем prepare:
&prepare=`myDate`

Создаем сниппет myDate:
if ($data['pub_date'])
   $data['myDate'] = $data['pub_date'];
else
	$data['myDate'] = $data['createdon'];
return $data;

Соответственно, внутри шаблона Doclister указываем:
[+myDate:date=`%d.%m.%Y`+]


Возможно, существует более быстрое решение, но это первое, что пришло на ум.

Два виджета для ManagerManager

Написал два виджета для плагина ManagerManager.
На 25.05.2017 года не рекомендую использовать!
В версии MODX.Evo.Custom 1.2.1-d9.1.5 от виджета полностью ломается ManagerManager 0.6.2
В версии MODX.Evo.Custom 1.2.1-d9.1.0 работает нормально.

Первый mm_setDefaultTab.
Виджет делает видимой вкладку ОБЩИЕ в случаи если активной вкладки нет. Такая ситуация может возникнуть когда в конфигурации сайта стоит галочка — «Запоминать вкладки» (мне очень удобно, всегда ставлю ДА) и создали свои вкладки с помощью mm_createTab назначенные для определенных шаблонов.
Для использования добавить строчку mm_setDefaultTab('tabGeneral', '', ''); в mm_rules. Добавлять надо после строк которые создают дополнительные табы.
Скачать mm_setDefaultTab

Второй mm_hideNameTvFields
Для использования добавлять mm_hideNameTvFields('список TV параметров', '', '');
Предназначен для своих custom TV параметров. Виджет скрывает ячейку таблицы в которой отображается название/описание TV параметра, когда я пишу свой custom TV параметр мне жалко это практически пустующие место.
Скачать mm_hideNameTvFields