{% else-1 %}
Обновить
* Тема закрыта!
1.
donttime * [мошенник] 9.68
[автор] (7 мар 2015, 19:14) [6/0] [6] [спам] [под]

В очередной раз, перелопатив пару тысяч строк кода, в котором не то что порядка не было, в нём даже табуляция отсутствовала.

Я решил продолжить своё наставление по поводу разделения кода на 2 составляющих: php & html

Как это всё устроено:

Вы заготавливаете данные которые будет видеть пользователь, передаёте их шаблонизатору он их кушает и вы используете эти переменные или массивы для отображения контента.

В чем преимущество:

Красивый и читабельный backend. Удобство в изменении внешнего вида сайта не затрагивая и не перечитывая php код.

Рассмотрим на примере:

Делаем малюсенький нативный шаблонизатор, которые примет параметры и выведет шаблон: http://dumpz.org/1346179/

И так посмотрели, вникли.

Рассмотрим примеры использования:

Создадим файл к примеру index.php и подключим свой шаблонизатор.

Примеры http://dumpz.org/1346180/

Создадим файл main.phtml, и поместим в него код
<div><?php echo $title ?></div>
<div><?php echo $name ?></div>
<div><?php echo $time ?></div>
Мы видим тут переменные, которые и являются ключами данных которые мы передавали в параметрах.

Всё довольно просто, возможно потом дополню пост примерами с выводом контента из баз данных посредством циклического перебора foreach.

В интернете существует множество шаблонизаторов таких как Twig, Smarty, Fenom и т.д.
Сам отдаю предпочтение Fenom'у из за небольшого веса и высокой производительности.

Недовольных рож в теме не приветствую *

2.
bibilink * 19.01
(7 мар 2015, 19:17) [0/0] [0] [спам] [под]

* - недовольная рожа здесь.

3.
NeaDek(WAT) * [мошенник] 0.57
(7 мар 2015, 19:19) [0/0] [0] [спам] [под]

Копипастить все умеют*

4.
Sakamsky * 11.59
(7 мар 2015, 19:21) [0/0] [0] [спам] [под]

Мне сложно код понять * До этого еще не дошел

5.
donttime * [мошенник] 9.68
[автор] (10 мар 2015, 17:10) [0/0] [0] [спам] [под]

* тема никому не интересна

6.
Juventus * [мошенник] 9.47
(10 мар 2015, 17:25) [0/0] [0] [спам] [под]

*

7.
Sheldon-мошенник * [мошенник] 8.5
(10 мар 2015, 17:29) [0/0] [0] [спам] [под]

*

8. (10 мар 2015, 18:04) [0/0] [0] [спам] [под]
donttime,

Не учи их. Это бессмысленно + ещё тролли нервы заденут. Для них способы гкодеров - идеал. А тема с моей точки зрения была бы полезной, но не для пользователей этого сайта.

9. (10 мар 2015, 18:36) [0/0] [0] [спам] [под]
donttime,

расширю твою фантазию)
в ядре создадим папку "templates" в ней подпапки где их название - это код шаблона для сайта( например подпапка main). в подпапках файлы header.php, footer.php и другие, которые посчитаешь нужными.
суть такая.
в админке устанавливаешь шаблон сайта(выбираешь папку из которой подключать header, footer и т.д.). можешь по условию прописать какой будет шаблон подключаться.
есть класс с методом для формирования страницы, в котором получаем шаблон сайта, включаем буферизацию, подключаем шапку, низ, и контент, сохраняем буфер в переменную, очищаем буфер и выводим результат пользователь.
так же дописываем метод очистки буферизации, который пригодится если нужно будет вывести только один контент(например при ajax-запросе).
добавляем методы, которые добавляют CSS и JS-файлы в переменные(массивы) объекта класса, в которые передаем только путь к файлам.
добавляем методы для вывода CSS и JS-файлов в html-виде.
так же пишем методы установки/вывода методанных и заголовка стр.
в результате получим возможность в любом месте добавить css или js файлы, дополнить/переопределить заголовок или метаданные.
далее. создаем папку "components" с подпапками(название компонента, например menu).
в папке "menu" создаем файл отвечающий за логику компонента(получение данных и формирования массива результата). так же папку для шаблонов компонента. в папке шаблонов создаем подпапки(имя-название шаблона) в котором имеются файлы вывода html используя массив сформированный в файле логики компонента.
создаем метод в который передаем название компонента и его шаблон, а на выходе получаем html.
в результате получим возможность на одних и тех же данных(которые если подумать можно и закешировать) формировать разный внешний вид(верхнее меню, нижнее меню и т.д.).
================================
по сути кто знаком с bitrix сразу увидит знакомое))) у меня уже было реализована данная структура, но после попытки обновления линя на несколько версий она была утрачена) есть множество чего не описал, но если кого за интересует сия писня, то тот сам для себя допишет и улучшит написанное)

10.
donttime * [мошенник] 9.68
[автор] (10 мар 2015, 21:07) [0/0] [0] [спам] [под]

anti_dot, битрикс говно и методы его говно * проверенно на лично опыте

Подписаны: 0
Скачать тему | Файлы темы | Фильтр сообщений