Чтение записи
Чтение записи уже происходит внутри метода ar(). Поэтому специально вызывать метод read() класса не нужно.
//Создаём экземпляр класса и передаём ему id записи.
$sys_objects = $parser->utils->ar('sys_objects', 'sys_pages_contacts');
// Получаем значение поля name, как свойство val объекта fields
print($sys_objects->fields->name->val);
// Получаем значение поля description, как свойство val объекта fields
print($sys_objects->fields-> description ->val);
Создание записи
Для добавления записей используются методы create(), insert(). Пример добавления новой страницы New page.
//Создаём экземпляр класса
$sys_objects = $parser->utils->ar('sys_objects');
// Задаём значения полей
$sys_objects->fields->objid->newval = 'new_page_id';
$sys_objects->fields->name->newval = 'New page';
$sys_objects->fields->objtype->newval = 'sys_elements_pages';
$sys_objects->fields->parent->newval = 0;
// Добавляем запись и печатаем результат операции (сообщение об ошибке и пр.)
print($sys_objects->create());
Примечание. Если вы сначала прочитали запись, а потом создаете новую, необходимо предварительно «обнулить» все поля объекта:
$sys_objects = $parser->utils->ar('sys_objects', '');
Иначе в новые свойства объекта (поля таблицы) запишутся данные от предыдущей операции.
Обновление записи
Обновление записи происходит с помощью метода update(). Эту операцию можно производить двумя способами.
Первый способ:
$sys_objects = $this->parser->utils->ar('sys_objects');
$sys_objects->id = $sys_objects->fields->objid->val;
$sys_objects->read(false);
$sys_objects->setFieldNewVal('name', 'qazwsx');
$sys_objects->update();
Второй способ:
$sys_objects = $this->parser->utils->ar('sys_objects', 'new_page_id');
$sys_objects->setFieldNewVal('name', 'qazwsx');
$sys_objects->update();
Примечание. Многоязычные поля типа field_lang, где lang – краткое название языка (напр., name_ru, name_en, name_ua и т.д.) в методе setFieldNewVal() поступают как аргумент field (напр., name) и записываются в БД в то поле, название которого совпало с текущим языком приложения. Например, если текущий язык русский, данные из свойства name запишутся в поле name_ru.
Удаление записи
//Создаём экземпляр класса
$sys_objects = $this->parser->utils->ar('sys_objects', 'new_page_id');
$sys_objects->id = $sys_objects->fields->objid->val;
$sys_objects->delete();
Отображение формы объекта
Пример отображения формы объекта Сообщения системы
//Создаём экземпляр класса
$sys_objects = $parser->utils->ar('sys_messages', 1);
// Делаем поле только для чтения
$sys_objects->fields->createdon->ro = true;
// Отображаем форму
print($sys_objects->showform());
Дополнительные возможности
WAR предоставляет несколько полезных методов, которые могут переопределяться в дочерних классах для внесения дополнительного функционала в работу AR: