Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> extract($GLOBALS), Работа в функциях 
:(
    Опции темы
neoks
Дата 10.6.2011, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Блин, попробую детально объяснить.
Это движок, как и у многих есть шаблоны, основном не используют php.
Так вот, движок загружает определенный шаблон .html и начинает с помощью preg_replace заменять тег на некий код.
Но в шаблоне можно использовать php, как сделать чтоб в шаблонах работал php, я просто сделал eval на выходе.

Дальше все просто, как у многих движках есть профиль, пм и много чего другого, каждый модуль загружает свой шаблон и парсит, так как у шаблонов разрешено использовать php то ясен нужен весь функционал движка.

Вот и оттуда берутся eval и $db  smile 

PM MAIL   Вверх
Absinthe
Дата 10.6.2011, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: 5
Всего: 11



Цитата

Так вот, движок загружает определенный шаблон .html и начинает с помощью preg_replace заменять тег на некий код.
Но в шаблоне можно использовать php, как сделать чтоб в шаблонах работал php, я просто сделал eval на выходе.
 Это противоречивые пункты.
Либо PHP, либо регекспы.
Нормальной практикой является PHP, регекспами будет какое-то ###смарти.

Цитата

 как сделать чтоб в шаблонах работал php, я просто сделал eval на выходе.
 explode/$this + ob_start + ob_get_clean.
Я использую explode для шаблона(только не глобальных переменных, а пришедшего в шаблон data). В ZF используется $this->var. Что впринципе одно и то же.
Ну и буферизация. И я так делаю, и в ZF.

Цитата

Дальше все просто, как у многих движках есть профиль, пм и много чего другого, каждый модуль загружает свой шаблон и парсит, так как у шаблонов разрешено использовать php то ясен нужен весь функционал движка.
 Ни в коем случае. Так делать нельзя.
В шаблонах должна быть только логика отображения.
Если что-то нужно достать из базы - то достаешь в модели/контроллере и передаешь в шаблон.
PM MAIL   Вверх
neoks
Дата 11.6.2011, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Цитата

explode/$this + ob_start + ob_get_clean.
Я использую explode для шаблона(только не глобальных переменных, а пришедшего в шаблон data). В ZF используется $this->var. Что впринципе одно и то же.
Ну и буферизация. И я так делаю, и в ZF.

Не совсем понял о чем идет речь.

Цитата

Ни в коем случае. Так делать нельзя.
В шаблонах должна быть только логика отображения.
Если что-то нужно достать из базы - то достаешь в модели/контроллере и передаешь в шаблон.


Вообщем у меня два варианта, оставить все как есть или вместо html использовать php, которому так и так будет доступен весь функционал движка.
PM MAIL   Вверх
Sentox
Дата 11.6.2011, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Цитата(Absinthe @ 10.6.2011,  23:08)
 Ни в коем случае. Так делать нельзя.
В шаблонах должна быть только логика отображения.
Если что-то нужно достать из базы - то достаешь в модели/контроллере и передаешь в шаблон.

Ни всё коту MVC, хотя я за этот паттерн  smile 
Человек мыслит в процедурном стиле, а Вы в ООП объясняете.
"Кузьмич он же фин, кто фин ... "

Добавлено через 6 минут и 6 секунд
Цитата(neoks @ 11.6.2011,  09:23)
Вообщем у меня два варианта, оставить все как есть или вместо html использовать php, которому так и так будет доступен весь функционал движка.

Используйте вместо постановочных переменных вида {variable} или |variable| и др. обычные переменные $variable и их инициализируйте так же как и $db, затем просто include файл, PHP его сам оттранслирует и переменные использует, так как это и делает eval.
Просто насколько я помню eval в следующих версиях PHP уже вносится в deprecated.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.