Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?
Хостинг или договор на обслуживание обычно ограничивает место, а сайт растёт незаметно: картинки в полный размер, архивы старых версий пакетов, логи, забытая резервная копия в корне. Когда место кончается, узнавать, куда оно ушло, приходится по SSH.
modSizeControl один раз обходит все файлы сайта и запоминает, что сколько весит. Дальше ответ на вопрос «куда делось место» — в админке, без консоли.
Компонент переписан с нуля: своя страница с шестью вкладками, пошаговое сканирование, очистка и новый виджет. Ключи системных настроек не изменились, так что лимит, заданный в старой версии, продолжит работать.

Круг — это лимит, дольки — категории: MODX, компоненты, медиа, пакеты, кеш, логи и прочее. То, что осталось до лимита, — пустой сектор. Рядом карточки «Заполнено», «Осталось» и «Лимит», ниже те же категории списком. Наведение на дольку или строку подсвечивает обе.
Без лимита — это значение по умолчанию — виджет показывает размер сайта и свободное место на диске. А если на диске свободно меньше, чем осталось до лимита, предупредит и об этом: лимит в 10 ГБ на диске, где свободно 2 ГБ, — так себе лимит.
«Обновить» сканирует сайт прямо в виджете, «Подробнее» ведёт на страницу компонента.

«Обзор» собирает всё на одном экране: сколько занимает сайт, сколько заполнено, насколько вырос с прошлого сканирования, пирог по категориям, типы файлов, самые крупные компоненты, график роста и очистку.
«Проводник» — папки сайта от самых крупных. Если папка относится к другой категории, у неё стоит метка, а фильтр по типу файлов пересчитывает размеры только по этому типу: так быстро находится, где лежат видео, которые контент-менеджер залил «временно» три года назад. У строк есть меню — кнопкой или правым кликом, как в гриде MODX: скопировать путь от корня сайта или полный путь на сервере, открыть файл в браузере, посмотреть крупные файлы папки.

«Компоненты» показывают, сколько каждый занимает в core/components и assets/components, с версией установленного пакета.
«Типы файлов» — из чего складывается размер, с кнопками «Где лежат» и «Крупные файлы».
«Крупные файлы» — всё от 100 КБ с поиском по пути.

«История» хранит итоги последних 500 сканирований. Если поставить сканирование в cron, через пару месяцев будет видно, в какую неделю сайт внезапно потяжелел на сотню мегабайт.

Вкладка, папка и фильтры хранятся в адресе страницы: переживают перезагрузку, ссылкой можно поделиться, а «Назад» в браузере возвращает в предыдущую папку.
На сайте с десятками тысяч файлов считать размер на лету долго, а для разбивки по папкам и типам всё равно нужно обойти каждый файл. Поэтому сканирование идёт шагами по несколько секунд через коннектор менеджера: большой сайт не упирается в max_execution_time, а прерванное сканирование продолжается с того же места. Страницу можно закрыть — сканирование продолжится, когда вы её откроете. Два окна не обходят одни и те же папки.
Обходится не только корень сайта, но и то, что MODX держит вне его: вынесенные ядро, assets, менеджер, коннекторы и источники файлов. Категории определяются по путям из констант MODX, так что переименованный core тоже распознаётся.
Для cron есть отдельный скрипт:
Внизу «Обзора» — то, что можно удалить без вреда для сайта: кеш MODX, логи в core/cache/logs и старые версии пакетов. Последний пункт особенно приятен: архивы предыдущих версий после каждого обновления так и лежат в core/packages, и на сайте, который обновляли пару лет, это десятки мегабайт.
Каждое действие — с подтверждением и со штатными правами: empty_cache, error_log_erase и packages. Старые версии удаляются тем же процессором MODX, что стоит за кнопкой «Удалить» в окне версий пакета, и только ниже установленной версии.

При заданном лимите файл, который в него не помещается, не загрузится через файловый менеджер. Размер при этом не замеряется заново на каждую загрузку — берётся последнее сканирование плюс всё, что загружено после него. Включается настройкой modsizecontrol_control, по умолчанию выключено.
pdoTools и Ace компоненту больше не нужны. MODX 2 и MODX 3 — из одного пакета, интерфейс в обоих выглядит родной частью менеджера.

