0

メニューを生成しようとしています。そのために、navigation.xml (Zend Framework) を使用しています。

Contents of navigation.xml(file) 
<?xml version="1.0" encoding="UTF-8"?>
<config>
<nav>
<page1>
<pages>
<label>test</label>
    <uri>abc.php</uri> </pages><page1></nav></config>

そしてコントローラで次のようにconfig.xmlファイルを読んでいます

 $config = new Zend_Config_Xml('/configuration/navigation.xml', 'nav');
 $container = new Zend_Navigation($config);
 $view->getHelper('navigation')->setContainer($container);

上記の XML ファイルでは、動的な値を "abc.php?param1=".$paramvalue に渡すにはどうすればよいですか?XML ファイルからは不可能な場合、navigation.xml から Url を取得してコントローラーから渡すにはどうすればよいですか?そのページ abc. php は、適切なパラメーターが渡された場合にのみアクティブになり、そうでない場合は default.php にリダイレクトされます

ビューでは、echo $this->navigation()->menu()->render(); と言っているだけです。ページを次のように表示し、適切な場所に転送するには、各ページにパラメーターを追加する必要があります。だから私の問題は、navigation.xml からの各リンクに動的パラメーターを追加する方法です。

ページに値「myPage」がある場合、ページをラベルとして取得してから、期待どおりにページで新しいURIを設定しています

    $it = new RecursiveIteratorIterator(
    $container, RecursiveIteratorIterator::SELF_FIRST);

  foreach ($it as $page) {
    $label = $page->label;
    if($label = "MyPage"){
        $newuri = "mypage.php?stcode=".$stcode."&cde=".$cde;            
        $page->setUri($newuri);
    }           

}

 Now my problem and all the menu items in the menu are getting the same URI .
 i dont know what  wrong iam doing 
4

1 に答える 1

1

何を達成しようとしているのかはわかりませんが、MVC ページのパラメーターを次のように設定できます。

<page1>
<pages>
<label>test</label>
<params>
<param1>param1value</param1>
<myparam2>myparam2value</myparam2>
</params>

また:

<page1>
<pages>
<label>test</label>
<uri>abc.php?param1=val</uri>

次に、次の方法で見つけることができます。

$page = $container->findOneByLabel('test');
$page->setUri($yourNewUri);

必要なものを見つけて更新するために、すべてのページ コンテナーを反復処理するために使用できRecursiveIteratorます (コントローラー プラグインなど)。

于 2010-09-01T06:59:13.837 に答える