Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PEAR, PECL und Frameworks > Foreach-Schleife in Smarty-Template
Antwort
 
Themen-Optionen
Alt 17.02.2007, 18:46   Nach oben    #1
Berti
Benutzer
 
Registriert seit: 18.06.2006
Ort: Straubing
Beiträge: 85
Standard Foreach-Schleife in Smarty-Template

Hallo ich habe fogendes Script für die Navigation meiner Website.
PHP-Code:
 <?php

    $Hauptmenu  
= array('Startseite' => 'startseite.php',
                        
'News'       => 'news.php');

    
$Shortcut   = array('Home'       => 'home.php',
                        
'Blog'       => 'blog.php');

    
$Benutzer   = array('Übersicht'  => 'uebersicht.php',
                        
'Logout'     => 'logout.php');

    
$Kategorien = array('Hauptmenü'    => $Hauptmenu,
                        
'Shortcut'     => $Shortcut,
                        
'Benutzermenü' => $Benutzer);

    
$smarty->assign('Menu'$Kategorien);

?>
Und diese Daten will ich in Smarty wie folgt ausgeben:
HTML-Code:
 {foreach from=$Menu key=v1 item=v2}
    <ul>
      <li><b>{$v1}</b></li>
      {foreach from=$v2 key=name item=link}
          <li><a href="{$link}">{$name}</a></li>
      {/foreach}
    </ul>
{/foreach}
Das funktioniert aber leider nicht, so wie ich das will.
Die eigentlich gleiche PHP-Schleife funktioniet aber.
PHP-Code:
<?php

    
foreach ($Kategorien as $v1 => $v2)
    {
        print 
"<ul>\n";
        print 
"  <li><b>"$v1 ."</b></li>\n";
        foreach (
$v2 as $name => $link)
        {
            print 
"  <li><a href=\""$link ."\">"$name ."</a></li>\n";;
        }
        print 
"</ul>\n\n";
    }

?>
Was mache ich bei meiner Smarty-Schleife also mal wieder falsch?
Berti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2007, 18:58   Nach oben    #2
robo47
BIN EIN KRASSA HELD!!!111
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.181
Standard

nur mal so als idee, schau doch mal dass du den cache von smarty aktivierst und schau dir die gecachte version an, da siehst du wie smarty das template in php-code umgesetzt hat.
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2007, 19:07   Nach oben    #3
Berti
Benutzer
 
Registriert seit: 18.06.2006
Ort: Straubing
Beiträge: 85
Standard

Hilft mir leider auch nicht so richtig weiter.
Weil der Code aussieht wie folgt und ich weis nicht was mit $_from gemeint sein soll.
PHP-Code:
   <?php $_from $this->_tpl_vars['Menu']; if (!is_array($_from) && !is_object($_from)) { settype($_from'array'); }if (count($_from):(
    foreach (
$_from as $this->_tpl_vars['v1'] => $this->_tpl_vars['v2']:(
?>
    <ul>
      <li><b><?php echo $this->_tpl_vars['v1']; ?>
</b></li>
      <?php $_from $this->_tpl_vars['v2']; if (!is_array($_from) && !is_object($_from)) { settype($_from'array'); }if (count($_from):(
    foreach (
$_from as $this->_tpl_vars['name'] => $this->_tpl_vars['link']:(
?>
          <li><a href="<?php echo $this->_tpl_vars['link']; ?>
"><?php echo $this->_tpl_vars['name']; ?>
</a></li>
      <?php endforeach; endif; unset($_from); ?>
    </ul>
<?php endforeach; endif; unset($_from); ?>
Und wenn ich die Templates cachen lasse, dann wird eine .tpl-Datei erstellt, aus der die Foreach-Schleife komplett entfernt ist...
Berti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2007, 19:26   Nach oben    #4
robo47
BIN EIN KRASSA HELD!!!111
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.181
Standard

es steht doch vor jeder schleife was $_from zugewiesen wird ?

$_from = $this->_tpl_vars['Menu'];

bzw.

$_from = $this->_tpl_vars['v2'];
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.02.2007, 04:25   Nach oben    #5
SRIT
Neuer Benutzer
 
Registriert seit: 21.02.2007
Beiträge: 8
Standard

Zitat:
Zitat von robo47 Beitrag anzeigen
nur mal so als idee, schau doch mal dass du den cache von smarty aktivierst und schau dir die gecachte version an, da siehst du wie smarty das template in php-code umgesetzt hat.
Das wird so nicht funktionieren... da wie schon geschrieben, das Cachemodul von Smarty, die gecachten Versionen von den Templates "unlesbar" machen.

Aber um mal genauer zu werden was funktioniert denn jetzt genau nicht? Wird überhaupt was angezeigt, wenn ja was?
SRIT ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP template und schleifen Victorious PHP-Programmierung 57 25.09.2007 00:18
Schleifenproblem bei Template RisingWar PHP-Programmierung 4 28.08.2007 22:46
Wie kann ich eine Schleife in einem Template ausleses? la-finest PHP-Programmierung 6 28.07.2006 12:41
mit foreach schleife auf 4 fach verschachteltes Array zugreifen Doggi PHP-Programmierung 4 01.02.2006 15:45


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:35 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44