Накіроўваць запыты для sitemap.xml звычаю кантролер / дзеянне
Для прамых запытаў да / 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 { / ** * Аказвае Sitemap на аснове Zend_Navigation ўстаноўкі * / грамадскага sitemapAction функцыі () { Рэха $ гэтым-> Адкрыць-> Навігацыя () -> Карта сайта (); $ Гэтым-> Выгляд-> макета () -> disableLayout (); $ Гэтым-> _helper-> ViewRenderer-> setNoRender (TRUE); } }
Sitemaps можа хутка і лёгка створаны з дапамогай Zend_Navigation , вялікі кароткае кіраўніцтва (і наогул вельмі карысна для Zend падручнікі Framework) з'яўляецца Zend злепкі - Дынамічнае стварэнне меню сайта і сухарах .


















































Адна рэч, я забыўся згадаць пра тое, што вам таксама неабходна паказаць ваш стандартны маршрут для вашага файла Sitemap, у адваротным выпадку ўсе URL-адрасы будзе ўказваць на / 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 = ": кантролер /: Action / *"
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-індэкс"
[...] Працяг на мой апошні пост пра Zend_Navigation, накіроўваць запыты для sitemap.xml звычаю кантролер / дзеянне, гэты пост пра dymnamically дадання старонкі Zend_Navigation кантэйнеры падчас выканання / [...] сцэнар
У мяне ёсць сур'ёзныя праблемы, я не магу вырашыць яе: (
Я 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 ();
$ Config = новы 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-індэкс"