[eluser]rt30000[/eluser]
Hello. I am working on on my first CI (actually my first MVC usage as well) site and I believe I am making good progress. One question I have before proceeding too far, is about controllers/pages. I understand how they work with views, etc. I just question whether I am using them correctly. For example, i have a site with ~5 pages each with many subpages. Is it correct to have 5 controllers (for each section)? My pages are using multiple views, and is not yet hooked up to a db so pardon all the fields. This approach works, just not sure if it is best pracitices. Seems like alot of repetitive code when I get into many subpages. A sample of the products and products/cheese page code (controller)
Code:
<?php
class Products extends Controller {
function Products()
{
parent::Controller();
}
function index()
{
/* THIS IS OUR PRODUCTS OVERVIEW PAGE */
/* Load necessary data for template */
$template['page_title'] = 'Green Field Farms Products | Certified Organic Foods';
$template['body_class'] = 'cat_Products';
$template['header_img'] = '';
$template['header'] = $this->load->view('components/header_view.php', '', true);
$template['page_headline'] = 'Green Field Farms Products';
$template['page_headline_img'] = base_url().'public/img/headline-ProductsOverview.gif';
$template['page_content'] = '<p><a class="edit" href="#">Download our current product list</a> (pdf)</p>
<div style="border:1px solid #000000; width:240px; padding:10px; float:left; margin-right:15px;"><a href="/index.php/products/cheese">Cheeses</a></div>
<div style="border:1px solid #000000; width:240px; padding:10px; float:left; margin-right:15px;">Eggs</div>
<div style="border:1px solid #000000; width:240px; padding:10px; float:left; margin-right:15px; margin-top:15px;">Seasonal Produce</div>
<div style="border:1px solid #000000; width:240px; padding:10px; float:left; margin-right:15px; margin-top:15px;">Maple Products</div>
<p style="clear:both;"> </p>';
$footer['footer_content'] = 'Green Field Farms • 5515 County Road 229 • Fredericksburg, Ohio 44627 • Phone: 330.695.2462 • Fax: 866.281.8052 • Email: <a href="mailto:[email protected]">[email protected]</a>';
/* Load necessary subcomponent views for this page */
$template['head'] = $this->load->view('components/head_view.php', '', true);
$template['navmain'] = $this->load->view('components/navmain_view.php', '', true);
$template['subcontent']= '';
$template['footer'] = $this->load->view('components/footer_view.php', $footer, true);
/* Load master page view and pass along required template parameters ($template) */
$this->load->view('master_view', $template);
}
function cheese()
{
/* THIS IS OUR CHEESE OVERVIEW PAGE */
/* Load necessary data for template */
$template['page_title'] = 'Cheese Products | Green Field Farms Products | Certified Organic Foods';
$template['body_class'] = 'cat_Products';
$template['header_img'] = '';
$template['header'] = $this->load->view('components/header_view.php', '', true);
$template['page_headline'] = 'Green Field Farms Organic Cheese Products';
$template['page_headline_img'] = '';
$template['page_content'] = '<p>You found the cheese page!!!</p>';
$navsub['navsub_items'] = array('link1', 'link2', 'link3', 'link4');
$footer['footer_content'] = 'Green Field Farms • 5515 County Road 229 • Fredericksburg, Ohio 44627 • Phone: 330.695.2462 • Fax: 866.281.8052 • Email: <a href="mailto:[email protected]">[email protected]</a>';
/* Load necessary subcomponent views for this page */
$template['head'] = $this->load->view('components/head_view.php', '', true);
$template['navmain'] = $this->load->view('components/navmain_view.php', '', true);
$template['subcontent']= $this->load->view('components/navsub_view.php', $navsub, true);
$template['footer'] = $this->load->view('components/footer_view.php', $footer, true);
/* Load master page view and pass along required template parameters ($template) */
$this->load->view('master_view', $template);
}
}
/* End of file products.php */
/* Location: ./system/application/controllers/products.php */
If I am not explaining this clearly, fire away any questions! Thank you for any help. So far I think I will really benefit from using this framework. Thanks!