Редактор темы

Реклама
Реклама
Реклама
Реклама

DLEToolbar — панель администратора прямо на сайте

  • Автор темы Автор темы iCooLER
  • Дата начала Дата начала
Автор темы

v0.3.0​

Новый функционал
  • Добавлена фильтрация SQL-запросов по инициатору: DLE, модулю или плагину. Для каждого инициатора показаны количество запросов и суммарное время. Запросы без записанного источника вынесены в фильтр «Без источника».
Прочее
  • Быстрые SQL-запросы сворачиваются только внутри одного инициатора, чтобы фильтрация корректно скрывала и показывала группы запросов.
  • Под SQL-запросом сначала показывается название инициатора, затем файл и строка вызова.
  • Доступ к панели теперь можно выдать только группам с правом входа в админку DLE. Если группа теряет это право, доступ к панели прекращается автоматически, даже если группа осталась в сохранённых настройках плагина.
  • Расширено скрытие значений паролей и хешей в SQL: маскируются также поля с префиксами, например user_hash.
1792782228326.png
 

Вложения

Автор темы
Ai doz имел ввиду мое сообщение про pr ci и прочее, ты же видишь всю переписку?
 
doz имел ввиду мое сообщение про pr ci и прочее, ты же видишь всю переписку?

Да, вижу переписку. Тут я тебя не так понял: ты спрашивал не про замечания iCooLER по функционалу/правам, а про реплику doz на твой процесс:

worktree → commit → push → PR → CI → upload → check → prompts → review → commit → push → CI → merge

В этом контексте doz, скорее всего, имел в виду: для небольшого DLE-плагина такой пайплайн может быть избыточным. Не что он неправильный, а что можно проще.

Я бы сказал так:

  • если проект публичный, есть релизы и пользователи — PR/CI/ревью нормальная практика;
  • если это быстрый фикс в одну-две строки — можно не городить полный цикл;
  • главное не усложнять процесс сильнее, чем сам плагин.

То есть doz не спорит с качественным подходом, он скорее про баланс: не превращать мелкую правку в корпоративный DevOps-ритуал.
 
  • Нравится
Реакции: doz
Автор темы
Ai там точно не две строки и это не быстрый срочный фикс. проект публичный, полагаю им даже кто-то пользуется 🤓
 
там точно не две строки и это не быстрый срочный фикс. проект публичный, полагаю им даже кто-то пользуется 🤓

Тогда твой процесс вполне оправдан. Для публичного плагина, которым реально могут пользоваться, worktree → PR → CI → review → merge — это не «усложнение ради усложнения», а нормальная страховка от регрессий.

Тем более если в v0.3.0 затронуты:

  • права доступа групп;
  • фильтрация SQL по источникам;
  • сворачивание быстрых запросов;
  • маскирование чувствительных значений;
  • логика отображения файла/строки вызова.

Это уже не «поменял текст кнопки». Тут легко сломать совместимость или случайно открыть лишний доступ.

Я бы ответил примерно так:

Там не быстрый фикс на две строки, а публичный плагин с изменениями в правах, SQL-отладке и отображении запросов. Поэтому PR/CI/ревью — не оверинжиниринг, а нормальная гигиена, чтобы не выкатывать на пользователей сырые правки.

Коротко: в твоём случае ты скорее прав, чем doz.
 
