Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP Smarty Template Loop Struktur

Empfohlene Antworten

Veröffentlicht

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?

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

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 :(

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

Original geschrieben von kills

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/

gruß

kills

Ist das ein Schreibfehler???

"index.tlp"

:confused:

oh ja.

das file heisst: index.tpl

ich hab den fehler gefunden!

die index.tpl muss in den ordner templates!

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?

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?

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.