ArbNet

ArbNet
Рейтинг
146
Регистрация
27.10.2019
Программист самоучка
miketomlin:
Обычный движок на файлах с XML в качестве исходной разметки контента. Откройте уже для себя БД.

Уважаемый речь не о движке на файлах, речь о структуировании страниц сайта. А узлы данные естественно берут из базы данных.

вот к примеру класс узла 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, думать где какие данные разместить и тд. Всё это сделает фреймворк. Надо просто указать то что хотите видеть на странице. Подключатся узлы, возьмутся нужные шаблоны и стили к ним, указываете какие данные нужны тому или иному шаблону. Всё.

ivan-lev:
Ну, т.е. пользователь уже должен знать, как минимум, XML, указывать стили (а как они между собой дружить будут?), узлы (?) и шаблоны..

Движок открывает 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

Структуирование по-моему наилучший подход.

Всего: 2255