Zum Inhalt springen

PHP Smarty Template Loop Struktur


Empfohlene Beiträge

Hallo,

ich habe folgendes Problem mit einer Loop Struktur bei Smarty:

Ich habe ein Menü, welches aus Hauptmenüpunkten und diversen Untermenüpunkten pro Hauotmenüpunkt besteht. Beipsiel:

Artikelbereiche

------------------

- Hardware

- Software

- Presse

Logfiles

------------------

- System

- Benutzer

- Anmeldungen

Die Daten liegen in einem Array vor:


$smarty->assign("contact2", array(array("hauptmenuepunkt" => "Artikelbereiche",array("menuepunkte" => "Hardware","Software","Presse")),
array("hauptmenuepunkt" => "Logfiles",array("menuepunkte" => "System","Benuter","Anmeldungen"))));

[/PHP]

Wie muss ich das Template aufbauen, dass pro Hauptmenüpunkt alle Unterpunkte ausgegeben werden? Hatte an sowas in dieser Art gedacht (Funktioniert natürlich nicht):

[PHP]
// Loop über Hauptmenüpunkte
{section name=sec2 loop=$contact2}

{$contact2[sec2].hauptmenuepunkt}

// Loop über Untermenüpunkte???
{section name=sec3 loop=$contact2}
// Ausgabe Unterpunkte
{/section}

{/section}

Wie muss der Aufbau sein?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das was du da fabrizierst sieht so aus!


Array

(

    [0] => Array

        (

            [hauptmenuepunkt] => Artikelbereiche

            [0] => Array

                (

                    [menuepunkte] => Hardware

                    [0] => Software

                    [1] => Presse

                )


        )


    [1] => Array

        (

            [hauptmenuepunkt] => Logfiles

            [0] => Array

                (

                    [menuepunkte] => System

                    [0] => Benuter

                    [1] => Anmeldungen

                )


        )


)

Das ist jawohl schonmal nicht das was du willst oder? Verschachteln kannst du so!

{section name=sec2 loop=$contact2}

	{section name=sec3 loop=$contact2[sec2]}

			{$contact2[sec2][sec3].key}

	{/section}

{/section}

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Jaraz

Das was du da fabrizierst sieht so aus!



Array

(

    [0] => Array

        (

            [hauptmenuepunkt] => Artikelbereiche

            [0] => Array

                (

                    [menuepunkte] => Hardware

                    [0] => Software

                    [1] => Presse

                )


        )


    [1] => Array

        (

            [hauptmenuepunkt] => Logfiles

            [0] => Array

                (

                    [menuepunkte] => System

                    [0] => Benuter

                    [1] => Anmeldungen

                )


        )


)

Das ist jawohl schonmal nicht das was du willst oder?

Gruß Jaraz

Ja stimmt, das ist falsch. Irgendwie blicke ich noch nicht so ganz durch die tausenden Array Konstrukte durch, wie diese ausfgebaut sein müssen.

So ein S*****. Ich probier jetzt schon ewig diese Menüausgabe hinzubekommen und krigs einfach net :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Leute,

ich hab mich gerade auch ma an die Smarty Template engine rangewagt.

Nu hab ich soweit folgende Dateistruktur:


index.php

index.tlp

cache/

configs/

templates/

templates_c/

in der index.php folgenden inhalt:


<?php
require( "Smarty.class.php");
$smarty = new Smarty;

$smarty->template_dir = 'templates/';
$smarty->compile_dir = 'templates_c/';
$smarty->config_dir = 'configs/';
$smarty->cache_dir = 'cache/';

$smarty->assign('name','Ned');

$smarty->display('index.tpl');
?>
[/PHP]

Nu wenn ich in meinem IE die index.php "ansurfe", erscheint die std. fehlermeldung:

"Seite kann nicht angezeigt werden,....."

wo könnte mein Fehler liegen.

@Mods:

ich denke das man aus diesem thread ein schönes toDo : "wie verwende ich mit php Templates" machen könnte.

Server:

Jana2 Webserver

PHP : 5beta4

php.ini ( recommend settings)

Smarty: 2.6.2

gruß

kills

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nu was neues:

ich spiele hier mit loops:

index.tpl:


{* Smarty-template *}
<table>

{foreach from=$user item=name}
<tr>

<td>Name: {$name}</td>

</tr>
{/foreach}

</table>
[/PHP]

index.php:

[PHP]
<?php
require( "Smarty.class.php");
$smarty = new Smarty;

$smarty->template_dir = 'templates/';
$smarty->compile_dir = 'templates_c/';
$smarty->config_dir = 'configs/';
$smarty->cache_dir = 'cache/';

$smarty->chaching = true;

$smarty->assign('user', array("Markus", "Wolfgang", "Jürgen", "Andy"));

$smarty->display('index.tpl');

?>

erzeugter Quelltext:


   <tr>


   	<td>Name: Markus</td>


   </tr>

   <tr>


   	<td>Name: Wolfgang</td>


   </tr>

   <tr>


   	<td>Name: Jürgen</td>


   </tr>

   <tr>


   	<td>Name: Andy</td>


   </tr>


</table>

Wo ist das "<table>" tag geblieben?

Link zu diesem Kommentar
Auf anderen Seiten teilen

mh also ich hab jetzt ne korrektes html gerüst aussen herum gebastelt, und dann gings!

nu neues prob:

wie kann ich css in den header einbinden?


<html>
<head>
<title>Test by STM</title>
</head>

<style type="text/css">
td { text-align: center; };
</style>
<body>
[/PHP]

so hab ichs versucht, gibt aber beim parsen des templates nen syntax error!

wie muss ich das richtig machen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

mich würde interessieren, wie ihr vorgeht wenn ihr z.b. mit diesem template system und ein newsscript (o.ä.) bastelt?!

also ich würde jetzt hergehen, und per select meine newsposts aus der db holen, und dann das komplette dataset durchnudeln, und mir das ganze ding in nen array schreiben. danach wenn mein array soweit fertig ist, würde ich ne section machen und da mein array reingeben. den rest sollte dann das template system übernehmen.

ist es nicht irgendwie auch schon direkt beim daten holen möglich die ganzen newspost in ne section oder sowas ähnliches zu schreiben, damit ich nicht alles nochma in nen array packen muss?!

bzw. beschreibt mir mal bitte eure vorgenhensweise bei solch einem script?!

Gruß,

kills

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...