-
-
Save cryptixcoder/f7ca17c85de3d538c85d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Layouts | |
{ | |
// hold codeigniter instance | |
private $CI; | |
// hold layout title | |
private $layout_title = null; | |
// hold description | |
private $layout_description = null; | |
// hold includes like css and js files | |
private $includes = array(); | |
// hold meta tags | |
private $metas = array(); | |
public function __construct() | |
{ | |
$this->CI =& get_instance(); | |
} | |
// set layout title | |
public function set_title($title) | |
{ | |
$this->layout_title = $title; | |
} | |
// set layout description | |
public function set_description($description) | |
{ | |
$this->layout_description = $description; | |
} | |
public function add_meta($name, $content){ | |
$this->metas[] = array("name" => $name, "content" => $content); | |
} | |
// add includes like css and js | |
public function add_include($path, $prepend_base_url = true) | |
{ | |
if($prepend_base_url) | |
{ | |
$this->CI->load->helper('url'); // just in case | |
$this->includes[] = base_url() . $path; | |
} | |
else | |
{ | |
$this->includes[] = $path; | |
} | |
return $this; | |
} | |
public function print_metas(){ | |
$final_meta = ''; | |
if($this->metas){ | |
foreach($this->metas as $meta){ | |
$final_meta .= '<meta name="'.$meta['name'].'" content="'.$meta['content'].'" />'; | |
} | |
} | |
return $final_meta; | |
} | |
// print the includes | |
public function print_includes() | |
{ | |
$final_includes = ''; | |
foreach($this->includes as $include) | |
{ | |
if (preg_match('/js$/', $include)) | |
{ | |
$final_includes .= '<script src="' . $include . '"></script>' . "\n\r"; | |
} | |
elseif (preg_match('/css$/', $include)) | |
{ | |
$final_includes .= '<link href="' . $include . '" rel="stylesheet"/>' . "\n\r"; | |
} | |
} | |
return $final_includes; | |
} | |
// call the layouts view from the controller | |
public function view($view_name, $params = array(), $default = true, $layouts = array()) | |
{ | |
if (is_array($layouts) && count($layouts) >= 1) | |
{ | |
foreach ($layouts as $layout_key => $layout) | |
{ | |
$params[$layout_key] = $this->CI->load->view($layout, $params, true); | |
} | |
} | |
if ($default) | |
{ | |
// set layout title | |
$params['layout_title'] = $this->layout_title; | |
// set layout description | |
$params['layout_description'] = $this->layout_description; | |
if($default == 'panel') { | |
// Default header | |
$this->CI->load->view('layouts/header_panel', $params); | |
// render view | |
$this->CI->load->view($view_name, $params); | |
// render footer | |
$this->CI->load->view('layouts/footer_panel'); | |
} else { | |
// Default header | |
$this->CI->load->view('layouts/header', $params); | |
// render view | |
$this->CI->load->view($view_name, $params); | |
// render footer | |
$this->CI->load->view('layouts/footer'); | |
} | |
} | |
else | |
{ | |
// render view | |
$this->CI->load->view($view_name, $params); | |
} | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment