php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.10.2006, 12:30  
Benutzer
 
Registriert seit: 23.08.2006
Beiträge: 86
Canni
Standard Smarty => 1ste allgemeine Verunsicherung

Hi.
Nach viel Stöbern und Empfehlungen auch hier im Forum habe ich mich nun entschlossen meine Site mit Smarty hochzuziehen. Also habe ich mir brav doku dazu besorgt und mußte fetstellen, das ich erstmal förmlich erschlagen werde.
Kann mir jemand einen Tip geben wie ich mit Smarty am Besten anfange, bzw. kennt jemand ein Einsteiger-Tut. Mit Sachen wie Smarty für den Template-Designer und Smarty für den Programmier fühl ich mich schlicht etwas "verunsichert".
Was brauch ich für den Anfang? Ich zunächst ermal ein Gästebuch und ein oder zwei Datenbankgestütze Inhalte realisieren. Das Ganze soll natürlich über einen Navi-"Frame(DIV-Con. oder ähnliches)" "steuerbar sein.
Thx
Canni
Canni ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.10.2006, 12:55  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich bin ein absoluter smarty gegner .... aber egal

du solltest dir ernsthaft überlegen ob du für so ein kleines projekt smarty nehmen willst,
ich denke da reichen auchein paar kleine funktionen wie:
PHP-Code:
<?php

//dynamischer inhalt aus db
$title /*mysql*/ 'test';
$test 'hier steht der inhalt für test';

$bla = array (
   
"{TITLE}" => $title,
   
"{HEADLINE}" => "blablabla.",
   
"{AUTOR}" => "han unbekannt",
   
"{DATUM}" => "irgentwan",
   
"{TEST}" => $test
   
);


function 
tpl($tpl_datei,$dbarray)
{
    
$datei=file_get_contents($tpl_datei);
    foreach(
$dbarray as $temp1=>$temp2)
    {
      
$arrays[]=$temp1;
      
$array[]=$temp2;
    }
    
$da=str_replace($arrays,$array,$datei);
    return 
$da;
}
print 
tpl("bla.tpl",$bla);
?>
html (bla.tpl) könnte dann so aussehen
Code:
<title>{TITLE}</title>
</head>
<body>
<h1>{HEADLINE}</h1>


Autor: {AUTOR} - Datum: {DATUM}
</p>


{TEST}</p>
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline  
Alt 10.10.2006, 15:14  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

Dem Smarty Paket liegt ein Beispiel bei, da werden alle grundlegenden Sachen vorgeführt. Die Doku von Smarty finde ich im Gegensatz zu ganz anderen doch recht aufgeräumt. Wenn du die Grundlegenden Sachen hast, kannst du dir auch mal das modifier System von Smarty angucken, für ein Gästebuch lassen sich dort modifier für Smilyes und BB-Codes einbauen.
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
Alt 10.10.2006, 15:36  
Benutzer
 
Registriert seit: 23.08.2006
Beiträge: 86
Canni
Standard

Zitat:
du solltest dir ernsthaft überlegen ob du für so ein kleines projekt smarty nehmen willst,
ich denke da reichen auch ein paar kleine funktionen wie:
äh.. das mit dem GB war ein Beispiel. Ich WEISS das es deutlich größer wird. Deshalb das zunächst...
Canni ist offline  
Alt 10.10.2006, 15:36  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich finde Templates sind bei Mittleren bis Großprojekten Pflicht, was dagegen spricht ist mir nicht ganz klar.

Wie andy schon sagte ist Smarty gut dokumentiert, hast du den Link Crash Course mal durchgelesen?

Schau dir einfach mal folgende Smarty-Tags genauer an, damit hast du schon die halbe Miete:
{if}..{else}..{/if}
bedingte Anzeige

{foreach}..{foreachelse}..{/foreach}
um Schleifen zu realisieren, grade fürs Gästebuch unausweichlich

{literal}..{/literal}
um JavaScript und CSS-Code im Header zu definieren, die ja auch { und } verwenden

Auf Konstanten kannst du mit {$smarty.const.KONSTANTE} bzw. {$smarty.server.PHP_SELF} zugreifen (das ist jetzt aus dem Kopf, keine Garantie).