Установщик сам удаляет то, что осталось от старой версии: файл assets/components/modsizecontrol/action.php и настройку modsizecontrol_tpl. Чанк tpl.modSizeControl больше не используется, его можно удалить.
modSizeControl один раз обходит все файлы сайта и запоминает, что сколько весит. Дальше ответ на вопрос «куда делось место» — в админке, без консоли.
Компонент переписан с нуля: своя страница с шестью вкладками, пошаговое сканирование, очистка и новый виджет. Ключи системных настроек не изменились, так что лимит, заданный в старой версии, продолжит работать.

Виджет на рабочем столе
Круг — это лимит, дольки — категории: MODX, компоненты, медиа, пакеты, кеш, логи и прочее. То, что осталось до лимита, — пустой сектор. Рядом карточки «Заполнено», «Осталось» и «Лимит», ниже те же категории списком. Наведение на дольку или строку подсвечивает обе.
Без лимита — это значение по умолчанию — виджет показывает размер сайта и свободное место на диске. А если на диске свободно меньше, чем осталось до лимита, предупредит и об этом: лимит в 10 ГБ на диске, где свободно 2 ГБ, — так себе лимит.
«Обновить» сканирует сайт прямо в виджете, «Подробнее» ведёт на страницу компонента.

Страница компонента
«Обзор» собирает всё на одном экране: сколько занимает сайт, сколько заполнено, насколько вырос с прошлого сканирования, пирог по категориям, типы файлов, самые крупные компоненты, график роста и очистку.
«Проводник» — папки сайта от самых крупных. Если папка относится к другой категории, у неё стоит метка, а фильтр по типу файлов пересчитывает размеры только по этому типу: так быстро находится, где лежат видео, которые контент-менеджер залил «временно» три года назад. У строк есть меню — кнопкой или правым кликом, как в гриде MODX: скопировать путь от корня сайта или полный путь на сервере, открыть файл в браузере, посмотреть крупные файлы папки.

«Компоненты» показывают, сколько каждый занимает в core/components и assets/components, с версией установленного пакета.
«Типы файлов» — из чего складывается размер, с кнопками «Где лежат» и «Крупные файлы».
«Крупные файлы» — всё от 100 КБ с поиском по пути.

«История» хранит итоги последних 500 сканирований. Если поставить сканирование в cron, через пару месяцев будет видно, в какую неделю сайт внезапно потяжелел на сотню мегабайт.

Вкладка, папка и фильтры хранятся в адресе страницы: переживают перезагрузку, ссылкой можно поделиться, а «Назад» в браузере возвращает в предыдущую папку.
Сканирование по шагам
На сайте с десятками тысяч файлов считать размер на лету долго, а для разбивки по папкам и типам всё равно нужно обойти каждый файл. Поэтому сканирование идёт шагами по несколько секунд через коннектор менеджера: большой сайт не упирается в max_execution_time, а прерванное сканирование продолжается с того же места. Страницу можно закрыть — сканирование продолжится, когда вы её откроете. Два окна не обходят одни и те же папки.
Обходится не только корень сайта, но и то, что MODX держит вне его: вынесенные ядро, assets, менеджер, коннекторы и источники файлов. Категории определяются по путям из констант MODX, так что переименованный core тоже распознаётся.
Для cron есть отдельный скрипт:
0 3 * * * php /var/www/site/core/components/modsizecontrol/cli/scan.php > /dev/null 2>&1Если в этот момент идёт сканирование, начатое в менеджере, скрипт его продолжит, а не начнёт второе.
Очистка
Внизу «Обзора» — то, что можно удалить без вреда для сайта: кеш MODX, логи в core/cache/logs и старые версии пакетов. Последний пункт особенно приятен: архивы предыдущих версий после каждого обновления так и лежат в core/packages, и на сайте, который обновляли пару лет, это десятки мегабайт.
Каждое действие — с подтверждением и со штатными правами: empty_cache, error_log_erase и packages. Старые версии удаляются тем же процессором MODX, что стоит за кнопкой «Удалить» в окне версий пакета, и только ниже установленной версии.

