php - dynamic page is not working -
i have created controller named index , want develop dynamic controllers big hurdle creating page name again , again decided create have confusion though how developing pages have placed option in admin panel users can create pages though big issue unable retrive pages.
controller
public function index($page = 7) { //$page = 7 7 default page set home $page_data = $this->get_data->alldata('pages', $page); $data['title'] = $page_data->row()->pagetitle; $class = explode("/", $page_data->row()->template); $data['body_class'] = $class[1]; $this->load->view('includes/header.php', $data); if($class[1] == 'home') { $this->load->view('templates/slider'); } $this->load->view('templates/navigation.php'); $page_content = $page_data->row()->template; $this->load->view($page_content, $data); $this->load->view('includes/footer.php'); } public function page($pagename) { $page_data = $this->get_data->alldata('pages', $pagename); $data['title'] = $page_data->row()->pagetitle; $class = explode("/", $page_data->row()->template); $data['body_class'] = $class[1]; $this->load->view('includes/header.php', $data); if($class[1] == 'home') { $this->load->view('templates/slider'); } $this->load->view('templates/navigation.php'); if($class[1] == 'home') { $data['slider'] = 'templates/slider'; } $data['content'] = $page_data->row()->template; $this->load->view('index', $data); $this->load->view('templates/footer-form.php'); $this->load->view('includes/footer.php'); }
model
public function alldata($table, $pageid) { $query_data = $this->db->get_where($table, array('pageid' => $pageid)); return $query_data; }
my navigation page
<?php $sql_nav = $this->db->get("menu_navigation"); foreach($sql_nav->result() $nav) { echo "<li><a href='".base_url()."home/page/".$nav->menu_name."'>".$nav->$menu_name."</a></li>"; //output http://localhost:90/kwikrepair/home/page/(menu name page name exist in database) } ?>
now trying send call pages of requested data coming pages page data call upon when users click on navigation , the page id want pass in parameter index controller how passed ?
this isn't correct way develop dynamic pages using codeigniter. codeigniter mvc framework. if follow proper seperation of model-view-controller, easy develop dynamic web pages using codeigniter.
codeigniter user guide easy follow , has examples. please try of given tutorials.
in codeigniter, views loaded in order appear in controller. like:
$this->load->view('header'); $this->load->view('body'); $this->load->view('footer');
so if want optionally load page segment, in controller:
if($class[1] == 'home') { $this->load->view('templates/slider'); }
you don't pass view inside variable. passing data database model. pass data view, do:
$data['title'] = "some title" //any data or variable
then can pass data associated view like:
$this->load->view('my_view',$data);
and able view title $title variable in my_view.
similarly can save navigation template in views/templates folder , load as:
$this->load->view('templates/navigation');
you don't do:
<?php include('templates/navigation.php'); ?>
like normal php pages. codeigniter mvc web framework. follow proper mvc guidelines described in codeigniter's excellent user guide documentation.
default format of codeigniter urls like:
<installation-folder>/index.php/<controller>/<function>
if have controller named welcome.php like:
class welcome extends ci_controller { /** * index page controller. * * maps following url * http://example.com/index.php/welcome * - or - * http://example.com/index.php/welcome/index * - or - * since controller set default controller in * config/routes.php, it's displayed @ http://example.com/ * * other public methods not prefixed underscore * map /index.php/welcome/<method_name> * @see https://codeigniter.com/user_guide/general/urls.html */ public function index() { $this->load->view('welcome_message'); } public function display($page = 7){ echo $page; } }
i can go page:
http://127.0.0.1/ci/index.php/welcome/display
and shown 7, default value assigned $page variable if don't pass anything.
if go to:
http://127.0.0.1/ci/index.php/welcome/display/2
$page variable assigned value 2 , display 2.
here comments taken default controller comes codeigniter installation:
/** * index page controller. * * maps following url * http://example.com/index.php/welcome * - or - * http://example.com/index.php/welcome/index * - or - * since controller set default controller in * config/routes.php, it's displayed @ http://example.com/ * * other public methods not prefixed underscore * map /index.php/welcome/<method_name> * @see https://codeigniter.com/user_guide/general/urls.html */
Comments
Post a Comment