Чтение записи
Чтение записи уже происходит внутри метода 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: