diff options
author | Derek Jones <derek.jones@ellislab.com> | 2011-10-05 23:42:42 +0200 |
---|---|---|
committer | Derek Jones <derek.jones@ellislab.com> | 2011-10-05 23:42:42 +0200 |
commit | 9607e738fc65f0dc3b70be810c6d2c3dc5060f87 (patch) | |
tree | 73970aaf706ff9481ebf8715edb32beced755ea4 /user_guide_src/source/general/views.rst | |
parent | 3af48520578c79460e31743d145f6509482a8ff9 (diff) |
fixed code block spacing on URLs and Views general docs
Diffstat (limited to 'user_guide_src/source/general/views.rst')
-rw-r--r-- | user_guide_src/source/general/views.rst | 132 |
1 files changed, 105 insertions, 27 deletions
diff --git a/user_guide_src/source/general/views.rst b/user_guide_src/source/general/views.rst index cb60ce20f..7d0accafd 100644 --- a/user_guide_src/source/general/views.rst +++ b/user_guide_src/source/general/views.rst @@ -20,10 +20,17 @@ Creating a View =============== Using your text editor, create a file called blogview.php, and put this -in it: - -<html> <head> <title>My Blog</title> </head> <body> <h1>Welcome to my -Blog!</h1> </body> </html> +in it:: + + <html> + <head> + <title>My Blog</title> + </head> + <body> + <h1>Welcome to my Blog!</h1> + </body> + </html> + Then save the file in your application/views/ folder. Loading a View @@ -37,10 +44,18 @@ Where name is the name of your view file. Note: The .php file extension does not need to be specified unless you use something other than .php. Now, open the controller file you made earlier called blog.php, and -replace the echo statement with the view loading function: +replace the echo statement with the view loading function:: + + <?php + class Blog extends CI_Controller { + + function index() + { + $this->load->view('blogview'); + } + } + ?> -<?php class Blog extends CI_Controller { function index() { -$this->load->view('blogview'); } } ?> If you visit your site using the URL you did earlier you should see your new view. The URL was similar to this:: @@ -55,8 +70,21 @@ happens they will be appended together. For example, you may wish to have a header view, a menu view, a content view, and a footer view. That might look something like this:: - <?php class Page extends CI_Controller { function index() { $data['page_title'] = 'Your title'; $this->load->view('header'); $this->load->view('menu'); $this->load->view('content', $data); $this->load->view('footer'); } } ?> + <?php + + class Page extends CI_Controller { + + function index() + { + $data['page_title'] = 'Your title'; + $this->load->view('header'); + $this->load->view('menu'); + $this->load->view('content', $data); + $this->load->view('footer'); + } + } + ?> In the example above, we are using "dynamically added data", which you will see below. @@ -77,25 +105,49 @@ Data is passed from the controller to the view by way of an **array** or an **object** in the second parameter of the view loading function. Here is an example using an array:: - $data = array( 'title' => 'My Title', 'heading' => 'My Heading', 'message' => 'My Message' ); $this->load->view('blogview', $data); + $data = array( + 'title' => 'My Title', + 'heading' => 'My Heading', + 'message' => 'My Message' + ); + + $this->load->view('blogview', $data); And here's an example using an object:: - $data = new Someclass(); $this->load->view('blogview', $data); + $data = new Someclass(); + $this->load->view('blogview', $data); Note: If you use an object, the class variables will be turned into array elements. -Let's try it with your controller file. Open it add this code: +Let's try it with your controller file. Open it add this code:: + + <?php + class Blog extends CI_Controller { + + function index() + { + $data['title'] = "My Real Title"; + $data['heading'] = "My Real Heading"; + + $this->load->view('blogview', $data); + } + } + ?> -<?php class Blog extends CI_Controller { function index() { -$data['title'] = "My Real Title"; $data['heading'] = "My Real Heading"; -$this->load->view('blogview', $data); } } ?> Now open your view file and change the text to variables that correspond -to the array keys in your data: +to the array keys in your data:: + + <html> + <head> + <title><?php echo $title;?></title> + </head> + <body> + <h1><?php echo $heading;?></h1> + </body> + </html> -<html> <head> <title><?php echo $title;?></title> </head> <body> -<h1><?php echo $heading;?></h1> </body> </html> Then load the page at the URL you've been using and you should see the variables replaced. @@ -107,18 +159,44 @@ variables. You can pass multi dimensional arrays, which can be looped to generate multiple rows. For example, if you pull data from your database it will typically be in the form of a multi-dimensional array. -Here's a simple example. Add this to your controller: +Here's a simple example. Add this to your controller:: + + <?php + class Blog extends CI_Controller { + + function index() + { + $data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands'); + + $data['title'] = "My Real Title"; + $data['heading'] = "My Real Heading"; + + $this->load->view('blogview', $data); + } + } + ?> + +Now open your view file and create a loop:: + + <html> + <head> + <title><?php echo $title;?></title> + </head> + <body> + <h1><?php echo $heading;?></h1> + + <h3>My Todo List</h3> + + <ul> + <?php foreach ($todo_list as $item):?> + + <li><?php echo $item;?></li> -<?php class Blog extends CI_Controller { function index() { -$data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands'); -$data['title'] = "My Real Title"; $data['heading'] = "My Real Heading"; -$this->load->view('blogview', $data); } } ?> -Now open your view file and create a loop: + <?php endforeach;?> + </ul> -<html> <head> <title><?php echo $title;?></title> </head> <body> -<h1><?php echo $heading;?></h1> <h3>My Todo List</h3> <ul> <?php foreach -($todo_list as $item):?> <li><?php echo $item;?></li> <?php -endforeach;?> </ul> </body> </html> + </body> + </html> .. note:: You'll notice that in the example above we are using PHP's alternative syntax. If you are not familiar with it you can read about |