ขอเส้นทางสำหรับการ sitemap.xml ไปยังตัวควบคุมที่กำหนดเอง / การดำเนินการ
เพื่อให้การร้องขอโดยตรงสำหรับ / sitemap.xml ตัวควบคุมที่กำหนดเองและการกระทำของคุณใน กรอบ Zend เพียงแค่เพิ่มการประยุกต์ใช้ต่อไปนี้ใน application.ini หรือ config ไฟล์ทางเลือกของคุณ (เช่นผมใช้ navigation.ini) :
resources.router.routes.sitemap.route ="sitemap.xml" resources.router.routes.sitemap.defaults.controller = ดัชนี resources.router.routes.sitemap.defaults.action sitemap =
รหัสตัวอย่างสำหรับการแสดงผลที่สามารถเห็นได้โดยการสร้างการกระทำในการควบคุมที่เหมาะสม (เช่น Sitemap ของฉันได้อยู่ในการควบคุมการดัชนีการดำเนินการเว็บไซต์) :
< PHP IndexController ชั้น ขยาย Zend_Controller_Action { / ** * การแสดงผลแผนผังเว็ปไซต์ที่ขึ้นอยู่กับการติดตั้ง Zend_Navigation * / sitemapAction ฟังก์ชั่น (มหาชน) { echo $ this -> View -> นำทาง () --> แผนผังเว็ปไซต์ (); $ this -> View -> เค้าโครง () -- disableLayout> (); $ this -> _helper -> viewRenderer -> setNoRender (true); } }
เว็บไซต์ได้อย่างรวดเร็วและง่ายที่จะสร้างขึ้นโดยใช้ Zend_Navigation เป็นรวดเร็วกวดวิชาที่ดี (และโดยทั่วไปมีประโยชน์มากสำหรับ tutorials Zend Framework) เป็น Zend Casts -- การสร้างแบบไดนามิกเมนูแผนผังและ breadcrumbs .


















































สิ่งหนึ่งที่ผมลืมพูดถึงคือการที่คุณยังจะต้องระบุเส้นทางมาตรฐานของคุณสำหรับการ sitemap ของคุณมิฉะนั้น URL ทั้งหมดที่จะชี้ไปที่ / sitemap.xml ถ้าคุณใช้ Zend_Navigation_Page_Mvc (ถ้าคุณกำลังจัดหา URIs จะไม่มีปัญหา )
ตัวอย่างเช่นโครงการล่าสุดของฉันจะใช้เส้นทางต่อไปนี้
; ==============================
; เส้นทางทรัพยากร
; ==============================
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 ="index"ที่
resources.router.routes.www.chains.index.defaults.action ="index"ที่
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 sitemap =
ดังนั้นใน navigation.xml ของฉัน (หรือสิ่งที่ config ที่คุณตัดสินใจที่จะใช้), คุณจะต้องระบุเส้นทางที่จะใช้เช่น
default.pro.pages.aboutUs.label ="รายละเอียด บริษัท "
default.pro.pages.aboutUs.module ="www"
default.pro.pages.aboutUs.controller ="เกี่ยวกับ - เรา"
default.pro.pages.aboutUs.action ="index"ที่
default.pro.pages.aboutUs.resource ="www_pages"
default.pro.pages.aboutUs.route ="www ดัชนี"
[...] ความต่อเนื่องในการโพสต์ล่าสุดของฉันเกี่ยวกับ Zend_Navigation ขอเส้นทางสำหรับ sitemap.xml ไปยังตัวควบคุมที่กำหนดเอง / การดำเนินการโพสต์นี้เป็นเรื่องเกี่ยวกับ dymnamically เพิ่มหน้าเพื่อบรรจุ Zend_Navigation ที่รันไทม์ / script [...]
ฉันมีปัญหาร้ายแรงฉันไม่สามารถแก้ปัญหาได้ : (
ฉันมี 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 sitemap =
และ bootstrap.php
_initRouter ฟังก์ชันป้องกัน ()
{
$ frontController = Zend_Controller_Front : : getInstance ();
$ config = new Zend_Config_Ini (APPLICATION_PATH'/ config / router.ini'.);
เราเตอร์ $ = $ frontController -> getRouter ();
$ เตอร์ -> addConfig ($ config','เตอร์');
}
และฉันได้รับข้อผิดพลาดนี้
ข้อมูลข้อยกเว้น :
ข้อความ : ตัวควบคุมที่ไม่ถูกต้องที่ระบุ (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 ="index"ที่
resources.router.routes.sitemap.action ="เว็บไซต์"
resources.router.routes.sitemap.defaults.module ="www"
resources.router.routes.sitemap.defaults.controller ="index"ที่
resources.router.routes.sitemap.defaults.action ="เว็บไซต์"
resources.router.routes.sitemap.defaults.route ="www ดัชนี"