Простые модели
Простые модели используются для хранения уникальных данных и отличаются от обычных следующими признаками:
- Класс модели наследуется от класса "Model_Simple".
- SQL таблица модели содержет всего 2 поля "key" и "value", где "key" - строковый первичный ключ, "value" - текстовое поле (можно использовать строковый тип данных если не предполагается наличие многострочного текста в значениях полей).
- При создании модели значения ключей в таблицу заносить не обязательно, в MV это делается автоматически.
В остальном создание простой модели подчиняется принципам, описанным в разделе Общие принципы моделей.
Пример 1
<? class Seo extends Model_Simple { protected $name = "SEO параметры"; protected $model_elements = array( array("Заголовок", "char", "title"), array("Ключевые слова", "text", "keywords"), array("Описание", "text", "description"), array("Robots.txt", "text", "robots") ); } ?>
CREATE TABLE `seo` ( `key` varchar(100) NOT NULL, `value` text, PRIMARY KEY (`key`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Пример 2
<? class Site_Params extends Model_Simple { protected $name = "Параметры сайта"; protected $model_elements = array( array("Показывать баннер", "bool", "show_banner"), array("Слоган на главной", "char", "slogan"), array("Получатель сообщений с сайта", "email", "email", array("required" => true)), array("Количество новостей на главной", "int", "news_number", array("required" => true, "positive" => true, "zero_allowed" => false)), array("Текст в нижней части", "text", "footer_text", array("rich_text" => true)), ); } ?>
CREATE TABLE `site_params` ( `key` varchar(100) NOT NULL, `value` text, PRIMARY KEY (`key`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Пример 3
<? class Settings extends Model_Simple { protected $name = "Настройки проекта"; protected $model_elements = array( array("Показывать баннер", "enum", "promo", array("empty_value" => "Всегда", "values_list" => array("morning" => "Утром", "evening" => "Вечером", "night" => "Ночью"))), array("Дата приема заявок", "date_time", "work_date"), array("Прайс лист", "file", "price_file"), array("Картинка в верхней части", "image", "top_image"), array("Галерея изображений", "multi_images", "gallery"), ); } ?>
CREATE TABLE `settings` ( `key` varchar(100) NOT NULL, `value` text, PRIMARY KEY (`key`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Процесс извлечения данных простых моделей в шаблоны описан в разделе Вывод данных в шаблоне.
Предыдущий раздел
Настройка модели