Маршрут запитів на sitemap.xml звичаєм контролер / дію

За Стівен Ллойд Уоткін , в середу 6 січня 2010 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 = карта сайту

Приклад коду для виводу можна побачити шляхом створення дії у відповідний контролер (наприклад, моя карта сайту знаходиться в індексі контролер, карта сайту дії):

 < PHP
 Клас IndexController
     розширює Zend_Controller_Action
 {
     / **
      * Надає карта сайту на основі Zend_Navigation установки
      * /
     громадських sitemapAction функції ()
     {
    	 Відлуння $ це-> Вид-> навігація () -> карта сайту ();
    	 $ Це-> Вид-> розкладка () -> disableLayout ();
    	 $ Це-> _helper-> ViewRenderer-> setNoRender (істина);
     }
 }

Sitemaps може швидко і легко бути створені за допомогою Zend_Navigation , великий інструкція (і взагалі дуже корисно для Zend Framework підручники) є 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:: деИпзЬапсе ();
    $ = Новий конфігураційний Zend_Config_Ini (APPLICATION_PATH '/ Config / 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 користувачів
Максимум сьогодні: 12 в 1:29 вечора UTC
В цьому місяці: 52 в 18-06-2011 3:11 ранку UTC
У цьому році: 130 в 28-03-2011 10:40 вечора UTC
За весь час: 130 в 28-03-2011 10:40 вечора UTC