Einstellungen für Smarty, die man für den Anfang kennen sollte:
PHP-Code:
<?php
$template 
= new Smarty();
$template->template_dir PFAD_ZUM_TPL_BASIS_VERZEICHNIS// er ist die Basis für example.tpl bei $template->display('example.tpl');
$template->compile_dir PFAD_AN_DEM_SMARTY_SEINEN_CACHE_ABLEGEN_KANN;
$template->error_reporting E_ALL;
$template->caching true// cache ist halbwegs intelligent, kann man drin lassen
// falls eine Änderung nicht übernommen wurde, "compile_dir" einfach leeren
$template->debugging true// falls was nicht klappt, sonst false
?>
Lohnt sich durchzulesen:
http://smarty.php.net/manual/en/lang...les.smarty.php
http://smarty.php.net/manual/en/lang....variables.php
Zergling-new ist offline  
Alt 10.10.2006, 16:15  
Benutzer
 
Registriert seit: 23.08.2006
Beiträge: 86
Canni
Standard

Nein. den Crash-Link kenne ich nicht. Geb ich mir mal heute abend. Thx.
Den ersten hab ich schon hingekriegt ( wie auch schon von Zergling gepostet ). Hat eigentlich recht gut gefunzt - bis auf Tippfehler . Nur kam mir dann der Gedanke wie ich das ganze in bestimmte Bereiche der Seite darstellen kann ( also z.B. links die Navi, in der Mitte der jeweilige Inhalt und rechts "noch was anders" ). Irgendwas blockiert da bei mir... noch
Canni ist offline  
Alt 10.10.2006, 16:21  
Erfahrener Benutzer
 
Registriert seit: 17.07.2006
Beiträge: 140
louis
Standard

Zitat:
Zitat von Canni
Nur kam mir dann der Gedanke wie ich das ganze in bestimmte Bereiche der Seite darstellen kann ( also z.B. links die Navi, in der Mitte der jeweilige Inhalt und rechts "noch was anders" ). Irgendwas blockiert da bei mir... noch
Du kannst Templates auch verschachteln. Bau dir z.B. ein "Mastertemplate", in dem nur das grobe Layout definiert wird (z.b. die einzelnen div-container für navi, content, rechts), innerhalb dieser div-container definierst du Variablen, die du dann wieder dynamisch füllst, wobei du hierbei auch wieder Templates benutzen solltest...
__________________
mfg louis
louis ist offline  
Alt 10.10.2006, 17:56  
Erfahrener Benutzer
 
Registriert seit: 08.05.2005
Beiträge: 814
andy
andy eine Nachricht über ICQ schicken
Standard

Das von louis mal in Code ausgedrückt:
Code:
<html>
    <head>
        {include file=head.tpl}
    </head>
    <body>
        {include file=navigation.tpl}
        {include file=$content}
    </body>
</html>
__________________
Zitat:
Diese Erweiterung ist EXPERIMENTELL.
[...]
Seien Sie gewarnt und verwenden Sie diese Erweiterung auf eigenes Risiko..
andy ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Smarty + MySQL = immer falsche Ausgabe m0use` PHP Tipps 2006 44 21.11.2008 20:30
Was ist Aufgabe des Templates (Smarty), was nicht? agrajag PHP Tipps 2007 8 24.02.2007 13:19
ok => smarty Canni PHP Tipps 2006 3 15.11.2006 17:10
Smarty: allgemeine Fragen zum Zusammenspiel mit der Klasse & PHP Tipps 2005-2 6 13.09.2005 22:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
smarty konstanten, smarty konstanten zugreifen, smarty if verschachteln, smarty arrays verschachteln, smarty zugriff php konstante, smarty zugriff auf php konstante, smarty zugriff konstante, smarty zugriff auf php konstanten, smarty beispiel, smarty zugriff auf konstanten, smarty auf konstanten zugreifen, smarty constanten, smarty if verschachtelung, smarty verschachtelte variablen, smarty zugriff auf klassenkonstanten, smarty zugriff auf array, smarty constanten zugreifen, wo finde ich smarty konstanten, smarty constanten show, smarty print.tpl

Alle Zeitangaben in WEZ +1. Es ist jetzt 14:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.