Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Цикл в шаблонизаторе Twig

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Артур
Отправлено: 13 Декабря, 2010 - 10:49:14
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




Здравствуйте. Есть такой запрос в чистом ввиде

Как вывести циклом в шаблоне? или нужно весь шаблон провести по циклу ?
 
 Top
OrmaJever Модератор
Отправлено: 13 Декабря, 2010 - 13:39:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




несовсем понятночто вы имеете ввиду под шаблоном...
CODE (htmlphp):
скопировать код в буфер обмена
  1. html
  2. <?while($m = mysql_fetch_array($sql)):?>
  3. html
  4. <?=$m['name'].'|'?>
  5. html
  6. <?endwhile?>


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Артур
Отправлено: 13 Декабря, 2010 - 13:49:41
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




OrmaJever,
Тоесть в шаблон внести сам цикл ? Ведь шаблонизатор на то и шаблонизатор что бы отделить верстку от логики.

(Отредактировано автором: 13 Декабря, 2010 - 13:50:28)

 
 Top
OrmaJever Модератор
Отправлено: 13 Декабря, 2010 - 13:52:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. ...
  2. $x = '';
  3. while($m = mysql_fetch_array($sql)){
  4. $x .= $m['name'].'|';
  5. }

а потом в шаблон вставлять переменую $x


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Артур
Отправлено: 13 Декабря, 2010 - 14:03:19
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




OrmaJever, Это получается весь шаблон провести через цикл.
Возможно неправильно изложил вопрос.

Код:
PHP:
скопировать код в буфер обмена
  1.  
  2. $template = $twig->loadTemplate('index.html');
  3. $template->display(array('znak' => $m['name']));
  4.  


Вот шаблон:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <title>TITLE</title>
  3. <div class="title">title</div>
  4.  
  5. <div class="cont">
  6. {{ znak }}
  7. </div>
  8.  
  9. </body>
  10. </html>
  11.  


Нужно провести в цикле
"
<div class="cont">
{{ znak }}
</div>
"
Если помещать
$template->display(array('znak' => $m['name'])); в цикл то весь шаблон будет выведен в цикле с изменением значения {{ znak }} но это несовсем правильно.
 
 Top
OrmaJever Модератор
Отправлено: 13 Декабря, 2010 - 14:31:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




всё правельно
PHP:
скопировать код в буфер обмена
  1. $x = '';
  2. while($m = mysql_fetch_array($sql)){
  3. $x .= $m['name'].'|';
  4. }
  5. $template = $twig->loadTemplate('index.html');
  6. $template->display(array('znak' => $x));

(Отредактировано автором: 13 Декабря, 2010 - 14:32:16)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Артур
Отправлено: 13 Декабря, 2010 - 14:41:29
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




OrmaJever, а если расклад, что надо полностью
"
<div class="cont">
{{ znak }}
</div>
"
провести?
При условии что всё это должно оставатся в шаблоне.
 
 Top
OrmaJever Модератор
Отправлено: 13 Декабря, 2010 - 15:26:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Непонял? Однако


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Артур
Отправлено: 13 Декабря, 2010 - 15:57:56
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




Ну вот логика и верстка вместе
PHP:
скопировать код в буфер обмена
  1.  
  2. while($m = mysql_fetch_array($sql)){
  3.  
  4. echo '
  5. <div class="cont">
  6. '.$m['name'].'
  7. </div>
  8. ';
  9.  
  10. }
  11.  

А как вестку отделить в шаблон но чтобы цикл был таким же как выше?

Не чтоб все значения из цикла были между <div class="cont"> и </div>, а для каждого значения из цикла свой div
Например вот так
<div class="cont">Andrey</div>
<div class="cont">Sergey</div>
<div class="cont">Evgeniy</div> и т.д
 
 Top
OrmaJever Модератор
Отправлено: 13 Декабря, 2010 - 16:03:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




загляните например в дле. Вы думаете в php коде вобще нету html? Небольшие блоки какраз и генерируются в php скриптах.
PHP:
скопировать код в буфер обмена
  1. $x = '';
  2. while($m = mysql_fetch_array($sql)){
  3.  
  4. $x .= '<div class="cont">'.$m['name'].'</div>';
  5.  
  6. }


Вид шаблона такой
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4. <title>test</title>
  5. </head>
  6. <body>
  7. {content}
  8. </body>
  9. </html>

Затем заменяем {content} на содержимое $x
Вот так и работают шаблонизаторы


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Артур
Отправлено: 13 Декабря, 2010 - 16:06:02
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




OrmaJever, Но "<div class="cont">'.$m['name'].'</div>" это верстка+логика, тоесть вы этим хотите сказать что полностью отделить логику невозможно ?
 
 Top
OrmaJever Модератор
Отправлено: 13 Декабря, 2010 - 16:07:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




ну не то чтобы невозможно но это самый оптимальный вариант.
(Добавление)
да и зачем совсем разделять? Однако


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Артур
Отправлено: 13 Декабря, 2010 - 16:23:11
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Июль 2010  


Помог: 0 раз(а)




OrmaJever, Всё для дизайнеров/верстальщиков Улыбка . Но надо найти вариант полного разделения логики.
 
 Top
OrmaJever Модератор
Отправлено: 13 Декабря, 2010 - 16:29:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Артур можите искать и думать но это абсолтно не нужно.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Мелкий Супермодератор
Отправлено: 13 Декабря, 2010 - 16:31:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Артур, ну а как вы себе представляете полное разделение? Впрочем, похоже что знаю - всё на статический файлах, никакого смешения логики в виду её отсутствия.

В любом случае или в шаблоне будет что-то или в логике будет пара тегов.


-----
PostgreSQL DBA
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB