php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.11.2006, 17:34  
Benutzer
 
Registriert seit: 23.08.2006
Beiträge: 86
Canni
Standard

@Zergling:
Zitat:
Zurück zum Thema mal, bevor du include $var verwendest, lass dir doch $var einfach mal ausgeben:
Hab ja schon vargedumpt ( hab schon ein bischen was dazugelernt hier im Forum^^ ). War alles i.O. Wie gesagt nach umbennen der Variablen geht es ja jetzt auch.

@Razor:
Ich hatte das Ganze ja auch mal mit Smarty angefangen. Z.B. meine index.tpl:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<
html>
  <
head>
    <
title>{$title}</title>
    <
meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <
link rel="stylesheet" type="text/css" href="{$css}">
  </
head>
  <
body>

    <
div id='root'>

        <
div id='header'>
        {include 
file="$header.tpl"}
        </
div>

        <
div id='navi_left'>
        {include 
file="$navi_left.tpl"}
        </
div>

        <
div id='navi_right'>
        {
$navi_right}
        </
div>

        <
div id='content'>
        {include 
file="$content.tpl"}
        </
div>

    </
div>

 </
body>
</
html
und meine index.php dazu:

PHP-Code:
<?php
include 'index/setup.php';

$smarty = new smarty_index();

$smarty->assign('title','xxx');
$smarty->assign('header','header');
$smarty->assign('navi_left','navi_left');
$smarty->assign('navi_right','navi_right');
$smarty->assign('content','content');
$smarty->assign('css','../index/ini.css');

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


?>
Hat wirklich klasse geklappt. Nur wollte ich dann z.B. Navi links über ne Datenbankabfrage mit Links füttern und da verließen sie mich dann...
Vielleicht hab´s auch nur falsch angepackt. Ich laß mich gerne belehren...</textare
Canni ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.11.2006, 18:04  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

In der PHP Datei stellst du alle Links zusammen haste dann in nem Array dann kannste

$navi_left = $tpl->fetch('navi_left.tpl');

in der "navi_left.tpl" werden eben die Links angezeigt und dann kannste in deiner index.tpl mit {$navi_left} arbeiten ...

Das wäre jetzt nen Beispiel! Es gibt zig weitere Wege wie du zum Ziel mit Smarty kommst.
Flor1an ist gerade online  
Alt 13.11.2006, 19:23  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hi,
dafür gibts in Smarty die {foreach} Schleife. Mehr solltest du zu Smarty auch garnicht wissen.

index.tpl
Code:
{foreach from=$array item=element name=loopname}
{$smarty.foreach.loopname.iteration}: {element}
{if !$smarty.foreach.loopname.last}
{/if}
{foreachelse}
Keine Einträge vorhanden.
{/foreach}
index.php
PHP-Code:
<?php
$oTemplate 
= new Smarty();
$oTemplate->assign('array', array('eins''zwei'));
$oTemplate->display('index.tpl');
?>
Nur als Beispiel. Schau dir mal {if}, {else}, {foreach}, {foreachelse}, {$var} an und das reicht eigentlich auch. Der Rest ist netter Gimmik, aber sei vorsichtig, dass du die Template-Datei jetzt nicht auch noch mit Smarty-Befehlen zuhämmerst, sonst hätte man gleich alles beim alten lassen können
Zergling-new ist offline  
Alt 13.11.2006, 19:57  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Jo Smarty hat meiner Meinung nach ein paar Funktionen zuviel Was noch interessant ist die Sache mit dem Caching. Funktioniert wunderbar einfach und bringt einiges!
Flor1an ist gerade online  
Alt 14.11.2006, 13:46  
Benutzer
 
Registriert seit: 23.08.2006
Beiträge: 86
Canni
Standard

Ich hab noch ein Backup von der "Smarty-Version". Im Prinzip der gleiche Fortschrittsstatus. Werd das nochmal ausprobieren. Aber doch nochmal eine abschließende Frage:
Wenn ich als Anfänger Smarty ( z.B. ) benutze, tu ich mir damit einen Gefallen in Sachen PHP lernen oder umgehe ich da nicht ein paar Lerneffekte, wie z.B. mir Gedanken über die Umsetzung bzw. das Steuern von Inhalten zu machen?
Canni ist offline  
Alt 14.11.2006, 13:57  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Mh da bin ich geteilter Meinung. Auf der einen Seite ja irgendwo lässt man den Part aus wie jetzt die Ausgabe gestalltet. Aber da ich mir nicht vorstellen kann jemals wieder ohne ein Templatesystem zu programmieren denke ich nicht dass man anfangs auf Smarty verzichten sollte.

