Создание своей PHP CMS на основе модулей и шаблонов Часть 1 — Введение

Всем доброго времени суток. Сегодня вспомнил как я когда то искал пример для создания свой CMS. Тогда ничего в нете нормального я не нашёл. Решил дать поиск и просмотреть изменилась ли ситуация. Как оказалось всё так же. Ничего такого что могло бы помочь в написании своей системы. Много воды и ничего конкретного нет. Вот и пришла мне в голову идея написать пошаговую документацию по написанию своей cms.

Итак для начала определимся что мы хотим нашей системы.

  1. Публикация страниц
  2. Отображение древовидного меню
  3. Построенная на основе модулей
  4. Смена шалонов сайта
  5. Позиционирование модулей

Итак настало время создать структуру папок для проекта. Дадим название нашей системе — Alexa

/panel/ — Админская часть сайта из которой будет происходить управление информацией, модулями и шаблонами сайта

/panel/index.php  — индексный файлик панели

/panel/config.php — файл конфигурации для нашей системы

/panel/stack.php — файл обьединения библиотек

/panel/core/ — ядро системы содержащее основные библиотеки для системы

/panel/themes/ — темки для админ панели

/panel/modules/ папочка содержащая части модулей относящиеся к админской стороне

/panel/langs/ — доступные языки для админ панели и модулей админской части

/index.php — индексный файл, к которому будут идти все запросы

/modules/ — папка с модулями для клиентской части сайта

/themes/ — папка с темками для нашей системы

 

Итак основная структура создана. Для начала напишем файлик конфигурации /panel/config.php .


< ?php
$_SETTINGS['dbname'] = 'alexa';// Имя нашей базы данных
$_SETTINGS['dbuser'] = 'root'; // Пользователь нашей базы данных
$_SETTINGS['dbpass'] = ''; // соответственно пароль
$_SETTINGS['dbhost'] = 'localhost'; // и хост
$_SETTINGS['debugging'] = true;
$_SETTINGS['error_level'] = E_ALL;
$_SETTINGS['db_charset'] = 'UTF8';
$_SETTINGS['doc_dir'] = $_SERVER['DOCUMENT_ROOT'];
$_SETTINGS['admin_theme'] = 'panel_theme'; // Указывается папка в которой распологается темка для админки
?>

Создадим базу

Это наша основная таблица в которой храниться информация об установленных модулях.


CREATE TABLE IF NOT EXISTS `modules` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`title` tinytext,
`description` text NOT NULL,
`author` text,
`copyright` text,
`version` tinytext NOT NULL,
`inst_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
`sequence` int(11) DEFAULT NULL,
`settings` text NOT NULL,
`active` int(1) unsigned NOT NULL DEFAULT '1',
`position` varchar(11) NOT NULL,
`system` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

А также таблица содержащая темки для сайта


CREATE TABLE IF NOT EXISTS `themes` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`description` text NOT NULL,
`author` text NOT NULL,
`version` text NOT NULL,
`pages` text NOT NULL,
`default` int(1) unsigned zerofill NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Итак мы создали основную структуру и таблице в нашей базе данных. В следующей статье я расскажу о том как будет происходить запуск и инициализация модулей. А так же расскажу немного про работу с шаблонами.

 

6 Ответы на “Создание своей PHP CMS на основе модулей и шаблонов Часть 1 — Введение”

  1. Я не совсем понял, в какой файл нужно писать текст создания БД? Заранее извиняюсь, если вопрос элементарный

Добавить комментарий для Андрей Отменить ответ