| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 20827 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.navigation.pages.mvc">
- <title>Zend_Navigation_Page_Mvc</title>
- <para>
- <acronym>MVC</acronym> Seiten werden definiert indem <acronym>MVC</acronym> Parameter
- verwendet werden wie von der <classname>Zend_Controller</classname> Komponent bekannt. Eine
- <acronym>MVC</acronym> Seite wird intern in der <methodname>getHref()</methodname> Methode
- <classname>Zend_Controller_Action_Helper_Url</classname> verwenden um hrefs zu erstellen,
- und die <methodname>isActive()</methodname> Methode wird die Parameter von
- <classname>Zend_Controller_Request_Abstract</classname> mit den Seiten Parametern verknüpfen
- um zu erkennen ob die Seite aktiv ist.
- </para>
- <table id="zend.navigation.pages.mvc.options">
- <title>MVC Seiten Optionen</title>
- <tgroup cols="4">
- <thead>
- <row>
- <entry>Schlüssel</entry>
- <entry>Typ</entry>
- <entry>Standardwert</entry>
- <entry>Beschreibung</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><code>action</code></entry>
- <entry><type>String</type></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Name der Aktion die verwendet wird wenn eine href zur Seite erstellt wird.
- </entry>
- </row>
- <row>
- <entry><code>controller</code></entry>
- <entry><type>String</type></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Name des Controllers der verwendet wird wenn eine href zur Seite erstellt
- wird.
- </entry>
- </row>
- <row>
- <entry><code>module</code></entry>
- <entry><type>String</type></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Name des Moduls das verwendet wird wenn eine href zur Seite erstellt wird.
- </entry>
- </row>
- <row>
- <entry><code>params</code></entry>
- <entry><type>Array</type></entry>
- <entry><methodname>array()</methodname></entry>
- <entry>
- Benutzer Parameter die verwendet werden wenn eine href zur Seite erstellt
- wird.
- </entry>
- </row>
- <row>
- <entry><code>route</code></entry>
- <entry><type>String</type></entry>
- <entry><constant>NULL</constant></entry>
- <entry>
- Name der Route die verwendet wird wenn eine href zur Seite erstellt wird.
- </entry>
- </row>
- <row>
- <entry><code>reset_params</code></entry>
- <entry><code>bool</code></entry>
- <entry><constant>TRUE</constant></entry>
- <entry>
- Ob Benutzer Parameter zurückgesetzt werden sollen wenn eine href zur Seite
- erstellt wird.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- <note>
- <para>
- Die drei Beispiele anbei nehmen ein Standard <acronym>MVC</acronym> Setup an mit der
- <code>default</code> Route an.
- </para>
- <para>
- Die zurückgegebene <acronym>URI</acronym> ist relativ zur <code>baseUrl</code> in
- <classname>Zend_Controller_Front</classname>. Im Beispiel ist die baseUrl der
- Einfachheit halber '/'.
- </para>
- </note>
- <example id="zend.navigation.pages.mvc.example.getHref">
- <title>getHref() erstellt die Seiten URI</title>
- <para>
- Dieses Beispiel zeigt das <acronym>MVC</acronym> Seiten intern
- <classname>Zend_Controller_Action_Helper_Url</classname> verwenden um
- <acronym>URI</acronym>s zu erstellen wenn <code>$page->getHref()</code> aufgerufen wird.
- </para>
- <programlisting language="php"><![CDATA[
- // getHref() gibt / zurück
- $page = new Zend_Navigation_Page_Mvc(array(
- 'action' => 'index',
- 'controller' => 'index'
- ));
- // getHref() gibt /blog/post/view zurück
- $page = new Zend_Navigation_Page_Mvc(array(
- 'action' => 'view',
- 'controller' => 'post',
- 'module' => 'blog'
- ));
- // getHref() gibt /blog/post/view/id/1337 zurück
- $page = new Zend_Navigation_Page_Mvc(array(
- 'action' => 'view',
- 'controller' => 'post',
- 'module' => 'blog',
- 'params' => array('id' => 1337)
- ));
- ]]></programlisting>
- </example>
- <example id="zend.navigation.pages.mvc.example.isActive">
- <title>isActive() erkennt ob eine Seite aktiv ist</title>
- <para>
- Dieses Beispiel zeigt das <acronym>MVC</acronym> Seiten erkennen ob sie aktiv sind indem
- die Parameter verwendet werden die im Anfrage Objekt gefunden werden.
- </para>
- <programlisting language="php"><![CDATA[
- /*
- * Ausgeführte Anfrage:
- * - module: default
- * - controller: index
- * - action: index
- */
- $page1 = new Zend_Navigation_Page_Mvc(array(
- 'action' => 'index',
- 'controller' => 'index'
- ));
- $page2 = new Zend_Navigation_Page_Mvc(array(
- 'action' => 'bar',
- 'controller' => 'index'
- ));
- $page1->isActive(); // returns true
- $page2->isActive(); // returns false
- /*
- * Ausgeführte Anfrage:
- * - module: blog
- * - controller: post
- * - action: view
- * - id: 1337
- */
- $page = new Zend_Navigation_Page_Mvc(array(
- 'action' => 'view',
- 'controller' => 'post',
- 'module' => 'blog'
- ));
- // Gibt true zurück, weil die Anfrage die gleichen Module, Controller
- // und Aktion hat
- $page->isActive();
- /*
- * Ausgefürte Anfrage:
- * - module: blog
- * - controller: post
- * - action: view
- */
- $page = new Zend_Navigation_Page_Mvc(array(
- 'action' => 'view',
- 'controller' => 'post',
- 'module' => 'blog',
- 'params' => array('id' => null)
- ));
- // Gibt false zurück weil die Seite den id Parameter in der
- // Anfrage gesetzt haben muß
- $page->isActive(); // gibt false zurück
- ]]></programlisting>
- </example>
- <example id="zend.navigation.pages.mvc.example.routes">
- <title>Routen verwenden</title>
- <para>
- Routen können mit <acronym>MVC</acronym> Seite verwendet werden. Wenn eine Seite eine
- Route hat, wird diese Route in <methodname>getHref()</methodname> verwendet um die
- <acronym>URL</acronym> für die Seite zu erstellen.
- </para>
- <para>
- <note>
- <para>
- Beachte, das wenn die <code>route</code> Eigenschaft in einer Seite verwendet
- wird, man auch die Standard Parameter spezifizieren sollte die diese Route
- definieren (module, controller, action, usw.), andernfalls ist die
- <methodname>isActive()</methodname> Methode nicht dazu in der Lage zu erkennen
- ob die Seite aktiv ist oder nicht. Der Grund hierfür ist, das es aktuell keinen
- Weg gibt die Standardparameter von einem
- <classname>Zend_Controller_Router_Route_Interface</classname> Objekt zu
- erhalten, oder die aktuelle Route von einem
- <classname>Zend_Controller_Router_Interface</classname> Objekt.
- </para>
- </note>
- </para>
- <programlisting language="php"><![CDATA[
- // Die folgende Route wird den ZF Router hinzugefügt
- Zend_Controller_Front::getInstance()->getRouter()->addRoute(
- 'article_view', // route name
- new Zend_Controller_Router_Route(
- 'a/:id',
- array(
- 'module' => 'news',
- 'controller' => 'article',
- 'action' => 'view',
- 'id' => null
- )
- )
- );
- // Eine Seite wird mit der 'route' Option erstellt
- $page = new Zend_Navigation_Page_Mvc(array(
- 'label' => 'A news article',
- 'route' => 'article_view',
- 'module' => 'news', // wird für isActive() benötigt, siehe oben
- 'controller' => 'article', // wird für isActive() benötigt, siehe oben
- 'action' => 'view', // wird für isActive() benötigt, siehe oben
- 'params' => array('id' => 42)
- ));
- // Gibt /a/42 zurück
- $page->getHref();
- ]]></programlisting>
- </example>
- </sect2>
|