smarty foreach while lus

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tim S

Tim S

12/11/2012 17:52:50
Quote Anchor link
Hallo,

Ik ben bezig met smarty, maar ik kom er even niet uit.

Als ik normaal een while lus in een foreach zet in smaty krijg ik dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
{foreach from=$menu_item item=foo}
  <li><a href="pages-cms.php?actie=wijzigen&amp;paginaid={$foo.paginaid}&volgordeid={$foo.volgordeid}">{$foo.titel}</a></li>
{/foreach}


de php code is dan als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
 while($rij = mysql_fetch_array($resultaat))
    {

    
       //aan smarty doorgeven
        $menu_item[] = $rij;

        $smarty->assign("menu_item", $menu_item);
    }

?>


Dit werkt allemaal goed maar als ik nu van de php code maak:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 while($rij = mysql_fetch_array($resultaat))
    {

        $menuvolgordeid    = $rij['volgordeid'];
        
        if(strlen($menutitel) > 20)
        {

            $menutitel         = substr($menutitel, 0, 17);
            $menutitel        .= "...";
//het probleem        
$menu_item['titel'] = $menutitel;
        }

        else{
      
        $menu_item[] = $rij;
        }

        
 //aan smarty doorgeven
$smarty->assign("menu_item", $menu_item);
    }
}
  
?>


wat ik wil is dat ik bij if(strlen($menutitel) > 20) de aangepaste titel aan smarty kan doorgeven maar dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$menu_item['titel'] = $menutitel;

werkt niet.

Heeft iemand enig idee hoe ik dat moet doen??
bvb dank!
Gewijzigd op 12/11/2012 17:53:47 door Tim S
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.