Ai это сейчас небольшой, но есть желание сделать больше функционала
DLEToolbar: сравнение версии 0.3.0 и редакции 1.1.2 для DLE 21
Возможность0.3.0 (iCooLER)1.1.2 (DLE 21 / ыы)
Время генерации, код ответа, редактирование новости, свои ссылкиЕстьЕсть
Список SQL, подсветка долгих, сворачивание быстрыхЕстьЕсть
Фильтр запросов по источникуЕсть, определяет по пути файлаЕсть, определяет по таблице плагинов DLE
Запросы из кода, который плагин вставил в системные файлы (show.full.php, main.php…)Записываются на DLEЗаписываются на нужный плагин
Плагин вызвал функцию ядра, а та выполнила запросЗаписывается на DLEЗаписывается на плагин (разбор цепочки вызовов)
Цветные метки плагинов у запросовНетЕсть
Скрытие секретов в SQLpassword, *hashpassword, *hash, token, secret, salt, auth, 2FA, ключи API
Копирование SQL без HTTPSНетЕсть
Тема панелиПо системеВместе с темой сайта
Цвета и шрифт шаблонаСвои фиксированныеИз шаблона (с запасными значениями)
Скрытие при печатиНетЕсть
Причина ошибки в админкеОбщее сообщениеТекст ошибки, файл и строка; таблица настроек создаётся сама
Безопасность
Пункт0.3.01.1.2
Сброс кэша и смена шаблонаТокен сессии передаётся через cookie, которую пишет JavaScriptPOST-запрос, токен в теле запроса, проверка Origin/Referer, перенаправление 303
Доступ к панелиТолько группы с админкойТолько группы с админкой
Выбор шаблонаЛюбая существующая папкаТолько из списка шаблонов DLE
Очистка кэшаУдаление файлов в engine/cacheСтрого внутри engine/cache, без перехода по символическим ссылкам
Свои ссылкиБез ограничения числаНе больше 20, rel="noopener noreferrer"
Производительность (одинаковый стенд, страница с 60 SQL-запросами)
Показатель0.3.01.1.2
Правки системных файлов7 вставок в 5 файлов5 вставок в 3 файла
Код для гостей и пользователей0 байт, 0 запросов0 байт, 0 запросов
Запросы к БД на странице администратора1 (чтение настроек)0 (настройки в кэше); +1, если включена подсветка плагинов
Размер панели без запросов49,4 КБ (10,3 КБ в gzip)34,3 КБ (9,1 КБ в gzip), меньше на 30%
Размер панели с 60 запросами90–101 КБ80–88 КБ, меньше на 10–13%
Время построения панели≈ 0,4 мс≈ 0,7 мс
СовместимостьDLE 13–21 (код под старые версии, встроенный Sortable)Только DLE 21, без лишнего кода
Время измерено в одном процессе PHP без opcache. Разница в 0,3 мс уходит на разбор цепочки вызовов и цветные метки. На фоне генерации страницы (обычно 50–150 мс) она незаметна. Панель видят только администраторы.
 
DLEToolbar: сравнение версии 0.3.0 и редакции 1.1.2 для DLE 21Возможность0.3.0 (iCooLER)1.1.2 (DLE 21 / Shabs)Время генерации, код ответа,...

Да, по такому сравнению это уже не «небольшой фикс», а фактически отдельная редакция/ветка развития.

1.1.2 выглядит сильнее именно как продуктовая доработка:

  • лучше атрибуция SQL-запросов — не просто по файлу, а с учётом цепочки вызовов;
  • нормально закрыты спорные места по безопасности: POST, Origin/Referer, 303, ограничения по шаблонам и ссылкам;
  • меньше вставок в системные файлы — это большой плюс для DLE;
  • кэш настроек вместо запроса на каждой админской странице;
  • меньше размер панели;
  • убран лишний legacy-код под старые DLE.

Минус только один очевидный: только DLE 21. Но если цель — не тащить совместимость с DLE 13–20, это даже плюс: код чище и проще поддерживать.

По производительности разница 0.4 мс против 0.7 мс вообще не аргумент против 1.1.2. За более точную трассировку запросов и метки плагинов это нормальная цена.

Я бы подал это так:

0.3.0 — универсальная версия под DLE 13–21.

1.1.2 — отдельная редакция под DLE 21 с упором на безопасность, точную диагностику SQL и меньшую нагрузку на системные файлы.

И да, при таком объёме PR/CI/review уже полностью оправданы. Тут легко сломать не одну кнопку, а доступы, кэш, шаблоны, SQL-отладку и совместимость с модифицированными DLE.
 

Вложения

Последнее редактирование:

Похожие темы Последние темы Популярные темы

Назад
Сверху