Контроль загрузок
При заданном лимите файл, который в него не помещается, не загрузится через файловый менеджер. Размер при этом не замеряется заново на каждую загрузку — берётся последнее сканирование плюс всё, что загружено после него. Включается настройкой modsizecontrol_control, по умолчанию выключено.
Без зависимостей
pdoTools и Ace компоненту больше не нужны. MODX 2 и MODX 3 — из одного пакета, интерфейс в обоих выглядит родной частью менеджера.

Обновление с 1.0.x
Установщик сам удаляет то, что осталось от старой версии: файл assets/components/modsizecontrol/action.php и настройку modsizecontrol_tpl. Чанк tpl.modSizeControl больше не используется, его можно удалить.
Изменения в новой версии.
2.0.0-pl
- Компонент переписан заново. Ключи системных настроек не изменились, поэтому заданный раньше лимит продолжает работать.
- Своя страница компонента (Приложения -> modSizeControl, право settings) с шестью вкладками: «Обзор», «Проводник», «Компоненты», «Типы файлов», «Крупные файлы» и «История». Вкладка, папка и фильтры хранятся в адресе страницы: переживают перезагрузку, а «Назад» в браузере возвращает в предыдущую папку.
- Пошаговое сканирование через коннектор менеджера: большой сайт больше не упирается в max_execution_time, прерванное сканирование продолжается с места остановки, а два окна не обходят одни и те же папки. Учитывается и то, что MODX хранит вне корня сайта: вынесенный core, assets, менеджер, коннекторы и источники файлов.
- Сканирование по cron: core/components/modsizecontrol/cli/scan.php. Если сканирование уже идёт из менеджера, скрипт продолжает его, а не начинает второе.
- Очистка с подтверждением и на штатных правах: кеш MODX (empty_cache), логи в core/cache/logs (error_log_erase) и старые версии пакетов (packages) — их удаляет тот же процессор ядра, что и кнопка менеджера, и только ниже установленной версии.
- Виджет рабочего стола переписан: круг — это лимит, дольки — категории; без заданного лимита виджет сравнивает сайт со свободным местом на диске и предупреждает, когда его меньше, чем оставляет лимит. При первой установке виджет сам встаёт на рабочий стол.
- Контроль загрузки больше не измеряет сайт при каждой загрузке файла: берётся последнее сканирование плюс всё, что загружено после него.
- pdoTools и Ace больше не нужны. MODX 2 и MODX 3 ставятся из одного пакета.
- Удалён доступный всем assets/components/modsizecontrol/action.php, через который любой мог запустить полное сканирование сайта; резолвер убирает его и неиспользуемую настройку modsizecontrol_tpl при обновлении. Чанк tpl.modSizeControl больше не используется, его можно удалить.
1.0.8-beta
- Изменён плагин, логика прерывания загрузки перемещена в класс
- Обновлён метод format_size
- Добавлены методы checkSize, getAvailable и getSiteSize
1.0.7-beta
- Добавлена функция которая контролирует загрузку файлов, которая прерывает загрузку файла в случае, если не хватает доступного пространства (По умолчанию выключена, системная настройка: modsizecontrol_control)
- Исправлена ошибка undefined вместо процента при первой загрузке
- Небольшие внешние изменения
1.0.6-beta
- Исправлена ошибка с выдачей диалогового окна при заполнении 100%
1.0.5-beta
- Исправлена js ошибка которая встречалась на всех страницах кроме главной
- Исправлено поведение бесконечной прокрутки после ошибки
1.0.4-beta
- Предусмотрено безопасное обновление
- Добавлено авто-определение свободного дискового пространства при установке
- Удалена настройка site_size
- Добавлено кэширование (12 часов)
1.0.3-beta
- Изменено обновление и определение размера файла
1.0.2-beta
- Remove init pdoTools from processor
- Added tpl setting
1.0.1-beta
- Refactoring js
- size/update processor
- Refactoring php
1.0.0-beta
- First Init




Последние обсуждения в сообществе MODX.pro