[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разделение логики работы
Serj11
Добрый день, в данный момент разбираюсь со структурой сайта разделения логики и шаблона. Возникли трудности с выводом ленты новостей, дайте совет специалиста. Грубо говоря есть выборка некоторых новостей из БД

Index.php

<?php
//Code

/**
== Query of answers
*/

$result=mysql_query("SELECT `title`, `data`, `descriptions`, `author`,`text`, `id`
FROM `article_main`"
, $db)
or die ("Couldn't select an answers rows from table: ".mysql_error());

if ($result)
{
include './index.tpl';
}

//Code


и шаблон
Index.tpl

<?php
while ($myrow=mysql_fetch_assoc($result))
{
?>

<div
id="post_<?php echo (int)$myrow['id']; ?>" class="post">
<h1
class="title">
<?php
echo (string)$myrow['title']; ?>
</h1>
<h2
class="author">
<?php
echo (string)$myrow['author']; ?>
</h2>
<div
class="content">
<?php
echo (string)$myrow['descriptions']; ?>
</div>
</div>

<?php

}


Я вставлял в Index.php цикл выборки, а в тело цикла include с подключением шаблона,

<?php
if ($result)
{
while ($myrow=mysql_fetch_assoc($result))
{
include './index.tpl';
}

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



Спустя 2 часа, 15 минут, 50 секунд (23.04.2012 - 12:44) I++ написал(а):
http://irbis-team.com/15/4/1

А вообще если проект будет раздуваться лучше smarty прикрутить.

Спустя 1 час, 10 секунд (23.04.2012 - 13:44) SlavaFr написал(а):
include в цикле не хорошо.
первый вариант полностью в порядке.
не надо рассматривать темплате как просто вид, а рассматривай ее как скрипт который занимается формированием output из переданных данных.

Спустя 2 часа, 48 минут, 28 секунд (23.04.2012 - 16:33) vagrand написал(а):
Цитата
А вообще если проект будет раздуваться лучше smarty прикрутить.


А чем по вашему smarty лучше чем phtml?

Спустя 19 часов, 58 минут, 5 секунд (24.04.2012 - 12:31) Serj11 написал(а):

$str=file_get_contents('./index.tpl');

while ($myrow=mysql_fetch_assoc($result))
{
eval('?>'. $str .'<?php ');
}



index.tpl

<div id="post_<?php echo (int)$myrow['id']; ?>" class="post">
<h1
class="title">
<?php
echo (string)$myrow['title']; ?>
</h1>
<h2
class="author">
<?php
echo (string)$myrow['author']; ?>
</h2>
<div
class="content">
<?php
echo (string)$myrow['descriptions']; ?>
</div>
</div>


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

Спустя 31 минута, 32 секунды (24.04.2012 - 13:02) Игорь_Vasinsky написал(а):
после написания велосипедов - я тоже вернулся к такому виду, тока
меня вполне устраивает и
<?=$myrow['title']; ?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.