Создание собственной темы

Обзор

По умолчанию Zabbix предоставляет ряд предопределенных тем веб-интерфейса. Чтобы создать собственную тему, следуйте пошаговой процедуре, приведенной здесь.

Шаг 1: Создайте свою тему

Чтобы создать собственную тему:

  1. Создайте CSS-файл с нуля или скопируйте существующую тему (например, blue-theme.css, dark-theme.css или другую) из каталога assets/styles/ и измените ее.
  2. Сохраните свою тему (например, custom-theme.css) в каталоге assets/styles/.
Шаг 2: Включение темы в списке тем

Чтобы сделать пользовательскую тему доступной в веб-интерфейсе, необходимо добавить ее в список тем, возвращаемый методом APP::getThemes(). Для этого переопределите метод ZBase::getThemes() внутри класса APP следующим образом:

  1. Откройте файл include/classes/core/APP.php и найдите класс APP:
class APP extends ZBase {

}
  1. Внутри класса перед его последней закрывающей фигурной скобкой } добавьте следующий метод:
public static function getThemes() {
          return array_merge(parent::getThemes(), [
              'custom-theme' => _('Custom theme')
          ]);
}

где:

  • custom-theme - внутренний идентификатор темы, который должен совпадать с именем CSS-файла без расширения .css;
  • Custom theme - отображаемое имя, которое будет видно в веб-интерфейсе.

Чтобы добавить несколько тем, перечислите их в массиве, разделяя каждую запись запятой. Запятая после последней записи является необязательной.

Например:

      public static function getThemes() {
          return array_merge(parent::getThemes(), [
              'custom-theme' => _('Custom theme'),
              'anothertheme' => _('Another theme'),
              'onemoretheme' => _('One more theme')
          ]);
      }
Шаг 3: Изменение цветов графиков

Чтобы изменить цвета графиков, необходимо добавить запись для новой темы в таблицу базы данных graph_theme.

Пример добавления записи в базу данных MySQL/MariaDB:

    mysql -u zabbix -p
    # Enter password:
mysql> USE zabbix;
mysql> INSERT INTO graph_theme (
    graphthemeid,
    theme,
    backgroundcolor,
    graphcolor,
    gridcolor,
    maingridcolor,
    gridbordercolor,
    textcolor,
    highlightcolor,
    leftpercentilecolor,
    rightpercentilecolor,
    nonworktimecolor,
    colorpalette
)
SELECT
    MAX(graphthemeid) + 1,
    'custom-theme',
    'FFFFFF',
    'FFFFFF',
    'CCD5D9',
    'ACBBC2',
    'ACBBC2',
    '1F2C33',
    'CC745E',
    '5ECCAB',
    'CC745E',
    'EBEBEB',
    '329F7E,C2583D,346D91,B26E44,CC6C91,7A6DC2,C4AA56,7C2731,BF75B8,73A350,B04833,633A60,879CCC,7FAD6C,324978,3F5C3D,795C94,D66B58,732230,809C5D,C79DD1'
FROM graph_theme;
Шаг 4. Использование новой темы

В веб-интерфейсе Zabbix можно установить эту тему в качестве темы по умолчанию или выбрать ее в профиле пользователя.