Как лучше сделать файлы шаблонов

12
Gordon01
На сайте с 21.05.2006
Offline
12
793

Делаю cms с поддержкой html - шаблонов и языков.

Вот задумался, как лучше сделать шаблоны:

Есть нескольпо способов:

первый: echo на каждой строчке, т.е

echo '<table cellspacing=0 cellpadding=0 width=100%>';

echo '<tr>';
echo '<td class=leftcoll valign=top>';
echo '<div class=menuzag>';
echo $LANG["menu_header"];
echo '</div>';

Второй, echo для нескольних строк

echo '<table cellspacing=0 cellpadding=0 width=100%>

<tr>
<td class=leftcoll valign=top>
<div class=menuzag>';
echo $LANG["menu_header"];
echo '</div>';

Третий, без конкатенкации вывода:

echo '<table cellspacing=0 cellpadding=0 width=100%>

<tr>
<td class=leftcoll valign=top>
<div class=menuzag>
$LANG["menu_header"]
</div>';

Четвёртый, закрытие-открытие php,


<table cellspacing=0 cellpadding=0 width=100%>
<tr>
<td class=leftcoll valign=top>
<div class=menuzag>
<?php
echo $LANG["menu_header"]
?>
</div>

+вариация - короткие тэги.


<table cellspacing=0 cellpadding=0 width=100%>
<tr>
<td class=leftcoll valign=top>
<div class=menuzag><?=$LANG["menu_header"]?></div>
Проблемы с сервером? Не та кодировка в MySQL? 404? Настройка VPS/VDS (forum.searchengines.ru/showthread.php?t=69437)
T
На сайте с 16.02.2006
Offline
98
#1

Последний(короче) или предпоследний. С echo это шаблоном назвать язык не повернется:) Да и дизайнер испугается

icq - 9225229 Web-payment.ru/monitoring (http://web-payment.ru/monitoring) - лучший мониторинг курсов обменных пунктов
Gordon01
На сайте с 21.05.2006
Offline
12
#2

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

Вариант без конкатенкации тоже не очень.

Есть ещё какие-либо более "прогрессивные" способы?

Д
На сайте с 23.01.2006
Offline
6
#3

Gordon01, а посмотреть как это у взрослых сделано очень сложно, правда? :)

[Удален]
#4

Четвертый вариант - именно вставки в HTML. Видно где HTML, а где код шаблонный.

Gordon01
На сайте с 21.05.2006
Offline
12
#5

Дарк, смотрел форум SMF. Там echo через запятую.

javadf, тоже пока думаю на это

Opt'екарь
На сайте с 19.01.2006
Offline
5
#6

Полагаю, лучше отталкиваться от скорости выполнения и сделать:

echo '<table cellspacing=0 cellpadding=0 width=100%>

<tr>

<td class=leftcoll valign=top>

<div class=menuzag>'.$LANG["menu_header"].'</div>';

А дизайнеру и так понятно, что между тегами идут данные.

Платный каталог (PR4, тИЦ 450) (http://www.yokko.ru)
Gordon01
На сайте с 21.05.2006
Offline
12
#7

Т.е. конкатенкацией...

Открывать-закрывать плохо?

!kt0
На сайте с 28.06.2006
Offline
46
#8

имхо 4. Вдруг дизайнер будет с шаблоном работать. Если внутри php делать, то он может побояться что-нибудь испортить, а так никаких проблем. Можно большие части html вообще в отдельныйе файлы пихать. Так даже лучше будет.

Итог: Чем меньше php в шаблоне - тем проще дизайнеру и тем проще тому, кто этот шаблон будет ставить на cms

Opt'екарь, а вдруг тетечка какая-нибудь будет сидеть?

Gordon01, а чем require_once или include_once не устраивает?

http://seorepa.com/ (http://seorepa.com/) - блог был там, пока не запилили mchost
M
На сайте с 21.07.2005
Offline
70
#9

есть еще вариант

<table cellspacing=0 cellpadding=0 width=100%>

<tr>

<td class=leftcoll valign=top>

<div class=menuzag><% MENUHEADER %></div>

а в самой CMS парсить такие теги перед выводом

+

можно посмотреть на реализацию, например, скинов в IPB 1.X

там шаблон получается в виде ф-и класа в отдельном скиновом файле

типа

<?php

class mod_global_poll_skin {

function global_poll_table_footer($footerText) {

global $ibforums;

return <<<EOF

<tr>

<td class='pformstrip' colspan='3'>$footerText</td>

</tr>

</table>

</div>

</form>

<br />

EOF;

}

}

?>

gofman
На сайте с 31.10.2004
Offline
100
#10

4 вариант. всем будет удобно.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий