Jump to content
prestasafe

[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)

Share this post


Link to post
Share on other sites

Bonsoir guigui23,

 

Pour overrider une vue du backoffice depuis un module.

Il faut créer une arborescence de ce type dans ton module

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

Share this post


Link to post
Share on other sites

Bonsoir,

Merci pour la réponse mais malheureusement ça ne fonctionne pas...

J'avais déjà essayé

 

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

Share this post


Link to post
Share on other sites

Etonnant ?

 

Normalement le tpl contient un helpers avec une view et/ou une form. Pas celui ci. :wacko:

Est en rajoutant l'AdminController qui marche avec ?

Share this post


Link to post
Share on other sites

Non plus, je viens d'overrider le AdminOrdersController.php et rien de neuf.

hum, ça commence à me gentiment me gonfler ^^

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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.... :)

Share this post


Link to post
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

Share this post


Link to post
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)

Share this post


Link to post
Share on other sites

Parfait !

Je met le poste en résolu !

Merci beaucoup encore une fois tu m'as bien aidé.

 

A bientôt j'espère !

  • Like 1

Share this post


Link to post
Share on other sites

Cette fonction de copy vient de l'excellent module virtualproductscombinations

 

Tu sympa toi, tu mets sur le forum une partie de code d'un module payant...

1- efface le code

2- copy est une fonction php toute simple : http://php.net/manual/fr/function.copy.php ce n'est pas J qui l'a créé, désolé

Share this post


Link to post
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 ?

Share this post


Link to post
Share on other sites
Posted (edited)

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)

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites
Posted (edited)

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)

Share this post


Link to post
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

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More