CakePHP'de sadece ana sayfa düzenini değiştirme

3 Cevap php

Benim bütün sitesi apps / view / düzenleri / default.ctp belirtilen default.ctp düzeni kullanıyorsa, nasıl homepage.ctp kullanımı ve default.ctp kullanarak sitenin kalanı bırakın sadece ana sayfa düzenini nasıl değiştiririm?

3 Cevap

Lütfen /app/controller/ dir içine /cake/libs/controller/pages_controller.php kopyalayın ve aşağıdakilerden birini yapın:

  • Add a line towards the end of display() to switch the layout if 'home' is requested:
    if ($page == 'home') $this->layout = 'homepage';
  • Eğer $this->layout set ve /app/config/routes.php için yeniden rota / rota olan bir home() yöntemi (veya ancak sizin gibi adlandırılmış) oluşturun Bu yeni yöntemi kullanın.

Edit:
In summary, you need some custom method in which you'll set $this->layout = 'homepage', that's all. You can do this in any of your controllers at any point, reusing the PagesController is just the most convenient and conventional way to do it in Cake.

Yukarıdaki sorunun cevabı artık güncel olan, ancak doğru bir yaklaşım verir.

CakePHP modern versiyonları, kontrolör o zaten mevcut yapmak ister ve bir:

/app/Controller/PagesController.php

Ben sadece $this->render() komutundan önce (yaklaşık hat 73), "loggedoff" adında bir şablon vardı, aşağıdaki gibi bu ekledi.

$this->layout = 'loggedoff';

Bu çalışıyor:

class RegistrationsController extends AppController {
     public $helpers = array('Html', 'Form', 'Time');
     public $components = array('Session');

     public function login() {
         $this->layout = 'empty';
     } 
}

Sadece kontrol işlevi istenen düzenini ayarlamak.