ps2007
Новичок
Совет новичкам по поводу оформления своего говнокода
Прошу администрацию не удалять мое сообщение.
Хочу показать, как из говнокода, который обычно пишут новички сделать более-менее читаемый код.
Исходный код:
Все перепутано, не видно ни структуры HTML, ни логики скрипта. Нужно сначала подготовить данные для вывода, т.е. выполнить запросы, произвести вычисления, прочее. Затем нужно только вывести результаты.
Вот что получилось после небольшой реорганизации:
Я не претендую на абсолютную правильность сделанного, я хотел показать суть.
Прошу администрацию не удалять мое сообщение.
Хочу показать, как из говнокода, который обычно пишут новички сделать более-менее читаемый код.
Исходный код:
PHP:
<?php
$result=query(
"SELECT*FROM`".PREFIX."posts`WHERE`id`='".intval($id)."'ORDER BY`id`DESC",__FILE__,__LINE__
);
$count=mysql_num_rows($result);
while($row=mysql_fetch_assoc($result))
{$body_material.='<div class="material">
<div class="material_wrapper">
<img src="'.htmlspecialchars($row['wrapper']).'" alt=""/>
</div>
<div class="material_right">
<div class="material_info">
<h1>'.htmlspecialchars($row['name']).'</h1>
<div class="material_date_and_name"><a href="#">'.htmlspecialchars($row['login']). '</a> | '.format_date($row['date']).'</div>
</div>
<div class="the_full_area"></div>
<div class="material_about">
'.htmlspecialchars($row['about']).'
</div>
</div>
<br/><br/><br/>
</div>
<div class="the_full_area"></div>
<div class="material_author">
<div class="material_author_avatar">
<img src="http://youexpert.ru/skins/default/design/img/no_avatar.jpg" alt=""/>
</div>
<div class="material_author_about">
<h1>Автор: <a href="#">'.htmlspecialchars($row['login']).'</a></h1>
<p>Об авторе</p>
</div>
<div class="the_full_area"></div>
</div>
<div class="material_content">
// ЗДЕСЬ НУЖНО НАПИСАТЬ УСЛОВИЕ ЕСЛИ ПЕРЕМЕННАЯ FINAL существуето то..
<h1>Предварительный просмотр финального итога</h1>
<p class="material_image"><a href="'.nl2br(bb_tag(htmlspecialchars($row['final']))).'"><img width="600" height="400" src="'.nl2br(bb_tag(htmlspecialchars($row['final']))).'" alt=""/></a></p>
// ДО СЮДА
<p>'.nl2br(bb_tag(htmlspecialchars($row['content']))).'<br/><br/><a href="'.htmlspecialchars($row['download']).'">Скачать</a> <a href="'.htmlspecialchars($row['demo']).'">Демо</a></p>
</div>';}
Вот что получилось после небольшой реорганизации:
PHP:
<?php
// получаем данные, никакого вывода
$result = query(
"SELECT * FROM `".PREFIX."posts` WHERE `id` = '".intval($id)."'ORDER BY`id`DESC",__FILE__,__LINE__
);
$count = mysql_num_rows($result);
$data = array();
while($row = mysql_fetch_assoc($result))
{
$data[] = $row;
}
// выводим HTML, здесь не должно быть никаких запросов
foreach ($data as $row)
{
?>
<div class="material">
<div class="material_wrapper">
<img src="<?=htmlspecialchars($row['wrapper'])?>" alt=""/>
</div>
<div class="material_right">
<div class="material_info">
<h1><?=htmlspecialchars($row['name'])?></h1>
<div class="material_date_and_name"><a href="#"><?=htmlspecialchars($row['login'])?></a> | <?=format_date($row['date'])?></div>
</div>
<div class="the_full_area"></div>
<div class="material_about">
<?=htmlspecialchars($row['about'])?>
</div>
</div>
<br/><br/><br/>
</div>
<div class="the_full_area"></div>
<div class="material_author">
<div class="material_author_avatar">
<img src="http://youexpert.ru/skins/default/design/img/no_avatar.jpg" alt=""/>
</div>
<div class="material_author_about">
<h1>Автор: <a href="#"><?=htmlspecialchars($row['login'])?></a></h1>
<p>Об авторе</p>
</div>
<div class="the_full_area"></div>
</div>
<div class="material_content">
// ЗДЕСЬ НУЖНО НАПИСАТЬ УСЛОВИЕ ЕСЛИ ПЕРЕМЕННАЯ FINAL существуето то..
<? if (isset($FINAL)) {?>
<h1>Предварительный просмотр финального итога</h1>
<p class="material_image">
<a href="<?=nl2br(bb_tag(htmlspecialchars($row['final'])))?>"><img width="600" height="400" src="<?=nl2br(bb_tag(htmlspecialchars($row['final'])))?>" alt=""/></a>
</p>
// ДО СЮДА
<?}?>
<p><?=nl2br(bb_tag(htmlspecialchars($row['content'])))?>
<br/><br/>
<a href="<?=htmlspecialchars($row['download'])?>">Скачать</a>
<a href="<?=htmlspecialchars($row['demo'])?>">Демо</a>
</p>
</div>
<?}?>
