[modSizeControl] - компонент позволяющий контролировать размер сайта
Привет сообществу!
Выражаю большую благодарность Павлу Зарубину, так как компонент выйдет в целом его стараниями.
Несколько раз сталкивался с проблемой, когда менеджеры пользуются дисковым пространством как бесплатным файловым хранилищем и им кажется, что оно неиссякаемое. Хостинги которыми я пользовался не предоставляли и вряд-ли будут предоставлять подробные данные о размерах отдельных папок/сайтов (должно быть ресурсозатратный процесс) потому и приходилось искать разжиревшие сайты вручную. Это была веская причина для того чтобы разработать данный компонент, который был призван облегчить решение такого рода проблем.
![](https://file.modx.pro/files/7/b/7/7b741df43cc91e68042b8dcbe2a803c0.png)
Что из себя представляет компонент на данный момент:
![](https://file.modx.pro/files/d/0/c/d0c88ba3886b0aa74930c3a4cbbe497as.jpg)
![](https://file.modx.pro/files/e/2/d/e2de21284f68d9c2529f8274d8203947s.jpg)
![](https://file.modx.pro/files/6/a/3/6a31cead9881bd625b37daececd49fe2s.jpg)
Планируется также отправка письма разработчику при достижении критической/определенной отметки заполнения ну и многое другое.
☕ Угостить чашкой кофе
UPD:
Компонент доступен на modstore.pro и на GitHub
Всем спасибо и отдельно кончено же еще раз Павлу Зарубину.
Выражаю большую благодарность Павлу Зарубину, так как компонент выйдет в целом его стараниями.
Несколько раз сталкивался с проблемой, когда менеджеры пользуются дисковым пространством как бесплатным файловым хранилищем и им кажется, что оно неиссякаемое. Хостинги которыми я пользовался не предоставляли и вряд-ли будут предоставлять подробные данные о размерах отдельных папок/сайтов (должно быть ресурсозатратный процесс) потому и приходилось искать разжиревшие сайты вручную. Это была веская причина для того чтобы разработать данный компонент, который был призван облегчить решение такого рода проблем.
![](https://file.modx.pro/files/7/b/7/7b741df43cc91e68042b8dcbe2a803c0.png)
- Можно указывать лимит сайта (Системная настройка: modsizecontrol_site_limit)
- Можно указывать один или несколько источников файлов для определения размера (Системная настройка: modsizecontrol_file_system)
- Интерфейс в виде виджета на главной странице панели управления
- Данные обновляются по клику кнопки через Ajax
- Отображение процента в виде кругового графика
- Смена цвета при достижении определенных точек заполнения (Зеленый, Желтый и Красные цвета для визуального сообщения)
- Вывод сообщения менеджеру при достижении критической отметки заполнения
![](https://file.modx.pro/files/d/0/c/d0c88ba3886b0aa74930c3a4cbbe497as.jpg)
![](https://file.modx.pro/files/e/2/d/e2de21284f68d9c2529f8274d8203947s.jpg)
![](https://file.modx.pro/files/6/a/3/6a31cead9881bd625b37daececd49fe2s.jpg)
Планируется также отправка письма разработчику при достижении критической/определенной отметки заполнения ну и многое другое.
☕ Угостить чашкой кофе
UPD:
Компонент доступен на modstore.pro и на GitHub
Всем спасибо и отдельно кончено же еще раз Павлу Зарубину.
Комментарии: 29
Очень полезный виджет! Круто, спасибо!
Не за что)
Отличный компонент. Информативно. Полезно. Удобно.
Спасибо
Спасибо
Не за что)
Крутой компонент! Да ещё и красиво всё оформлено, по фэншую! :)
![](https://file.modx.pro/files/a/5/d/a5d6000df6c482566e2a7549aa817998.jpg)
Компонент теперь доступен на modstore.pro
Добрый день!
Поставил Ваш компонент. Интересный.
Сразу нашёл разочарование: modsizecontrol_site_limit указывается в байтах.
Было бы здорово иметь возможность указания размера human-readable, т.е. 15G, 1280M, 15k и т.д.
Заранее спасибо.
Поставил Ваш компонент. Интересный.
Сразу нашёл разочарование: modsizecontrol_site_limit указывается в байтах.
Было бы здорово иметь возможность указания размера human-readable, т.е. 15G, 1280M, 15k и т.д.
Заранее спасибо.
Так в MODX везде вроде в байтах. Это нормальная практика. Вот если б вывод был в байтах, это разочарование, да… =)
Сожалею, что вас разочаровал. В скором времени кое какие баги исправлю и заодно в планах было указывание в МБ
Скажите, не понимаю как пользоваться. В системных настройках указал лимит, но в админке виджет не показывается. Что нужно сделать для того, чтобы этот виджет увидеть на Главной странице входа в админ. панель — указать в дефолтном чанке входа — чанк tpl.modSizeControl?
Для того, чтобы вывести виджет вам нужно Меню -> Панели->Открыть на редактирование нужную панель->Нажать кнопку «Добавить виджет» и выбрать из списка компонент.
На modstore добавил gif-ку где отображается процесс установки
Вышло небольшое обновление
Очень полезная штука, спасибо.
Жаль результат последней проверки не заносится в базу, хотелось бы написать плагин на «onFileManagerUpload», который проверял бы размер сайта и выдавал ошибку, если превышен лимит, а достать этот размер пока неоткуда.
И не могли бы сказать как часто сканируются файлы, при загрузке каждой страницы админки или только главной?
Жаль результат последней проверки не заносится в базу, хотелось бы написать плагин на «onFileManagerUpload», который проверял бы размер сайта и выдавал ошибку, если превышен лимит, а достать этот размер пока неоткуда.
И не могли бы сказать как часто сканируются файлы, при загрузке каждой страницы админки или только главной?
И не могли бы сказать как часто сканируются файлы, при загрузке каждой страницы админки или только главной?На данный момент сканирование происходит только по нажатию кнопки.
Жаль результат последней проверки не заносится в базу, хотелось бы написать плагин на «onFileManagerUpload», который проверял бы размер сайта и выдавал ошибку, если превышен лимит, а достать этот размер пока неоткудаВ планах есть такое реализовать
Ало, я уже давно сделал автообновление) Обновляется каждые 12 часов
Мда, Паша пропустил) Главное переводил для modstore и забыл)
Каждые 12 часов, в последней версии с гитхаба
В modstore уже давно)
который проверял бы размер сайта и выдавал ошибкуДанный функционал уже есть в коробке
- Установить pdoTools и включить системную настройку: pdotools_fenom_default
- Либо заменить содержимое чанка: tpl.modSizeControl на:
<div id="modsizecontrol-body"> <div id="modsizecontrol-wrapper"> <div class="modsizecontrol-column"> <div class="modsizecontrol-item"> <span class="modsizecontrol-text-sm">[[%modsizecontrol_total]]</span> <span id="modsizecontrol-size" class="modsizecontrol-text modsizecontrol-text-lg">[[+size:default=`[[%modsizecontrol_err_unknown]]`]]</span> </div> <div class="modsizecontrol-item"> <span class="modsizecontrol-text-sm">[[%modsizecontrol_available]]</span> <span id="modsizecontrol-limit" class="modsizecontrol-text modsizecontrol-text-muted">[[+limit]]</span> </div> <div class="modsizecontrol-item"> <button id="modsizecontrol-send" class="x-btn x-btn-text primary-button"> <i class="icon icon-refresh"></i> [[%modsizecontrol_refresh]] </button> </div> </div> <div class="modsizecontrol-column" style="position: relative;"> <div id="modsizecontrol-circlechart" class="modsizecontrol-circlechart" data-percentage="[[+percent]]"> </div> <span id="modsizecontrol-percent" class="modsizecontrol-info">[[+percent]]%</span> </div> </div> </div>
Подскажите пожалуйста, у вас fenom включен?
Сегодня выпущу обновление, которое исправит, ну а пока у вас 2 выхода из ситуации:
Спасибо, помогло, воспользовался первым вариантом.
Огонь, все работает. Спасибо.
Для правильного размера в Linux
core/components/modsizecontrol/model/modsizecontrol.class.php
//$io = popen('/usr/bin/du -sb '. $dir, 'r');//sb
$io = popen('/usr/bin/du -sk '. $dir, 'r');
if ($io !== false) {
//$totalSize = intval(fgets($io, 80));
$totalSize = intval(fgets($io, 80)) * 1024;
core/components/modsizecontrol/model/modsizecontrol.class.php
//$io = popen('/usr/bin/du -sb '. $dir, 'r');//sb
$io = popen('/usr/bin/du -sk '. $dir, 'r');
if ($io !== false) {
//$totalSize = intval(fgets($io, 80));
$totalSize = intval(fgets($io, 80)) * 1024;
Отличное решение.
Для своих нужд писал нечто подобное.
Только источник файлов не указывался в ручную, а брался из настроек группы пользователя.
Поскольку контексты разрастутся.
Менеджеру конкретного контекста выводится информация по его источнику файлов.
А группе «Administrator», выводится общий размер всех источников файлов +
список контекстов с указаним размера источника файлов.
Автору, безусловно огромное спасибо за труды!
Если в будущем у вас появится такая автоматизация и вывод группе «Administrator» общего размера + по каждому контексту, а менеджерам только его источник файлов. То не стану свое решение допиливать =) Воспользуюсь вашим!
Для своих нужд писал нечто подобное.
Только источник файлов не указывался в ручную, а брался из настроек группы пользователя.
Поскольку контексты разрастутся.
Менеджеру конкретного контекста выводится информация по его источнику файлов.
А группе «Administrator», выводится общий размер всех источников файлов +
список контекстов с указаним размера источника файлов.
Автору, безусловно огромное спасибо за труды!
Если в будущем у вас появится такая автоматизация и вывод группе «Administrator» общего размера + по каждому контексту, а менеджерам только его источник файлов. То не стану свое решение допиливать =) Воспользуюсь вашим!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.