Jump to content

Installation d'un nouveau contrôleur par un module


Flo_180

Recommended Posts

Bonjour,

 

Merci de prendre du temps pour lire mon Post.

 

Je n'ai toujours pas réussi à comprendre la marche à suivre pour installer un nouveau contrôleur lors de l'installation d'un module.

 

Pour faire simple : Faut il le déplacer manuellement dans le dossier correspondant ( controllers/front/ ou controllers/admin) et mettre à jour manuellement le cache de l'index des tables

 

Ou utiliser la fonction installOverride classique (ce qui me semble détourné l'utilisation de cette fonction).

 

Mais voilà :

La fonction ci-dessous ne prend en compte que la surcharge d'élément déjà existant.

Alors que dois je faire pour créer de nouveaux contrôleur ?

public function installOverrides()
{
 if (!is_dir($this->getLocalPath().'override'))
  return true;
 $result = true;
 foreach (Tools::scandir($this->getLocalPath().'override', 'php', '', true) as $file)
 {
  $class = basename($file, '.php');
  if (Autoload::getInstance()->getClassPath($class.'Core'))
   $result &= $this->addOverride($class);
 }
 return $result;
}

 

Merci à vous !

Bonne journée

Link to comment
Share on other sites

Voici un exemple de code à placer dans la méthode install() du module:

 

// Install Tabs
$parent_tab = new Tab();
$parent_tab->name = 'Main Tab Example';
$parent_tab->class_name = 'AdminMainExample';
$parent_tab->id_parent = 0; // Home tab
$parent_tab->module = $this->name;
$parent_tab->add();
$tab = new Tab();
$tab->name = 'Tab Example';
$tab->class_name = 'AdminExample';
$tab->id_parent = $parent_tab->id;
$tab->module = $this->name;
$tab->add();

 

Et mon controller se situe dans /controllers/admin/ et se nomme AdminExampleController.php

Link to comment
Share on other sites

Toutes mes excuses, je n'ai pas fait attention au /front ;-)

 

Pour celui-ci, il doit être placé dans /controllers/front/ du module et se nomme (par exemple) default.php (si le controller est de cette trempe MonModuleDefaultModuleFrontController).

 

Avec, éventuellement, la possibilité de rajouter l'URL Rewriting au moment de l'installation (attention à ce code, cela dit !):

// Add Rewriting URL
 $meta = new Meta();
 $meta->page = 'module-monmodule-default';
 $meta->url_rewrite = 'monmodulerewrite';
 $meta->add();

Link to comment
Share on other sites

Merci pour les explications et les bouts de code :)

Mais tant que tu es ici autant en profité lol,

 

Avec, éventuellement, la possibilité de rajouter l'URL Rewriting au moment de l'installation (attention à ce code, cela dit !):

// Add Rewriting URL
 $meta = new Meta();
 $meta->page = 'module-monmodule-default';
 $meta->url_rewrite = 'monmodulerewrite';
 $meta->add();

Tu me donnes cet avertissement parce que l'url_rewriting' est surchargé par le hookModuleRoute non ?

 

Merci.

Edited by Flo_180 (see edit history)
Link to comment
Share on other sites

Non, seulement parce que dans mon exemple d'illustration je l'avais commenté et donc il devait y avoir une raison pour :P

 

Plus sérieusement, je sais que ce code fonctionne à l'installation mais ça me posait problème pour le retrait en automatique ;-)

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...