|
|
@@ -0,0 +1,105 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- Reviewed: no -->
|
|
|
+<!-- EN-Revision: 17172 -->
|
|
|
+<sect1 id="zend.navigation.migration">
|
|
|
+ <title>前バージョンからの移行</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ この章は、主に<classname>Zend_Navigation</classname>
|
|
|
+ 及び<classname>Zend_View_Helper_Navigation</classname>
|
|
|
+ でなされる下位互換性破壊を文書化して、
|
|
|
+ 前バージョンからの移行を手伝う役目を果たさなければなりません。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <sect2 id="zend.view.navigation.zf7341">
|
|
|
+ <title>バージョン 1.9以前からの移行</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 1.9のリリース以前は、
|
|
|
+ メニュー・ヘルパー(<classname>Zend_View_Helper_Navigation_Menu</classname>)は、
|
|
|
+ サブ・メニューを正しくレンダリングしませんでした。
|
|
|
+ <code>onlyActiveBranch</code>が<constant>TRUE</constant>で、
|
|
|
+ オプションの<code>renderParents</code>が<constant>FALSE</constant>のとき、
|
|
|
+ もし、もっとも深いアクティブなページが<code>minDepth</code>オプションよりも少ない深さの場合には、
|
|
|
+ 何もレンダリングされませんでした。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 簡単に言うと、もし<code>minDepth</code>が<code>1</code>に設定され、
|
|
|
+ アクティブなページが最初のレベルのページの一つだったら、
|
|
|
+ 下記の例のように、何もレンダリングされませんでした。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 下記のコンテナを設定したと考えてください。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+<?php
|
|
|
+$container = new Zend_Navigation(array(
|
|
|
+ array(
|
|
|
+ 'label' => 'Home',
|
|
|
+ 'uri' => '#'
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ 'label' => 'Products',
|
|
|
+ 'uri' => '#',
|
|
|
+ 'active' => true,
|
|
|
+ 'pages' => array(
|
|
|
+ array(
|
|
|
+ 'label' => 'Server',
|
|
|
+ 'uri' => '#'
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ 'label' => 'Studio',
|
|
|
+ 'uri' => '#'
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ),
|
|
|
+ array(
|
|
|
+ 'label' => 'Solutions',
|
|
|
+ 'uri' => '#'
|
|
|
+ )
|
|
|
+));
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 下記のコードがビュースクリプトとして使われます。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+<?php echo $this->navigation()->menu()->renderMenu($container, array(
|
|
|
+ 'minDepth' => 1,
|
|
|
+ 'onlyActiveBranch' => true,
|
|
|
+ 'renderParents' => false
|
|
|
+)); ?>
|
|
|
+]]></programlisting>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ リリース 1.9 以前では、上記のコード・スニペットは何も出力しませんでした。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ リリース1.9以降では、
|
|
|
+ <classname>Zend_View_Helper_Navigation_Menu</classname>の
|
|
|
+ <methodname>_renderDeepestMenu()</methodname>メソッドが
|
|
|
+ <code>minDepth</code>以下の一つの層のレベルのアクティブなページを、
|
|
|
+ そのページが子供を持つ限り、受け入れます。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ 今では、同じコード・スニペットは下記のように出力するようになります。
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <programlisting language="html"><![CDATA[
|
|
|
+<ul class="navigation">
|
|
|
+ <li>
|
|
|
+ <a href="#">Server</a>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ <a href="#">Studio</a>
|
|
|
+ </li>
|
|
|
+</ul>
|
|
|
+]]></programlisting>
|
|
|
+ </sect2>
|
|
|
+</sect1>
|