Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Smarty, Вывод массива в таблицу в Smarty 
V
    Опции темы
Dima 2015
Дата 5.7.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 16.3.2008
Где: SPb

Репутация: нет
Всего: 2



День добрый уважаемые коллеги!

Вопрос по шаблонизатору Smarty.

Мне нужно вывести php-массив в таблицу, ну примерно так:

Код

<table>
<tr>
<td> Элемент 1 </td>
</tr>
<tr>
<td> Элемент 2 </td>
</tr>
...
</table>


Элемент 1, Элемент 2 - берутся из массива, который в свою очередь берется из базы, и кол-во элементов в нем может быть различным. Посему нужно как-то привинчивать перебор всех его элементов и в шаблон выводить рез-т.

Я вижу 2 варианта решения:

1 вариант. Заготовить шаблон вида:

Код

{*Шаблон Smarty*}
<table>
{$data}
</table>


А тело таблицы формировать пхп-скриптом аля:
Код

$tbody = '';
foreach($data_array as $key => $value){
$tbody.= "<tr><td>$value</td></tr>";
}

// И затем готовое тело таблицы кидать в шаблон:
$smarty->assign('data',$tbody);


Но это уж очень грустно и противоречит самому смыслу шаблонизатора.

2 вариант.

Использование внутреннего цикла Smarty аля:

Код

{*Шаблон Smarty*}
<table>
{foreach from=$data_array item=arr_item}
            <tr><td>{$arr_item}</td></tr>
{/foreach}
</table>


Ну а $data_array доставляется из пхп-скрипта.

Вопрос состоит в том, есть ли другие варианты? 2й лучше 1го, это понятно, но использовать циклы шаблонизатора тоже не очень хочется, хочется всю логику засунуть в пхп-код.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 5.7.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Если ты не хочешь использовать циклы, то зачем тебе смарти вообще?
возьми другой шаблонизатор
PM   Вверх
Dima 2015
Дата 5.7.2008, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 16.3.2008
Где: SPb

Репутация: нет
Всего: 2



Feldmarschall, другой взять не могу, велено работать с этим. Я пока еще новичек smile

Правильно надо понимать что иного не дано?
PM MAIL ICQ   Вверх
skyboy
Дата 5.7.2008, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(Dima 2015 @  5.7.2008,  17:15 Найти цитируемый пост)
Правильно надо понимать что иного не дано? 

а чего тебе ещё не хватает? 
существует два ваиранта: логичный и нелогичный(религиозный). оба ты привел.
что должен реализовывать гипотетический третий вариант?
PM MAIL   Вверх
bobik02
Дата 5.7.2008, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 26.11.2007

Репутация: нет
Всего: 14



Я вот не могу понять,  чем реально(обосновано) вас не устраивают перечисленные вами же варианты ?

Добавлено через 51 секунду
И есть ли смысл искать другой вариант?


--------------------
Have a nice day
PM   Вверх
Feldmarschall
Дата 5.7.2008, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Dima 2015, в каком смысле новичок? 
кем "велено"? почему опять задания дает непонятно кто, а расхлебывать их должны мы? почему нельзя спросить у того, кто давал задание? 

PM   Вверх
Dima 2015
Дата 5.7.2008, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 16.3.2008
Где: SPb

Репутация: нет
Всего: 2



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

Что-нибудь типа:

{*Шаблон Smarty*}

<table>
{block}
    <tr><td>{$arr_item}</td></tr>
{/block}
</table>


А в пхп коде я указываю что хочу работать вот с этим куском {block} и в нем мне нужно перебрать массив и тд и тп. Если не ошибаюсь, есть такой шаблонизатор Сигма, и в нем есть подобные вещи, в нем вообще циклов/условных операторов нет (я сам не видел, но мне так сказали smile).

Ну судя по ответам третего нет и искать его не надо, и на том спасибо ;)



Feldmarschall, в смысле свои первые <?php... написал полгода назад, а Смарти в глаза увидел позавчера smile
Велено будущим работодателем, который в данный момент недоступен.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 5.7.2008, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Цитата(Dima 2015 @  5.7.2008,  18:46 Найти цитируемый пост)
хочется что бы шаблон выглядел максимально просто, а все циклы, условия и тому подобное было в пхп-коде.

кому хочется? тебе или работодателю?

Цитата(Dima 2015 @  5.7.2008,  18:46 Найти цитируемый пост)
Ну судя по ответам третего нет и искать его не надо

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

Это сообщение отредактировал(а) Feldmarschall - 5.7.2008, 18:53
PM   Вверх
Dima 2015
Дата 5.7.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 16.3.2008
Где: SPb

Репутация: нет
Всего: 2



Feldmarschall, да мне хочется, мне...

Цитата

но вообще, нормальные разработчики, которые хотят вырасти из новичков... обычно читают документацию


Конечно... читаю изо всех сил smile
Тут спросил просто потому, что мне приятно общение с вами smile

По поводу как слова пишутся - спасибо, я учту )))) Нихай мои школьные учителя по русскому икают : ))
PM MAIL ICQ   Вверх
Feldmarschall
Дата 5.7.2008, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Цитата(Dima 2015 @  5.7.2008,  19:02 Найти цитируемый пост)
да мне хочется, мне...

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

PM   Вверх
Dima 2015
Дата 5.7.2008, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 16.3.2008
Где: SPb

Репутация: нет
Всего: 2



Feldmarschall, ет.. не пытайся меня на противоречиях ловить, это тяжело будет ))))

Дано было задание - разберись со Smarty, вот собственно сижу и разбираюсь.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 5.7.2008, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Ну-ну. Пусть тогда "работодатель" на противоречиях ловит.
PM   Вверх
skyboy
Дата 7.7.2008, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(Dima 2015 @  5.7.2008,  18:16 Найти цитируемый пост)
 не пытайся меня на противоречиях ловить

послушай, циклы в шаблоне вполне нормальная вещь. это не global и не eval, использование которых оправдано в очень-очень редких случаях. цикл - это абсолютно легитимный и наглядный способ вывести однотипную информацию. уходя от его использования(и не имея не то, что веских причин - внятных аргументов) ты только пытаешься надеться штаны через голову. что получится, только если штаны порвутся.
PM MAIL   Вверх
Dima 2015
Дата 7.7.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 16.3.2008
Где: SPb

Репутация: нет
Всего: 2



skyboy, ну дык именно это я и хотел услышать smile)) Спасибо!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




[ Время генерации скрипта: 0.0892 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.