Jump to content

[PS 1.6] Nouveau module dans my-account


Recommended Posts

Bonjour,

 

Je débute sur Prestashop 1.6 (et sur Prestashop tout court) et je rencontre quelques difficultés à adapter l'espace "Mon compte". Je voudrais lui ajouter un module perso de la même manière que "Mes informations personnelles" ou "Mes adresses".

 

Comment puis-je m'y prendre pour y arriver ? Avec un module ? En ajoutant les fichiers dans le core ?

 

J'ai testé ces deux solutions, sans succès.

 

J'ai parcouru pas mal le net pour trouver une réponse mais sans succès...

 

Je vous remercie par avance

 

Link to comment
Share on other sites

coucou

 

1°) creer un hook pour y accrocher le tpl dans la fonction install de ton module

$this->registerHook('monHook') 

2°) dans le fonction hookMonHook($param) preparer/assigner tout les varaible a afficher coter client et rensignner le fichier tpl a affciher

public function hookMonHook()
{
    bla bla bla ...

    return $this->display(__FILE__, 'monfichiertpl.tpl', $this->getCacheId());
}

3°) dans le fichier theme/defaultbootstrap/my-account.tpl a l'endroit ou tu veut afficher ton module ajouter

{hook h="monHook"}

@++

 

Loulou66

Link to comment
Share on other sites

Bonjour Loulou66,

 

Merci pour ton retour mais j'ai du mal formuler ma demande  :wacko:  : la page que je cherche à créer correspond plus à mon-site-prestashop.fr/identite que la modification du .tpl my-account (pour lequel ta méthode était tout à fait pertinente ;) ).

 

Je cherche donc à créer un module ou dans le core (pas terrible) une nouvelle page du style mon-site-prestashop.fr/identite2

Link to comment
Share on other sites

Coucou

 

ok alors

 

1°) tu créer un Identite2Controller.php dans controller/front avec dedans

voir exemple BestSalesController par exemple

public $php_self = 'identite2';

public function initContent()
{
	parent::initContent();

        préparation des variables
        bla bla bla......

       assignation des variables pour le front ofice avec
       $this->context->smarty->assign(array(......

        décaration du tpl a aficcher
        $this->setTemplate(_PS_THEME_DIR_.'identite2.tpl');
}

public function setMedia()
{
		parent::setMedia();
		$this->addCSS(_THEME_CSS_DIR_.'identite2.css');
}

2°) dans theme/bootstrap tu crées le fichier mapage.tpl

3°) dans la BO==>Seo&URL tu cree un nouvelle page identite2 ( choisir le controller identite2 dans la liste deroulante)

4°) dans theme/bootstrap/my-account.tpl tu rajoute la ligne

<li><a href="{$link->getPageLink('identite2', true)|escape:'html':'UTF-8'}" title="{l s='Identite 2'}"><i class="icon-user"></i><span>{l s='Identite 2'}</span></a></li>

** pour l'icone installes dans Word la police themes\default-bootstrap\font\FontAwesome.otf

inseres un caractères spécial, repères l'icone que tu veut afficher et le numéro /F.... qui lui est défini

puis dans  themes\default-bootstrap\css\global.css recherches ce numéro et tu aura la class a mettre dans <i class=".....">

 

donc dans la page my-account quant tu va cliquer sur le lien identite2 cela afficheras le identite2.tpl via Identite2Controller

 

5°) supprimes le fichier cache/class_index.php

 

Voilou

 

@++

 

Loulou66

Edited by loulou66 (see edit history)
  • Like 1
Link to comment
Share on other sites

Merci beaucoup pour ton aide (et ta patience), Loulou66 !

 

Je dois avoir un soucis quelque part parce que j'avais déjà essayé ta procédure (en m'inspirant des mécanismes d'Itentity) et lorsque je clique sur mon lien $link->getPageLink('identity2', true) je me retrouve avec ça comme URL : index.php?controller=identity2 et bien sûr, je tombe sur ma page 404.

 

Comme si le controleur n'était pas "détecter"... :( J'ai désactivé le cache et il n'y a aucun réglage à effectuer dans le dispatcher vu qu'on est que sur le nom de page...

 

Et si je passe : mon-site-prestashop.fr/identity2 j'ai cette erreur :

 

Fatal error: Class 'Identity2Controller' not found in /var/www/mon-site-prestashop/classes/controller/Controller.php on line 135

 

(je tiens à préciser, avant toute remarque désobligeante  :D  que j'ai bien : mon-site-prestashop/controllers/front/Identity2Controller.php )

Edited by CL@RIF (see edit history)
Link to comment
Share on other sites

coucou

 

Ha oui pour l'erreur 

Fatal error: Class 'Identity2Controller' not found in /var/www/mon-site-prestashop/classes/controller/Controller.php on line 135

il faut supprimer le ficher cache/class_index.php après un rafraîchissement(CTRL+F5) de la page le fichier se recrées et ça fonctionne  en faite c'est parce que le controller que tu a crées n'est pas dans la liste dans ce fichier en le supprimant il va se réécrire avec ton nouveau controller :)

 

@++

 

Loulou66

Link to comment
Share on other sites

Haaaaa, c'est mieux, merci !! :) Je ne connaissais pas cette astuce pour mettre à jour les controleurs.

 

J'ai toujours une erreur cela dit :

 

[Debug] This page has moved
Please use the following URL instead: http://mon-site-prestashop/index.php?controller=identity2

 

En sachant que si je suis le lien fourni, j'atterris sur la page 404... :wacko:

Dans SEO & Url, j'ai créé le lien avec comme paramètre ; Page : identity2 & url réécrite : identity2

 

Du coup, je sèche toujours ;)

Link to comment
Share on other sites

Coucou

 

j'ai modifier mon post 4 en changant mapge par  indentite2

pour eviter toutes erreurs supprimes toutes les modif faites avant et recommences en suivant le post

je pense que ça doit marcher je l'ai fait ya 2/3jour sur ma 1.6 locale

 

@++

 

Loulou66

Link to comment
Share on other sites

Enfin, ça fonctionne !! Merci beaucoup, Loulou66 !!

 

J'avoue que je n'est pas trop cerné d'où venait le problème précisément vu que j'ai tout repris à zéro... Bref, merci encore pour la procédure et pour le coup du class_index.

 

Bonne soirée

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