Kevin
Kevin

Reputation: 653

How to assign html code to variable in codeigniter?

I want to assign some html code to variable and that variable is in controller.

headerview.php

<header id="header" class="header">
        <div class="container">

            <!-- LOGO -->
            <div class="logo"><a href="<?php echo base_url()?>admin/Adminhome"><img src="<?php echo base_url()?>public/images/logo.png" alt=""></a></div>
            <!-- END / LOGO -->
            
                <!-- NAVIGATION -->
                <nav class="navigation">

                    <div class="open-menu">
                        <span class="item item-1"></span>
                        <span class="item item-2"></span>
                        <span class="item item-3"></span>
                    </div>

                    <!-- MENU -->
                    <ul class="menu">
                    
                        <?php if($isAdmin ){ ?>
                        
                            <?php 
                                if($title=='Dashboard'){
                            ?>
                            <li class="current-menu-item"><a href="<?php echo base_url()?>admin/Adminhome">Admin Dashboard</a></li>
                            <?php 
                                }else{
                            ?>
                            <li><a href="<?php echo base_url()?>admin/Adminhome">Admin Dashboard</a></li>   
                            <?php 
                                }
                            ?>
                                
                        <?php } else { ?>   
                            <?php 
                                if($title=='Dashboard'){
                            ?>
                            <li class="current-menu-item"><a href="<?php echo base_url()?>admin/Userhomepage">User Dashboard</a></li>
                            <?php 
                                }else{
                            ?>
                            <li><a href="<?php echo base_url()?>admin/Userhomepage">User Dashboard</a></li> 
                            <?php 
                                }
                            ?>
                        <?php } ?>
                            
                            
                        <?php 
                            if($title=='Courses' || $title=='Add/Edit Categories' || $title=='Upload Manager'){
                            ?>
                        <li class="current-menu-item">
                            <a href="<?php echo base_url()?>admin/Coursedetails/courses">Courses</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Categories">Categories</a></li>
                                <li><a href="<?php echo base_url()?>admin/coursedetails/courses">Courses</a></li>
                                <li><a href="<?php echo base_url()?>admin/uploadmanager">Upload Manager</a></li> 
                            </ul>
                        </li>
                        <?php 
                            }else{
                            ?>
                        <li>
                            <a href="<?php echo base_url()?>admin/Coursedetails/courses">Courses</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Categories">Categories</a></li>
                                <li><a href="<?php echo base_url()?>admin/coursedetails/courses">Courses</a></li>
                                <li><a href="<?php echo base_url()?>admin/uploadmanager">Upload Manager</a></li> 
                            </ul>
                        </li>
                        <?php 
                            }
                            ?>
                        <?php 
                            if($title=='Users' || $title=='User Roles' || $title=='Subscription'){
                            ?>
                        <li class="current-menu-item">
                            <a href="<?php echo base_url()?>admin/Users">Users</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Roles">Roles</a></li>
                                <li><a href="<?php echo base_url()?>admin/Subscription">Subscription</a></li>
                            </ul>
                        </li>
                        <?php 
                            }else{
                            ?>
                         <li>
                            <a href="<?php echo base_url()?>admin/Users">Users</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Roles">Roles</a></li>
                                <li><a href="<?php echo base_url()?>admin/Subscription">Subscription</a></li>
                            </ul>
                        </li>
                        <?php 
                            }
                            ?>
                        <?php 
                            if($title=='Sales' || $title=='Payout Details'){
                            ?>
                        <li class="current-menu-item">
                            <a href="<?php echo base_url()?>admin/Transaction">Sales</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Transaction">Transactions</a></li>
                                <li><a href="<?php echo base_url()?>admin/Transaction/payout">Payouts</a></li>
                            </ul>
                        </li>
                        <?php 
                            }else{
                            ?>
                        <li>
                            <a href="<?php echo base_url()?>admin/Transaction">Sales</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Transaction">Transactions</a></li>
                                <li><a href="<?php echo base_url()?>admin/Transaction/payout">Payouts</a></li>
                            </ul>
                        </li>
                        <?php 
                            }
                            ?>
                    </ul>
                    <!-- END / MENU -->

                    <!-- LIST ACCOUNT INFO -->
                    <ul class="list-account-info">

                        <!-- MESSAGE INFO -->
                      
                        <!-- END / MESSAGE INFO -->

                        <!-- NOTIFICATION -->
                        
                        <!-- END / NOTIFICATION -->

                        <li class="list-item account">
                                <?php 
                                   $userId=$this->session->userdata('cp_adminid');
                                   $profilePic="";
                                   $userQ=$this->Adminmodel->getuser();
                                   foreach ($userQ->result() as $rowuser){
                                    $profilePic=$rowuser->profilePic;
                                    }
                                    ?>
                            <div class="account-info item-click">
                               
                                <?php if($profilePic!=''){ ?> 
                                    <img alt="" src="<?php echo base_url();?>private/<?php echo $userId;?>/<?php echo $profilePic;?>">
                                    <?php }else{?>
                                    <img src="<?php echo base_url()?>public/images/default-profile_pic.png" alt="">
                                    <?php }?>
                            </div>
                            <div class="toggle-account toggle-list">
                                <ul class="list-account">
                                    <li><a href="<?php echo base_url()?>admin/settings/"><i class="icon md-config"></i>Setting</a></li>
                                    <li><a href="<?php echo base_url()?>admin/Adminlogout"><i class="icon md-arrow-right"></i>Sign Out</a></li>
                                </ul>
                            </div>
                        </li>


                    </ul>
                    <!-- END / LIST ACCOUNT INFO -->

                </nav>
                <!-- END / NAVIGATION -->               
        </div>
    </header>