So viel gibts da ja als Anfänger nicht zu lernen. Man muss halt verstehen wie include() funktioniert und dir selbst ein System zusammen zubasteln mit dem du deine Webseite aufbaust. Ob du jetzt Smarty oder ein anderes Templatesystem verwendest ist eigentlich egal da die meisten fast gleich funktionieren. Sie unterscheiden sich meist nur in den Funktionsnamen oder in der Syntax.

Musst du selbst entscheiden, wenn dir klar ist wie ein Templatesystem funktioniert und was es genau macht kannst du getrost drauf verzichten deine Seite erst kompliziert mit einem Mix aus PHP und HTML zu gestallten.

Smarty hats halt meiner Meinung nach gut gelöst. Das was du jetzt machst, also im HTML Code PHP Befehle einbetten wie <?php include('header.php'); ?> macht Smarty auch. Allerdings hast du nichts mit dem PHP Code zutun.

Code:
html text ....
{if $var == "1"}diese ausgabe{else}ne andere ausgabe{/if}
weiter mit html
Das würde Smarty erstmal umsetzen in:
Code:
html text ....
<?php if ($var == "1") { echo "diese ausgabe"; } else { echo "ne andere ausgabe"; } ?>
weiter mit html
So arbeitest du ja im Endeffekt. Smarty speichert diese umgewandelte Version (compiled) ab und ruft jedes mal diese fertige Version auf wenn das Template angezeigt werden soll.
Zusätzlich kann Smarty Caching. Also verwendet Smarty beim ersten mal wieder die umgewandelte füllt diese mit Daten und das was dann an den User ausgespuckt wird speichert Smarty in ner eigenen Datei (cache) und ruft diese bei weiteren aufrufen der Seite direkt auf und gibt sie aus ohne das PHP noch Daten zusammen suchen muss und sie in die Datei schreiben muss.
Flor1an ist gerade online  
Alt 14.11.2006, 14:24  
Benutzer
 
Registriert seit: 23.08.2006
Beiträge: 86
Canni
Standard

hm... dann wäre das vielleicht ein guter Ansatz:
In Projekten, von denen man im Vorraus weiß, daß sie größer werden bzw. sind Smarty ( oder ähnl. ) nutzen ( Templatesystem hin oder her: zum PHP lernen bleibt auf alle Fälle noch genug über^^ ) und an Projekten die im Vorraus schon zur "Kleinigkeit" erklärt sind => lernen
Canni 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
[Erledigt] Problem mit Include pck1983 PHP Tipps 2008 7 15.07.2008 19:13
hinter include wird eine 1 angezeigt |~Râdîant~| PHP Tipps 2008 8 19.09.2007 13:52
include - get - big problem Buschdieb PHP-Fortgeschrittene 6 14.04.2006 20:28
include problem schmiddy PHP Tipps 2005-2 11 06.08.2005 15:22
include() oder require() -problem PHP Tipps 2005-2 7 01.08.2005 20:13
Indirektes Include() problem PHP Tipps 2005-2 5 25.07.2005 19:29
HILFE mit Include PHP Tipps 2005 1 29.03.2005 05:44
include Problem xeon PHP Tipps 2005 2 26.03.2005 22:13
Include problem ... 'progman' PHP Tipps 2005 7 27.02.2005 12:13
Include Problem andrew22 PHP Tipps 2005 4 25.02.2005 21:17
Smarty - Problem bei include PHP Tipps 2005 16 07.02.2005 12:51
include problem PHP Tipps 2004 3 17.09.2004 21:17
Include Problem PHP Tipps 2004 4 14.09.2004 14:08
include Problem andrew22 PHP Tipps 2004 26 10.09.2004 16:04
Gästebuch / Include Problem PHP Tipps 2004 9 14.07.2004 18:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
smarty include file menge, smarty index.php include, smarty include, include foreach, includefile im head geht nicht, html in smartybefehlen, smarty, include, smarty include foreach

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:54 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.