Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create Master Page(Layout) with base design style

Tags:

codeigniter

I'm new in CodeIgniter. I want to create Master Page or Layout with base style that will be contain Menu, footer and etc. I don't want to write repeating content in all pages and load it automatically for all pages. For example, I can create Master Page in asp.net or Layout in asp.net mvc. I'm sure I can do it in CodeIgniter.

like image 203
IFrizy Avatar asked Nov 14 '13 11:11

IFrizy


1 Answers

lets assume you have an html page

<html>
    <head>
        <title> Hello World </title>
    </head>
    <body>
        <div id="menu">
            <li><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
        </div>

        <div id="main-content">
            <!-- this is the dynamic part -->
        </div>

        <div id="footer">
            Copy Right 2013 Hello World
        </div>
    </body>
</html>

you could split it into 1- header 2- menu 3- main content 4- footer

you basically put

<html>
    <head>
        <title> Hello World </title>
    </head>
    <body>

in one view called "view_header" then you put

        <div id="menu">
            <li><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
        </div>
        <div id="main-content">

in a view called "view_menu" and then you put

        </div>

        <div id="footer">
            Copy Right 2013 Hello World
        </div>
    </body>
</html> 

in a view called "view_footer" then in your controller

$this->load->view('view_header');
$this->load->view('view_menu');
$this->load->view('YOUR_VIEW');
$this->load->view('view_footer');

The other solution, which I see is better: create a view called view_template.php

<html>
    <head>
        <title> Hello World </title>
    </head>
    <body>
        <div id="menu">
            <li><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
        </div>

        <div id="main-content">
            <?php $this->load->view($content); ?>
        </div>

        <div id="footer">
            Copy Right 2013 Hello World
        </div>
    </body>
</html>

in the controller lets say you want to call a view called About

$data = array('content'=>'about');
$this->load->view('view_template',$data);
like image 59
UX Labs Avatar answered Nov 03 '22 21:11

UX Labs