Уважаемый речь не о движке на файлах, речь о структуировании страниц сайта. А узлы данные естественно берут из базы данных.
вот к примеру класс узла Menu
<?php // пространство имён узлов namespace node; // используем пространство имён движка use core; // Навигационное меню class Menu{ public function Obtain(){ $db=core\DataBase::Instance(); if($db->Connect('mysql')){ $mod=&$GLOBALS['mod'];$act=&$GLOBALS['act']; $nvg="$mod/$act";$req="`mdl`='$mod'"; if($mod!='admin')$req="($req or `mdl`='')"; $db->request("SELECT `des`,`lnk` FROM `menu` WHERE $req and `vis`=1"); $dat=$db->MeetAll();$res=''; foreach($dat as $val){ if($nvg==$val['lnk'])$sg=true; else if($mod!='site' && $mod!='admin'){ if(strpos($val['lnk'],"$mod/")!==false)$sg=true;else $sg=false; }else $sg=false; if($sg)$lm='<li><a class=active>'.$val['des'].'</a></li>'; else $lm='<li><a href='.$val['lnk'].'>'.$val['des'].'</a></li>'; $res.="$lm\r\n"; } return $res; } } } ?>
Легко. В админке будут все настройки, сам же заказчик в любое время сможет настроить как ему захочется. У меня знакомая так же придирается к таким мелочам, поэтому всё это я учёл. Изменять шаблоны стили к ним, а также подобные небольшие настройки формировании данных в узлах по мере надобности будет делаться в админке.---------- Добавлено 28.10.2019 в 13:19 ----------Есть ещё мысль сделать в админке типа визуального редактора drag&drop перетаскиванием мыши в структуру будут добавляться необходимые элементы страницы. То есть заранее подготовить вставки xml, но это в перспективе.
Покачто хочется найти единомышленников.
Что касается стилей. Они также собираются как мозайка :)
На к странице подключаются два файла. Один основной для всего сайта, в котором указаны цвета, размеры, выравнивание, шрифты, каркас. А во втором уже собираются все нужные стили какие подключаются лэи(шаблоны). При запросе стилей страницы открывается структура страницы и через xpath('//@lay') получается массив нужных стилей для лэев. Далее соответственно формируется нужный css.---------- Добавлено 28.10.2019 в 12:11 ----------Получается так, что знание html и php не обязательно, не надо составлять шаблоны, стилизовать страницу, не надо программировать на php, думать где какие данные разместить и тд. Всё это сделает фреймворк. Надо просто указать то что хотите видеть на странице. Подключатся узлы, возьмутся нужные шаблоны и стили к ним, указываете какие данные нужны тому или иному шаблону. Всё.
Движок открывает xml структуру например
<page TITLE="Главная"> <nodes> Menu </nodes> <html see="site"> <content> {menu} Это содержание <menu lay="menu"> <list fnc="Menu"/> </menu> </content> </html> </page>
Чтобы было понятнее объясню о составлении структуры страницы.
xml имеет формат: <перефикс атрибут="значение атрибута">содержание</перефикс> или без содержания <перефикс атрибут="значение атрибута"/>
перефикс - это метка данных в шаблоне куда нужно вставить содержание
атрибут - строго определен, если нужен шаблон меню ставим атрибут lay="menu"
Итак. Движок берёт <nodes> и загружает нужные классы, у нас указан узел(класс) Menu. Затем берёт основной шаблон для html see="site" то есть файл site.html. В этом шаблоне должна быть метка [content]. Затем смотрит дочерние данные. В content у нас есть метка для меню и какое-то содержание. Идём дальше, видим перефикс для меню загружаем шаблон меню lay="menu" в этот шаблон нужно вставить список который нам даст функция узла fnc="Menu".
основной шаблон {метка} - в реальном шаблоне такая [метка], тут поменял так как вставляется это ***91;content***93;
<!doctype html> <html> <head> <title>{TITLE}</title> <link type=text/css rel=stylesheet href=site/main.css> <!-- script --> </head> <body> {content} </body> </html>
шаблон меню
<menu class={class}> {list} </menu>
Плюсы минусы подходов генерации страницы.
Структуирование - мой подход с парсингом xml
Нативный шаблон(MVC) - вставка в шаблоне php
Шаблонизация(метками) - php ищет метки в тексте и обрабатывает и заменяет
В [] буду ставить свою оценку по 5 бальной шкале.
Принцип разделения данных и шаблона?
Структуирование - [5] принцип работает
Нативный шаблон(MVC) - [3] в шаблонах не обойтись без вставок данных php
Шаблонизация(метками) - [4] я никогда не пользовался шаблонизаторами так как привыкать ещё и к его командам надо, делал свои простые шаблонизаторы с самыми нужными командами
Удобство в создании новых страниц?
Структуирование - [5] для меня это наилучшее решение, надо знать только принцип создания структуры - это просто
Нативный шаблон(MVC) - [3] надо знать html и php, поставил 3 так как обычные люди не хотят изучать html и php
Шаблонизация(метками) - [2] надо знать html и команды шаблонизатора, также не совсем удобно
Скорость генерации страницы?
Структуирование - [4] думаю немного медленнее чем MVC
Нативный шаблон(MVC) - [5] быстрая скорость
Шаблонизация(метками) - [1] медленная скорость
Подведём итоги:
Структуирование - оценка 5+5+4=14
Нативный шаблон(MVC) - оценка 3+3+5=11
Шаблонизация(метками) - оценка 4+2+1=7
Структуирование по-моему наилучший подход.