Jump to content

[Résolu] Overrider template admin depuis un module ?


Recommended Posts

Bonjour à tous,

Je cherche à overrider une vue du backoffice depuis un module.

Je ne sais pas si c'est possible j'ai déjà réussi à l'overrider depuis le dossier /override

mais je souhaite le faire depuis le module.

 

La vue est celle ci:

/admin/themes/default/template/controllers/_print_pdf_icon.tpl

 

J'ai essayé de la placer dans plusieurs dossier comme indiqué dans la doc mais ça ne fonctionne pas...

 

Merci d'avance :)

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

Il faut que tu fasses un copy de ton fichier tpl dans le dossier override pour que ça fonctionne

en prenant soin que l’arborescence existe bien dans le dossier.

donc dans ton fichier php de ton module et dans la function install ajoute en l'adaptant ceci

 

 public function install()
 {
   // Install Module
       if (!parent::install())
       return false;
   //Copy override admin templates
   if(!is_dir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates'))
       mkdir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates');
   if(!is_dir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/outstanding'))
       mkdir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/outstanding');
  	 $override_src = $this->getLocalPath().'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/import/helpers/form/form.tpl';
       $override_dest = _PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/import/helpers/form/form.tpl';
       copy($override_src, $override_dest);
       $override_src = $this->getLocalPath().'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/import/helpers/view/view.tpl';
       $override_dest = _PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/import/helpers/view/view.tpl';
       copy($override_src, $override_dest);

       return true;
 }

  • Like 1
Link to comment
Share on other sites

Yes nikel !!!

Merci j'avais vraiment pas envi de le coder :)

Mais bon je trouve ça dommage, on peux overrider énormément de choses depuis les modules mais pas tout.

 

Je ne met pas le post desuite en Résolu, peut être que quelqu'un connait la réponde...

Bonne soirée.

Link to comment
Share on other sites

Mais bon je trouve ça dommage, on peux overrider énormément de choses depuis les modules mais pas tout.

Je ne comprends pas ce que tu veux dire. Quel est le problème avec cette procédure ? :(

 

Je ne met pas le post de suite en Résolu, peut être que quelqu'un connait la réponse...

La réponse, je pense que c'est cela. Mais peut-être que quelqu'un a mieux à proposer.... :)

Link to comment
Share on other sites

Le souci c'est qu'il faut créer 2000 dossiers et que, selon les servers il se peux qu'ils y ai des soucis avec le chmod.

Ça te fait coder un pavé alors que si on pouvais simplement glisser le fichiers dans un dossier ça serait plus simple. Mais cela dit cette technique me va très bien.

Merci encore a toi c'est vraiment cool :)

  • Like 1
Link to comment
Share on other sites

Cette fonction de copy vient de l'excellent module virtualproductscombinations

(Produits virtuels avec déclinaisons) http://www.prestaedi...clinaisons.html

de J. Dance

Une référence sur PrestaShop et un connaisseur en la matière de module ;)

Si tu as la chance de le croiser peut-être pourra-t-il apporter sa pierre à l'édifice ! :)

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

@coeos.pro

Ta remarque n'est-elle pas contradictoire ? :)

• Ce que j'ai mis à disposition est une variante de la function de copy du module de J. Dance,

adapté pour l'un de mes modules. Je ne pense pas que J. Danse il verra à redire. A lui en tout cas de le dire. Non ? ;)

• Je sais bien que J. Dance n'a pas crée cette fonction.

En tout cas, son module, m'a permis de comprendre l'override d'un controller admin par le biais d'un module.

• J'ai simplement voulu aider guigui23 dans sa recherche.

N'est ce pas la fonction essentielle d'un forum d'entraide ?

Link to comment
Share on other sites

  • 6 years later...

Bonjour à toutes et à tous,

je sais que ce post date de 2013 mais pareil j'avais ce problème de Override du coup ça donne :

modules/non_du_module/override/controllers/admin/templates/orders/_print_pdf_icon.tpl

puis dans le module à l'installation :

Quote

public function install()
    {
        // Install Module
        if (!parent::install()) {
            return false;
        }
        //Copy override admin templates

        if (!is_dir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/')) {
            mkdir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/');
        }
        if (!is_dir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/orders')) {
            mkdir(_PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/orders');
        }
        $override_src = $this->getLocalPath().'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/orders/_print_pdf_icon.tpl';
        $override_dest = _PS_ROOT_DIR_.DIRECTORY_SEPARATOR.'override'.DIRECTORY_SEPARATOR.'controllers/admin/templates/orders/_print_pdf_icon.tpl';
        copy($override_src, $override_dest);
        return true;
    }

mais là ça ne fonctionné toujours pas. à devenir fou... en fait ce qu'il ne faut pas oublier de faire c'est d'activer les surcharges... pour ca aller dans Configurer->Parmètres avancés->Performances et si vous êtes comme moi en mode Debug mettre Désactiver toutes les surcharges sur NON

bon après bien sur Enregistrer, reinitaliser votre module et retourner vider les caches.

Brèf l'oublie de mettre désactiver toutes les surcharges sur NON ... quel newbie ca m'a fait perdre trop de temps pour que ca vous arrive.

Merci aux participants de ce post et à bientôt

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

Bonjour coeos.pro

C'est bon à savoir.. mais je viens de commencer sur prestashop je vois que tu es une "superstar" alors dis moi comment faire ça serait sympa :).

Lorsque je créer le fichier .tpl dans le chemin :

modules/non_du_module/override/controllers/admin/templates/outstanding/_print_pdf_icon.tpl

j’installe mon module, et là rien ne se passe dans le dossier override/ 

C'est pour cela que je passe par une création de dossier. Cette méthode n'étant apparemment pas la bonne peux tu m'indiquer la bonne manière de procéder.

Je précise là je suis sur la version 1.7.6.5 qui est la dernière version (ce jour)

En te remerciant d'avance.

 

 

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

Hello, j'ai aussi pris l'habitude de faire ces overrides via un process du module.

Quote

il faut arrêter de copier les fichiers overrides, prestashop le fait très bien depuis des années (sauf sur la 1.6.0.9)

je suis aussi preneur d'un exemple pour un template d'admin @coeos.pro

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