|
|
|
|
<?
while ($row = mysql_fetch_assoc($res))
{
$list='
<a href="'.DIR_WEB_ROOT.$row['s_url'].'/'.$row['c_url'].'/'.$row['a_url'] .'.html" >'.$row['a_title'].'</a>
<p align="justify">'.$row['a_descr'].'... »</p>
<div class="clear"></div>';
$l[]=$list;
}
//print_r($l);
include_once ('templates.php');//подгружаем шаблон
|
Шаблон в который надо вставить вывод цикла
##templates.php##
<head></head>
<body>
<div class="text">{//здесь вывести данные из цикла} </div>
</body>
</html>
|
как это лучше сделать ? | |
|
|
|
|
|
|
|
для: serjinio
(19.04.2009 в 12:39)
| | Я бы сделал так:
<div class="text">
<? while($row = mysql_fetch_assoc($res)): ?>
<a href="<?=DIR_WEB_ROOT.$row['s_url'];?>/<?=$row['c_url'];?>/<?=$row['a_url'];?>.html"><?=$row['a_title'];?></a>
<p align="justify"><?=$row['a_descr'];?>... »</p>
<div class="clear"></div>
<? endwhile; ?>
</div>
|
| |
|
|
|
|
|
|
|
для: ChieFSS
(19.04.2009 в 13:10)
| | Я тоже думал использовать альтернативный синтаксис но у меня получается то что я вызываю этот шаблон во многих скриптах и внутри
<div class="text">{//здесь вывести данные из цикла} </div>
будет совершенно разный вывод разных переменных...
<div class="text">{//вывод $z в скрипте 1.php} </div>
...........
<div class="text">{//вывод $xxx в скрипте 12.php} </div>
...........
<div class="text">{//вывод цикла в скрипте 3.php} </div>
|
поэтому ищу наиболее гибкое решение с мин кода внутри самого шаблона.
те в шаблон выводить только одну переменную допустим
<div class="text">{$text} </div>
а в разных скриптах ее формировать типа
1.php $text---цикл
2 php $text='title';
xx.php $text= массив | |
|
|
|
|
|
|
|
для: serjinio
(19.04.2009 в 12:39)
| | если надо отделить логику от дизайна то обычно так делают:
<?
$template = <<<html
<head></head>
<body>
<div class="text">{content} </div>
</body>
</html>
html;
while ($row = mysql_fetch_assoc($res))
{
$list='
<a href="'.DIR_WEB_ROOT.$row['s_url'].'/'.$row['c_url'].'/'.$row['a_url'] .'.html" >'.$row['a_title'].'</a>
<p align="justify">'.$row['a_descr'].'... »</p>
<div class="clear"></div>';
$l .= $list;
}
echo str_replace('{content}', $l, $template);
|
| |
|
|
|
|
|
|
|
для: nikita2206
(19.04.2009 в 13:20)
| | неплохая идея только проблема в том что хередок капризная функция и у нее свой внутренний синтаксис особенно много проблем с формами внутри ее, кроме того она очень тормознутая | |
|
|
|
|
|
|
|
для: nikita2206
(19.04.2009 в 13:20)
| | <a href="'.DIR_WEB_ROOT.$row['s_url'].'/'.$row['c_url'].'/'.$row['a_url'] .'.html" >'.$row['a_title'].'</a>
<p align="justify">'.$row['a_descr'].'... »</p>
<div class="clear"></div>';
И где ж вы тут отделяете что-то там от дизайна?!
обычно так делают
Вы ошибаетесь. | |
|
|
|
|
|
|
|
для: Лерк
(19.04.2009 в 14:07)
| | попробовал сделать таким способом работает..
<?
$l='';
while ($row = mysql_fetch_assoc($res))
{
$list='
<a href="'.DIR_WEB_ROOT.$row['s_url'].'/'.$row['c_url'].'/'.$row['a_url'] .'.html" >'.$row['a_title'].'</a>
<p align="justify">'.$row['a_descr'].'... »</p>
<div class="clear"></div>';
$l.=$list;
}
$template = file_get_contents('templates.php');//подгружаем шаблон
echo str_replace('{{content}}', $l, $template);
|
##templates.php##
<head></head>
<body>
<div class="text"> {{content}} </div>
</body>
</html>
|
но если в шаблоне есть вставки php кода то они выводятся как текст поэтому использование
file_get_contents неприемлимо ..как еще можно подгрузить шаблон? | |
|
|
|
|
|
|
|
для: serjinio
(19.04.2009 в 14:41)
| | Может вам вовсе не нужны шаблоны? Судя по тому, что вы делаете, вы их хотите сделать для вида. | |
|
|
|
|
|
|
|
для: serjinio
(19.04.2009 в 12:39)
| | По-моему это было бы гораздо элегантней сделано с помощью xslt | |
|
|
|
|
|
|
|
для: serjinio
(19.04.2009 в 12:39)
| | Все очень просто) Я обычно делаю так:
Index.php
<?
include "header.php";
$res='';
while ($row = mysql_fetch_assoc($res))
{
$list='
<a href="'.DIR_WEB_ROOT.$row['s_url'].'/'.$row['c_url'].'/'.$row['a_url'] .'.html" >'.$row['a_title'].'</a>
<p align="justify">'.$row['a_descr'].'... »</p>
<div class="clear"></div>';
$res.=$list;
}
include "footer.php";
?>
|
Файл header.php
<head></head>
<body>
<div class="text">
|
Файл footer.php
<?php
<?=$res?>
?>
</div>
</body>
</html>
|
Если нужно сделать вывод в таблицу, то так:
<?
include "header.php";
while ($row = mysql_fetch_assoc($res)) {
$res='';
$res='
<a href="'.DIR_WEB_ROOT.$row['s_url'].'/'.$row['c_url'].'/'.$row['a_url'] .'.html" >'.$row['a_title'].'</a>
<p align="justify">'.$row['a_descr'].'... »</p>
<div class="clear"></div>';
include "item.php";
}
include "footer.php";
?>
|
Файл header.php (например):
Файл item.php:
<tr>
<td><?=$res?></td></tr>
|
Файл footer.php
Ну я вот так обычно делаю..... | |
|
|
|