php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Jobs und Projekte > Projekthilfe
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Projekthilfe Hier könnt Ihr eine Art Projekthilfe anfordern. Unter Projekthilfe verstehen wir Angebote bei denen KEIN Geld gezahlt werden kann.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-05-2008, 19:06
Raph
 Newbie
Links : Onlinestatus : Raph ist offline
Registriert seit: May 2008
Ort: Amberg
Beiträge: 9
Raph ist zur Zeit noch ein unbeschriebenes Blatt
Raph eine Nachricht über ICQ schicken
Standard [Funktion] Template System

Hallo zusammen =)

Ich kenne mich eigentlich gar nicht mit PHP aus, möchte jedoch ein Template System haben.

Ich möchte, das wenn ich in z. B. in der index.php {head} schreibe, dann soll die datei head.tpl aus dem ordner templates ausgegeben werden.

Ist dies möglich?

Wenn das Script nicht schwer ist, könnte mir das schnell jemand machen?
Mit Zitat antworten
  #2 (permalink)  
Alt 17-05-2008, 19:47
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard Re: [Funktion] Template System

Zitat:
Ich möchte, das wenn ich in z. B. in der index.php {head} schreibe, dann soll die datei head.tpl aus dem ordner templates ausgegeben werden.
Warum willst du das? PHP reicht völlig aus.

Vielleicht ist ja Smarty was für dich!
Mit Zitat antworten
  #3 (permalink)  
Alt 17-05-2008, 19:52
Raph
 Newbie
Links : Onlinestatus : Raph ist offline
Registriert seit: May 2008
Ort: Amberg
Beiträge: 9
Raph ist zur Zeit noch ein unbeschriebenes Blatt
Raph eine Nachricht über ICQ schicken
Standard

Auf Smarty wurde ich schon hingewiesen, aber das ist mir zu kompliziert.

Ich möchte das damit mein Scrip übersichtlicher wird, und dieses ganze include weg ist.
Mit Zitat antworten
  #4 (permalink)  
Alt 17-05-2008, 19:55
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Ich möchte das damit mein Scrip übersichtlicher wird, und dieses ganze include weg ist.
Versuch mal folgendes:

PHP-Code:
<?php

/**
 * hier deine Programmlogik
 * /
$tite = 'meine Webseite';


/**
 * jetzt nur noch ausgaben...
 */
include 'header.php';

?>

  <h1><?=$title?></h1>

...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5 (permalink)  
Alt 17-05-2008, 20:00
Raph
 Newbie
Links : Onlinestatus : Raph ist offline
Registriert seit: May 2008
Ort: Amberg
Beiträge: 9
Raph ist zur Zeit noch ein unbeschriebenes Blatt
Raph eine Nachricht über ICQ schicken
Standard

Ich will ja keine Variablen sondern ganze Dateien ausgeben.
Mit Zitat antworten
  #6 (permalink)  
Alt 17-05-2008, 20:08
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Ich wüsste keinen Grund dafür, aber wenn du das bevorzugst, dann wirst du um eine (in deinem Fall fertige) Template-Klasse nicht herum kommen. Im netz gibts viele.

Ich verschieb den Thread mal nach Gesuche.
EDIT:
Zitat:
könnte mir das schnell jemand machen?
vielleicht besser nach Projekthilfe. *move*

__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 17-05-2008, 20:16
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

class.Template.php
PHP-Code:
// Klasse initialisieren

