ExpressionEngine CMS
Open, Free, Amazing

Thread

This is an archived forum and the content is probably no longer relevant, but is provided here for posterity.

The active forums are here.

Loop in template

December 22, 2010 6:32am

Subscribe [3]
  • #1 / Dec 22, 2010 6:32am

    Jabbler

    59 posts

    I have a row and column set up, for every 3 <div> it is enclosed with a pair <li>

    Example

    <li>
    <div class="thumbnail">{model_icon}<div class="caption">{title}</div></div>
    <div class="thumbnail">{model_icon}<div class="caption">{title}</div></div>
    <div class="thumbnail">{model_icon}<div class="caption">{title}</div></div>
    </li>
    <li>
    <div class="thumbnail">{model_icon}<div class="caption">{title}</div></div>
    <div class="thumbnail">{model_icon}<div class="caption">{title}</div></div>
    <div class="thumbnail">{model_icon}<div class="caption">{title}</div></div>
    </li>

    Am having trouble with EE inserting the <li> for me…

  • #2 / Dec 22, 2010 5:24pm

    Ingmar

    29245 posts

    Try something like this:

    <li>
    {exp:channel:entries ... limit="6"}
    <div class="thumbnail">
       {model_icon}
       <div class="caption">
          {title}
       </div>
    </div>
    
    {if count == "3"}</li><li>{/if}
    {/exp:channel:entries}
    </li>

    Makes sense?

  • #3 / Dec 22, 2010 8:44pm

    Jabbler

    59 posts

    Thanks for replying but the thing is I have an unlimited amount of entries to be displayed. If EE cant do it, I can probably modify your code by having php check if ‘count’ is divisible by 3.

  • #4 / Dec 23, 2010 9:14am

    Ingmar

    29245 posts

    Yes, exactly:

    <li>
    {exp:channel:entries ... limit="6"}
    <div class="thumbnail">
       {model_icon}
       <div class="caption">
          {title}
       </div>
    </div>
    
    <?php if (!{count} % 3) { echo '</li><li>'; }?>
    
    {/exp:channel:entries}
    </li>
  • #5 / Dec 24, 2010 2:17am

    Jabbler

    59 posts

    Not sure whether it’s because I have my PHP set to generate on Output but the template output stop as soon as it encounters the PHP. I came up with my own variation which works for me, not as pretty as yours:

    <?php $counter = {count};  if ($counter % 3 == 0){echo "</li><li>";}; ?>
  • #6 / Dec 27, 2010 3:09pm

    Brandon Jones

    5500 posts

    Jabbler,

    Thanks for sharing your solution; glad Ingmar helped. Don’t hesitate with additional questions!

.(JavaScript must be enabled to view this email address)

ExpressionEngine News!

#eecms, #events, #releases