2010-04-06 10 views

Répondre

3

Généralement, les projets bien structurés auront un modèle et un dossier template_c - bien que les noms puissent être configurés/modifiés. En outre, recherchez les fichiers .tpl dans ces dossiers.

La meilleure approche que je peux voir est à grep pour les fonctions de Smarty communes comme Fetch/assignez/affichage ou balises Smarty commun comme {foreach}, {assign}, {if}, etc.

1

Je pense que vous pouvez le comprendre par la vérification de la vue de base class.E.g

class View 
{ 
    protected $tpl; 
    protected $tplfilename; 

    public function __construct() 
    { 
     $this->tpl = new Smarty(); 

     $this->tpl->template_dir = dirname(__FILE__)."/templates"; 
     $this->tpl->compile_dir = dirname(__FILE__)."/templates_c"; 
     $this->tpl->config_dir = dirname(__FILE__)."/configs"; 
     $this->tpl->cache_dir = dirname(__FILE__)."/cache"; 
     $this->tpl->left_delimiter = "{|"; 
     $this->tpl->right_delimiter = "|}"; 

     $this->tplfilename = "default.tpl"; 
    } 

    public function show() 
    { 
     $this->tpl->display($this->tplfilename); 
    } 
} 

Cela devrait probablement être un style typique Smarty.

+0

Tous les projets ne sont pas basés sur la POO ou utilisent l'approche MVC. Bien que je pense qu'il wud être mieux s'ils l'ont fait;) .. – pinaki

+0

@pinaki Vrai, alors il sera difficile de faire savoir ce cuz la plupart des répertoires dans smarty sont configurables. – Young

+0

Puisqu'un compile_dir est requis, on peut rechercher l'une des deux choses suivantes: la présence du dossier 'templates_c' par défaut ou une ligne contenant '-> compile_dir'. – djn

2

Vous pourriez avoir besoin de foncez pour trouver les templates et templates_c - dans l'un de mes projets, ils ne sont même pas dans htdocs - le dossier smarty est au même niveau que htdocs. Et nous avons nommé notre classe Smarty basée sur le projet, donc même la recherche de "new Smarty()" ne fonctionnerait pas.

Je pense que la première réponse qui recommande de rechercher des fonctions intelligentes communes pourrait être votre meilleur pari.