PHP/Smarty (korrekte Vorgehensweise, Aufbau)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
zyta2k
Beiträge: 2446
Registriert: 14.03.2003 09:18:00
Kontaktdaten:

PHP/Smarty (korrekte Vorgehensweise, Aufbau)

Beitrag von zyta2k » 10.02.2004 15:58:27

Ahoi,

bin an einem PHP Projekt dran und bin jetzt auf dein Grunsätzliches Problem gestossen:
Wie strukturiere ich die Templates und wo/wie binde ich die Interaktiven dinge ein ??

Momentan siehts vereinfacht so aus:

main.php

Code: Alles auswählen

require 'Smarty.class.php';
require 'classes/classes.php';

// Check Security //
$auth = new auth;
$auth->login()
...
if ($auth->access > 0 and $auth->verify_session()) {
    // Login OK
    $smarty->register_object("auth",$auth);
    $smarty->register_function("date_now", "print_current_date");
    $smarty->display('main.tpl');
} elseif ($logout_success) {
    $smarty->assign(errortext,"Erfolgreich ausgeloggt");
    $smarty->display('index.tpl');
} else {
    // Login FAILED
    $smarty->assign(errortext,"foobar");
    $smarty->display('index.tpl');
}
Das main.tpl dazu

Code: Alles auswählen

{include file=header.tpl css="style.css"}

{auth->uname assign="authlevel"}

{if $authlevel eq "admin"}
    {include file=menu.tpl perm=1}
{elseif $authlevel eq "dozent"}
    {include file=menu.tpl perm=2}
{else}
    {include file=menu.tpl}
{/if}

{include file=footer.tpl}
Was ich will:
Ein dynamisches Menu (je nach authlevel, bzw. Inhalt von auth->uname).

Ist das der richtige Anstatz ??

Das menu.tpl sieht so aus:

Code: Alles auswählen

<div id="menu">
 {auth->uname}<br />

{if $perm == 1}

    <p class="menutitle">Adminstration</p>
...
{elseif $perm == 2}

    <p class="menutitle">Auswertung</p>
   ...
{else}

    <p class="menutitle">Fragebogen</p>
...
{/if}
<a class="menulink_logout" href="main.php?action=Logout">logout</a>
</div>
Stimmt mein Vorgehen, oder gibts bessere Möglichkeiten ??

Antworten