Управление простыми моделями
- getValue($field) - извлечение значения поля, подробнее описан в разделе Вывод данных в шаблоне
- setValue($field, $value) - установка значения поля для последующего использования и/или обновления
- getEnumTitle($field) - получить название (не ключ!) поля типа "enum"
- loadIntoRecord() - извлечение всех полей в объект класса Record, процесс описан в разделе Вывод данных в шаблоне
- update() - обновление данных простой модели (записи новой версии не происходит).
- increaseCounter($field, [$value]) - увеличение значения счетчика на 1, если передан необязательный аргумент, то значение будет увеличено на величину аргумента. Для создания счетчика, нужно добавить в простую модель целочисленное поле, в котором далее будет храниться значение счетчика.
- decreaseCounter($field, [$value]) - уменьшение значения счетчика на 1, если передан необязательный аргумент, то значение будет уменьшено на величину аргумента.
- combineEmails([$fields]) - берет все поля типа "email" и склеивает их символом ",", в необязательном параметре можно передать названия полей которые нужно вернуть в виде массива, если аргумент не передан, вернутся все заполненные поля типа "email".
Внимание! Вызов методов "update()", "decreaseCounter()" и "combineEmails()" не приводят к созданию версии в истории изменений.
Примеры
//Создаем простую модель class Options extends Model_Simple { protected $name = "Настройки"; protected $model_elements = array( array("Показывать баннер", "bool", "banner_active"), array("Email администратора", "email","admin-email", array("required" => true)), array("Email администратора (заказы)", "email", "admin-email-2"), array("Email администратора (обратная связь)", "email", "admin-email-3"), array("Телефон", "phone", "phone"), array("Счетчик скачиваний", "int", "counter"), array("Акция дня", "enum", "promo", array("values_list" => array("discount" => "Скидка 10%", "tickets" => "Билеты на концерт", "gift" => "Специальный подарок"))), array("Рекламный текст", "text", "text"), array("Прайс лист", "file", "price"), array("Баннер", "image", "banner"), array("Галерея изображений", "multi_images", "gallery") ); protected $model_display_params = array( //Закрываем счетчик для редактирования и разбиваем на вкладки "not_editable_fields" => array("counter"), "fields_groups" => array("Основные настройки" => array("banner_active", "admin-email", "admin-email-2", "admin-email-3", "phone", "counter", "promo", "price", "banner"), "Текст" => array("text"), "Галерея" => array("gallery")) ); } //Извлечение данных echo $mv -> options -> phone; echo $mv -> options -> getEnumTitle("promo"); $record = $mv -> options -> loadIntoRecord(); echo $record -> text; if($record -> banner_active) echo $record -> cropImage("banner", 200, 200); echo $record -> displayFileLink("price", "Скачать файл"); //Обновление данных простой модели $mv -> options -> setValue("admin-email-2", "user@mail.com") -> setValue("text", "Test message!"); $mv -> options -> update(); //Увеличение и уменьшение счетчиков $mv -> options -> increaseCounter("counter"); $mv -> options -> increaseCounter("counter", 3); $mv -> options -> decreaseCounter("counter"); $mv -> options -> decreaseCounter("counter", 8); //Создание списка email адресов $recipients = $mv -> options -> combineEmails(); Email :: send($recipients, "Сообщение с сайта", "Текст сообщения");
Предыдущий раздел
Управление записями