Reputation: 124
I just graduated and I'm nearing completion of my web portfolio. I'd like to convert some of my school projects into CodeIgniter before my student portfolio is no longer hosted. I want to know if I can nest my projects' view folders within a parent view folder and manipulate it using a single controller before I waste too much of my time.
Below is an example of what the view's folder/file structure would look like.
views/nwtc
nwtc
|
+---website-reviews
| |
| +---page1.php
| +---page2.php
| +---page3.php
| +---page4.php
| +---page5.php
| +---page6.php
|
+---emerging-technology
| |
| +---page1.php
|
+---website-design
| |
| +---page1.php
| +---page2.php
| +---page3.php
| +---page4.php
| +---page5.php
| +---page6.php
|
+---index.php // <--- Project landing page
mysite.com/nwtc/$project/$page
controllers/Nwtc.php
<?php
class Nwtc extends CI_Controller {
public function index()
{
$data['title'] = 'NWTC Projects';
$data['description'] = '';
$this->load->view('templates/nwtc_header', $data);
$this->load->view('nwtc/index', $data);
$this->load->view('templates/nwtc_footer');
}
public function view($project, $page) // <--- Total Guess
{
if ( ! file_exists(APPPATH.'views/nwtc/'.$project.'/'.$page.'.php'))
{
show_404();
}
$data['title'] = ucwords(str_replace("-"," ",$project)).' '.ucfirst($page);
$data['assets'] = $project; // Project-specific css/js filenames
$data['description'] = array(
'website-reviews' => "",
'emerging-technology' => "",
'website-design' => ""
);
$this->load->view('nwtc/'.$project.'/'.$page, $data); // <--- I'll be amazed if this works
}
}
Upvotes: 1
Views: 660
Reputation: 77
Yes its possible to load your view. If your file exists it will load otherwise it will throw error.
public function view($project='', $page='')
{
if($project !='' && $page !='')
{
$this->load->view('nwtc/'.$project.'/'.$page, $data);
}
}
Upvotes: 1
Reputation: 636
Yes,It is possible and your code looks ok for loading pages
public function view($project, $page)
{
//here $project argument stands for sub folder name
//eg:$project = 'website-reviews',$page = 'page1',then we can load page1.php file
// do the operations
$this->load->view('nwtc/'.$project.'/'.$page, $data);
}
In my view,your code doesn't need any changes
Upvotes: 1