แบบไดนามิกเพิ่มหน้าเพื่อบรรจุ Zend_Navigation ที่รันไทม์

โดย Watkin Steven Lloyd วันพฤหัสบดีที่ 7 มกราคม 2010 22:50

In, ความต่อเนื่องล่าสุดของฉันในการโพสต์เกี่ยวกับ Zend_Navigation ขอเส้นทางสำหรับ sitemap.xml กับตัวควบคุมแบบกำหนดเอง / การดำเนินการ เรื่องนี้เป็นเรื่องเกี่ยวกับ dymnamically การเพิ่มหน้าเว็บที่จะบรรจุ Zend_Navigation ที่รันไทม์ปฏิบัติการ / script

ทุกคนอย่างดีและดีที่ระบุหน้าเว็บของคุณใน ini หรือ XML แฟ้ม แต่ที่เว็บไซต์บางจุดที่คุณกำลังจะเปลี่ยนหน้าเว็บของคุณได้ในที่ที่คุณต้องการเป็นส่วนหนึ่งของเมนู sitemap,, หรือจะรวมอยู่ในเส้นทางของคุณแสดงเส้นทาง ดังนั้นสิ่งที่เราต้องทำคือการเพิ่มหน้าเว็บที่จะบรรจุ Zend_Navigation รันไทม์ของเราได้ที่ ตัวอย่างสำหรับการนี​​้จะเป็นในการเพิ่มรายการข่าวโพสต์ blog ห​​รือหน้าแสดงความคิดเห็น ฯลฯ

ในตัวอย่างนี้ผมจะเพิ่มโพสต์ข่าวที่จะ ini config กำหนดแบบคงที่ของฉัน เพื่อรับข่าวสารการกำหนดค่าหน้าโพสต์ของฉันฉันใช้คลาสซึ่งจะส่งกลับอาร์เรย์ในรูปแบบดังต่อไปนี้ :

 $ pagesToAdd อาร์เรย์ = (0 => อาร์เรย์ ('ป้าย''เรื่องข่าวปลอม # 5 ...','=> โมดูล'=>'เส้นทาง www',''=>'สร้างดัชนี www การกระทำ',''= 'มุมมอง'>'ควบคุม''ข่าว'=>','params'= array> ('id'=> '5 - Fake - ข่าวเรื่องราว -- 5')), 1 => อาเรย์ (* / หน้าเพิ่มเติม รายละเอียด *),); 

ขณะที่คุณจะสังเกตเห็นว่าทำงานได้กลับมาอาเรย์ที่มีอยู่ในอาร์เรย์ที่ทำขึ้นอาร์เรย์ config สำหรับ Zend_Navigation_Page_Mvc ดังนั้นในการวนรอบขึ้นไปหน้า Zend_Navigation อาเรย์ใหม่สามารถสร้างจากอาร์เรย์ config สิ่งที่ต้องทำต่อไปเป็นส่วนหนึ่งของห่วงคือการที่จะเพิ่มหน้าที่ในตำแหน่งที่ถูกต้อง (หรือมิฉะนั้นหน้าจะสามารถเพิ่มจำนวนมากโดยใช้ -- addPages> () method)

เมื่อต้องการทำเช่นนี้ให้ค้นหาเพจที่คุณต้องการเพิ่มเพจย่อยไปและก็เพิ่มหน้า ในกรณีนี้ฉันได้ใช้รหัสต่อไปนี้เพื่อค้นหาหน้าเว็บของฉัน :

  ('ข่าว''ป้าย',) $ บรรจุ> findOneBy --> addPage ($ หน้า); 

initialisation นาวิเกตโดยรวมใน bootstrap ของฉันจึงมีลักษณะดังนี้

  / **
      * ใช้ในการจัดการนาวิเกตระดับบนสุด
      *
      * Zend_Navigation กลับ @
      * /
     _initNavigation ฟังก์ชั่นการป้องกัน ()
     {
         $ this -> bootstrap ('รูป');
         $ เค้าโครง = $ this getResource -> ('รูปแบบ');
         มุมมอง = $ $ getView เค้าโครง -> ();
         $ config = new Zend_Config_Ini (
             APPLICATION_PATH  '/ configs navigation.ini /'APPLICATION_ENV);

         ภาชนะ $ = Zend_Navigation ใหม่ ($ เริ่มต้น config ->);
         / / ตอนนี้เพิ่มช่วง 25 รายงานข่าว
         ข่าวข่าวใหม่ = $ ();
         หน้า $ = $ getNavigationEntries ข่าว -> ();
         foreach ($ หน้าเป็น $ หน้า) {
        	 $ page = Zend_Navigation_Page_Mvc ใหม่ ($ หน้า);
        	 ('ข่าว''ป้าย',) $ บรรจุ> findOneBy --> addPage ($ หน้า);
         }
         $ ดูการ -> ($ ภาชนะ);
     } 

ในสิ่งที่ต้องการที่จะเพิ่มเป็นบางรูปแบบของการใช้แคช (โดยใช้ Zend_Cache น่า;)) อย่างอื่นนี้เป็นไปได้ค่อนข้างแพงกับโหลดแต่ละหน้า

One Response to"แบบไดนามิกเพิ่มหน้าเพื่อบรรจุ Zend_Navigation ที่รันไทม์"

  1. นายแมน says :

    นั่นเป็นเพียงสิ่งที่ฉันถูกมองหา -- ขอขอบคุณสำหรับตัวอย่างที่ชัดเจนจริงๆ ไชโย G

ปล่อยให้ตอบกลับ













ชุดรูปแบบพาโนรามาโดย Themocracy

4 ผู้เข้าชมออนไลน์ขณะนี้
2 แขก, 2 บอ, 0 สมาชิก
ผู้เข้าชมสูงสุดวันนี้ : 12 ที่ 09:44 UTC
เดือนนี้ : 26 ที่ 2011/07/05 12:35 UTC
ปีนี้ : 130 ที่ 28-03-2011 10:40 UTC
เวลาทั้งหมด : 130 ที่ 28-03-2011 10:40 UTC