описание файла page.install.sql в Cotonti CMF
Файл page.install.sql является частью процесса установки модуля Page в системе Cotonti. Он содержит SQL-запросы для создания и начальной настройки базы данных, которая будет использоваться для управления страницами сайта. Этот файл выполняет следующие ключевые задачи:
Основное назначение и место в системе Cotonti
Файл используется для первоначальной настройки таблиц и данных, необходимых для модуля Page, который отвечает за создание и управление страницами контента на сайте. Он предназначен для работы с системой прав доступа, а также для организации структуры и хранения информации о страницах.
Этот файл размещается в директории /modules/page и выполняется в процессе установки модуля на сайте, создавая все необходимые таблицы, а также загружая начальные данные для категории страниц и их прав доступа.
Взаимодействие с другими частями системы
- Создание и настройка таблиц: Файл создает таблицу
cot_pages, в которой хранится вся информация о страницах на сайте (например, описание, дата создания, автор, статус и т. д.). - Правила доступа и структура: Файл также заполняет таблицу
cot_authдля настройки прав доступа пользователей к различным категориям страниц и вставляет данные о категориях в таблицуcot_structure, которая управляет структурой контента на сайте. - Начальные данные для страницы: Создается начальная страница с приветственным сообщением, которая отображается сразу после установки Cotonti и дает пользователю информацию о следующем шаге в настройке сайта.
Структура кода и содержание
-
Настройка прав доступа для категорий страниц: Запросы в таблице
cot_authзадают права доступа для различных групп пользователей на страницы в категориях, таких как "articles", "events", "system" и "news". Каждая строка описывает разрешения для конкретной группы пользователей. -
Создание таблицы страниц (
cot_pages): Запрос создает таблицу, которая будет хранить все данные о страницах на сайте. Включает поля для идентификатора страницы, состояния, категории, метаинформации (заголовки, описания), текстового контента страницы и статистики (счетчики просмотров, количество файлов и т. д.). -
Заполнение таблицы категорий (
cot_structure): Вставляются начальные данные в таблицу структуры сайта. Каждая категория страниц имеет свой код (например,articles,events,system,news), путь, описание и другие настройки. -
Вставка начальной страницы: После создания структуры и прав доступа вставляется начальная страница с приветственным сообщением о успешной установке системы. Она будет отображаться на сайте и может быть удалена или изменена пользователем.
Используемые переменные и элементы
- Таблица
cot_auth— используется для определения прав доступа пользователей к различным категориям страниц (например, разрешения для чтения, записи и администрирования). - Таблица
cot_pages— таблица для хранения всех данных о страницах: заголовок, содержание, мета-данные, статистика просмотров и другие поля. - Таблица
cot_structure— используется для управления категориями страниц (например, "Новости", "События", "Система").
Суть выполнения кода
-
Запросы на настройку прав доступа: Заполняются базовые разрешения для групп пользователей на доступ к страницам в разных категориях. Эти настройки контролируют, кто может просматривать, редактировать и управлять страницами.
-
Создание таблицы страниц: Формируется структура базы данных для хранения информации о страницах: мета-данные, текст, файл (если имеется), статистика просмотров, и другие параметры.
-
Заполнение начальных данных: Вставляются начальные категории страниц, а также создается первая страница с приветственным сообщением для администратора, что подтверждает успешность установки Cotonti.
Как можно использовать данный сценарий владельцу сайта
Владельцы сайта могут использовать этот файл для:
- Установки модуля "Pages" в своей системе Cotonti, что позволяет создавать и управлять страницами сайта.
- Получения начальной структуры для управления контентом, включая категории, страницы и их права доступа.
- Выполнения начальной настройки прав доступа для различных групп пользователей, обеспечивая контроль над тем, кто может просматривать или редактировать страницы.
- Начальной установки страницы с приветственным сообщением, которое будет полезно для администраторов в процессе дальнейшей настройки сайта.
Этот файл играет ключевую роль в процессе установки модуля, создавая нужные таблицы и начальные данные для работы с контентом на сайте.
/** * Page module DB installation */ -- Комментарий, объясняющий цель кода: установка базы данных для модуля страницы -- Default categories permssions INSERT INTO `cot_auth` (`auth_groupid`, `auth_code`, `auth_option`, `auth_rights`, `auth_rights_lock`, `auth_setbyuserid`) VALUES -- Вставка значений в таблицу `cot_auth` для прав доступа к категориям (1, 'page', 'articles', 5, 250, 1), -- Добавление записи для группы с ID 1, для страницы 'articles' с правами доступа (2, 'page', 'articles', 1, 254, 1), -- Добавление записи для группы с ID 2, для страницы 'articles' с правами доступа (3, 'page', 'articles', 0, 255, 1), -- Добавление записи для группы с ID 3, для страницы 'articles' с правами доступа (4, 'page', 'articles', 7, 0, 1), -- Добавление записи для группы с ID 4, для страницы 'articles' с правами доступа (5, 'page', 'articles', 255, 255, 1), -- Добавление записи для группы с ID 5, для страницы 'articles' с полными правами (6, 'page', 'articles', 135, 0, 1), -- Добавление записи для группы с ID 6, для страницы 'articles' с правами доступа (1, 'page', 'events', 5, 250, 1), -- Добавление записи для группы с ID 1, для страницы 'events' с правами доступа (2, 'page', 'events', 1, 254, 1), -- Добавление записи для группы с ID 2, для страницы 'events' с правами доступа (3, 'page', 'events', 0, 255, 1), -- Добавление записи для группы с ID 3, для страницы 'events' с правами доступа (4, 'page', 'events', 7, 0, 1), -- Добавление записи для группы с ID 4, для страницы 'events' с правами доступа (5, 'page', 'events', 255, 255, 1), -- Добавление записи для группы с ID 5, для страницы 'events' с полными правами (6, 'page', 'events', 135, 0, 1), -- Добавление записи для группы с ID 6, для страницы 'events' с правами доступа (1, 'page', 'system', 5, 250, 1), -- Добавление записи для группы с ID 1, для страницы 'system' с правами доступа (2, 'page', 'system', 1, 254, 1), -- Добавление записи для группы с ID 2, для страницы 'system' с правами доступа (3, 'page', 'system', 0, 255, 1), -- Добавление записи для группы с ID 3, для страницы 'system' с правами доступа (4, 'page', 'system', 7, 0, 1), -- Добавление записи для группы с ID 4, для страницы 'system' с правами доступа (5, 'page', 'system', 255, 255, 1), -- Добавление записи для группы с ID 5, для страницы 'system' с полными правами (6, 'page', 'system', 135, 0, 1), -- Добавление записи для группы с ID 6, для страницы 'system' с правами доступа (1, 'page', 'news', 5, 250, 1), -- Добавление записи для группы с ID 1, для страницы 'news' с правами доступа (2, 'page', 'news', 1, 254, 1), -- Добавление записи для группы с ID 2, для страницы 'news' с правами доступа (3, 'page', 'news', 0, 255, 1), -- Добавление записи для группы с ID 3, для страницы 'news' с правами доступа (4, 'page', 'news', 7, 0, 1), -- Добавление записи для группы с ID 4, для страницы 'news' с правами доступа (5, 'page', 'news', 255, 255, 1), -- Добавление записи для группы с ID 5, для страницы 'news' с полными правами (6, 'page', 'news', 135, 0, 1); -- Добавление записи для группы с ID 6, для страницы 'news' с правами доступа -- Pages table CREATE TABLE IF NOT EXISTS `cot_pages` ( -- Создание таблицы `cot_pages`, если она не существует `page_id` int UNSIGNED NOT NULL auto_increment, -- Определение столбца `page_id` как автоинкрементируемого `page_alias` varchar(255) NOT NULL DEFAULT '', -- Столбец для псевдонима страницы `page_state` tinyint UNSIGNED NOT NULL DEFAULT '0', -- Столбец для состояния страницы (по умолчанию не активная) `page_cat` varchar(255) NOT NULL, -- Столбец для категории страницы `page_title` varchar(255) NOT NULL, -- Столбец для заголовка страницы `page_desc` varchar(255) DEFAULT '', -- Столбец для описания страницы (по умолчанию пустой) `page_keywords` varchar(255) DEFAULT '', -- Столбец для ключевых слов страницы `page_metatitle` varchar(255) DEFAULT '', -- Столбец для мета-заголовка страницы `page_metadesc` varchar(255) DEFAULT '', -- Столбец для мета-описания страницы `page_text` MEDIUMTEXT DEFAULT NULL, -- Столбец для текста страницы `page_parser` varchar(64) DEFAULT '', -- Столбец для парсера страницы `page_author` varchar(100) DEFAULT '', -- Столбец для автора страницы `page_ownerid` int UNSIGNED NOT NULL DEFAULT '0', -- Столбец для ID владельца страницы `page_date` int UNSIGNED NOT NULL DEFAULT '0', -- Столбец для даты создания страницы `page_begin` int UNSIGNED NOT NULL DEFAULT '0', -- Столбец для начала действия страницы `page_expire` int UNSIGNED NOT NULL DEFAULT '0', -- Столбец для срока действия страницы `page_updated` int UNSIGNED NOT NULL DEFAULT '0', -- Столбец для даты последнего обновления страницы `page_file` tinyint UNSIGNED NOT NULL DEFAULT '0', -- Столбец для флага наличия файла на странице `page_url` varchar(255) DEFAULT '', -- Столбец для URL страницы `page_size` int UNSIGNED NOT NULL DEFAULT '0', -- Столбец для размера страницы `page_count` mediumint UNSIGNED NOT NULL DEFAULT '0', -- Столбец для количества просмотров страницы `page_filecount` mediumint UNSIGNED NOT NULL DEFAULT '0', -- Столбец для количества файлов на странице PRIMARY KEY (`page_id`), -- Установка `page_id` как первичного ключа таблицы KEY `page_cat` (`page_cat`), -- Индекс для столбца `page_cat` (категория страницы) KEY `page_alias` (`page_alias`), -- Индекс для столбца `page_alias` (псевдоним страницы) KEY `page_date` (`page_date`), -- Индекс для столбца `page_date` (дата создания страницы) KEY `page_ownerid` (`page_ownerid`), -- Индекс для столбца `page_ownerid` (ID владельца страницы) KEY `page_begin` (`page_begin`), -- Индекс для столбца `page_begin` (начало действия страницы) KEY `page_expire` (`page_expire`), -- Индекс для столбца `page_expire` (срок действия страницы) KEY `page_title` (`page_title`) -- Индекс для столбца `page_title` (заголовок страницы) );
-- Default page categories
INSERT INTO `cot_structure` (`structure_area`, `structure_code`, `structure_path`, `structure_tpl`, `structure_title`,
`structure_desc`, `structure_icon`, `structure_locked`, `structure_count`) VALUES
('page', 'articles', '001', '', 'Articles', '', '', 0, 0), -- Вставка категории для страниц 'articles', код '001'
('page', 'system', '999', '', 'System', '', '', 0, 0), -- Вставка категории для страниц 'system', код '999'
('page', 'events', '002', '', 'Events', '', '', 0, 0), -- Вставка категории для страниц 'events', код '002'
('page', 'news', '003', '', 'News', '', '', 0, 1); -- Вставка категории для страниц 'news', код '003'
INSERT INTO `cot_pages` (`page_state`, `page_cat`, `page_title`, `page_desc`, `page_text`, `page_author`, `page_ownerid`, `page_date`, `page_begin`, `page_expire`, `page_file`, `page_url`, `page_size`, `page_count`, `page_filecount`, `page_alias`) VALUES
(0, 'news', 'Welcome!', '', 'Congratulations, Cotonti was successfully installed! You can now login with the user account you created during installation. Next step is to go to the Administration panel and change the settings for your website, such as the title, server settings, language, user groups and extensions. You can safely remove this message by clicking its title, then clicking Edit and Delete this page.', '', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0, 0, '', 0, 0, 0, ''); -- Вставка стандартной страницы приветствия в категорию 'news'