This header is come to all pages in application. So I want it to assign some variable called headerContent and it is located in Admin_controller. That render function called from any another controller that extends Admin_controller and then it loads the headeview to that pages.

Admin_controller

class Admin_controller extends CI_Controller{
function __construct()
{
    parent::__construct();
    $this->load->model("Adminmodel","",true);

    $headerview = 'headerview';
    $this->render($headerview); # calling render() function in same class

}

protected $headerview = 'headerview';
    protected function render($headerContent) { 
        $view_data = array( 'headerContent' => $headerContent);
        $this->load->view($this->headerview);
    }

}

Another controller below that extends Admin_controller called this render function.

Adminhome_controller.php

<?php
require APPPATH . '/controllers/admin/Admin_controller.php';

class Adminhome extends Admin_Controller{
    public function __construct(){
        parent::__construct();
        $this->load->model("Adminmodel","",true);
        
        public function index(){
        
        $data['content']=$this->load->view("admin/adminhomeview",'',true);
        $data['title']='Dashboard';
        $adminId=$this->session->userdata('cp_adminid');
        $permissions=$this->Adminmodel->getpermissions($adminId);
       
       
        $row = $permissions->row();
        
        $data['isAdmin'] = 0;
        if($row->view == 1 or $row->add == 1 or $row->edit == 1 or $row->deleteRole == 1 ){
            $data['isAdmin'] = 1;
        }
        
       $this->render($headerContent);
       
      // $this->load->view("admin/headerview",$data);
        
    }
}
?>

But it showing error like Message: Undefined variable: headerContent in Adminhome_controller.php.

Upvotes: 0

Views: 1853

Answers (2)

Stefan Avramovic
Stefan Avramovic

Reputation: 1353

you culd create a template view file containing

template view:

   <html>
<?php  $data = array('permission' => $permission); ?>
         <?php $this->load->view('templateincludes/header',$data); ?>


                        <?php $this->load->view($main_content); ?>  


             <?php $this->load->view('templateincludes/footer'); ?>  
    </html>

controler:

 $data = array('permission' => '1', 'main_content' => 'folder_to_your_view/view_file_you_want_to_load');

 $this->load->view('template', $data);

header view:

<?= $permission ?>

Upvotes: 1

Norlihazmey Ghazali
Norlihazmey Ghazali

Reputation: 9060

But it showing error like Message: Undefined variable: headerContent in Adminhome_controller.php

There is no variable with the name $headerContent inside extended class. Seems like you want access the parent/base class's variable.

To overcome this, you can declare protected field inside Parent Controller (Admin_controller.php), and access it inside child controller :

class Admin_controller extends CI_Controller{

  protected $headerContent; // declare protected field
  protected $headerview = 'headerview';

  function __construct()
  {
     parent::__construct();
     $this->load->model("Adminmodel","",true);

     $headerview = 'headerview';
     $this->render($headerview); # calling render() function in same class

  }      

  protected function render($headerContent) { 
     $view_data = array( 'headerContent' => $headerContent);
     $this->headerContent = $headerContent; // assign value into $headerContent field
     $this->load->view($this->headerview);
  }

}

And you can access it directly inside child class (Adminhome_controller.php) by using :

$this->render($this->headerContent);

Upvotes: 0

Related Questions