Zend_Navigation-Migration.xml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 17172 -->
  4. <sect1 id="zend.navigation.migration">
  5. <title>前バージョンからの移行</title>
  6. <para>
  7. この章は、主に<classname>Zend_Navigation</classname>
  8. 及び<classname>Zend_View_Helper_Navigation</classname>
  9. でなされる下位互換性破壊を文書化して、
  10. 前バージョンからの移行を手伝う役目を果たさなければなりません。
  11. </para>
  12. <sect2 id="zend.view.navigation.zf7341">
  13. <title>バージョン 1.9以前からの移行</title>
  14. <para>
  15. 1.9のリリース以前は、
  16. メニュー・ヘルパー(<classname>Zend_View_Helper_Navigation_Menu</classname>)は、
  17. サブ・メニューを正しくレンダリングしませんでした。
  18. <code>onlyActiveBranch</code>が<constant>TRUE</constant>で、
  19. オプションの<code>renderParents</code>が<constant>FALSE</constant>のとき、
  20. もし、もっとも深いアクティブなページが<code>minDepth</code>オプションよりも少ない深さの場合には、
  21. 何もレンダリングされませんでした。
  22. </para>
  23. <para>
  24. 簡単に言うと、もし<code>minDepth</code>が<code>1</code>に設定され、
  25. アクティブなページが最初のレベルのページの一つだったら、
  26. 下記の例のように、何もレンダリングされませんでした。
  27. </para>
  28. <para>
  29. 下記のコンテナを設定したと考えてください。
  30. </para>
  31. <programlisting language="php"><![CDATA[
  32. <?php
  33. $container = new Zend_Navigation(array(
  34. array(
  35. 'label' => 'Home',
  36. 'uri' => '#'
  37. ),
  38. array(
  39. 'label' => 'Products',
  40. 'uri' => '#',
  41. 'active' => true,
  42. 'pages' => array(
  43. array(
  44. 'label' => 'Server',
  45. 'uri' => '#'
  46. ),
  47. array(
  48. 'label' => 'Studio',
  49. 'uri' => '#'
  50. )
  51. )
  52. ),
  53. array(
  54. 'label' => 'Solutions',
  55. 'uri' => '#'
  56. )
  57. ));
  58. ]]></programlisting>
  59. <para>
  60. 下記のコードがビュースクリプトとして使われます。
  61. </para>
  62. <programlisting language="php"><![CDATA[
  63. <?php echo $this->navigation()->menu()->renderMenu($container, array(
  64. 'minDepth' => 1,
  65. 'onlyActiveBranch' => true,
  66. 'renderParents' => false
  67. )); ?>
  68. ]]></programlisting>
  69. <para>
  70. リリース 1.9 以前では、上記のコード・スニペットは何も出力しませんでした。
  71. </para>
  72. <para>
  73. リリース1.9以降では、
  74. <classname>Zend_View_Helper_Navigation_Menu</classname>の
  75. <methodname>_renderDeepestMenu()</methodname>メソッドが
  76. <code>minDepth</code>以下の一つの層のレベルのアクティブなページを、
  77. そのページが子供を持つ限り、受け入れます。
  78. </para>
  79. <para>
  80. 今では、同じコード・スニペットは下記のように出力するようになります。
  81. </para>
  82. <programlisting language="html"><![CDATA[
  83. <ul class="navigation">
  84. <li>
  85. <a href="#">Server</a>
  86. </li>
  87. <li>
  88. <a href="#">Studio</a>
  89. </li>
  90. </ul>
  91. ]]></programlisting>
  92. </sect2>
  93. </sect1>