2010-08-29 6 views
0

Je viens de déménager mon site à un autre serveur et je reçu ce message d'erreur en utilisant SmartyS'il vous plaît aider avec l'erreur de modèle de Smarty

http://bit.ly/5MZu2A

Voici une partie du fichier Smarty:

/** 
* DIR_SEP isn't used anymore, but third party apps might 
*/ 
if(!defined('DIR_SEP')) { 
    define('DIR_SEP', DIRECTORY_SEPARATOR); 
} 

/** 
* set SMARTY_DIR to absolute path to Smarty library files. 
* if not defined, include_path will be used. Sets SMARTY_DIR only if user 
* application has not already defined it. 
*/ 

if (!defined('SMARTY_DIR')) { 
    define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR); 
} 

if (!defined('SMARTY_CORE_DIR')) { 
    define('SMARTY_CORE_DIR', SMARTY_DIR . 'internals' . DIRECTORY_SEPARATOR); 
} 

define('SMARTY_PHP_PASSTHRU', 0); 
define('SMARTY_PHP_QUOTE',  1); 
define('SMARTY_PHP_REMOVE',  2); 
define('SMARTY_PHP_ALLOW',  3); 

/** 
* @package Smarty 
*/ 
class Smarty 
{ 
    /**#@+ 
    * Smarty Configuration Section 
    */ 

    /** 
    * 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_c'; 

    /** 
    * The directory where config files are located. 
    * 
    * @var string 
    */ 
    var $config_dir  = 'configs'; 

    /** 
    * An array of directories searched for plugins. 
    * 
    * @var array 
    */ 
    var $plugins_dir  = array('plugins'); 

Et voici le chemin de mon site Web et le fichier smarty respectivement

/home/cd/public_html 

/home/cd/public_html/smarty/Smarty.class.php 
+0

est-ce le bon endroit pour poser cette question? –

Répondre

0

Vous devriez publier le code PHP dans lequel vous entrez l'objet smarty - où vous devez déclarer les chemins si ceux-ci diffèrent de ceux par défaut.

Cela fonctionne bien pour moi:

$smarty = new Smarty; 
$smarty->template_dir = "./templates" ; 
$smarty->compile_dir = "./templates_c" ; 
$smarty->cache_dir = "./cache" ; 
$smarty->config_dir = "./includes"; 

où le chemin audit des dossiers est par rapport au script appelant, même si vous conservez dans un fichier inclus.

+0

Assurez-vous également que le dossier et le fichier modèle existent réellement et sont lisibles. – djn

+0

les permissions de fichiers sont réglées correctement J'ai vérifié cela tellement de fois et ce n'est pas le problème Je pense que le problème est dans le chemin. –

0

Les chemins absolus doivent être à l'épreuve d'erreur, je suppose:

require '/home/cd/public_html/smarty/Smarty.class.php'; 
$smarty = new Smarty; 
$smarty->template_dir = "/home/cd/public_html/themes/default/templates" ; 
$smarty->compile_dir = "/home/cd/public_html/themes/default/templates_c" ; 
$smarty->cache_dir = "/home/cd/public_html/themes/default/cache" ; 
$smarty->config_dir = "/home/cd/public_html/themes/default/includes"; 

aussi longtemps que vous avez un cache et un dossier il include (vous pouvez changer librement leurs noms, ou les mettre ailleurs). Ajouter ce tout en travaillant les accrocs:

$smarty->debugging = true; 

pour envoyer une liste complète des variables Smarty à une page pop-up (vous pourriez avoir à permettre cela dans le bloqueur de pop-up de votre navigateur).

0

Vous n'avez pas du tout à modifier Smarty.class.php. Vous avez probablement une déclaration comme $smarty = new Smarty() dans votre index.php où vous devriez trouver le $smarty->template_dir = "path_to_your_dir";.

0

Je l'ai fixé, au moins mon fait

société d'hébergement Le problème était de la base de données, Smarty utilisait le chemin précédent de l'autre société d'hébergement je me suis déplacé de si je avais besoin de mettre à jour le chemin.

Merci!

Questions connexes