An advanced layout library for CodeIgniter.
Many CodeIgniter learners still find it difficult to apply templates to their projects. The layout library makes it simple for both new and experienced CodeIgniter coders to add nested templates to their application.
Templates are defined in a simple array format, and can be as simple or as complex as you like, built to suit your ever need.
Table of Contents
Install it as a
Render a View
To display a view, simply use the
show() method. It will render the supplied view using the default main as defined in the layout config file at
To return a view as a string use the
<?php $this->layout->show('my_view'); $string_view = $this->layout->get('my_view');
Pre-defined templates allow you to nest your view within a combination of other views, allowing you to create 'site-wrappers' and other forms of layout combinations.
Layouts are defined in the config file at
config/layout.php in the
<?php $config['layout']['templates'] = array( // default template 'main' => array( '-YIELD-', ), // template_1 'template_1' => array( 'my_header', '-YIELD-', 'my_footer' ) );
In the above example,
'main' is a template that is provided by default with the layout library, it will simply show the view passed to the layout library using the
'template_1' will first render the view file
'my_header' then it will yield to the view specified by
show() and finally, it will render the view file
To specify a template, simply use the
template() method, which is chainable :
<?php $this->layout->template('template_1')->show('my_view'); // or.. $this->layout->template('template_1'); $this->layout->show('my_view');
Binding Data to Views
You may pass an array as a second paramater to the
show() method, to provide an array of view variables that are accessible in the same way as with
$this->load->view('view', $vars);. Infact, the layout library passed the data to the CodeIgniter this way, it simply serves as a wrapper!
In the controller:
<?php $this->layout->show('my_view', array('dog' => 'Rover'));
In the view:
<p><?php echo $dog; // Rover ?></p>
You can alternatively use the
bind() method to provide variables to the view, or a combination of both methods. The
bind() accepts two parameters, a string index, and its value. This method is also chainable.
<?php $this->layout->bind('dog', 'Rover')->show('my_view');