php - कोडिगिनेटर का उपयोग करने वाले डायनामिक मेनू/हेडर/पादलेख को लागू करने का सर्वोत्तम तरीका



codeigniter (1)

मैं बस मेनू / हेडर्स और पाद लेख को लागू करने के लिए सबसे अच्छा तरीका / अभ्यास को सोच रहा था जैसे कि कोडिगनिटर का इस्तेमाल करते हुए सूचनाओं को बदलना।

उदाहरण के लिए कहें कि मुझे हेडर मेनू के भीतर एक चेतावनी थी, जो किसी डाटाबेस में डेटा के साथ वापस लिंक किया गया था और मुझे हर बार एक पृष्ठ लोड होने पर परिवर्तनों की जांच करने की आवश्यकता है। प्रारंभ में मुझे लगा कि मैं हर बार $ the-> load-> view ('header') का उपयोग करके हेडर को कॉल कर सकता हूं, लेकिन इसका मतलब होगा कि अलर्ट पर कोई भी परिवर्तन करने के लिए मुझे एक वैश्विक फ़ंक्शन की आवश्यकता होगी और फिर वह हेडर दृश्य , हर बार, अच्छा नहीं!

मुझे लगता है मुझे फ़ंक्शन को कॉल करने के लिए एक वैश्विक तरीका चाहिए, जो किसी भी नियंत्रक से वेबसाइट शीर्षलेख (मेनू) को लोड करता है, जो सामग्री को प्रदर्शित करता है और तदनुसार दृश्य प्रदर्शित करता है।


इसलिए उदाहरण के लिए एक नियंत्रक जो ब्लॉग पेज दिखाता है
अपने नियंत्रक निर्माता में - फ़ोल्डर को परिभाषित करता है जिसमें आपकी ब्लॉग दृश्य फाइलें और टेम्पलेट नाम हैं

// the folder your content files are in 
$this->templatefolder = 'blog' ;
// the template name
$this->view_template = 'blog_template' ; 

एक विधि में जब आप कुछ विचारों को कॉल करने के लिए तैयार हों

$data['content01'] = 'search_articles';
$data['content02'] = 'main_article';
$data['content03'] = 'suggested_articles';
$this->load->view( $this->view_template, $data ); 

टेम्पलेट ही विचार करता है / blog_template.php

// opening html etc that is generic to website
$this->load->view('tmpl_open');

// so if the header has to be dynamic
// get the header from a model (or library etc) 
// and either pass the header content or just echo it out directly 
$this->load->model('header');

if( ! $newHeader = $this->header->returnNewHeader() )
{

  // fallback if the header doesn't come back from the model 
  $this->load->view('default_header');

} 
else
{   echo $newHeader ;     } 

// this is optional but IF the template folder is not set 
// we have a default folder called 'pages' to look in for the content views 

// but in this example the folder is set to be 'blog' 
// so the blog view files will be in application/views/blog/search_articles.php etc etc
if( isset($this->templatefolder)){

$templatefolder = $this->templatefolder . '/' ;  }

else { $templatefolder = 'pages/'; }

// header that is specific for the content 
$this->load->view($templatefolder . 'header');

// so in this specific example its going to load 3 view files, but this part is completely flexible 
if(isset($content01))
$this->load->view($templatefolder.$content01);

if(isset($content02))
$this->load->view($templatefolder.$content02);

if(isset($content03))
$this->load->view($templatefolder.$content03);

if(isset($content04))
$this->load->view($templatefolder.$content04);

if(isset($content05))
$this->load->view($templatefolder.$content05);

if(isset($content06))
$this->load->view($templatefolder.$content06);

if(isset($content07))
$this->load->view($templatefolder.$content07);

if(isset($content08))
$this->load->view($templatefolder.$content08);

// example of an optional file that you can uncomment for testing 
// $this->load->view('objecttesting');

// bottom nav bar generic to website
$this->load->view('tmpl_footer');

// closing html etc generic to website
$this->load->view('tmpl_close'); 




codeigniter