lut 06

Podstawowe pytanie brzmi po co? Odpowiedź jest prosta, wyłączyć layout można wtedy gdy żądanie przychodzi Ajaksem a nie po zwykłym wywołaniu po wejściu na stronę. Jak to rozróżnić, bardzo prosto, Ajaksem posyłamy jeden parametr więcej i na tej podstawie sprawdzamy czy parametr istnieje jak istnieje to wyłączamy layout a jak nie istnieje to go nie wyłączamy.

Wyłączenie możemy wstawić do dowolnej metody kontrolera np. w metodzie init(), bądź jakiejś metodzie akcji. Wszystko zależy od nas, poniżej prosty przykład.

class IndexController extends Zend_Controller_Action
{
    public function indexAction()
    {
	$this -> _helper->layout()->disableLayout();
    }
}

Pytanie numer 2. Po co zmieniać layout, powodów jest wiele, jednym z nich może być sytuacja, że dodatkowe opcje mamy po zalogowaniu, chociaż można to zupełnie inaczej rozwiązać. Tak czy siak na pewno może się przydać. Ewentualnie mogą być dwie strony jedna lekka bez grafiki a druga cięższa z grafiką. Oczywiście nowy layout musi znajdować się w folderze application/layouts/scripts

class IndexController extends Zend_Controller_Action
{
    public function indexAction()
    {
	$this -> _helper->layout()->setLayout("layout2");
    }
}

Autor siema \\ tagi: , , , ,



2 Odpowiedzi do “Wyłączenie bądź zmiana layout’u”

  1. QuiQue napisał(a):

    Po co nadawać dodatkowy parametr?
    Można przecież w kontrolerze:
    $request = $this->getRequest();
    if ($request->isXmlHttpRequest()) {
    // tutaj przestawiamy / wyłączamy lejałt
    }

  2. nealryclittee napisał(a):

    nalezy sprawdzic:)