कोडनिर्देशक के साथ गतिशील मेनू

मैं नेविगेशन मेनू का निर्माण कर रहा हूं जिसमें इसमें श्रेणियां हैं जिन्हें उदाहरण के लिए डेटाबेस से निकाल दिया जाएगा

Home      + Product   
          - Ham
          - Sausage
          - etc 
          - etc 


--------Database Schema------
+----+-------------------------+------+
| id | name                    | show |
+----+-------------------------+------+
|  1 | ham                     |    1 |
|  2 | sausages                |    1 |
+----+-------------------------+------+

यह मेरा श्रेणियाँ नियंत्रक है

class Categories extends CI_Controller {

        public function __construct() {
            parent::__construct();

            $this->load->model('category');
        }

        public function index()
        {   
           //1. pulling data from db assigned to $data
            $data['categories'] = $this->category->get_categories();

           //2. passing $data to header view to build dynamic navigation menu
            $this->load->view('header',$data);

           //3. passing $data to the view category to render some other content
            $this->load->view('category',$data);

           //4. passing $data to footer view to build dynamic footer menu
            $this->load->view('footer',$data);
         }


         public function get($id)
         {
            $this->load->view('header');


     } 
}

------------ विचार/header.php पृष्ठ (नीचे दिखाए गए कोड)


----------- समस्या यह है उदाहरण के लिए जब मैं मेनू से एक श्रेणी चुनता हूं, तो मुझे लगता है कि यूआरएल इस तरह है

127.0.0.1/cms/categories/get/1 यह श्रेणियों के पृष्ठ पर

और जब मैं उदाहरण के लिए क्लिक करता हूं, तो मैं इस यूआरएल में स्थानांतरित कर दूंगा

127.0.0.1/cms/categories/get/1

लेकिन जब मैं मेनू पर होवर करता हूं तो मुझे यह दिखाई देता है

127.0.0.1/cms/categories/get/categories/get/1 here is the problem with the nav menu

आप लोग देखते हैं, नियंत्रक जो {श्रेणियां} है और साथ ही साथ कार्रवाई {get} है प्रत्येक नियंत्रक और कार्रवाई दो बार दोहराया जाता है,

मेरे सवाल 1- मैं यहां क्या गलत कर रहा हूं -

2- इस गतिशील मेनू को पूरे एप्लिकेशन के माध्यम से सही तरीके से कैसे साझा करें, मुझे यह कोड कहां रखना चाहिए। और कृपया ध्यान रखें कि यह मेनू डेटाबेस से बनाया जाएगा

उन्नत में बहुत बहुत धन्यवाद

0

2 उत्तर

मैंने इस गतिशील मेनू के लिए एक छोटी पुस्तकालय बनाई है। अगर कोई अभी भी इस उत्तर को देख रहा है, तो आशा है कि यह उनके लिए मदद करेगा।

आप गीथूब से यह सब कोड ले सकते हैं।

https://github.com/hassann201/Egenius_Dynamic_Menu 

धन्यवाद

0
जोड़ा

आपको बस दृश्य को ठीक करने की जरूरत है


इसे सही तरीके से देखने में लोड करने के लिए ... मेरा सुझाव है, आप अपने व्यू फ़ोल्डर में एक फ़ाइल कॉल टेम्पलेट बनाते हैं, इसे template.php पर कॉल करने दें

public function index()
    {   
       //1. pulling data from db assigned to $data
        $data['categories'] = $this->category->get_categories();

        $data['page_name'] = 'WHATEVER_PAGE_NAME_YOU_HAVE';

       //send it to the template instead....
        $this->load->view('template',$data);
     }

टेम्पलेट फ़ाइल

<html>
   <head></head>
   <body>
      $this->load->view('header');

      $this->load->view($data['page_name']);

      $this->load->view('footer');
   </body>
</html>

HEADER.PHP फ़ाइल इस तरह होगी ....

     <div>HEADER CONTENT </div>

WHATEVER_PAGE_NAME_YOU_HAVE.PHP फ़ाइल इस तरह होगी ....

    

TESTING


FOOTER.PHP फ़ाइल इस तरह होगा ....

     <div>Footer CONTENT </div>

इसे प्रबंधित करने के लिए और अधिक आसान रखने के लिए, लाइब्रेरी बनाएं और इसे प्रत्येक वर्ग के लागत निर्माता में कॉल करें या आप इसे स्वतः लोड कर सकते हैं। एक बार लोड होने के बाद, आप फ़ंक्शन को कॉल कर सकते हैं और अपना डेटा प्राप्त कर सकते हैं .. अगर आपको उदाहरण की आवश्यकता है तो मुझे बताएं? या आप http://ellislab.com/codeigniter%20/user पढ़ सकते हैं -मार्गदर्शक/सामान्य/creating_libraries.html आशा करता हूँ की ये काम करेगा...

0
जोड़ा
धन्यवाद मदद के लिए कहा मुझे कोशिश करने दो .... उम्मीद है कि यह काम करता है ..
जोड़ा लेखक Mohammed Allam, स्रोत
यह पूरी तरह से काम करता है ....
जोड़ा लेखक Mohammed Allam, स्रोत