class template
{
   var 
$path// Pfad zur Template Datei
   
var $content;  // Inhalt des Templates

   
function template($file)
   {
      
$this->path $file;
   }

   
// Template Datei öffnen
   
function read_template()
   {
      
$file = @fopen($this->path"r");
      while(!
feof($file))
      {
         
$temp fgets($file4096);
         
$this->content .= $temp;
      }
   }

   
// Platzhalter ersetzen
   
function replace($title$value)
   {
      
// Alle {TITLE} durch VALUE ersetzen
      
$this->content str_replace("{" $title "}"$value$this->content);
   }

   
// Fertige Datei ausgeben
   
function echo_template()
   {
      return 
$this->content;
   }

PHP-Code:
// Edit Start
// include ("config.inc.php"); falsch *schäm*
include ("class.Template.php");
// Edit Ende

$template_index = new template("head.html");
$template_index->read_template();
$template_index->replace("title""HTML-Titel");

$index $template_index->echo_template();
echo 
$index
head.html
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>{title}</title>
</head>
<body>
SO ok?? das wäre ein template system .. das GANZ klein gehalten ist.

gruß
uzu
__________________
Gruß
Uzu

private Homepage

Geändert von UzumakiNaruto (18-05-2008 um 02:03 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 17-05-2008, 20:33
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

@uzu, das ersetzt aber auch nur einen simplen Text und nicht eine komplette Datei. Da müsste dann schon sowas her:

PHP-Code:
include 'config.inc.php';

$tpl_header = new template('head.html');
$tpl_header->read_template();
$tpl_header->replace('title''Titel der Seite');

$tpl_main = new template('homepage.html');
$tpl_main->read_template();
$tpl_main->replace('head',$tpl_header->echo_template());

echo 
$tpl_main->echo_template(); 
Die ReadTemplate() Methode würde ich übrigens entweder vom Konstruktor aufrufen lassen. Spart wenigstens eine Zeile.

@threadstarter:
Das bedeutet: Für jedes einzelne "includen" benötigst du drei Zeilen zusätzlichen Code. Zudem musst du auch noch auf die eigentlich ganz selbstverständlichen Vorteile und Möglichkeiten eines includes verzichten.

Wozu soll das Gut sein?

Also, ich möchte jetzt nicht erneut das für und wieder von Template-Engines diskutieren. IMHO kann PHP das vollkommen ausreichend in seinem Standardumfang. Wer tatsächlich Funktionen braucht, die so nicht möglich sind, soll etwas entsprechendes einsetzen. Ein Beispiel ist ja nun gezeigt.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!

Geändert von TobiaZ (17-05-2008 um 20:39 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 17-05-2008, 21:32
Raph
 Newbie
Links : Onlinestatus : Raph ist offline
Registriert seit: May 2008
Ort: Amberg
Beiträge: 9
Raph ist zur Zeit noch ein unbeschriebenes Blatt
Raph eine Nachricht über ICQ schicken
Standard

Kann man das so machen das ich das nicht jedes mal neu machen muss?
Mit Zitat antworten
  #10 (permalink)  
Alt 17-05-2008, 21:34
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Raph
Kann man das so machen das ich das nicht jedes mal neu machen muss?
Definiere nicht jedes mal neu machen muss? Was nicht jedes mal neu machen muss?

Du kannst den Code in eine zentrale include-Datei auslagern. Klasse, dann bist du wieder da, wo du mit
PHP-Code:
include header.php
auch gewesen wärst.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #11 (permalink)  
Alt 17-05-2008, 21:40
Raph
 Newbie
Links : Onlinestatus : Raph ist offline
Registriert seit: May 2008
Ort: Amberg
Beiträge: 9
Raph ist zur Zeit noch ein unbeschriebenes Blatt
Raph eine Nachricht über ICQ schicken
Standard

Also
Ich möchte ja einfach nur schrieben

{php}

und dann soll die datei php.tpl aus dem ordner templates ausgelesen werden.

ohne das ich jedes mal irgendwas schreiben muss...
Mit Zitat antworten
  #12 (permalink)  
Alt 17-05-2008, 21:50
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Geht nicht.

Die kürzeste Form ist
PHP-Code:
<?=file_get_contents('header.tpl')?>
Noch besser natürlich mit include:
PHP-Code:
<?=include 'header.tpl' ?>
weil du dann im Template (dann sicherheitshalber als .php gespeichert) auch noch Variablen verwenden kann.

Hatte ich aber auch alles schon mal vorgeschlagen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #13 (permalink)  
Alt 17-05-2008, 21:54
Raph
 Newbie
Links : Onlinestatus : Raph ist offline
Registriert seit: May 2008
Ort: Amberg
Beiträge: 9
Raph ist zur Zeit noch ein unbeschriebenes Blatt
Raph eine Nachricht über ICQ schicken
Standard

aber wbb macht das doch auch so
Mit Zitat antworten
  #14 (permalink)  
Alt 17-05-2008, 22:12
Raph
 Newbie
Links : Onlinestatus : Raph ist offline
Registriert seit: May 2008
Ort: Amberg
Beiträge: 9
Raph ist zur Zeit noch ein unbeschriebenes Blatt
Raph eine Nachricht über ICQ schicken
Standard

Ich habe jetzt z.B.
PHP-Code:
function get_template($template) {
    return 
str_replace("\"","\\\"",implode("",file("templates/".$template.".tpl")));

Ausgegeben wird ein Template dann mit:
PHP-Code:
eval ("\$beispiel = \"".get_template(beispiel)."\";");
echo 
$beispiel
Und ich will halt, das ich statt dem
PHP-Code:
eval ("\$beispiel = \"".get_template(beispiel)."\";");
echo 
$beispiel
einfach nur noch {beispiel} schreiben muss.



EDIT: Sry für Doppelpost
Mit Zitat antworten
  #15 (permalink)  
Alt 17-05-2008, 22:21
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von Raph
aber wbb macht das doch auch so
Dann guck dir mal den Quelltext an und vergleiche. Da wird das sicher nicht aus heiterem Himmel ersetzt.

Zitat:
Und ich will halt, das ich statt dem
PHP:
eval ("\$beispiel = \"".get_template(beispiel)."\";");
echo $beispiel;
einfach nur noch {beispiel} schreiben muss.
Dann musst du die Logik, die in den zwei Zeilen steckt (zugegeben, da steckt nicht viel Logik drin) halt an andere Stelle auslagern..

Aber irgendwo musst du die Info, dass "{bla}" durch "xyz" ersetzt werden soll, schon hinterlegen. Woher soll PHP sonst wissen, was zu tun ist. Erwarte keine Wunder.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:34 Uhr.