Jump to content
jd440

créer son controller pour un module

Recommended Posts

Bonjour à tous,

Je suis en train de code mon module d'avis, pour lequel j'aimerais avoir une page mondomain.com/avis référencant tous les avis.

Pour cela j'ai pensé à

  • l'intégrer sur une page CMS en y insérant un nouveau hook, et un système de pagination
  • créer un nouveau controller

Si l'intégration au CMS serait la plus simple

  • l'url aurais alors une forme de type /cms/11-avis
  • Je bute sur le système de pagination

 

Raison pour laquelle je pense m'orienter sur un nouveau controller

malheureusement je ne trouve pas de documentation pour celà? Auriez vous un lien, un tuto, ou module d'exemple pour cela?

Merci

Share this post


Link to post
Share on other sites

Étant partie sur la voie du controller dédié j'ai créer un controller dans le module

class AvisControllertModuleFrontController extends ModuleFrontController
{
	public function initContent()
	{
		parent::initContent();	

    /** string Internal controller name */
    public $php_self = 'avis';

	public function initContent() {    
		parent::initContent();    
		new ProductComments();
		die('test!');    
	}

}

 

Puis dans Seo & Url ajouté ma page et Vidé le cache

Mais quand j'appel:

index.php?controller=Avis

J'arrive sur une 404?

 

Auriez vous une idée?

Share this post


Link to post
Share on other sites

A quel endroit as tu créé ton fichier?

  • Like 1

Share this post


Link to post
Share on other sites

Dans un premier temps dans

/controller/

Mais cela me dérangais de faire comme celà…

Je l'ai donc mis dans

/modules/avis/controller/front/

d'ou ModuleFrontController

Share this post


Link to post
Share on other sites

déjà /modules/avis/controllers/

puis controller=avis pas Avis

Qu'as-tu mis ans les routes de SEO&URL ?

 

Share this post


Link to post
Share on other sites

Je te remercie

Et le Fichier dois s'appeler

/modules/avis/controllers/Avis.php

ou

/modules/avis/controllers/avis.php

 

pour  les routes de SEO&URL

l

Page (avis -> aviscontroller)
Titre de la page avis
Meta description avis
Meta mots-clés avis
URL réécrite avis

 

Share this post


Link to post
Share on other sites

En général, j'évite les majuscules.

URL devrait être module-avis-avis si j'ai bonne mémoire

et c'est modules/avis/controllers/front/avis.php

Edited by doekia (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

@doekia

je suis navré j'ai un nouveau soucis:

 

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

        
    	$pc = new ProductComment();
            $this->context->controller->addCSS(_PS_MODULE_DIR_ . 'productcomments/css/productcomments.css', 'all');
        
        $note = 4.5;
		$arr = array('note' => $note, 'vote' => 3333, 'site' => 'Programmation');
        
        $smarty->assign('myArray', $arr);

Quand j'essaye d'assigner à smarty j'ai le msg:

Quote

otice: Undefined variable: smarty in /var/www/html/presta_/modules/avis/controllers/front/test.php on line 40

Fatal error: Uncaught Error: Call to a member function assign() on null in

Je comprends pas mon erreur?

Share this post


Link to post
Share on other sites

autant pour moi


  

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

        $this->assign();
    }
    public function assign()
    {
        $errors = array();

        […]
        
        $this->context->smarty->assign('myArray', $arr);

 

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