цикл в темплейте

Тема в разделе "PHP", создана пользователем fafee, 13 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. fafee

    fafee Постоялец

    Регистр.:
    4 окт 2008
    Сообщения:
    92
    Симпатии:
    0
    Eсть цикл,
    PHP:
    {section name=entries_loop loop=$entries}
    и переменная $k=1

    подскажите как сделать, чтобы при каждом проходе цикла, переменная $k принимала значение $k + 1

    цикл прописан в tpl файле, и поэтому синтаксис, используемый в php файле не корректен

    Спасибо.
     
  2. 1d37r

    1d37r Читатель

    Заблокирован
    Регистр.:
    16 сен 2007
    Сообщения:
    287
    Симпатии:
    48
    вообще $k++ или $k = $k + 1;
    но я не понимаю если как ты говоришь синтаксис php не корректен, то к чему создавать тему именно в этом разделе?
     
  3. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    а вы уверены что цикл написан на PHP может это яваскрипт раз он в tpl
    приведите пример этого цикла посмотрим что там надо увеличивать...
    кстати конструкция ++$k быстрей работает чем $k++
     
  4. fafee

    fafee Постоялец

    Регистр.:
    4 окт 2008
    Сообщения:
    92
    Симпатии:
    0
    есть пара файлов .php и .tpl
    ++$k работает в .php и не работает в .tpl - потому что в .tpl синатксис
    не php, а html

    мне надо, чтобы в следующем цикле, при первом его проходе вывелась
    еще одна строка, то есть по умолчанию $k=1, если $k>1, то строку не выводим, поэтому при каждом прохождении цикла увеличиваем $k на 1, чтобы строка бльше не выводилась.
    вся проблема в том, как увеличить $k на 1 в теле .tpl (то есть html файла)
    PHP:
    {section name=entries_loop loop=$entries}
      {* 
    MAKE SURE TITLE IS NOT BLANK *}
      {if 
    $entries[entries_loop].blogentry_title != ""}
        {
    assign var='blogentry_title' value=$entries[entries_loop].blogentry_title}
      {else}
        {
    assign var='blogentry_title' value=$blog4}
      {/if}
      <
    div>
        <
    table cellpadding='0' cellspacing='0' width='100%'>
        <
    tr>
        <
    td valign='top' width='80' align='center' style='padding: 5 15 5 5;'>
    <
    a href='{$url->url_create('profile', $entries[entries_loop].blogentry_author->user_info.user_username)}'>
    <
    img src='{$entries[entries_loop].blogentry_author->user_photo('./images/nophoto.gif')}' class='photo' width='{$misc->photo_size($entries[entries_loop].blogentry_author->user_photo('./images/nophoto.gif'),'80','80','w')}' border='0'></a>
    </
    td>
        <
    td valign='top'>
          <
    div class='blog_title'><a href='{$url->url_create('blog_entry', $owner->user_info.user_username, $entries[entries_loop].blogentry_id)}'>{if $entries[entries_loop].blogentry_title != ""}{$entries[entries_loop].blogentry_title|truncate:100:"...":true}{else}За чашкой какао{/if}
          </
    a></div>
          <
    div class='blog_date'>
            {
    $datetime->cdate("`$setting.setting_timeformat` `$blog_entry21` `$setting.setting_dateformat`"$datetime->timezone($entries[entries_loop].blogentry_date$global_timezone))}  
          </
    div>
          {* 
    SHOW ENTRY CATEGORY *}
          {if 
    $entries[entries_loop].blogentry_blogentrycat_title != ""}
            <
    div class='blog_category'>Filed under: <a href='blog_category.php?blogentrycat_id={$entries[entries_loop].blogentry_blogentrycat_id}'>{$entries[entries_loop].blogentry_blogentrycat_title}</a></div>
          {/if}
          <
    div class='blog_body'>{$entries[entries_loop].blogentry_body|choptext:75:"<br>"}</div>
          <
    div align="right" style="margin:5px; text-decoration:none;"
    <
    br>
    {if 
    $entries[entries_loop].total_comments == 0}
    <
    span style="background:#f1f1f1; color:#999999">&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;<a href='{$url->url_create('blog_entry', $entries[entries_loop].blogentry_author->user_info.user_username, $entries[entries_loop].blogentry_id)}'>Поддержать беседу</a>
    &
    nbsp;<img src='./images/icons/typewriter.png' border='0' class='icon_comment'>
    &
    nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;
    {else}
    <
    span style="background:#f1f1f1; color:#999999">&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;
    <
    a href='{$url->url_create('blog_entry', $entries[entries_loop].blogentry_author->user_info.user_username, $entries[entries_loop].blogentry_id)}'>текст
    &nbsp;({$entries[entries_loop].total_comments})</a>&nbsp;&nbsp;|&nbsp;&nbsp;
    <
    a href='{$url->url_create('blog_entry', $entries[entries_loop].blogentry_author->user_info.user_username, $entries[entries_loop].blogentry_id)}'>текст2
    </a>&nbsp;<img src='./images/icons/typewriter.png' border='0' class='icon_comment'>
    &
    nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;</span></div>{/if}
        </
    td>
        </
    tr>
        </
    table>
      </
    div>
    {/
    section}
     
  5. serb80

    serb80 Писатель

    Регистр.:
    14 ноя 2008
    Сообщения:
    13
    Симпатии:
    1
    в смарти смотри {counter}
     
  6. WolandV

    WolandV Создатель

    Регистр.:
    5 мар 2009
    Сообщения:
    13
    Симпатии:
    4
    Вариантов реализации - масса. Можно использовать в начале кода
    {counter name=k start=1 skip=1}
    и в нужном месте делать проверку (*1)
    {if k == 1}
    выводим нужный код
    {else}{/if}
    и увеличивать счетчик
    {counter name=k} (увеличили значение и при следующей проверке *1 будет фолс)

    Вариант 2. (проще и правильнее)
    {if $smarty.section.entries_loop.index == 1}
    ...
    {else}
    ...
    {/if}

    и по аналогии еще несколько вариантов.
     
Статус темы:
Закрыта.