[off] Помогите объяснить... полный лол)

WP

^_^
[off] Помогите объяснить... полный лол)

Есть один человек, он разрабатывает cms со товарищами. Про Smarty он будто бы не слышал, есть такое у него понятие "страница", и её тип. "Активные" страницы имеют PHP код в таблице MySQL, я чуть обед обратно не вернул когда это увидел. Помогите аргументами, хочу его наставить на путь истины, это же ужас какой-то. Спасибо.
 

.des.

Поставил пиво кому надо ;-)
Re: [off] Помогите объяснить... полный лол)

Автор оригинала: WP
... PHP код в таблице MySQL...
Что в этом криминального? Или все правильные CMS должны использовать smarty или любой иной шаблонный движок?
Сформулируйте точнее в чем суть претензии? Почему PHP код не может лежать в таблице/файле/где-угодно?
 

denver

?>Скриптер
.des.
Ну, возвращаясь к истокам, база данных это все-таки база данных а не какая-нибудь база кода. Засовывать в нее код можно тоже, но только если нужно выпендрится и доказать что такое тоже может быть.
 

baev

‹°°¬•
Команда форума
А где у vBulletin шаблоны оформления хранятся?
И нету ли в этих шаблонах php-кода?
 

.des.

Поставил пиво кому надо ;-)
2 denver
то есть smarty/любой шаблон мы можем хранить в базе, а его php аналог не можем? Читайте внимательнее изначальную постановку проблемы.

Кстати,
PHP:
<?=strotoupper($_SERVER['HTTP_HOST'])?>
где в этом примере данные и где код. Что из примера должно храниться в базе данных и где должно храниться все остальное?

И все-таки это не ответ на вопрос, что плохого в том, что в базе данных хранится php код?
 

zerkms

TDD infected
Команда форума
.des.
для того, чтобы что-либо делать - нужна аргументация.
очень интересно было бы послушать адекватные аргументы в пользу кода в БД
 

Wicked

Новичок
.des.

во-первых, WP не говорил, что хранятся именно шаблоны.

во-вторых, хранение кода в базе данных подразумевает использование eval. Вы считаете эту практику достойной в целом, и оправданной в этом частном случае?

WP

эта cms позволяет через UI редактировать PHP-код?
 

WP

^_^
.des.
Суть в том что это ужас. Верстальщик повесиццо. Апдейт делать крайне неудобно.
baev
Булка дрянь)
Wicked
Там нет понятия шаблон, точнее понятие как раз есть, а шаблона нет, вместо него кусок PHP-кода.
> эта cms позволяет через UI редактировать PHP-код?
Именно.

У себя в системе я сделал очень просто, есть основной Smarty шаблон main.tpl который запускается сразу после загрузки ядра (коннекта к бд, инициализации всякой всячины и т.д.), а в нем есть например {module_load name="account"}, и подключается файл нужным модулем, который в свою очередь хранит логику представления в своем шаблоне. Весь PHP-код хранится там где ему следует хранится. Страницы (ряды в таблице pages), привязаны к шаблону который хранится в соответствующей папке, и используется для показа этой страницы. Если человек хочет сделать "динамическую" страницу, он просто посвистывая создает модуль, программирует его как ему нужно, затем создает шаблон страницы, пишет в него {module_load name="mysuperpage"}, создает страницы и всё. Или просто создает самостоятельный модуль.
Я считаю что редактировать через админку пхп-код это неправильно, но даже если и так, нужно же сделать совсем другую структуру.
 

maxru

МИФИст
WP, как ты это описал - действительно кошмар.
Верстка вешается 8)

Даёшь шаблоны без php - кода!!!
 

maxru

МИФИст
вызов макроса. парсер шаблона.

пусть будет main.tpl
<html>
[macros]id=MySimpleMacros[/macros]
[container]id=BODY[/container]
</html>

пусть будет news.main.tpl

[BODY]
<body>
тело страницы
</body>
[macro]id=maxru.GetNews[/macro]
[/BODY]


И вообще, скачай и посмотри:
http://ngine.byethost24.com
там, правда, старая версия валяется. Я переписал. Теперь класс автономен и работает побыстрее. И можно задавать обработчики "псевдо-тэгов". Выложить лень 8)
 

WP

^_^
maxru
Правильно) Надо отделять.
master_x
Почитай про мою схему.
maxru
Нуу не знаю, хуже помоему так.
 

maxru

МИФИст
ну яж не для себя... всё вёрстке, вёрстке...
Я то могу и в куче г-на, которое шаблоном называют ковыряться. Но как программист С/С++ не могу смотреть на эту кашу 8)

WP, если я буду обьяснять, как класс работает и рассказывать в чем его преимущество, 3х страниц не хватит 8)
вот сайтик (ссылка выше) работает на этих шаблонах. Время генерации гляди.
(никакого регекспа 8) )

там, кстати, и попробовать тэги можно 8)
 

master_x

Pitavale XXI wieku
maxru
судя по вот этому:
<html>
[macros]id=MySimpleMacros[/macros]
[container]id=BODY[/container]
</html>
ты действительно
ковыряешься.
а вы вместе с WP слышали когда-нибудь о логике вывода? о шаблонах написанных на php? или у вас аллергия на <??> в шаблонах?
 

Wicked

Новичок
master_x
шаблоны написанные на пхп - не так уж и плохо. Все таки php по сути и есть шаблонный язык.

но... имхо они должны в любом случае храниться в виде файлов, и запускаться include'om. И логики там должно быть минимальное количество.
 

master_x

Pitavale XXI wieku
Wicked
я и говорю только о логике вывода... вот если я сейчас попрошу изобразить maxru таблицу-зебру, он тут же побежит клепать очередной макрос и писать на мыло верстальщику о новом макросе... а ведь кстати, верстальщики они-- не тупые, они (большинство) знают азы php. Все равно что WP, что maxru-- шыло на мыло меняют. ПХП-- есть очень хороший законченный шаблонизатор, а если кто-то там не в состоянии вынести запрос к БД в логику, то это его проблемы.
 

.des.

Поставил пиво кому надо ;-)
Автор оригинала: zerkms
.des.
для того, чтобы что-либо делать - нужна аргументация.
очень интересно было бы послушать адекватные аргументы в пользу кода в БД
Вообще изначально мой вопрос ставил под сомнение что любой шаблонный движок имеет преимущество перед PHP. Я придерживаюсь мнения что
PHP:
{foreach from=$list item="line"}
  <li>{$line.text}</li>
{/foreach}
ничуть не проще и понятнее, но явно медленнее чем -
PHP:
<?foreach($list as $line) {?>
  <li><?=$line['text']?></li>
<?}?>
Но это старый флеймовый спор и на этом форуме тема неоднократно обсуждалась, в результате каждый оставался при своем мнении. Для того чтобы я привел аргументы в пользу кода в БД, приведите мне аргументы в пользу обратного. Пока только один - код в БД вызывает несварение желудка у WP.

Автор оригинала: Wicked
во-вторых, хранение кода в базе данных подразумевает использование eval. Вы считаете эту практику достойной в целом, и оправданной в этом частном случае?

шаблоны написанные на пхп - не так уж и плохо. Все таки php по сути и есть шаблонный язык.
но... имхо они должны в любом случае храниться в виде файлов, и запускаться include'om. И логики там должно быть минимальное количество.
Какая связь между тем где они хранятся и как они исполняются? Или шаблоны хранящиеся в БД не могут запускаться инклюдом? Никто не говорит об eval извращениях. Я не являюсь сторонником eval и использую его в самых крайних случаях (например, в фабриках, да и то редко)


Автор оригинала: WP
У себя в системе я сделал очень просто, [излишнее цитирование skipped...].
Отлично. Постараемся без сарказма, но где принципиальная разница или идейный прорыв между
{module_load name="account"} и <?=CModuleLoader::load('account');?>

Автор оригинала: WP Страницы (ряды в таблице pages), привязаны к шаблону который хранится в соответствующей папке
Почему именно в ФС, чем не устраивает БД? У любого более менее серьезного проекта продумана логика кэширования и весь php код/шаблоны/страницы сбрасываются в кэш и инклюдятся целиком или по частям, что избавляет от необходимости использовать eval.
Автор оригинала: WP
Если человек хочет сделать "динамическую" страницу, он просто посвистывая создает модуль, программирует его как ему нужно, затем создает шаблон страницы, пишет в него {module_load name="mysuperpage"}
Допустим у нас это называется не шаблон страницы, а layout (разметка) и разработчик/пользователь/кто-угодно волен делать и в нем и в самой странице что угодно. Если он напишет php код+html то так и будет с этим мучаться, но никто не мешает ему поступать правильно - в коде страницы только код отображения, а странице назначается контроллер.

[macro]
[macros]
{module_load ...}
еще десятки кустарных псевдотэгов вместо обыкновенного вызова функции/метода.
 

maxru

МИФИст
master_x
ыменно аллергия 8)
я в принципе могу и "<container>id=MyContainer</container>" сделать. Опять же говорю - это удобно для верстальщика, а не для программиста 8)

-~{}~ 22.07.06 22:45:

И ещё посмотрю я, как визуальный хтмл-редактор посмотрит на твой шаблон.
Я ведь говорю не о глобальном супер-пупер шаблонизаторе, а о классе, который может помочь верстальщику, который рнр не видел и видеть не хочет.

Кроме того, можно яваскриптовый визуальный редактор накатать, а для шаблонов с кодом - проблематично 8)

-~{}~ 22.07.06 22:46:

И вообще, пора заканчивать флудить, поскольку спор приобретает вид типа "что лучше php или asp".
Лучше закончить, пока на личности не перешли 8)))
 
Сверху