sitemap.xml的請求路由到自定義的控制器/動作

史蒂芬勞埃德沃特金斯 ,星期三2010年1月6日上午12時13分

以直接請求/ sitemap.xml的一個自定義的控制器和行動中的Zend Framework的應用程序只需添加以下的application.ini或替代你的配置文件(例如我使用navigation.ini):

 resources.router.routes.sitemap.route =“sitemap.xml的”
 resources.router.routes.sitemap.defaults.controller =指數
 resources.router.routes.sitemap.defaults.action =網站地圖

示例代碼輸出可以看出,通過創建一個動作在適當的控制器(如我的Sitemap在於指數控制器,地圖行動):

 < PHP的
類 IndexController
    延伸Zend_Controller_Action
 {
     / **
      *呈現一個地圖的基礎上Zend_Navigation設置
      * /
    公共職能 sitemapAction()
     {
    	迴聲 $這個 ->“查看->”導航() - >“網站地圖();
    	 $這個 ->“查看->”佈局() - >“disableLayout();
    	 $這個 -> _helper -> ViewRenderer中-> setNoRender(真);
     }
 }

站點地圖可以快速,方便地生成使用Zend_Navigation ,一個偉大的快速教程(一般為Zend框架非常有用的教程)是Zend的石膏 - 動態創建菜單地圖和麵包屑

4回應“為 sitemap.xml的請求路由到自定義控制器/動作”

  1. 有一點我忘了提的是,你還需要指定你的標準路線的地圖,否則,所有網址會指向/ sitemap.xml的,如果你使用Zend_Navigation_Page_Mvc(如果你提供的URI不會有問題)。

    比如我最新的項目使用以下路由:

    ; ==============================
    ;資源路由
    ; ==============================
    resources.router.routes.www.type =“Zend_Controller_Router_Route_Hostname”
    resources.router.routes.www.route =“:module.example.com”
    resources.router.routes.www.defaults.module =“默認”
    resources.router.routes.www.chains.index.type =“Zend_Controller_Router_Route”
    resources.router.routes.www.chains.index.route =“:控制器/:動作 / *”
    resources.router.routes.www.chains.index.defaults.controller =“指數”
    resources.router.routes.www.chains.index.defaults.action =“指數”
    resources.router.routes.sitemap.type =“Zend_Controller_Router_Route”
    resources.router.routes.sitemap.route =“sitemap.xml的”
    resources.router.routes.sitemap.defaults.controller =指數
    resources.router.routes.sitemap.defaults.action =網站地圖

    因此,在我的navigation.xml(或任何配置您決定使用),你需要指定的路由使用,例如

    default.pro.pages.aboutUs.label =“公司簡介”
    default.pro.pages.aboutUs.module =“www”的
    default.pro.pages.aboutUs.controller =“關於美”
    default.pro.pages.aboutUs.action =“指數”
    default.pro.pages.aboutUs.resource =“www_pages”
    default.pro.pages.aboutUs.route =“www的指數”

  2. [...]延續在我的最後一篇文章關於 Zend_Navigation,為 sitemap.xml的請求路由到自定義控制器/行動,本文章是關於 dymnamically添加頁面到Zend_Navigation容器在運行時 /腳本 [...]

  3. 沃爾特 說:

    我有嚴重的問題,我無法解析的時候:(

    我router.ini

    resources.router.routes.sitemap.type =“Zend_Controller_Router_Route”
    resources.router.routes.sitemap.route =“sitemap.xml的”
    resources.router.routes.sitemap.defaults.controller =指數
    resources.router.routes.sitemap.defaults.action =網站地圖

    和bootstrap.php

    保護功能_initRouter()
    {
    $ frontController = Zend_Controller_Front::getInstance()方法;
    新Zend_Config_Ini配置= $(APPLICATION_PATH。'/配置/ router.ini');
    $路由器= $ frontController -> getRouter();
    $路由器> addConfig($配置,'路由器');
    }

    我收到此錯誤:

    異常信息:

    消息:無效的控制器指定(sitemap.xml的)

    請求參數:

    陣列(
    '控制器'=>“sitemap.xml的',
    '動作'=>“索引',
    '模塊'=>“默認',

    • 看來你是缺少一對夫婦的作品,嘗試更新您的路線,以匹配:

      resources.router.routes.sitemap.type =“Zend_Controller_Router_Route_Static”
      resources.router.routes.sitemap.route =“sitemap.xml的”
      resources.router.routes.sitemap.controller =“指數”
      resources.router.routes.sitemap.action =“地圖”
      resources.router.routes.sitemap.defaults.module =“www”的
      resources.router.routes.sitemap.defaults.controller =“指數”
      resources.router.routes.sitemap.defaults.action =“地圖”
      resources.router.routes.sitemap.defaults.route =“www的指數”

給一個答复













全景主題 Themocracy

現在 5訪客在線
2位客人,3個機器人,0位會員
最大遊客今日:16日上午12點 39分聯合技術
本月:26日2011年7月5日上午12點 35分聯合技術
今年:130 28-03-2011下午10時 40聯合技術
所有時間:130 28-03-2011下午10時 40聯合技術