Skip to content

Phil Sturgeon's Template Library

thupten edited this page Sep 15, 2013 · 16 revisions

NOTICE: This information was really out of date and confusing. More up-to-date documentation can be found here: http://philsturgeon.co.uk/demos/codeigniter-template/user_guide/.

In case the above link to the user guide is broken, its included with the source code. Just download the source from https://github.com/philsturgeon/codeigniter-template and check the user_guide folder.

Example

Usage with theme on a hmvc modules enabled codeigniter setup.

phil sturgeon's template library example

In this example, we will use a module called site that contains a controller start.php. This controller has a method about() which will show a view. Read the comments in the code for details.

//file: modules/site/start.php
<?php
class Start extends MX_Controller {
	function about(){
                //nice to be able to set title right in the controller in one shot. 
                //Before using template, I had to keep passing the title value here and 
                //there till it reached the header where finally it could get echoed.
		$this->template->title('about this site');

                //'default_theme' is a folder name.
		$this->template->set_theme('default_theme');

                //This layout file can use $template['variables'] to put your contents
		$this->template->set_layout('one_col');
                
                //setting partials view. see the image above for header.php and footer.php locations.
                //these will be available in layout file as $template['partials']['header'] and 
                //$template['partials']['footer']
		$this->template->set_partial('header','blocks/header');
		$this->template->set_partial('footer','blocks/footer');
		
                //the main content view that contains about page's content. 
                //this will be available in layout file as $template['body']
                $this->template->build('start_about_view');
	}...
}

The layout file will use the template array to get the values.

<?php
//file themes/default_theme/views/layouts/one_col.php
echo $template['partials']['header'];
echo $template['body'];
echo $template['partials']['footer'];
//eof

Below is the content for about page.

<!--file modules/site/views/start_about_view.php ->
<div class="container">
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
	<p>about page start_about_view</p>
</div>

Likewise make your header.php and footer.php in modules/site/views/blocks/header.php and modules/site/views/blocks/footer.php. check the image above.

** In the header.php don't forget to echo $template['title'].

The output will look like this .. don't mind the complicated looking header and footer I have got in the picture.

phil sturgeon template library example output

Good Luck.

Clone this wiki locally