2011-01-09 7 views
1

J'essaie de comprendre comment conserver des pages dans des sous-répertoires (catégories) en utilisant le moteur de template php Smarty.Smarty, pages dans des sous-répertoires

Par exemple, si ma structure est:

index.php 
category1/page1.php 
category2/page2.php 

etc.

le index.php racine est rendu très bien

en utilisant la configuration par défaut Smarty:

<?php 
require_once('lib/smtemplate.php'); 

$data = array(
    'meta_keywords' =>'key1, key2', 
    'category' =>'category1' 
    ); 

$tpl = new SMTemplate(); 
$tpl->render('page', $data); 

?> 

mais si je le copie dans le sous-répertoire, il se brise même si je change à

require_once('../lib/smtemplate.php'); 

et je ne trouve pas de solution jusqu'à présent.

Appréciez votre aide. thx.

+0

Et où sont vos fichiers de modèle situés? Quel est votre code pour 'SMTemplate'? Définissez-vous la propriété 'template_dir' de l'objet Smarty? Avez-vous pris la peine de lire la documentation [http://www.smarty.net/docs/fr/variable.template.dir.tpl] avant de demander? –

Répondre

2

Define a basePath:

define("BASEPATH", "/var/www/yoursite/"); 

Et comprennent comme ceci:

require_once(BASEPATH.'lib/smtemplate.php'); 
+0

juste essayé cela et cela n'a pas fonctionné. Voici l'erreur que je reçois: Erreur fatale: Exception non interceptée 'SmartyException' avec le message 'Impossible de charger le fichier modèle' hello.tpl '' dans E: \ wamp \ www \ smarty \ lib \ smarty \ sysplugins \ smarty_internal_template.php : 163 trace de pile: # 0 E: \ wamp \ www \ smarty \ lib \ smarty \ sysplugins \ smarty_internal_template.php (541): Smarty_Internal_Template-> isExisting (vrai) # 1 E: \ wamp \ www \ smarty \ lib \ smarty \ Smarty.class.php (337): Smarty_Internal_Template-> getRenderedTemplate() # 2 E: \ wamp \ www \ smarty \ lib \ smtemplate.php (30): Smarty-> récupérer ('hello.tpl') – devjs11

+0

ou shell j'utilise define ("BASEPATH", "/ var/www/votresite /"); à travers tous les fichiers de configuration? – devjs11

+0

vous devriez. mais il y a aussi des problèmes avec trouver "hello.tpl" ... Je pense que la meilleure solution est "réparer vos chemins": D – Nanne