Как передать динамические переменные PHP в файл XML - PullRequest
0 голосов
/ 01 сентября 2010

Я пытаюсь сгенерировать меню и для этого я использую 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>

и в контроллере iam читаем файл config.xml следующим образом

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

В XML-файле Above. Как передать динамическое значение в «abc.php? Param1 =». $ Paramvalue Если невозможно из XML-файла если нет, он будет перенаправлен на default.php

в View iam просто говорит echo $ this-> navigation () -> menu () -> render (); он отображает страницы как, и к каждой странице должен быть добавлен параметр, чтобы их можно было перенести в нужное место.

что я делаю, получаю страницу как метку если страница имеет значение «myPage», тогда iam устанавливает новый 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 

1 Ответ

1 голос
/ 01 сентября 2010

Я не уверен, чего вы пытаетесь достичь, но вы можете установить параметры для страниц 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, чтобы перебрать все контейнеры страниц, найти нужный вам и обновить его (например, в плагине контроллера).

...