Outils pour utilisateurs

Outils du site


webdev:prestashop:controller

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
webdev:prestashop:controller [17/03/2017 10:17] dolowebdev:prestashop:controller [10/11/2017 18:29] (Version actuelle) dolo
Ligne 1: Ligne 1:
 +====== Gestions des controlleurs ======
 +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
 +<Code><?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();
 + }
 +}
 +</Code>
 +
 +On va l'override dans /override/controllers/front/fichierController.php
 +<Code><?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
 + }</Code>
 +
 +
 +---------------
 +
 +**Renvoyer sur une méthode de classe via un paramètre en GET :**
 +<Code>
 + // 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').'"');
 + }
 + }
 +</Code>
 +
 +Créer une page : http://stackoverflow.com/questions/14336006/create-custom-page-in-prestashop-1-5-3#answer-14337210
 +
 +==== Faire un controlleur en admin ====
 +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 :
 +<code linenums>
 + public function initContent()
 + {
 + parent::initContent();
 +
 + $this->setTemplate('crowd_export_profil.tpl'); // Définit le template qui est utilisé pour ce controlleur
 + }
 +</code>