Nur das Layout der Homepage in CakePHP ändern

8

Wenn meine gesamte Website das in apps / view / layouts / default.ctp angegebene default.ctp-Layout verwendet, ändere ich nur das Layout der Startseite, um homepage.ctp zu verwenden, und lasse den Rest der Website die Standardeinstellungen verwenden. ctp?

    
Bradley 21.12.2009, 09:15
quelle

3 Antworten

14

Kopieren Sie die /cake/libs/controller/pages_controller.php in Ihr /app/controller/ Verzeichnis und führen Sie einen der folgenden Schritte aus:

  • Fügen Sie eine Zeile am Ende von display() hinzu, um das Layout zu wechseln, wenn 'home' angefordert wird:
    if ($page == 'home') $this->layout = 'homepage';
  • Erstellen Sie eine home() -Methode (oder wie Sie möchten), in der Sie $this->layout festlegen und die Route / in /app/config/routes.php umleiten, um diese neue Methode zu verwenden.

Bearbeiten:
Zusammenfassend benötigen Sie eine benutzerdefinierte Methode, in der Sie $this->layout = 'homepage' festlegen, das ist alles. Sie können dies in jedem Ihrer Controller zu jedem Zeitpunkt tun, die Wiederverwendung der PagesController ist nur die bequemste und konventionelle Art, es in Cake zu tun.

    
deceze 21.12.2009, 09:33
quelle
1

Die obige Antwort ist jetzt veraltet, gibt aber den richtigen Ansatz.

In modernen Versionen von CakePHP ist der Controller, den er von Ihnen verlangt, bereits vorhanden und lautet:

%Vor%

Ich hatte eine Vorlage namens "Abgemeldet" und fügte diese wie folgt hinzu, kurz vor dem Befehl $this->render() (ca. Zeile 73).

%Vor%     
elb98rm 02.05.2013 13:36
quelle
0

Das funktioniert gut:

%Vor%

Stellen Sie einfach das gewünschte Layout in der Controller-Funktion ein.

    
Gerard 30.07.2013 14:34
quelle

Tags und Links