Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Автор дополнения
Баха
Пакетов
6
Закачек
1 525
Автор дополнения
Пакетов
6
Закачек
1 525
Версия 2.0.0-pl
Дата выпуска 25.09.2026
Загрузки 332
Просмотры 6 312
Хостинг или договор на обслуживание обычно ограничивает место, а сайт растёт незаметно: картинки в полный размер, архивы старых версий пакетов, логи, забытая резервная копия в корне. Когда место кончается, узнавать, куда оно ушло, приходится по SSH.

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 — из одного пакета, интерфейс в обоих выглядит родной частью менеджера.

Виджет в MODX 2

Обновление с 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