summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/general/views.rst
diff options
context:
space:
mode:
Diffstat (limited to 'user_guide_src/source/general/views.rst')
-rw-r--r--user_guide_src/source/general/views.rst213
1 files changed, 0 insertions, 213 deletions
diff --git a/user_guide_src/source/general/views.rst b/user_guide_src/source/general/views.rst
deleted file mode 100644
index 2fc0cb2ca..000000000
--- a/user_guide_src/source/general/views.rst
+++ /dev/null
@@ -1,213 +0,0 @@
-#####
-Views
-#####
-
-A view is simply a web page, or a page fragment, like a header, footer,
-sidebar, etc. In fact, views can flexibly be embedded within other views
-(within other views, etc., etc.) if you need this type of hierarchy.
-
-Views are never called directly, they must be loaded by a
-:doc:`controller <controllers>`. Remember that in an MVC framework, the
-Controller acts as the traffic cop, so it is responsible for fetching a
-particular view. If you have not read the
-:doc:`Controllers <controllers>` page you should do so before
-continuing.
-
-Using the example controller you created in the
-:doc:`controller <controllers>` page, let's add a view to it.
-
-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>
-
-Then save the file in your *application/views/* directory.
-
-Loading a View
-==============
-
-To load a particular view file you will use the following method::
-
- $this->load->view('name');
-
-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 method::
-
- <?php
- class Blog extends CI_Controller {
-
- public 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::
-
- example.com/index.php/blog/
-
-Loading multiple views
-======================
-
-CodeIgniter will intelligently handle multiple calls to
-``$this->load->view()`` from within a controller. If more than one call
-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 {
-
- public 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.
-
-Storing Views within Sub-directories
-====================================
-
-Your view files can also be stored within sub-directories if you prefer
-that type of organization. When doing so you will need to include the
-directory name loading the view. Example::
-
- $this->load->view('directory_name/file_name');
-
-Adding Dynamic Data to the View
-===============================
-
-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 method. Here
-is an example using an array::
-
- $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);
-
-.. 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::
-
- <?php
- class Blog extends CI_Controller {
-
- public 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::
-
- <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.
-
-Creating Loops
-==============
-
-The data array you pass to your view files is not limited to simple
-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::
-
- <?php
- class Blog extends CI_Controller {
-
- public 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 endforeach;?>
- </ul>
-
- </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
- it :doc:`here <alternative_php>`.
-
-Returning views as data
-=======================
-
-There is a third **optional** parameter lets you change the behavior of
-the method so that it returns data as a string rather than sending it
-to your browser. This can be useful if you want to process the data in
-some way. If you set the parameter to TRUE (boolean) it will return
-data. The default behavior is false, which sends it to your browser.
-Remember to assign it to a variable if you want the data returned::
-
- $string = $this->load->view('myfile', '', TRUE); \ No newline at end of file