Les controlleurs admins affichent une erreur s'il ne sont pas reliés à un menu (sur la 1.6).
Controlleur le plus basique qu'on peut faire :
controllers/front/fichierController.php
<?php class TopstarProControllerCore extends FrontController { public $php_self = 'TopstarPro'; public $isLogged; protected $ajax_refresh = false; /** * Initialize order opc controller * @see FrontController::init() */ public function init() { parent::init(); } }
On va l'override dans /override/controllers/front/fichierController.php
<?php class TopstarProController extends TopstarProControllerCore { public $php_self = 'TopstarPro'; public $isLogged; protected $ajax_refresh = false; public function init() { parent::init(); } /** * Assign template vars related to page content * @see FrontController::initContent() */ public function initContent() { parent::initContent(); $this->setTemplate(_PS_THEME_DIR_.'upload-pro-card.tpl');// Définit le template qui est utilisé pour ce controlleur }
Renvoyer sur une méthode de classe via un paramètre en GET :
// Gestion des méthodes pour l'upload if ( Tools::isSubmit('method') ) { if( method_exists($this, Tools::getValue('method')) ) { $method = Tools::getValue('method'); $ress = $this->$method(); return $ress; } else if ( !empty(Tools::getValue('method')) ) { throw new PrestaShopException('Unknown method "'.Tools::getValue('method').'"'); } }
Créer une page : http://stackoverflow.com/questions/14336006/create-custom-page-in-prestashop-1-5-3#answer-14337210
Pour qu'il s'affiche, il faut aller créer un template dans /admin/themes/nom_du_theme/template/nom_du_template.tpl, puis ajouter ce code au controller :
public function initContent() { parent::initContent(); $this->setTemplate('crowd_export_profil.tpl'); // Définit le template qui est utilisé pour ce controlleur }