Welcome Guest, Not a member yet? Register   Sign In
Do this code for most functions
#11

[eluser]CroNiX[/eluser]
First, it should be a standalone library (/application/libraries/yourcode.php), not "at the top of your viewfile".

Second, you would load your library in the controller or autoload it, not manually, using CI's load method: $this->load->library('yourcode');

Third, you would access your example like:
$test = $this->yourcode->returnTrue();

I think you are missing the point of doing this in a library. The library should do everything for you, including creating the header/footer/menu/etc, along with showing the appropriate view for if they are logged in or not.

Lets say you had a controller for a shopping cart. In the shopping cart controller, you are creating a main content view that shows the products and prices for a category. In that controller, you only create the view that is for displaying the products and send that to the library, where the library will add the header, footer, menu, etc.

Personally, I autoload my "template" library.

Then in my controller, I do what is needed to create the "current view".
Controller:
Code:
function index()
{
  //load the model to get products
  $this->load->model('product_model');

  //set the data that the view will need to display the products
  $data['products'] = $this->product_model->get_products();

  //Now load the view into a variable (don't output immediately) by setting the 3rd parameter to TRUE
  $view = $this->load->view('display_product_view', $data, TRUE);

  //now send this view to your template library where it will add the header/footer/etc.
  $this->template_library->create_page('this is my page title', $view);
}

Template library:
Code:
public function create_page($page_title, $page_view)
{
  //set the page title that goes with the header view
  $header_data['page_title'] = $page_title;
  
  //Check whether user is logged in and get appropriate view
  if ($this->is_logged_in())
  {
    $header_data['user'] = $this->CI->load->view('logged_in_view', null, TRUE);
  }
  else
  {
    $header_data['user'] = $this->CI->load->view('not_logged_in_view', null, TRUE);
  }
  //assemble the page title along with login view
  $header = $this->CI->load->view('header', $header_data, TRUE);

  //Get the footer
  $footer = $this->CI->load->view('footer', null, TRUE);

  //set the final output (header, content and footer).  Use CI::output() so we can use caching
  $this->CI->output->set_output($header . $page_view . $footer);
}




Theme © iAndrew 2016 - Forum software by © MyBB