Вопрос о правильности стандарта написание кода

Markus

Новичок
Вопрос о правильности стандарта написание кода

Хотелось бы задать вопрос как лучше реализовывать сабж.

echo("<html>");
if ....
.......

или

<html>
<? if ... ?>
....
 

Markus

Новичок
Мутник
не осилил я его в свое время, а чем он хорош то??
 

Markus

Новичок
Net Dog
То есть использовать темплейты.
А как лучше, создать свои или использовать смарти?

-~{}~ 13.04.05 19:10:

Net Dog

Давно хочу начать, есть ли где описалово о правильности создания темплейтов??
 

netdog

net @
Я имею ввиду движки темлейтовские, а темплейты уже тебе придется создавать %)

тобишь не скрещивать, всё в одном как у тебя php+html
 

Markus

Новичок
и что по этому поводу кстати скажут гуру?

-~{}~ 13.04.05 19:12:

Net Dog

А какие еще есть движки? и нельзя ли обойтись без них?

-~{}~ 13.04.05 19:16:

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

netdog

net @
smarty это один из них, а их ... одним словом "дофига"
смарти считается самым мощным(навороченным) движком написанным на php.
Есть html_template, MadTempate php_templates и т.д. и т.д. ...
в каждом есть свои плюсы и минусы.
А какие еще есть движки? и нельзя ли обойтись без них?
как только поймешь что это и как они используются, сам ответишь на свой вопрос %)

-~{}~ 13.04.05 18:18:

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

Markus

Новичок
вот взял от сюда

http://smarty.php.net/manual/ru/installing.smarty.basic.php

-~{}~ 13.04.05 19:25:

сорри неправ
 

Фанат

oncle terrible
Команда форума
не морочьте человеку голову.
пусть прочтёт
http://spectator.ru/technology/php/easy_templates
и не парится.

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


ЗЫ.
то есть, если у тебя
<html>
<? if ... ?>
разбросаны не в теле скрипта, а в отдельном шаблоне, с минимумом кода, то это нормально.
 

Markus

Новичок
К словам Фаната и Simm склоняюсь больше, от этого колличества шаблоных движков голова кругом пошла

-~{}~ 14.04.05 12:54:

просто разбираясь в логике шаблонов, у меня начинает полностью рушится свое представление.

если есть такой запрос

PHP:
echo"<FORM action=\"index.php?action=".$action."\" method=\"post\">";
echo"<td height=60 width=120 valign=top align=right>";
echo"<select name=\"city\" style=\"width:140\" onChange=\"this.form.submit()\">";
if (!$city) {
echo"<option value=\"\" selected>&#194;&#251;&#225;&#229;&#240;&#232;&#242;&#229;:</option>";
$result=mysql_query("SELECT id,name FROM city ORDER BY name");
}
else {
$result=mysql_query("SELECT name FROM city WHERE id = '".$city."'");
$row=mysql_fetch_row($result);

echo"<option value=\"".$city."\" selected>".$row[0]."</option>";

$result=mysql_query("SELECT id,name FROM city WHERE id != '".$city."' ORDER BY name");
}
while ($row=mysql_fetch_row($result)) {
$id_city	= $row[0];
$name_city	= $row[1];
echo"<option value=\"".$id_city."\">".$name_city."</option>";
}
echo"</select>";

echo"</FORM>";
как же будет это выглядеть к в смарти?
нужно будет заключать в массив?

-~{}~ 14.04.05 13:50:

Решение пришло свыше :)

PHP:
// Выводим список городов
 if (!isset($city))
 {
 	$city = 0;
	$id   = 0;
	$name = 'Выберите город';
 }

 $db->open();
 $db->query("SELECT id, name FROM city");
 
 while ($row = $db->fetchRow()) {
   $i++;
   $id_city[$i]=$row[0];
   $name_city[$i]=$row[1];
 }
  
 $db->close();
 $smarty->assign("option_city_values", $id);
 $smarty->assign("option_city_output", $name);
 $smarty->assign("option_city_selected", $city);
есть ли изъяны у этого кода?
 

neko

tеam neko
есть
он делает не то, что код выше
и при этом еще и испольузет смарти
сплошные изъяны
 

Markus

Новичок
PHP:
if (!isset($city)) 
 {
 	$city = 0;
 }

 $db->open();
 $db->query("SELECT id, name FROM city");
 
 while ($row = $db->fetchRow()) {
   $i++;
   $id_city[$i]	  = $row[0];
   $name_city[$i] = $row[1];
 }
  
 $db->close();
 $smarty->assign("option_city_values", $id_city);
 $smarty->assign("option_city_output", $name_city);
 $smarty->assign("option_city_selected", $city);
что то я ничего не пойму, то используй движки, то говорят не исползуй
 

neko

tеam neko
тебе фанат уже все сказал
разделение должно быть в голове, а не в движке
если оно есть в голове, то в коде тоже появится
если его там нет -- никакие движки не помогут
 

neko

tеam neko
честно мне все равно, как ты делаешь

вот ты хотел узнать мнение гуру!
я как гуру с большим стажем и мировым именем, говорю тебе
это неважно чем конкретно ты пользуешься смарти или монмарти
важно, чтобы у тебя самого в голове была ясность на предмет того где так называемое "представление", а где так называемая "логика"

будеш ли ты при этом пользоваться каким-то "шаблонным движком" или не будешь никаким -- совершенно неважно
 

Фанат

oncle terrible
Команда форума
вот как примерно у тебя должен выглядеть шаблон

PHP:
<FORM action="index.php?action=<?=$action?>" method="post"> 
<td height=60 width=120 valign=top align=right> 
<select name="city" style="width:140" onChange="this.form.submit()">; 
<option value="">&#194;&#251;&#225;&#229;&#240;&#232;&#242;&#229;:</option> 
<? foreach($cities as $row): ?>
<option value="<?=$row['id']?>" <?=$row['selected']?>><?=$row['city']?></option> 
<? endforeach ?>
</select>
</FORM>
массив $cities определяешь выше в скрипте.
 

Markus

Новичок
начинаю понимать смысл, возникает вопрос, как лучше :
подготовить скрипт например index.php с массивом, а описанную выше форму заключить в файл шаблона? index.tpl к примеру??
 

fixxxer

К.О.
Партнер клуба
ага. только лучше tpl/index.php.
или настроить апач так, чтобы .tpl нельзя был запросить напрямую.
 
Сверху