Опци
создание и хранение служебной информации - опций
На любом сайте есть много служебной информации, настроек опций, данные плагинов, какая-то статистика, настройки конфигурации и тп. В WordPress для этого отвели целую специальную таблицу wp_options, ну и соответственно к этой таблице идет много килобайт кода API. В Буга CMS мы не будем выходит за рамки наших трех таблиц, для этого будем хранить отдельные опции в таблице metas как метаполя атома, ну а поскольку метаполе должно быть привязано к атому то создадим атом с типом options - этот атом назовем группа опций.
Группа опций - это атом с типом a_type = options, у каждой группы есть свое уникальное имя a_name, повторы не допускаются.
Опция - метаполе из таблицы metas. Каждая опция обязательно входит в какую-то группу опций -привязано к атому. У каждой опции должно быть свое имя поле m_name. В рамках группы имя должно быть уникальным, повторы также отслеживаются.
Группа опций buga - используется по умолчанию. Если вы пытаетесь создать, прочитать или изменить опцию без указания к какой группе она принадлежит, то по умолчанию будет использоваться группа buga.
Функции групп опций:
/*
проверяет существует ли группа опций (атом)
с именем $a_name
если существует возвращает $a_id
*/
function issetOptions($a_name)
{ }
/*
получаем группу опций
$a_name имя группы (имя атома)
вернет ассоциативный массив опций (метаполя)
*/
function getOptions( $a_name )
{ }
/*
создает новую группу опций(атом)
$a_name - имя группы (имя атома)
$metas - опции (мета поля) ассоциативный массив имя=>значение
$autoload - индикатор автозагрузки
вернет $a_id группы опций
*/
function newOptions( $a_name, $metas = [], $autoload = 0 )
{ }
/*
сохраняет группу опций (атом)
$a_name - имя группы (имя атома)
$metas - опции (мета поля) ассоциативный массив имя=>значение
вернет кол-во обновленных, добавленных полей
*/
function saveOptions( $a_name, $metas )
{ }
/*
удаляет группу опций (атом)
$a_name - имя группы (имя атома)
*/
function deleteOptions( $a_name )
{ }
Функции опций
/*
проверяет существует ли опция
$m_name - имя опции (имя метаполя)
$a_name - имя группы опций по умолчанию 'buga' (имя атома)
вернет $m_id id метпаоля!
*/
function issetOption( $m_name, $a_name = 'buga' )
{ }
/*
возвращает опцию одну штуку
$m_name - имя опции (имя метаполя)
$a_name - имя группы опций по умолчанию 'buga' (имя атома)
вернет значение опции
*/
function getOption( $m_name, $a_name = 'buga' )
{ }
/*
создает одну новую опцию
$m_name - имя опции, имя мета поля
$value - значение опции
$a_name - имя группы опций ( имя атома ) по умолчанию используем 'buga'
*/
function newOption( $m_name, $value, $a_name = 'buga' )
{ }
/*
сохраняем одну опцию
$m_name - имя опции, имя мета поля
$value - значение опции
$a_name - имя группы опций ( имя атома ) по умолчанию используем 'buga'
*/
function saveOption( $m_name, $value, $a_name = 'buga' )
{ }
/*
удаление одной опции (метаполя)
$m_name - имя опции, имя мета поля
$a_name - имя группы опций ( имя атома ) по умолчанию используем 'buga'
*/
function deleteOption($m_name, $a_name = 'buga')
{ }