Zend_Navigation-Pages-Factory.xml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.navigation.pages.factory">
  5. <title>Créer des pages avec la fabrique</title>
  6. <para>
  7. Toute les pages (même les personnalisées) peuvent petre créer via la fabrique
  8. <methodname>Zend_Navigation_Page::factory()</methodname>. Celle-ci peut prendre un
  9. tableau d'options ou un objet <classname>Zend_Config</classname>. Chaque clé
  10. correspondant à une option de l'obet page à créer comme l'indique la section concernant
  11. les <link linkend="zend.navigation.pages">Pages</link>. Si le paramètre
  12. <code>uri</code> est passé et qu'aucun paramètre concernant <acronym>MVC</acronym> ne
  13. sont présents (<code>action, controller, module, route</code>), une page de type
  14. <acronym>URI</acronym> sera créee. Si un ou plusieurs paramètres concernant
  15. <acronym>MVC</acronym> sont passés, une page de type <acronym>MVC</acronym> sera
  16. retournée.
  17. </para>
  18. <para>
  19. Si le paramètre <code>type</code> est passé, la fabrique l'utilisera pour déterminer
  20. le nom de la classe à utiliser. Les valeurs <code>mvc</code> ou <code>uri</code>
  21. créeront des pages de types <acronym>MVC</acronym>/URI.
  22. </para>
  23. <example id="zend.navigation.pages.factory.example.mvc">
  24. <title>Créer une page MVC avec la fabrique</title>
  25. <programlisting language="php"><![CDATA[
  26. $page = Zend_Navigation_Page::factory(array(
  27. 'label' => 'My MVC page',
  28. 'action' => 'index'
  29. ));
  30. $page = Zend_Navigation_Page::factory(array(
  31. 'label' => 'Search blog',
  32. 'action' => 'index',
  33. 'controller' => 'search',
  34. 'module' => 'blog'
  35. ));
  36. $page = Zend_Navigation_Page::factory(array(
  37. 'label' => 'Home',
  38. 'action' => 'index',
  39. 'controller' => 'index',
  40. 'module' => 'index',
  41. 'route' => 'home'
  42. ));
  43. $page = Zend_Navigation_Page::factory(array(
  44. 'type' => 'mvc',
  45. 'label' => 'My MVC page'
  46. ));
  47. ]]></programlisting>
  48. </example>
  49. <example id="zend.navigation.pages.factory.example.uri">
  50. <title>Créer une page URI avec la fabrique</title>
  51. <programlisting language="php"><![CDATA[
  52. $page = Zend_Navigation_Page::factory(array(
  53. 'label' => 'My URI page',
  54. 'uri' => 'http://www.example.com/'
  55. ));
  56. $page = Zend_Navigation_Page::factory(array(
  57. 'label' => 'Search',
  58. 'uri' => 'http://www.example.com/search',
  59. 'active' => true
  60. ));
  61. $page = Zend_Navigation_Page::factory(array(
  62. 'label' => 'My URI page',
  63. 'uri' => '#'
  64. ));
  65. $page = Zend_Navigation_Page::factory(array(
  66. 'type' => 'uri',
  67. 'label' => 'My URI page'
  68. ));
  69. ]]></programlisting>
  70. </example>
  71. <example id="zend.navigation.pages.factory.example.custom">
  72. <title>Créer une page personnalisée avec la fabrique</title>
  73. <para>
  74. Utilisez l'option <code>type</code> afin de nommer la classe à
  75. utiliser.
  76. </para>
  77. <programlisting language="php"><![CDATA[
  78. class My_Navigation_Page extends Zend_Navigation_Page
  79. {
  80. protected $_fooBar = 'ok';
  81. public function setFooBar($fooBar)
  82. {
  83. $this->_fooBar = $fooBar;
  84. }
  85. }
  86. $page = Zend_Navigation_Page::factory(array(
  87. 'type' => 'My_Navigation_Page',
  88. 'label' => 'My custom page',
  89. 'foo_bar' => 'foo bar'
  90. ));
  91. ]]></programlisting>
  92. </example>
  93. </sect2>