Для разработчиков

/
/
/
Хранение произвольных данных в базе данных панели

Хранение произвольных данных в базе данных панели

Иногда, при написании плагинов возникает необходимость хранения дополнительных параметров для встроенных объектов. Для всех таблиц управляемых ispmanager можно добавлять дополнительные поля в таблицы БД без внесения изменений в код приложения. При этом, добавленные поля будут обрабатываться стандартными алгоритмами: будет отслеживаться наличие данного поля в таблице и его тип (при необходимости поле будет добавлено или изменен его тип), значения таких полей может быть изменено через форму редактирования или выведено в списке записей (для этого будет достаточно просто добавить соответствующее поле в метаданные).

Для того, чтобы добавить дополнительное поле в таблицу, нужно создать каталог /usr/local/mgr5/etc/sql/ispmgr.{имя_таблицы}.addon или /usr/local/mgr5/etc/sql/{имя_таблицы}.addon

Каждый файл в любом из этих каталогов описывает отдельное поле таблицы. Имя поля совпадает с именем файла. По умолчанию, будет создано поле типа string с максимально возможной длинной (VARCHAR(255)), но можно задать и другой тип данных, а так же определить значение по умолчанию, и параметры доступа. Пример файла:

type=string
size=40
access_read= registered
access_write=admin+
default=0.0.0.0

type определяет тип поля. Возможные значения:

  • string строка. Параметр size задает максимальную длину ячейки, по умолчанию - 255
  • int целочисленное поле
  • bool булево значение вида on/off
  • decimal поле для хранения чисел с фиксированной запятой
  • date поле для хранения даты
  • money поле для хранения чисел с фиксированной запятой
  • text текстовое поле
  • idn — поле для хранения интернационализированного доменного имени (IDN)
  • long — целочисленное поле увеличенной длины
  • datetime — поле для хранения времени с датой

access_read ограничивает доступ на чтение значения поля по уровням доступа пользователей. По умолчанию, поле доступно для всех пользователей.

access_write доступ на запись (аналогично access_read)

access устанавливает доступ на чтение и на запись и перекрывает настройки установленные через (access_read и access_write)

Подробнее об уровнях доступа — в статье Уровни доступа.

default устанавливает значение по умолчанию. Для установки значения NULL необходимо указывать параметр следующим образом:

default=null

После этого нужно очистить кэш и перезапустить панель:

rm -rf /usr/local/mgr5/var/.db.cache*
pkill core