Управление простыми моделями
У простых моделей есть свой список методов для управления данными.
- getValue($field) - извлечение значения поля, подробнее описан в разделе Вывод данных в шаблоне, либо используем getter
- setValue($field, $value) - установка значения поля для последующего использования и/или обновления
- getEnumTitle($field) - получить название (не ключ) поля типа enum
- loadIntoRecord() - извлечение всех полей в объект класса Record, процесс описан в разделе Вывод данных в шаблоне
- update() - обновление данных простой модели, записи новой версии не происходит
- combineEmails([$fields]) - берет все поля типа email и склеивает их через запятую, в необязательном параметре можно передать названия полей которые нужно вернуть в виде массива, если аргумент не передан, вернутся все заполненные поля типа email.
class Options extends Model_Simple
{
protected $name = 'Настройки';
protected $model_elements = [
['Показывать баннер', 'bool', 'banner_active'],
['Email администратора', 'email','admin_email', ['required' => true]],
['Email администратора (заказы)', 'email', 'admin_email_orders'),
['Email администратора (обратная связь)', 'email', 'admin_email_feedback'),
['Телефон', 'phone', 'phone'],
['Акция дня', 'enum', 'promo', ['values_list' => [
'discount' => 'Скидка 10%',
'tickets' => 'Билеты на концерт',
'gift' => 'Специальный подарок']]],
['Рекламный текст', 'text', 'text'],
['Прайс лист', 'file', 'price'],
['Баннер', 'image', 'banner'],
['Галерея изображений', 'multi_images', 'gallery']
];
protected $model_display_params = [
'fields_groups' => [
'Основные настройки' => [
'banner_active', 'admin_email', 'admin_email_ordes',
'admin_email_feedback', 'phone', 'promo', 'price', 'banner'],
'Текст' => ['text'],
'Галерея' => ['gallery']
]
];
}
//Извлечение данных
echo $mv -> options -> phone;
echo $mv -> options -> text;
echo $mv -> options -> getEnumTitle('promo');
//Уменьшение изображения
echo $mv -> options -> cropImage('banner', 200, 200);
//Обновление данных простой модели
$mv -> options -> setValue('admin_email_feedback', 'user@mail.com')
-> setValue('text', 'Hello!');
-> update();
//Массив изображений
$images = $mv -> options -> extractImages($mv -> options -> gallery);
//Создание списка email адресов
$recipients = $mv -> options -> combineEmails();
Email::send($recipients, 'Сообщение с сайта', 'Текст сообщения');
Предыдущий раздел
Управление записями