現在、Zend Framework 1.12 を使用してプロジェクト管理システムを作成していますが、そのZend_Navigation::Sitemap()
方法に問題がありました。
SitemapController
内部にwithという名前のコントローラーがありindexAction()
、レイアウトを無効にします。次に、/views/scripts/sitemap/index.phtml
スクリプトでサイトマップをレンダリングします。
問題は、次のことです。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"/>
/sitemap
URIで取得できるのはそれだけです。私navigation.xml
が満たされていても。
ここにすべての私のコードがあります:
index.phtml
<?php
$this->navigation()->sitemap()->setFormatOutput(true)
->setUseSchemaValidation(false)
->setUseXmlDeclaration(true)
->setUseSitemapValidators(true);
echo $this->navigation()->sitemap()->render($this->navigation);
?>
SitemapController.php
<?php
class SitemapController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
$this->view->layout()->disableLayout();
}
}
Bootstrap.php
/**
* @return Zend_Navigation
*/
protected function _initNavigation()
{
$view = $this->bootstrap('layout')->getResource('layout')->getView();
$config = new Zend_Config_Xml(APPLICATION_PATH.'/configs/navigation.xml', 'nav');
$navigation = new Zend_Navigation($config);
$view->navigation($navigation);
}
ナビゲーション.xml
<?xml version="1.0" encoding="UTF-8"?>
<configdata>
<nav>
<home>
<label>Tableau de Bord</label>
<controller>index</controller>
<action>index</action>
</home>
<project>
<label>Projets</label>
<controller>project</controller>
<action>index</action>
</project>
<tasks>
<label>Tâches</label>
<controller>tasks</controller>
<action>index</action>
</tasks>
<messages>
<label>Messages</label>
<controller>messages</controller>
<action>index</action>
</messages>
</nav>
</configdata>
サイトマップが想定どおりにレンダリングされない理由を誰か教えてもらえますか?