Codeigniter + Ion Auth part 3

Creating the basic template views

As you can see from our MY_Controller, we created some render() method that will create the views. Also, the default template is named “public_master_view” and is called from the application/views/templates directory. So let’s create one.

We will save a public_master_view.php file inside views/templates directory (which we will create…). The public master view will simply call a public header view and a public footer view from templates/parts directory:

<?php defined('BASEPATH') OR exit('No direct script access allowed');
  $this->load->view('templates/_parts/public_master_header_view'); ?>
  <?php echo $the_view_content;?>
<?php $this->load->view('templates/_parts/public_master_footer_view');?

Now we will create the public_master_header_view.php inside application/views/templates/_parts directory:

<?php defined('BASEPATH') OR exit('No direct script access allowed');?>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?php echo $page_title;?></title>
    <meta name="description" value="<?php echo $page_description;?>" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <?php echo $before_closing_head;?>
</head>
<body>

and the public_master_footer_view.php inside the same application/views/templates/_parts directory:

<?php defined('BASEPATH') OR exit('No direct script access allowed');?>
<footer>
    <div class="container">
        <p class="footer">Page rendered in <strong>{elapsed_time}</strong> seconds. <?php echo  (ENVIRONMENT === 'development') ?  'CodeIgniter Version <strong>' . CI_VERSION . '</strong>' : '' ?></p>
    </div>
</footer>
<?php echo $before_closing_body;?>
</body>
</html>

We also need to create the template views for the authenticated users. So simply duplicate auth_master_view.php and replace the names of the header and footer views with
auth_master_header_view.php and respectively auth_master_footer_view.php.

<?php defined('BASEPATH') OR exit('No direct script access allowed');
$this->load->view('templates/_parts/auth_master_header_view'); ?>
<?php echo $the_view_content;?>
<?php $this->load->view('templates/_parts/auth_master_footer_view');?>

Also, duplicate the template header view and template footer view in templates/_parts changing the names accordingly to auth_master_header_view.php and auth_master_footer_view.php.

Now let’s see if it all works. Inside the User.php we created a login() method. Let’s change it so that it will use the render() method we’ve defined in the MY_Controller.

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
class User extends MY_Controller {
     
    function __construct()
    {
        parent::__construct();
        $this->load->library('ion_auth');
    }
 
    public function index()
    {
        $this->load->view('welcome_message');
    }
 
    public function login()
    {
        $this->data['message'] = 'here will be the login form';
        $this->render('user/login_view');
    }
 
    public function logout()
    {
        echo 'here we will do the logout';
    }
}

by kushan


avatar
  Subscribe  
Notify of