Очень простая CMS, написанная по наитию в процессе реализации паттернов GoF, которые в итоге стали сайтом phppatterns.ru. Оттуда, собственно функционал и был выдернут и оформлен в отдельный репозиторий. Базы нет, потом может добавлю. В целом - MVC, но вместо базы массивы. Г%внокод, да :)
Предусмотрен вывод вдух типов страниц: одиночная страница с uri типа /contacts
и категоризированных страниц с uri типа \category-name\category-page
- Добавить страницу с контентом в корень
src\Views
с именемpageName.php
- Добавить ключ-значение в массив в файле
src\Views\headerTagsContent.php
для метатэгов В таком виде:
"pageName" => [
"title" => "Page Name title",
"description" => "Page Name description",
"keywords" => "Page Name keywords",
],
- В массив в
src\Application\menu.php
добавить ключ значение вида"Page name" => "/pageName",
при это значение должно совпадать с именем файла в пункте 1 Сие создаст пункт меню в меню :)
- Добавить папку с в
src\Views\categories\
с именемcategoryName
, должен получиться ктаалогsrc\Views\categories\categoryName
- В получившийся каталог добавляем
index.php
- файл индексной нужное количество страниц новой категории видаnewPageOne.php
- Добавить ключ-значение в массив с ключем "categories" в файле
src\Views\headerTagsContent.php
для метатэгов В таком виде:
"categoryName" => [ // categoryName - этот ключ должен совпадать с названием директории для новой категории в src\Views\categories\
"title" => "categoryName title",
"description" => "categoryName description",
"keywords" => "categoryName keywords",
"categoryPages" => [
],
],
Это контент для метатэгов индексной страницы категории.
Теперь о конкретных страницых:
В массив с ключем "categoryPages"
добавляем кажду страницу:
"categoryPages" => [
"newPageOne" => [ // newPageOne - этот ключ должен совпадать с именем файла
"title" => "newPageOnee title",
"description" => "newPageOne description",
"keywords" => "newPageOne keywords",
],
],
- В массив в
src\Application\menu.php
добавить ключ значение вида:
"Category One" => [
"/categories/categoryName", [ // Это uri для индексной стриницы, обязательно должен совпадать с именем директории категории
"newPageOne" => "/categories/categoryName/newPageOne", // uri конкретной страницы категории
]
],
Имена categoryName/newPageOne
должны совпадать с именем директории категории и именем файла с контентом соответственно.
В целом, добавляем по аналогии с исходником.
В src\Views\templates
лежат шаблоны:
_menu-template.php
- вывод меню с минимальным количеством тего, если нужно будет переверстывать,
categoryPageContent.php
- шаблон для вывода контента категоризированной страницы,
footer.php
- футер,
header.php
- хедер,
manu.php
- актуальное отверстанное меню, используещеся для вывода,
singlePageContent.php
- шаблон для вывода контента одиночной страницы.
Верстка в исходнике на Bootstrap 5 с небольшим custom.css
. Подключено по CDN.