Portal > Foren > PHP > PEAR, PECL und Frameworks > Foreach-Schleife in Smarty-Template
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 17.02.2007, 18:46 Nach oben    #1
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  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2007, 18:58 Nach oben    #2
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.208
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  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2007, 19:07 Nach oben    #3
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  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.02.2007, 19:26 Nach oben    #4
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.208
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  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.02.2007, 04:25 Nach oben    #5
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  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen 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 Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind 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 +1. Es ist jetzt 01:45 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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 45