Trying to create an image list based on what is defined as the order, and loosing

Posted by user1691463 on Stack Overflow See other posts from Stack Overflow or by user1691463
Published on 2012-09-22T21:35:12Z Indexed on 2012/09/22 21:37 UTC
Read the original article Hit count: 225

Filed under:
|
|

I have a custom created module for Joomla 2.5 and within the params of the module, and have a loop that is not outputting as expected. I have the following parameters (fields) int he module: Order Thumb image Image Title Full-size image

Now there are 10 sets of these group of 4 params. What I am trying to do is loop through each of the object sets, 10 of them, and on each iteration, build an HTML image list structure.

The if statement is building the HTML structure for the sets that have an order value that is greater than 0, and the else is creating the html for those sets that do not have a value greater that 0.

The goal is to create two variables and then concatenate the the strings together; the leading set are the sets that have an order defined. This is not happening and every thrid loop seems like it is missing.

Here is the order as it is set in the 10 sets

Set 1 = 0
Set 2 = 4
Set 3 = 1
Set 4 = 0
Set 5 = 5
Set 6 = 0
Set 7 = 0
Set 8 = 6
Set 9 = 3
Set 10 = 9

However, the outcomes is:

9
5
1
4
6
7
10

Instead of the expected:

3
9
2
5
8
1 (below here are those sets that were not greater than 0 in order of appearance)
4
6
7

whats wrong here that I can not see

    <?php
    for ($i = 1; $i <= 10; $i++) {
        $order      = $params->get('order'.$i);#get order for main loop of 10
        $active         = "";
        if ($order > 0) {#Check if greater than 0
            for ($n = 1; $n <= 10; $n++) {#loop through all order fields looking and build html lowest to highest;
                $ordercheck =$params->get('order'.$n);
                if ($ordercheck == $i) {
                    $img                = $params->get('image'.$n);
                    $fimage         = $params->get('image'.$n.'fullimage');
                    $title          = $params->get('image'.$n.'alttext');
                    $active         = "";
                    $active         = $active . '<li>';
                    $active         = $active .     '<a href="'.$fimage.'" rel="prettyPhoto[gallery1]" title="'.$title.'">';
                    $active         = $active .         '<img src="'.$img.'" alt="'.$title.'" />';
                    $active         = $active .     '</a>';
                    $active         = $active . '</li>';
                    $leading            = $leading . $active;
                }
            }
        } else { #if the itteration $order was not greater than 0, build in order of accourance
            $img                = $params->get('image'.$i);
            $fimage         = $params->get('image'.$i.'fullimage');
            $title          = $params->get('image'.$i.'alttext');
            $active         = $active . '<li>';
            $active         = $active .     '<a href="'.$fimage.'" rel="prettyPhoto[gallery1]" title="'.$title.'">';
            $active         = $active .         '<img src="'.$img.'" alt="'.$title.'" />';
            $active         = $active .         '</a></li>';
            $unordered  = $unordered . $active;
        }
        $imagesList = $leading . $unordered;
    }
?>

© Stack Overflow or respective owner

Related posts about php

Related posts about loops