Wie erstelle ich eine Verbindung zu einem Modul-Controller in Prestashop?

8

Wie wird eine Verbindung zu einem Modul-Controller in Prestashop genau hergestellt? Wie sollte man eigentlich die Klasse des Controllers nennen und wie die URL-Params spiegeln sollten?

    
Stratboy 01.08.2014, 16:45
quelle

2 Antworten

22

Sie werden eine Instanz der Link-Klasse verwenden. Im Allgemeinen müssen Sie keinen erstellen, verwenden Sie einfach context->link (zB einen Controller $this->context-link ). Die Methode ist getModuleLink() , also:

%Vor%

Achten Sie auf die Benennung:

  • Der Name des Modulordners ist genau das ..

  • Der Controller muss im richtigen Pfad sein, also zum Beispiel module / controllers / front / controller.php

  • Der Dateiname ist die Aktion in Kleinbuchstaben. Der Klassenname lautet ModuleFolder + Action + "ModuleFrontController"

Also zum Beispiel:

Modulverzeichnis: orderattachment

Controller: orderattachment / controllers / front / pdf.php

Controller-Klasse :

%Vor%

link :

%Vor%     
Stratboy 01.08.2014, 17:22
quelle
3

Eine alternative Möglichkeit zum Erstellen einer Verknüpfung besteht darin, einen Hyperlink in der Ansicht (Vorlagendatei) wie folgt zu verwenden:

%Vor%

Zum Beispiel muss der Kunde in einem E-Commerce für eine Autowerkstatt das Auto einstellen, das er während des nächsten Termins haben wird (das Modul hängt in der rechten Spalte).

Wenn sein Fahrzeug nicht existiert, muss er / sie ein neues erstellen (die Front-Controller-Seite, die wir aufrufen möchten).

In meinem Beispiel wäre der Link in der Ansicht:

%Vor%

Hinweis : Wie von Stratboy in seiner Antwort erwähnt, ist die Namenskonvention sehr wichtig, sonst wird Prestashop die Seite nicht finden können. Zum Beispiel

%Vor%

fehlt das " r " von " Controller " im Klassennamen und erzeugt den folgenden Fehler:

Anmerkung 2 : Ich habe dieses hervorragende Tutorial (mit einem vollständigen konkreten Beispiel) benutzt, um mit meinem eigenen Projekt anzufangen: Ссылка

    
quelle