カスタムコントローラ/アクションのsitemap.xmlにするための要求をルーティング

によって 、2010 0:13午前水曜日1月6日

/のための直接的な要求をするためには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 =サイトマップ

出力するためのサンプルコードは、適切なコントローラ(私のサイトがインデックスコントローラ、サイトマップのアクションにあるなど)でアクションを作成して見ることができます。

 < PHP
クラスからindexController
     Zend_Controller_Actionを拡張し
 {
     / **
      * Zend_Navigationの設定に基づいてマップをレンダリング
      * /
    パブリック関数のsitemapAction()
     {
    	エコーで$ this ->ビュー>ナビゲーション() - >サイトマップ();
    	 $この - >表示 - >レイアウト() - > disableLayout();
    	の$ this -> _helper -> ViewRendererは - > setNoRender(真の);
     }
 }

サイトマップを迅速かつ容易に使用して生成することができますZend_Navigationを 、偉大な簡単なチュートリアルでは、(そしてZend Frameworkのチュートリアルのための一般的に非常に有用な)れているZendはキャスト - 動的メニューサイトマップとパンくずリストを作成

"カスタムコントローラ/アクションのsitemap.xmlにするためのルート要求"〜4の対応

  1. 私は言及を忘れて一つのことはあなたにもそうでない場合はすべてのURLは、Zend_Navigation_Page_Mvcを(使用する場合にはURIを供給している場合は問題がないというsitemap.xmlに/をポイントする、サイトマップのための標準的なルートを指定する必要があることです。 )。

    例えば、私の最新のプロジェクトでは、次のルーティングを使用しています。

    ; ==============================
    ;リソースルーティング
    ; ==============================
    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. [...]カスタムコントローラ/アクションのsitemap.xmlにするためZend_Navigation、ルート要求についての私の最後のポストでの継続は、このポストは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($ configの、"ルータ");
    }

    そして私はこのエラーが表示されます。

    例外情報:

    メッセージ:指定された無効なコントローラ(sitemap.xmlに)

    リクエストのパラメータ:

    配列(
    =>'sitemap.xmlに""コントローラ"、
    'アクション'=>'インデックス'、
    'モジュール'=>'default'は、

    • それはあなたがエントリのカップルを欠落しているように思える、一致するように経路を更新してみてください。

      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

オンラインで現在8訪問者
4名様、4ボット、0メンバー
最大の訪問者今日:3時40午前UTC 24
今月:2011年9月7日04:27 35 UTC午前
今年:28-03-2011 22:40 UTCで130
すべての時間:28-03-2011 22:40 UTCで130