tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
534
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Hallo.

    ich habe ein mächtiges Problem mit meinen Templates.

    Ich habe eine Datei namens head.tpl in der der "HTML-Kopf" bis zum Contentbereich drin steht. Diesen Teil will ich über {include file='head.tpl'} ins TPL einbinden, aber er macht einfach gar nichts.

    Woran liegt das?
    David
    Geändert von Kalma (09.04.07 um 10:55 Uhr)
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  2. #2
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Ein wenig Code wäre gut.

    Liegt die Datei im richtigen Template Ordner?
    Wird die Datei auch richtig geparst?
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  3. #3
    Avatar von Aser
    Aser Aser ist offline Mitglied Gold
    Registriert seit
    Apr 2004
    Ort
    Ingolstadt
    Beiträge
    213
    versuch mal folgende schreibweisen http://de3.php.net/manual/de/function.include.php

    include './muster.php';

    oder

    $inhalt = implode('\n',file("./allgemeinebeschreibung.txt")); #gibt den Inhalt einer Datei aus
     
    www.aser.info
    - Nur Dumme halten Ordnung, ein Genie überblickt das Chaos.
    - Talente finden Lösungen, Genies entdecken Probleme.
    - Erst wenn der letzte Programmierer eingesperrt...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.

  4. #4
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Zitat Zitat von Aser Beitrag anzeigen
    versuch mal folgende schreibweisen http://de3.php.net/manual/de/function.include.php

    include './muster.php';

    oder

    $inhalt = implode('\n',file("./allgemeinebeschreibung.txt")); #gibt den Inhalt einer Datei aus
    Es geht um Smarty, nicht direkt um PHP
    Und für Smarty ist die Syntax richtig.

    http://smarty.php.net
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  5. #5
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Zitat Zitat von [Flex] Beitrag anzeigen
    Liegt die Datei im richtigen Template Ordner?
    Wird die Datei auch richtig geparst?
    1. Ja
    2. Wie jetzt? Ich hab das so gemacht, wie unter Windows auch, da lief es. Jetzt bin ich bei Linux und es geht nicht mehr


    Code:
    index.tpl
    HTML-Code:
    {include file='head.tpl'}
    		<div id="content">
    			{if (isset($news_result))}
    			{foreach from=$news_content item=select}
    			<h1>{$select.datum}</h1>
    
    			<h2>{$select.titel}</h2>
    			<h3>Geschrieben von {$select.autor} in {$select.kategorie}</h3>
    			<p>{$select.text}</p>
    			{/foreach}
    			{/if}
    		</div>
    {include file='foot.tpl'}

    head.tpl
    HTML-Code:
    <html>
    	<head>
    		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    		<meta http-equiv="content-type" content="text/html; charset=ISO 8859-1" />
    		<title>Drumschool Mobil</title>
    		<link href="{$at}style.css" type="text/css" rel="stylesheet"></link>
    		<script src="include/javascript/nicetitle.js" language="javascript" type="text/javascript"></script>
    	</head>
    <body>
    	<div id="wrapper">
    		<div id="header">Drumschool <i>Mobil</i></div>
    		<div id="topnav">
    			<a href="index.php" title="die neusten News übersichtlich auf einer Seite">Home</a>
    			<a href="kontakt.php" title="Du willst dem Inhaber/Webmaster eine Nachricht zukommen lassen?">Kontakt</a> 
    			<a href="impressum.php" title="Erfahre mehr über den Datenschutz dieser Seite">Impressum</a>
    			<a href="admin/index.php" title="Nix für die Öffentlichkeit: Der Adminbereich">Admin</a>
    		</div>
    		<ul id="navigation">
    			<li><h1>Kategorien</h1></li>
    			<li><a href="#"><a href="index.php" title="die neusten News übersichtlich auf einer Seite">News</a></li>
    			<li><a href="lehrer.php" title="Erfahre mehr über die Lehrer">die Lehrer</a></li>
    			<li><a href="unterricht.php" title="Du brauchst Infos zum Unterricht? Kein Problem!">Unterricht</a></li>
    			<li><a href="media.php" title="Verschiedens: Gallerien, PDF-Dateien, MP3's und vieles mehr...">Media</a></li>
    			<li><a href="links.php" title="Links zu Seiten anderer Leute. Natürlich Kategorisiert">Links</a></li>
    			<li><a href="gaestebuch.php" title="Du willst uns was mitteilen? Dann ist das Gästebuch genau richtig!">Gästebuch</a></li>
    
    			<br /><br />
    
    			<h1>Layout</h1>
    			<SELECT name="design">
    				<option name="switch" value="switch">Wechseln</option>
    				<option name="1" value="1">Standart</option>
    			</SELECT>
    			<br />
    			<input type="submit" value="Los" style="margin-top:3px" />
    
    			<br /><br />
    
    			<h1>Meta</h1>
    		</ul>

    foot.tpl
    HTML-Code:
    		<p id="footer">&copy; 2007 by David Floegel (Code & Design) & Friedemann Kuehn (Content)</p>
    	</div>
    </body>
    </html>
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  6. #6
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Versuch es testweise mal mit dem absoluten Pfad:

    PHP-Code:
    {* absolute filepath *}
    {include 
    file='/usr/local/include/templates/header.tpl'
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  7. #7
    klecksfuss klecksfuss ist offline Mitglied
    Registriert seit
    Apr 2007
    Beiträge
    15
    Hey,
    wenn das mit dem absoluten Pfad funktionieren sollte, dann hat das womöglich folgende Gründe:

    1) Du hast deine Windows-Konfiguration importiert, wo noch "C:/bla/bla" als Templatepfad eingetragen ist

    2) Du hast die standart Smarty-Konfiguration benutzt, wobei du dir deine alte Konfig umgeschrieben hast und die Templates nicht in dem Smarty-Ordner liegen...

    Frohe Ostern
     

  8. #8
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Jo, dass mit dem absoluten Pfad t :-\

    Zitat Zitat von klecksfuss Beitrag anzeigen
    Hey,
    wenn das mit dem absoluten Pfad funktionieren sollte, dann hat das womöglich folgende Gründe:

    1) Du hast deine Windows-Konfiguration importiert, wo noch "C:/bla/bla" als Templatepfad eingetragen ist

    2) Du hast die standart Smarty-Konfiguration benutzt, wobei du dir deine alte Konfig umgeschrieben hast und die Templates nicht in dem Smarty-Ordner liegen...

    Frohe Ostern
    Zum 1. Das geht eigentlich gar nicht, weil ich hab mir den Apache neu runtergeladen und installiert.
    Zum 2. Ich hab nur in der Smarty.class.php den Ordner für templates_c umgeändert.

    Aber ich probier noch nen bisschen rum
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  9. #9
    klecksfuss klecksfuss ist offline Mitglied
    Registriert seit
    Apr 2007
    Beiträge
    15
    Punkt 1 ist sehrwohl möglich, denn die Smarty Konfiguration ist unabhängig von dem Apache... wenn du Smarty neuinstalliert hast, dann kannst du ja immer noch die Konfigdatei importieren, oder?

    Ich tippe mal auf Punkt 2, du musst in der Smartykonfig auch den Templkateordner angeben...
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    /**
         * The name of the directory where templates are located.
         *
         * @var string
         */
        var $template_dir    =  'templates';
     
        /**
         * The directory where compiled templates are located.
         *
         * @var string
         */
        var $compile_dir     =  'templates/smarty/templates_c';

    so z.B. bei Windows bei Linux ist es bei mir "var/www/web0/templates"...
    bei dem Windowsbeispiel werden die Ordner immer aus der Sicht der Datei gesehen in du die Smarty Klasse einbindest.

    z.B. wenn du die Smarty Klasse in C:/index.php einbindest, ist der Template Pfad (mit der Windows Konfig oben) C:/templates

    solltest du aber Smarty in C:/lib/ einbinden, wird es einen Fehler geben, also am besten absolute Pfade in der Konfig benutzen, da du sowiess Linux benutzt solltest du keine weiteren Probleme haben... also einfach var/www/web0/templates etc. bzw. wo deine Templates liegen...

    Hoffe, dass das verständlich war
    Geändert von klecksfuss (10.04.07 um 13:28 Uhr)
     

  10. #10
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Hallo,


    joa, werde es mal versuchen, wenn mein PC wieder fit ist... Bin grad dabei, meinen PC innen neuen Tower zu verfrachten und komm damit leicht nich klar
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

  11. #11
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Guten Morgen,


    Ich habe diesen Teil nun so übernommen, aber jetzt wird gar nichtws mehr angezeigt
    PHP-Code:
    /**
         * The name of the directory where templates are located.
         *
         * @var string
         */
        
    var $template_dir    =  'templates';

        
    /**
         * The directory where compiled templates are located.
         *
         * @var string
         */
        
    var $compile_dir     =  'templates/smarty/templates_c'
    //edit
    aber das mit den templates_c war ja richtig bei mir:
    Smarty/templates_c
    so ist das bei mir.

    //edit 2
    so und jetzt habe ich verstanden, was du meinst
    Ich habe nur folgendes Problem. Ich habe eine Variable $at (steht für aktuelles template) die immer mit ins template gegeben wird. Wenn ich zum Beispiel ein Bild aufrufe, dann so:
    <img src="{$at}header.jpg" />
    nur, wie mach ich das bei {include}? weil {include file='{$at}head.tpl'} oder {include file='$athead.tpl'} en nich

    //edit 3
    Habs jetzt so gelöst:
    PHP-Code:
        //---- Header und Footer Variable (jede Seite) ----
        
    $fuer_kopf        $session_design.'/';
        
    $header_tpl        $fuer_kopf .'head.tpl';
        
    $footer_tpl        $fuer_kopf .'foot.tpl';
        
    $tpl->assign('header_tpl'$header_tpl);
        
    $tpl->assign('footer_tpl'$footer_tpl); 
    Aufruf:
    HTML-Code:
    {include file="$header_tpl"}
    Geändert von Kalma (11.04.07 um 11:59 Uhr)
     
    Nein, ich bin kein Programmier-könig. Aber Spaß macht es trotzdem!

Ähnliche Themen

  1. Smarty Include PHP Problem
    Von sufijen im Forum PHP
    Antworten: 5
    Letzter Beitrag: 17.05.07, 15:13
  2. frage zu include (unterseiten) & Smarty
    Von Nerolein im Forum PHP
    Antworten: 16
    Letzter Beitrag: 05.05.07, 23:43
  3. Include mit Smarty
    Von xtratz im Forum PHP
    Antworten: 2
    Letzter Beitrag: 28.06.06, 17:56
  4. Problem mit Smarty und include :)
    Von indylein im Forum PHP
    Antworten: 5
    Letzter Beitrag: 13.01.05, 09:18
  5. Include mit Smarty
    Von gisu im Forum PHP
    Antworten: 0
    Letzter Beitrag: 16.09.03, 17:51