Zend Framework

Nemrég kezdtem el használni a ZF-et, és mivel szeretem összeírni mit hogyan oldok meg, létrehoztam ezt a fórumot.

A helyesírásomat ne fikázd, tudom hogy szörnyü, ez van sajnos, hiába olvasok 12 éves korom óta baromi sok sci-fit, az írásom nem javul.

Lelkes weblap fejlesztő vagyok, nem értek a dizájnhoz, elboldogulok vele, de nem az én asztalom, a programozást viszont egyenesen imádom.

Remélem már nem tartozom a szakmában a pistikék közé, de még profinak sem nevezném magam, lelkes haladó osztályt választom :)

Ha valamire kíváncsi vagy, segítség kell php jacascript html css témakörben ( ne kérj tőlem olyat hogy ezt csináld meg nekem pls ) csak kérdezz bátran. Értelmes vitákba is szívesen bonyolódom, tágítsuk nézeteinket.

Címkék

code (1) doctrine (2) etc (2) module (1) security (1) users (1) zf (4) Címkefelhő

Friss topikok

Layout használata, minden modulhoz külön layout

2010.03.16. 12:27 Mokacuka

Mi az a layout? Itt kicsit utánna olvashatsz, ha felmerül benned ez a kérdés.

Első lépésben, állítsuk be a ZF-et, hogy használja a layout-ot, szerkesszük az application.ini fájlt és illeszük bele a következőt:

resources.layout.layoutPath = APPLICATION_PATH "/layouts"

Hozzuk létre az application mappában a layouts mappát, és egyből hozzuk létre a layout.phtml fájlt is. Egy egyszerü minta layout.phtml -re 

<html>
  <head>
    <?= $this->headTitle() ?>
    <?= $this->headLink()?>
    <?= $this->headStyle() ?>
    <?= $this->headScript() ?>
    <?= $this->headMeta() ?>
  </head>
  <body>
    <?=$this->layout()->content ?>
    <?= $this->InlineScript() ?>
  </body>
</html>

A külömböző, használható view helperekről itt olvashatsz többet. Ajánlom figyelmedbe a placeholder helpert is. Nagy az oldal, keress rá a headstyle, headscript stb. szóra.

 

Szuper, mostmár lehet nekiállni kitalálni a dizájnt, áttenni html-be és már formába is lehet önteni az oldalt.

Mi van, ha az egyes modulokhoz más-más dizájnt akarunk használni? A controllerben, a $this->view->layout()->setLayout([fájlnév kiterjesztés nélkül]); parancsal megváltoztathatjuk az épp aktuális layout scriptet, de minden egyes controllerben csináljuk ezt meg? Mi van ha változtatni akarunk, mindenhol írjuk át? NEM!

Készítsünk egy controller plugint.

 

class My_Plugin_Layout extends Zend_Controller_Plugin_Abstract
{
   public function dispatchLoopStartup( $request )
   {
      $layout = Zend_Layout::getMvcInstance();

      switch( $request->getModuleName() )
      {
        case 'default':
          $layout->setLayout('layout');
        break;
        case 'admin':
          $layout->setLayout('admin');
        break;
      }
   }

}


És ezzel minden probléma megoldva, egy helyen állítható be minden. Én úgy csinálom, hogy a modulokhoz tartozó layout-ot az application.ini -ben lehet megadni. Ha úgy érzed szükségesnek, akár controllerre vagy action-re is adhatsz meg más-más layout-ot ezzel a módszerrel, mindezt egy helyen, azaz a ha később módosítani kell, nem kell végigbogarásznód a fél programot.

3 komment

A bejegyzés trackback címe:

https://zend-framework.blog.hu/api/trackback/id/tr861843750

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

sovanytej 2010.03.29. 21:10:03

szia! csak most találtam a blogodra, foglalkoztam már zend-el egy fél évet, de doctrine-vel még nem, ha tudnál írni szép kódokat az jó lenne :), addig is ajánlani tudom neked is meg az olvasóknak a www.zendcasts.com/ -t minden héten video! Még1x grat a bloghoz :)

Mokacuka 2010.03.31. 23:24:16

A link szuper, köszi. Átnézem amint lesz rá időm. A doctrint is folytatni fogom, csak előbb be kell fejeznem egy munkát :) kb még 1 hét

Levi-d 2010.04.01. 07:47:56

Hali, par hete kezdtem el foglalkozni a Zend-el, nagyon tetszik az is, meg a blogod is, sok hasznos infot talaltam meg itt!
süti beállítások módosítása