0

How can I say this code below in my parent::_construct, then call it into individual child function?

      /*bootstrap classes*/
      $pag_config ['full_tag_open'] = "<ul class='pagination'>" ;
      $pag_config ['full_tag_close'] ="</ul>" ;
      $pag_config ['num_tag_open'] = '<li>' ;
      $pag_config ['num_tag_close'] = '</li>' ;
      $pag_config ['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>" ;
      $pag_config ['cur_tag_close'] = "<span class='sr-only'></span></a></li>" ;
      $pag_config ['next_tag_open'] = "<li>" ;
      $pag_config ['next_tagl_close'] = "</li>" ;
      $pag_config ['prev_tag_open'] = "<li>" ;
      $pag_config ['prev_tagl_close'] = "</li>" ;
      $pag_config ['first_tag_open'] = "<li>" ;
      $pag_config ['first_tagl_close'] = "</li>" ;
      $pag_config ['last_tag_open'] = "<li>" ;
      $pag_config ['last_tagl_close'] = "</li>" ;
Mauliardiwinoto
  • 107
  • 2
  • 10
  • I couldn't completely understand your question, but could you declare your code in a separate function, than call this function from constructor and from any other place you need within child function? – Skriptotajs Sep 13 '16 at 10:34
  • no, it is on the same file. I need to write those code as one of parent construct. So to use it for several child function on the same file, i don't have to write all of it again ... – Mauliardiwinoto Sep 13 '16 at 10:39
  • So you want to define this array in constructor and then access the same array in child functions? – Skriptotajs Sep 13 '16 at 10:42
  • Indeed Mr.Skriptotajs, could you please help me? – Mauliardiwinoto Sep 13 '16 at 10:43
  • If you need this code in parent class, put this in parent class. – Joao Polo Sep 13 '16 at 12:38

2 Answers2

1

Use $this to access class variables.

class YourClass extends CI_Controller {

    function __construct() {
        parent::__construct();

        $this->pag_config = array();
        $this->pag_config['full_tag_open'] = "<ul class='pagination'>" ;
        $this->pag_config['full_tag_close'] ="</ul>" ;
        $this->pag_config['num_tag_open'] = '<li>' ;
        $this->pag_config['num_tag_close'] = '</li>' ;
        $this->pag_config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>" ;
        $this->pag_config['cur_tag_close'] = "<span class='sr-only'></span></a></li>" ;
        $this->pag_config['next_tag_open'] = "<li>" ;
        $this->pag_config['next_tagl_close'] = "</li>" ;
        $this->pag_config['prev_tag_open'] = "<li>" ;
        $this->pag_config['prev_tagl_close'] = "</li>" ;
        $this->pag_config['first_tag_open'] = "<li>" ;
        $this->pag_config['first_tagl_close'] = "</li>" ;
        $this->pag_config['last_tag_open'] = "<li>" ;
        $this->pag_config['last_tagl_close'] = "</li>" ;
    }

    function childFunction() {
        echo $this->pag_config['full_tag_open'];
    }

}

Above example is more similar to what you asked for, but I would suggest to define it as property, because it looks much cleaner.

class YourClass extends CI_Controller {

    private $pag_config = array (
        /*bootstrap classes*/
        'full_tag_open' => "<ul class='pagination'>" ,
        'full_tag_close' => "</ul>" ,
        'num_tag_open' => '<li>' ,
        'num_tag_close' => '</li>' ,
        'cur_tag_open' => "<li class='disabled'><li class='active'><a href='#'>" ,
        'cur_tag_close' => "<span class='sr-only'></span></a></li>" ,
        'next_tag_open' => "<li>" ,
        'next_tagl_close' => "</li>" ,
        'prev_tag_open' => "<li>" ,
        'prev_tagl_close' => "</li>" ,
        'first_tag_open' => "<li>" ,
        'first_tagl_close' => "</li>" ,
        'last_tag_open' => "<li>" ,
        'last_tagl_close' => "</li>" ,
    ) ;

    function childFunction() {
        echo $this->pag_config['full_tag_open'];
    }

}
Skriptotajs
  • 844
  • 6
  • 15
0

inside parent construct :

     $this -> pag_config = array (
        /*bootstrap classes*/
        'full_tag_open' => "<ul class='pagination'>" ,
        'full_tag_close' => "</ul>" ,
        'num_tag_open' => '<li>' ,
        'num_tag_close' => '</li>' ,
        'cur_tag_open' => "<li class='disabled'><li class='active'><a href='#'>" ,
        'cur_tag_close' => "<span class='sr-only'></span></a></li>" ,
        'next_tag_open' => "<li>" ,
        'next_tagl_close' => "</li>" ,
        'prev_tag_open' => "<li>" ,
        'prev_tagl_close' => "</li>" ,
        'first_tag_open' => "<li>" ,
        'first_tagl_close' => "</li>" ,
        'last_tag_open' => "<li>" ,
        'last_tagl_close' => "</li>" ,
      ) ;

Inside child function :

      $pag_config ['total_rows'] = count ($to_count) ;
      $pag_config ['per_page'] = $to_show ; 
      $pag_config ['uri_segment'] = 3 ; 
      $pag_config ['base_url'] = base_url().'prcsys/overall' ;

      $merge_paginate = array_merge($pag_config,$this -> pag_config);
      $this -> pagination -> initialize ($merge_paginate) ;
Mauliardiwinoto
  • 107
  • 2
  • 10