Jump to content

Fichier Tpl Pour Admintab Dans Un Module


Recommended Posts

J'essaie de développer un module, et j'aurais besoin d'une page dans l'admin utilisant une page .tpl, seulement malgré mes tâtonnements et les fragments de réponses que je trouve sur le net, je n'arrive pas à le faire fonctionner.

Le mieux que j'arrive à faire, c'est d'afficher le contenu de mon fichier .tpl, mais sans l'environnement de Prestashop. Et comme je trouve que des bouts de réponses qui ne collent pas forcément ensemble, je tourne en rond.

 

Mon contrôleur ne contient que le constructeur et une méthode display() remplie de mer cochonneries glanées à gauche et à droite.

    public function __construct()
    {
        $this->bootstrap = true;
        $this->context = Context::getContext();
        
        $this->header_tpl = _PS_BO_ALL_THEMES_DIR_.'default/template/header.tpl';
        $this->footer_tpl = _PS_BO_ALL_THEMES_DIR_.'default/template/footer.tpl';
        $this->layout = _PS_MODULE_DIR_.'monModule/views/templates/admin/adminMonModule.tpl';
        $this->override_folder = _PS_MODULE_DIR_.'monModule/views/templates/admin/';

        parent::__construct();
    
    }
    public function display(){
        $this->context = Context::getContext();

        $properties = Db::getInstance()->Execute('
              /* requête */
                ');
        $products = Db::getInstance()->Execute('
              /* requête */
                ');
        $this->context->smarty->assign(array(
            'properties' => $properties,
            'produits'=> $products,
            'display_header' => true,
            'display_footer' => true,
            'header' => $this->context->smarty->fetch($this->header_tpl),
            'footer' => $this->context->smarty->fetch($this->footer_tpl),
        ));
    
        parent::display();
    }

D'après ce que j'ai lu, Helper ne permet que de générer des formulaires, tableaux préformatés, je n'ai rien trouvé sur la création "libre". Si jamais c'est possible, ça m'intéresse, sinon, je me contenterais d'afficher le contenu de mon .tpl

 

 

Ca doit bien être possible, non ?

Link to comment
Share on other sites

Bon, une fois encore j'ai trouvé la solution à mon propre problème. Par contre, je ne sais pas si c'est la solution la plus élégante ou la plus propre.

 

Dans mon constructeur, après

parent::__construct();

je rajoute simplement

$this->content .= $this->context->smarty->fetch($this->tpl);

avec $this->tpl le chemin de mon fichier de template.

 

Et pour faire bonne mesure, on peut rajouter ça derrière

$this->context->controller->addCSS($this->css);
$this->context->controller->addJquery();
$this->context->controller->addJS($this->js);

Je sais pas si c'est le plus propre, mais ça marche.

 

Par contre, pour info, si j'essaie de faire apparaitre ça après un tableau généré par Helper, ça me le fait apparaître avant. Personne n'est parfait...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...