[modSizeControl] - компонент позволяющий контролировать размер сайта

Привет сообществу!

Выражаю большую благодарность Павлу Зарубину, так как компонент выйдет в целом его стараниями.

Несколько раз сталкивался с проблемой, когда менеджеры пользуются дисковым пространством как бесплатным файловым хранилищем и им кажется, что оно неиссякаемое. Хостинги которыми я пользовался не предоставляли и вряд-ли будут предоставлять подробные данные о размерах отдельных папок/сайтов (должно быть ресурсозатратный процесс) потому и приходилось искать разжиревшие сайты вручную. Это была веская причина для того чтобы разработать данный компонент, который был призван облегчить решение такого рода проблем.

Что из себя представляет компонент на данный момент:

  • Можно указывать лимит сайта (Системная настройка: modsizecontrol_site_limit)
  • Можно указывать один или несколько источников файлов для определения размера (Системная настройка: modsizecontrol_file_system)
  • Интерфейс в виде виджета на главной странице панели управления
  • Данные обновляются по клику кнопки через Ajax
  • Отображение процента в виде кругового графика
  • Смена цвета при достижении определенных точек заполнения (Зеленый, Желтый и Красные цвета для визуального сообщения)
  • Вывод сообщения менеджеру при достижении критической отметки заполнения
Скриншоты:





Планируется также отправка письма разработчику при достижении критической/определенной отметки заполнения ну и многое другое.

☕ Угостить чашкой кофе

UPD:

Компонент доступен на modstore.pro и на GitHub

Всем спасибо и отдельно кончено же еще раз Павлу Зарубину.
Баха Волков
21 сентября 2018, 13:28
modx.pro
6
3 100
+26

Комментарии: 29

Дмитрий
21 сентября 2018, 13:54
+1
Очень полезный виджет! Круто, спасибо!
Ярослав
21 сентября 2018, 15:28
+1
Отличный компонент. Информативно. Полезно. Удобно.
Спасибо
Павел Гвоздь
21 сентября 2018, 17:43
+2
Крутой компонент! Да ещё и красиво всё оформлено, по фэншую! :)
    Баха Волков
    21 сентября 2018, 23:29
    +2
    Спасибо) Старался, чтобы глаза не резало, например как первый вариант)
    SEQUEL.ONE
    24 сентября 2018, 22:31
    0
      Баха Волков
      02 октября 2018, 12:59
      +1
      Компонент теперь доступен на modstore.pro
        Дмитрий
        02 октября 2018, 15:16
        0
        Добрый день!
        Поставил Ваш компонент. Интересный.

        Сразу нашёл разочарование: modsizecontrol_site_limit указывается в байтах.
        Было бы здорово иметь возможность указания размера human-readable, т.е. 15G, 1280M, 15k и т.д.

        Заранее спасибо.
          Павел Гвоздь
          02 октября 2018, 19:18
          +1
          Так в MODX везде вроде в байтах. Это нормальная практика. Вот если б вывод был в байтах, это разочарование, да… =)
            Баха Волков
            02 октября 2018, 20:41
            0
            Сожалею, что вас разочаровал. В скором времени кое какие баги исправлю и заодно в планах было указывание в МБ
            R2m0x94 (Vasily)
            09 октября 2018, 11:18
            0
            Скажите, не понимаю как пользоваться. В системных настройках указал лимит, но в админке виджет не показывается. Что нужно сделать для того, чтобы этот виджет увидеть на Главной странице входа в админ. панель — указать в дефолтном чанке входа — чанк tpl.modSizeControl?
              Баха Волков
              11 октября 2018, 07:46
              0
              Для того, чтобы вывести виджет вам нужно Меню -> Панели->Открыть на редактирование нужную панель->Нажать кнопку «Добавить виджет» и выбрать из списка компонент.
                Баха Волков
                11 октября 2018, 09:23
                0
                На modstore добавил gif-ку где отображается процесс установки
                Баха Волков
                11 октября 2018, 09:23
                0
                Вышло небольшое обновление
                  DeleteMePlease
                  11 октября 2018, 16:21
                  0
                  Очень полезная штука, спасибо.
                  Жаль результат последней проверки не заносится в базу, хотелось бы написать плагин на «onFileManagerUpload», который проверял бы размер сайта и выдавал ошибку, если превышен лимит, а достать этот размер пока неоткуда.
                  И не могли бы сказать как часто сканируются файлы, при загрузке каждой страницы админки или только главной?
                    Баха Волков
                    11 октября 2018, 20:16
                    +1
                    И не могли бы сказать как часто сканируются файлы, при загрузке каждой страницы админки или только главной?
                    На данный момент сканирование происходит только по нажатию кнопки.

                    Жаль результат последней проверки не заносится в базу, хотелось бы написать плагин на «onFileManagerUpload», который проверял бы размер сайта и выдавал ошибку, если превышен лимит, а достать этот размер пока неоткуда
                    В планах есть такое реализовать
                      Pavel Zarubin
                      16 октября 2018, 13:42
                      0
                      Ало, я уже давно сделал автообновление) Обновляется каждые 12 часов
                        Баха Волков
                        17 октября 2018, 08:24
                        0
                        Мда, Паша пропустил) Главное переводил для modstore и забыл)
                      Pavel Zarubin
                      16 октября 2018, 13:42
                      0
                      Каждые 12 часов, в последней версии с гитхаба
                      Баха Волков
                      05 февраля 2019, 10:44
                      +1
                      который проверял бы размер сайта и выдавал ошибку
                      Данный функционал уже есть в коробке
                      Илья Александрович
                      20 января 2019, 02:58
                      0
                      Здравствуйте! У меня такая проблема

                      Как это справить?
                        Баха Волков
                        05 февраля 2019, 10:42
                        0
                        Подскажите пожалуйста, у вас fenom включен?
                          Баха Волков
                          05 февраля 2019, 10:54
                          0
                          Сегодня выпущу обновление, которое исправит, ну а пока у вас 2 выхода из ситуации:

                          1. Установить pdoTools и включить системную настройку: pdotools_fenom_default
                          2. Либо заменить содержимое чанка: 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>&nbsp;
                                                [[%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>
                        DeleteMePlease
                        05 февраля 2019, 10:59
                        0
                        Огонь, все работает. Спасибо.
                          Yurij Finiv
                          04 ноября 2019, 22:15
                          0
                          Для правильного размера в 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;
                            Иван
                            08 марта 2020, 21:20
                            0
                            Отличное решение.
                            Для своих нужд писал нечто подобное.
                            Только источник файлов не указывался в ручную, а брался из настроек группы пользователя.
                            Поскольку контексты разрастутся.
                            Менеджеру конкретного контекста выводится информация по его источнику файлов.
                            А группе «Administrator», выводится общий размер всех источников файлов +
                            список контекстов с указаним размера источника файлов.
                            Автору, безусловно огромное спасибо за труды!
                            Если в будущем у вас появится такая автоматизация и вывод группе «Administrator» общего размера + по каждому контексту, а менеджерам только его источник файлов. То не стану свое решение допиливать =) Воспользуюсь вашим!
                              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                              29