Записки динозавра

Автор блога: Ris
Все рубрики (15)

[Неактуально] Информирование пользователей об окончании срока публикации.

Пост неактуален. Весь функционал уже есть в версии 2.12.2

Небольшой хук, срабатывающий по хрону раз в день. Время и частоту срабатывания можно настроить.

[Неактуально] Информирование пользователей об окончании срока публикации.

Пользователям приходят уведомления такого вида:

Спойлер
На почту приходят такие письма:

Спойлер
Быстро проверить работоспособность компонента можно так:

Спойлер
Компонент доработан. Работает теперь на версиях начиная с 2.9.0

Скачать компонент уведомлений

Комментарии в ленте активности

Сто раз на форуме поднималась тема про сведение событий на сайте и комментариев в один виджет.
Многие (и я в том числе) пытались заносить в ленту активности новые события при добавлении комментария, но этот метод имеет несколько недостатков: "распухание" таблицы cms_activity и появление в ленте активности битых ссылок при удалении комментариев.
Но в файле \system\controllers\activity\widgets\list\widget.php есть вызов хука activity_before_list, который позволяет решить задачу без правки системных файлов.

[Неактуально]Редактор с настройками

Обратите внимание, что настройка кнопок редактора в версии 2.12.2 уже есть в коробке.

Очередная доработка нашего редактора.
Добавлено несколько кнопок и настройка кнопок тулбара для каждой группы пользователей.
После установки выбрать в настройках типов контента нужный тип контента, выбрать нужное поле (напимер текст новости) и установить для этого поля редактор iredactor.
После этого обязательно в настройках в компоненте "имперави редактор" настроить опции и доступ к кнопкам для групп пользователей.

Бэкап базы данных по расписанию.

С удивлением обнаружил, что не все знают, как сохранять бэкапы базы данных.
Это требует знаний команд bash и умения работать в консоли сервера.
Для облегчения и автоматизации данного процесса сделал утилиту, которая делает бэкапы базы по расписанию планировщика.
Она представляет из себя один хук \system\controllers\backup\hooks\cron_backup.php, который стартует по хрону или вручную из планировщика в админке. Он создает папку, название которой должен придумать админ, создает бэкап базы данных и пакует его в gz.
После этого удаляются архивы старше заданного времени.
Перед запуском задания "Бэкап базы" нужно зайти в компоненты, выбрать компонент "Бэкап базы данных", задать там имя папки с архивами, срок хранения архивов и нажать "Сохранить".

Поиск и перенос неиспользуемых картинок в Upload 2.x

В продолжение темы про удаление пустых папок, сделал утилиту для глобальной очистки папки upload.
Запускается из админки.
1. Сканирует в полях всех таблиц базы (имена нужных полей можно добавлять через запятую в опциях) все ссылки на файлы изображений и записывает результат в файл /upload/links.json.
2. Сканирует файлы в папке upload и записывает результаты в файл /upload/files.json
3. Преобразует оба файла в массивы, сравнивает второй с первым и заносит результат в файл /upload/compare.json
4. Снова сканирует папку upload и файлы, совпадающие именами с содержимым /upload/compare.json, переносит с сохранением подпапок и путей в папку /deleted/upload/
5. Бонусом (если поставить галку) удаляет пустые папки и в upload и в deleted.
6. Пакует папку deleted в zip и вывешивает ссылку на скачивание.

Удаление пустых папок в Upload 2.x

Сделал задание планировщика, которое запускает хук \system\controllers\files\hooks\cron_clear_upload.php, который сканирует папку upload и удаляет пустые папки.
Установка обычным способом. После установки появляется задача хрона, которая будет срабатывать в 4 часа и под покровом ночи удалять пустые каталоги.
Если вам не терпится посмотреть утилиту в работе - перейдите в Панель урправления - Настройки - Планировщик и стартаните вручную задание "Удаление пустых папок в Upload".
Имена удаленных папок будут выведены на экран.

Ospanel и InstantCMS

Для быстрой, удобной и безопасной в экспериментах, работы с сайтами да используйте люди Ospanel !
Это поистине удобнейший инструмент специально создан для вебмастеров и иже с ними.
Почитать про все возможности и ништяки можно прямо на главной странице официального сайта:
https://ospanel.io/
В чем смысл: Ospanel (раньше называлась Openserver) создает на вашем локальном компьютере вебсервер, на котором можно размещать и тестировать вебсайты. Файлы размещенных на оспанели сайтов доступны для поиска и правки прямо в проводнике и любом виндовом файлменеджере (totalcomander, far, doublecomander и т.д.).