smarty Problem

Trash

Erfahrenes Mitglied
Guten Abend,
slso es kann ja gut sein das smarty eine tolle TemplateEngine ist ich hab jedoch bei der Installation auf meinem Rechner (localhost) immense Probleme.
Ich habe WAMPP installiert und im Ordner htdocs einen Ordner namens smarty erstellt. Dort sind alle Smarty Dateien drin. Im smarty-Ordner habe ich dann einen Ordner guestbook erstellt, wie es in der Anleitung steht. Dazu hab ich die benötigten Verzeichnisse in guestbook angelegt. In "template" habe ich die index.tpl erstellt. Diese sieht so aus:

{* Smarty *}

Hallo, {$name}!

In guestbook habe ich eine Datei namens index.php gepackt. dort steht drin:

// Smarty laden
require('../libs/Smarty.class.php');

$smarty = new Smarty;

$smarty->template_dir = 'templates/';
$smarty->compile_dir = 'templates_c/';
$smarty->config_dir = 'configs/';
$smarty->cache_dir = 'cache/';

$smarty->assign('name','Ned');

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

Jetzt kommt allerdings dieser Fehler:
Warning: fetch(templates_c/\%%117\%%1172603085\index.tpl.php) [function.fetch]: failed to open stream: No such file or directory in E:\WAMPP2\HTDOCS\smarty\libs\Smarty.class.php on line 1158

Warning: fetch() [function.include]: Failed opening 'templates_c/\%%117\%%1172603085\index.tpl.php' for inclusion (include_path='\wampp2\php\pear\') in E:\WAMPP2\HTDOCS\smarty\libs\Smarty.class.php on line 1158

ich hab auch garkeinen Plan was in der Anleitung mit Punkt 2-6 und 2-7 gemeint ist wieso ist bei 2-6 der Pfad von guestbook und smarty so verschieden und wo soll ich das mit de Dateirechten reinschreiben ?

Ich hoffe jemand kennt sich mit der Engine aus und kann mir ein wenig helfen, da ich die Engine gerne ausprobieren möchte.

Vielen Dank !
 
Original geschrieben von Trash

Ich hoffe jemand kennt sich mit der Engine aus und kann mir ein wenig helfen, da ich die Engine gerne ausprobieren möchte.
Kenn mich nicht die Bohne damit aus, aber ich versuch mal mein Glück :-)
Als erstes würd ich die Slashes / am Ende der Verzeichnisnamen entfernen ->
$smarty->template_dir = 'templates';
Original geschrieben von Trash
ich hab auch garkeinen Plan was in der Anleitung mit Punkt 2-6 und 2-7 gemeint ist wieso ist bei 2-6 der Pfad von guestbook und smarty so verschieden und wo soll ich das mit de Dateirechten reinschreiben ?
Ich auch nicht, hab ja die Anleitung nicht da...
Die (Unix-) Dateirechte (chmod) kannst du mit deinem FTP Client setzen. Da du das ganze aber lokal unter Windows machst, kannt du das erst mal zurückstellen...

Wie gesagt hab ich keine Ahnung von Smarty, ich denke aber das dein Platzhalter im Template so aussehen muss: {name}, ohne das Dollarzeichen
 
hier ist die Anleitung: vielleicht blickst du da mehr durch ...

http://smarty.php.net/manual/de/installing.smarty.basic.php

/edit:
wenn ich alles in libs packe und die pfadangaben so mache:

$smarty->template_dir = 'templates/';
$smarty->compile_dir = 'templates_c/';
$smarty->config_dir = 'configs/';
$smarty->cache_dir = 'cache/';

es aber das ist ja nicht der sinn der sache das ich später alles in den libs ordner packe...was muss ich gezielt verändern ?
 
Zuletzt bearbeitet:
Hallo Trash,

ich benutze Smarty jetzt schon eine recht lange Weile und habe noch nie Probleme damit gehabt. Ich denke er hat bei dir einfach Probleme mit den Pfaden. Dadurch, dass bei Smarty recht viele Ordner sind, kommt man da auch schnell durcheinander. Ich versuche mal den Verzeichnisbaum aufzuzeichnen, wie er bei mir immer ist. Ich hab ihn etwas verändert:

/root
--/cache (chmod 777)
--/libs (Hier sind alle Dateien von Smarty drin)
----/plugins (Hier sind die Plugins drin)
--/configs
--/templates
----index.tpl
--/templates_c (chmod 777)
--/guestbook
----index.php

In der index.php im Verzeichnis /guestbook steht nun folgendes:
PHP:
require('../libs/Smarty.class.php'); 

$smarty = new Smarty; 

$smarty->template_dir = './templates/'; 
$smarty->compile_dir = './templates_c/'; 
$smarty->config_dir = './configs/'; 
$smarty->cache_dir = './cache/'; 
$smarty->plugins_dir = './libs/plugins/';

$smarty->assign('name','Ned'); 

$smarty->display('index.tpl');
 
Hi,
vielen Dank das werde ich mal ausprobieren. Dennoch verwirrt mich smarty mittlerweile mehr als ich Nutzen habe...z.B.: http://smarty.php.net/manual/de/language.syntax.functions.php

wenn man php schon kann muss man sich ja wieder vieles neues aneignen wie z.B. das {if} was mach ich denn mit de normalen if-Anweisungen...da gibt es aber leichtere template-systeme..Und ich denke der Code sollte in einem Template eh nichts zu suchen haben wozu also die {if}-Anweisungen ? Und zudem muesste diese Variante doch langesamer sein da sie zuerst gelesen werden müssen und dann geparst werden können...
 
Zurück