Плагин показывает пользователю модальный баннер на настраиваемых страницах GLPI, если у него есть закрытые и ещё не оценённые заявки не старше 19 дней. По умолчанию добавлены /Helpdesk, /ServiceCatalog и /front/central.php. Для кастомных шаблонов и произвольных страниц используются автоматическая загрузка очереди через AJAX и самостоятельное подключение стилей.
- показывает каждую заявку отдельным баннером, начиная с самой старой;
- выводит ID, тему, дату закрытия и ссылку на заявку;
- принимает оценку от 1 до 5 звёзд и сохраняет её только после кнопки «Оценить»;
- сохраняет результат штатно через
TicketSatisfaction; - учитывает настраиваемую в GLPI максимальную оценку и обязательный комментарий для низких оценок;
- поддерживает заявки, где пользователь указан как заявитель напрямую или через группу;
- позволяет администратору выбрать страницы показа и организации заявок;
- если штатный опрос для закрытой заявки ещё не создан, создаёт его только в момент отправки оценки;
- не создаёт собственных таблиц и не меняет файлы ядра GLPI.
Интерфейс использует фирменную палитру: #283A97, #005DAC, #00AEEF и #6ACFF6, а звёзды выделены жёлтым #F5B301. Базовая типографика и светлая/тёмная тема GLPI сохраняются.
«Напомнить позже» откладывает текущую заявку до следующего открытия одной из целевых страниц и сразу переходит к следующей заявке в очереди. Никакие cookie или записи об отсрочке не создаются, поэтому неоценённая заявка снова появится при следующем заходе.
После активации откройте Администрирование → Оценка качества. На странице можно:
- добавлять и удалять страницы, указывая понятное название и ссылку;
- разрешить баннер для всех организаций;
- выбирать конкретные организации в прокручиваемом списке с поиском и массовым выделением;
- у каждой организации отдельно включать «включая дочерние».
Галочка «включая дочерние» распространяет выбор на всё поддерево организации: отмеченная так организация разрешает заявки самой организации, её дочерних, внучатых и так далее на любую глубину. Без этой галочки сравнение остаётся строгим — разрешена только сама организация. Галочка недоступна, пока не отмечена сама организация, и игнорируется на сервере, если организация не выбрана. Поддерево разворачивается штатным механизмом GLPI getSonsOf() один раз на запрос, поэтому число SQL-запросов не растёт вместе с числом заявок.
Можно вставить полный адрес или только путь внутри GLPI. При сохранении домен, fragment и параметры после ? отбрасываются, поэтому настройка не зависит от адреса тестового или рабочего сервера. По умолчанию добавлены три стандартные страницы и включены все организации. Фильтр проверяет организацию самой заявки (entities_id), а не выбранную в данный момент организацию пользователя. Настройки хранятся в штатной таблице glpi_configs; отдельная таблица плагина не создаётся. Настройки организаций из версий до 1.3.0 читаются как «выбраны без дочерних», поэтому обновление не меняет текущее поведение.
- Распаковать каталог
starsв каталог плагинов GLPI:GLPI_ROOT/plugins/stars. - В GLPI открыть Настройка → Плагины.
- Установить и активировать Оценка заявок.
Важно: имя каталога должно быть именно stars — GLPI использует его как системный идентификатор плагина.
При обновлении поверх старой версии замените весь каталог plugins/stars, затем очистите кэш GLPI и сделайте жёсткое обновление страницы в браузере (Ctrl+F5).
Добавьте ?stars_debug=1 к адресу любой настроенной страницы, например /ServiceCatalog?stars_debug=1. Панель покажет состояние PHP-хука, AJAX fallback, загрузку CSS/JS, число строк после фильтра и число заявок в конфигурации баннера. Чтобы проверить конкретную заявку, укажите её ID в поле панели или добавьте &stars_ticket_id=123.
Начиная с 1.3.0 панель доступна только пользователю с правом на настройку GLPI (config, право «Обновление») — тем же, которое открывает страницу Администрирование → Оценка качества. Обычному пользователю параметр stars_debug=1 ничего не даёт: он получает штатный ответ без блока diagnostics, без отчёта по заявке и без текста исключений, а панель не рисуется ни PHP-хуком, ни JavaScript. Панель не выводит тему заявки, комментарии, группы или токены.
Учтите ограничение самого GLPI: страницу /Helpdesk он отдаёт только профилям с интерфейсом «Упрощённый», а право config в такой сессии не активируется, даже если оно прописано профилю в базе. Поэтому на /Helpdesk панель не появится ни у кого, включая администратора, — это ограничение упрощённого интерфейса, а не ошибка плагина. На страницах центрального интерфейса, например /front/central.php?stars_debug=1, панель работает штатно. Чтобы получить диагностику именно по /Helpdesk, запросите из сессии администратора /plugins/stars/ajax/pending.php?page_url=/Helpdesk&stars_debug=1: адрес проверяемой страницы передаётся параметром page_url, а право config берётся из текущей сессии центрального интерфейса.
- GLPI
11.0.x; - PHP
8.2+; - пользователь должен иметь право видеть соответствующую заявку.
Заявка показывается, когда одновременно выполняются условия:
- статус —
Закрыта; - заявка не удалена;
- с момента закрытия прошло не больше 19 суток;
- оценка и дата ответа в
glpi_ticketsatisfactionsпустые либо запись опроса ещё не существует; - текущий пользователь является заявителем, входит в группу-заявителя либо является автором заявки с правом ответа на опрос;
- заявка доступна в активной сущности пользователя.
- организация заявки разрешена в Администрирование → Оценка качества: либо включён режим «Все организации», либо
entities_idзаявки совпадает с одной из выбранных организаций, либо заявка лежит в поддереве организации, отмеченной галочкой «включая дочерние».
Фильтр организаций работает только на сужение: рекурсия не расширяет права GLPI. Если пользователю недоступна дочерняя организация, её заявка не появится даже при включённой галочке «включая дочерние».
Срок меняется константой SurveyManager::MAX_AGE_DAYS в src/SurveyManager.php.
Плагин не удаляет уже поставленные оценки: они являются штатными данными GLPI. При деактивации баннер просто перестаёт показываться. При удалении плагина удаляются только его настройки страниц и организаций.
