Я разрабатываю CMS для частного проекта, который должен сделать редактирование сайта простым. Он поддерживает модульность. Тем не менее, он все еще находится в состоянии бета-тестирования, и теперь я спрашиваю, можете ли вы увидеть что-то, что я мог бы улучшить, или если у вас есть совсем другие подходы к этому сценарию.Могу ли я улучшить архитектуру модуля-кожи?
Прежде всего, у меня есть «темы», которые представляют собой набор HTML, CSS и, возможно, JS. Каждая тема может содержать разные стили, которые находятся в отдельных файлах (например, full-width.html, fluid.html и т. Д.). Затем администратор может выбрать другой стиль для разных страниц. Некоторые страницы имеют только 1 колонок, некоторые из них боковых панелей и т.д.
ток так, как это работает в том, что стиль HTML выглядит следующим образом:
<html>
<body>
<div id="header">{block id="header"}</div>
<ul>
{blocks id="list"}
{block}
<li>
{content}
</li>
{/block}
{/blocks}
</ul>
</body>
</html>
Тема создатель может поместить «блоки», которые определяют, где админы могут размещать модули. Эти модули могут быть просто текстовыми или содержать более сложные HTML, такие как крикбокс или форма входа. В любом случае, все блоки должны иметь идентификаторы, кроме тех, которые находятся внутри другого блока. Таким образом, когда администратор решает, где разместить модули, то он получит форму, как:
Header module: --select--
List modules:
--select--
--select-- (automatically adds new selects as needed)
Где --выберите-- является выберите поле HTML, содержащий все установленные модули. Идентификатор используется, чтобы администратору стало легче понять, где выбранный модуль находится на сайте, без необходимости сохранения изменений и предварительного просмотра.
Создатель темы способен размещать несколько блоков с тегом {blocks}. Это означает, что администратор может размещать в нем несколько модулей, например, в Wordpress вы можете иметь «теги», «логин», «филиалы» и т. Д. Множество модулей на боковой панели. Количество модулей может быть ограничено {blocks limit = "5"}. У меня могут быть и другие настройки.
Если блок указан на странице как {block id = "header"}, то это означает, что содержимое выбранного модуля для блока будет заменено на него. Однако, если это {block} {/ block}, то создатель темы должен использовать {content} где-то между тегами, чтобы указать место для содержимого. Он также может использовать {name} для указания имени модуля и т. Д.
В целом, есть ли некоторые улучшения, которые я мог бы сделать по этому поводу? У вас есть любые предложения?
И самое главное, я пытаюсь переделать уже существующую мощную модульную систему, которую я должен использовать вместо этого?