kostenloser Webspace werbefrei: lima-city


Template System!

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Ich bin Dabei ein Template System zur Erstellen!

    und mein Problem ist es, ich möchte das sich im header der titel bei jeder datei ändert!

    Ist das Möglich?

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. eigendlich ist das ohne Probleme möglich; Wichtig wäre nur zu wissen wie du vor hast das Templatesystem aufzubauen.

    Wenn du eine template datei erstellst und dorthinen die Variablen $index und $menu (als Besipiel) einfügst kannst du das Gleiche auch mit $titel machen
  4. Wenn du das Template per PHP includest, kannst du einfach <?=$titel;?> in der Header-Datei verwenden, vor dem includen des Headers setzt du dann einfach $titel = "Titel der Seite";

    Du kannst auch den Header-File per get_file_contents() in eine Variable einzulesen und mit str_ireplace() verwendete Variablen wie {{TITEL}} ersetzen... Kommt drauf an, wie du dein Templatesystem machen willst.
  5. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    So sieht meine Codes aus!

    index.php

    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    $site = array();
    $site['index'] = 'sites/start.php';
    
    include('tpl/header.php');
    if (isset($_GET['site'], $site[$_GET['site']])) {
        include $site[$_GET['site']];
    } else {
        include $site['index'];
    }
    include('tpl/footer.php');
    ?>


    start.php ist die Startseite

    header.php (Titel...)

    footer.php alles andere ...!
  6. Du musst den Ansatz ändern. Bei mir läuft es so, dass man in einer Template-Datei Platzhalter definiere ({title}) und diese dann anschließend in meinem Script mit Inhalt fülle. So funktionieren eigentlich alle gängigen Templatesysteme.
  7. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Etwa so?
    include('../tpl/header.php')
     $find = '({title})'; 
     $replace = 'StartSeite';
     $text = str_replace($find, $replace);


  8. <?php
      error_reporting(E_ALL | E_STRICT);
      
      class Template
      {
        protected $template;
        protected $content = array();
        
        public function __construct($template = '')
        {
          $this->template = $template;
        }
        
        public function loadTemplateFromFile($file)
        {
          if(file_exists($file))
            $this->template = file_get_contents($file);
          else
            throw new InvalidArgumentException("File doesn't exist!");
        }
        
        public function loadTemplateFromParam($template) {
          $this->template = $template;
        }
        
        public function __set($name, $value)
        {
          $this->content[$name] = $value;
        }
        public function __get($name)
        {
          return $this->content[$name];
        }
        
        public function render()
        {
          $output = $this->template;
          foreach($this->content as $key=>$value)
          {
            $output = str_replace('{'.$key.'}', $value, $output);
            $output = preg_replace('~\{\{if\['.$key.'\]:(.+)\}\}~', '$1', $output);
          }
          $output = preg_replace('~\{\{if\[[A-Za-z]+\]:.+\}\}~', '', $output);
          return $output;
        }
      }
    ?>

    Das macht das Prinzip glaube ich sehr deutlich ;-)
  9. Ich glaub es wär grundsätzlich mal vernünftig, wenn du dir ein fertiges Template-System ansiehst und "installierst", davon kannst du sicher sehr viel lernen, bevor du dir als Anfänger? ein eigenes Template System zusammenbauen willst.

    Dazu empfehl ich dir Smarty. Ein benutzerfreundliches Einsteigertemplatesystem mit ziemlich guter Dokumentation (tlw. nur auf Englisch)
  10. Smarty mag zwar benutzerfreundlich und leicht zu erlernen sein, aber helfen tut es dem durchschnittlichen Scripter nicht wirklich, wenn er nach einer Anleitung für ein eigenes Template-System sucht. Es ist insgesamt einfach viel zu umfangreich und eigen aufgebaut, als das man es in irgendeiner Weise plagieren könnte.^^

    Ich würde Dir eines von zahlreichen Tutorials, die man bei Google findet, empfehlen. Da wird mitunter sehr gut erklärt, wie ein Template-System grundsätzlich funktionieren kann/soll/muss. :-)
  11. qap2 schrieb:
    Smarty mag zwar benutzerfreundlich und leicht zu erlernen sein, aber helfen tut es dem durchschnittlichen Scripter nicht wirklich, wenn er nach einer Anleitung für ein eigenes Template-System sucht. Es ist insgesamt einfach viel zu umfangreich und eigen aufgebaut, als das man es in irgendeiner Weise plagieren könnte.^^

    Ich würde Dir eines von zahlreichen Tutorials, die man bei Google findet, empfehlen. Da wird mitunter sehr gut erklärt, wie ein Template-System grundsätzlich funktionieren kann/soll/muss. :-)


    Da hast du vermutlich recht, aber er würde dann vermutlich zumindest verstehen, wie so ein Template-System überhaupt funktioniert (Platzhalter etc.) hab das Gefühl das ist ihm auch noch nicht so recht klar...
  12. Stimmt schon, aber Smarty hat mich zu Beginn, als ich noch keine Ahnung von Template-Systemen hatte, völlig erschlagen.^^
    Deshalb würde ich grundsätzlich zum Einstieg ein kurzes Tutorial mit den wichtigsten Erklärungen durchgehen.

    Zum ganz banalen Überblick, was ein Tpl-System macht: klicken.
    Oder alternativ (allerdings ein bisschen veraltet und zudem anspruchsvoller): klicken.

    Und hier ein Tutorial zur kompletten Webseite mit einem Template-System: klicken.

    Und, falls Du das ganze richtig praktisch und groß aufbauen willst: klicken (die beste Klassen-Erklärung, die ich bis jetzt im www gefunden habe).

    Viel Erfolg. :-)
  13. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Danke, ich werde mir diese mal Ansehen!

    Ich hab aber Schon mal einfach so einen Smarty Code Geschrieben, Dieser Funktioniert nur nicht :-(!
    Mein Smarty Code Funktionert nicht

    <? 
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    require_once ('libs/Smarty.class.php');
    $tpl = new Smarty;
    $zufall = array();
    $tpl->assign('{title}', 'Das ist der Überschrift!');
    $tpl->display('tpl/header.php');
    ?>


    Weiß Jemand wieso?

    Danke Erstmal an qap2 Für die Netten Tutorials die ich mir Noch ansehen werden!
  14. t*****b

    $tpl->assign('title', 'Das ist der Seitentitel!');


    Und dann noch die Rechte für die Cache-Ordner anpassen....
  15. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Meinst du die chmod rechte oder wie?
  16. e********l

    privatecitypage schrieb:
    Meinst du die chmod rechte oder wie?

    Ja, die meint er. Das Template System muss ja in den Verzeichnissen schreiben und lesen können.
  17. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    ok, werde ich machen!

    Danke Erstmal!

    edit:

    Jetzt wird bei mir Folgendes angezeigt!


    Warning: Smarty error: unable to read resource: "tpl/header.php" in F:\xampp\htdocs\mein cms\libs\Smarty.class.php on line 1093

    Beitrag zuletzt geändert: 12.10.2009 11:14:19 von privatecitypage
  18. e********l

    Wo befindet sich denn dein TPL Verzeichnis bzw. hast du Smarty mitgeteilt wo es liegt? Denn sonst wird es nicht gefunden werden. Und auf dem Linux System ist auch auf die Groß/Kleinschreibung zu achten.
  19. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    also durch die Get Weiterleitung ist es bei mir so!

    [homedir]mein_cms/sites/start.php!
    [homedir]mein_cms/index.php?site=home! = (oben)
    [homedir]mein_cms/tpl/header.php
    [homedir]mein_cms/smarty/libs....!


    Also Ich gehe auf die index.php um die start.php zu öffnen!

    und so sieht es etwa aus!

    Wie muss ich den den Smarty sagen wo die Datei ist?
  20. e********l

    Im Idealfall absolute Pfade zu den Smarty Verzeichnissen.

    So sieht das bei meinen Projekten in aller Regel aus:
    DEFINE('WDF_PROJECT','C:/htdocs/mein_projekt/');
    $tpl->template_dir = WDF_PROJECT.'html/templates/';
    $tpl->compile_dir = WDF_PROJECT.'html/templates_c/';
    $tpl->cache_dir = WDF_PROJECT.'html/cache/';


    Da wir hier ne Linux Kiste haben solltest du dir deinen lokales Verzeichnis via phpInfo raussuchen und dann fix angeben.
  21. Autor dieses Themas

    privatecitypage

    Kostenloser Webspace von privatecitypage

    privatecitypage hat kostenlosen Webspace.

    Der Link:

    http://89.52.178.152/Web/mein%20cms/
    http://89.52.178.152/index1.php (PHP Info)

    Das Problem ist zwar weg aber der Titel wird immer noch nicht geändert!

    Weiß jemand wieso?

    Der Code ist
    <? 
    
    error_reporting(E_ALL);
    
    ini_set('display_errors', 1);
    DEFINE('WDF_PROJECT','/var/www/Web/mein cms/');
    
    require_once WDF_PROJECT.'libs/Smarty.class.php';
    $tpl = new Smarty;
    $tpl->assign('title', 'Das ist der Seitentitel!');
    
    $tpl->display = WDF_PROJECT.'tpl/header.php';
    
    
    ?>


    Beitrag zuletzt geändert: 12.10.2009 12:28:38 von privatecitypage
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!