$small_posts // Многомерный массив
...
ob_start();
foreach ($small_posts as $post) {
include 'template.tpl'; // В нем уже выводится массив $post
}
$content = ob_get_contents();
ob_end_clean();
echo $content;
Один человек увидев эту запись послал меня в Zend. Фреймворки и сторонние скрипты я не перевариваю, свое дерьмо, как говорится, малиной пахнет.
Спустя 4 минуты, 22 секунды (3.10.2011 - 23:46) Winston написал(а):
Можно и без цикла можно обойтись :)
$small_posts // Многомерный массив
...
ob_start();
extract($small_posts, EXTR_SKIP);
include 'template.tpl'; // В нем уже выводится массив $post
$content = ob_get_contents();
ob_end_clean();
echo $content;
Спустя 8 минут, 51 секунда (3.10.2011 - 23:55) TranceIT написал(а):
А если $small_posts не ассоциативный?
Допустим из базы берется вот так:
Допустим из базы берется вот так:
$query = "SELECT * FROM table LIMIT 0, 10";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
$small_posts[] = $row;
Спустя 6 минут, 19 секунд (4.10.2011 - 00:01) Winston написал(а):
Цитата (TranceIT @ 3.10.2011 - 23:55) |
А если $small_posts не ассоциативный? |
Ну тогда foreach лучше походу.
Мне кажется, что не нужно именно здесь цикл пихать, а один раз подключить шаблон.
$small_posts // Многомерный массив
...
ob_start();
include 'template.tpl'; // В нем уже выводится массив $post
$content = ob_get_contents();
ob_end_clean();
echo $content;
А в шаблоне уже писать цикл
<table>
<?php foreach ($small_posts as $post) : ?>
<tr>
<td>
<?php echo $post['field'] ?>
</td>
</tr>
<?php endforeach; ?>
</table>
Например в джумле так и делается.
Спустя 22 минуты, 27 секунд (4.10.2011 - 00:23) TranceIT написал(а):
Я стараюсь не впихивать циклы в верстку.
В общем спасибо, о корректности кода вопрос решен. Пошлю человека в буферизацию.
В общем спасибо, о корректности кода вопрос решен. Пошлю человека в буферизацию.
Спустя 3 минуты, 33 секунды (4.10.2011 - 00:27) Winston написал(а):
Цитата (TranceIT @ 4.10.2011 - 00:23) |
Я стараюсь не впихивать циклы в верстку |
Большинство так и делает, здесь нету ничего противозаконного
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 3 минуты, 55 секунд (4.10.2011 - 00:31) imbalance_hero написал(а):
TranceIT
В ирбис загляни, не первый день же у нас.
В цикле ты КАЖДЫЙ РАЗ инклюдишь страницу, что есть ПЛОХО! Ты должен данные брать лишь 1 раз в виде парсера, допустим file_get_contents(), а потом там же и обрабатывать.
Функция parseTpl в уроках ирбиса.
В ирбис загляни, не первый день же у нас.
В цикле ты КАЖДЫЙ РАЗ инклюдишь страницу, что есть ПЛОХО! Ты должен данные брать лишь 1 раз в виде парсера, допустим file_get_contents(), а потом там же и обрабатывать.
Функция parseTpl в уроках ирбиса.
Спустя 41 минута, 55 секунд (4.10.2011 - 01:13) TranceIT написал(а):
imbalance_hero
Спасибо.
Вот к чему я пришел:
Спасибо.
Вот к чему я пришел:
$tpl = file_get_contents(SKINS . 'show.tpl');
ob_start();
foreach ($array as $value) {
eval(' ?>' . $tpl . '<?php '); // $value в самом шаблоне
}
$content = ob_get_contents();
ob_end_clean();
echo $content;
Спустя 2 минуты, 28 секунд (4.10.2011 - 01:15) Winston написал(а):
Цитата (TranceIT @ 4.10.2011 - 01:13) |
Вот к чему я пришел |
Да ну, зачем изврат такой ?
![blink.gif](http://phpforum.ru/html/emoticons/blink.gif)
Спустя 8 минут, 14 секунд (4.10.2011 - 01:23) TranceIT написал(а):
Цитата (Winston @ 3.10.2011 - 22:15) |
Да ну, зачем изврат такой ? |
Ну как зачем...
1) Чтобы не инклудить много раз один шаблон.
2) Вынести циклы из верстки.
Спустя 5 минут, 9 секунд (4.10.2011 - 01:29) Winston написал(а):
Цитата (TranceIT @ 4.10.2011 - 01:23) |
Ну как зачем... 1) Чтобы не инклудить много раз один шаблон. 2) Вынести циклы из верстки. |
Ну это твое право. Я бы делал так как во втором своем посте отписал...
Спустя 9 минут, 33 секунды (4.10.2011 - 01:38) TranceIT написал(а):
Интересно выслушать и другие мнения.
Напомню, что количество выводимых записей нам неизвестно и массив не ассоциативный.
Напомню, что количество выводимых записей нам неизвестно и массив не ассоциативный.
Спустя 19 минут, 34 секунды (4.10.2011 - 01:58) imbalance_hero написал(а):
Winston
Потому что пихать php функции в ВИД, это ОДИН из видов шаблонизации, а использовать так, как выше - это ВТОРОЙ вид шаблонизации, есть и другие
Потому что пихать php функции в ВИД, это ОДИН из видов шаблонизации, а использовать так, как выше - это ВТОРОЙ вид шаблонизации, есть и другие
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 6 часов, 8 минут, 5 секунд (4.10.2011 - 08:06) linker написал(а):
Собираешь из кучи шаблонов результирующий html, кэшируешь и потом тупо его выводишь через echo.
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.
Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
![user posted image](http://www.calend.ru/img/gerb/i1/1132.jpg)