summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/tutorial/static_pages.rst
diff options
context:
space:
mode:
Diffstat (limited to 'user_guide_src/source/tutorial/static_pages.rst')
-rw-r--r--user_guide_src/source/tutorial/static_pages.rst170
1 files changed, 0 insertions, 170 deletions
diff --git a/user_guide_src/source/tutorial/static_pages.rst b/user_guide_src/source/tutorial/static_pages.rst
deleted file mode 100644
index 5daaa958f..000000000
--- a/user_guide_src/source/tutorial/static_pages.rst
+++ /dev/null
@@ -1,170 +0,0 @@
-############
-Static pages
-############
-
-**Note:** This tutorial assumes you've downloaded CodeIgniter and
-:doc:`installed the framework <../installation/index>` in your
-development environment.
-
-The first thing you're going to do is set up a **controller** to handle
-static pages. A controller is simply a class that helps delegate work.
-It is the glue of your web application.
-
-For example, when a call is made to:
-
- http://example.com/news/latest/10
-
-We might imagine that there is a controller named "news". The method
-being called on news would be "latest". The news method's job could be to
-grab 10 news items, and render them on the page. Very often in MVC,
-you'll see URL patterns that match:
-
- http://example.com/[controller-class]/[controller-method]/[arguments]
-
-As URL schemes become more complex, this may change. But for now, this
-is all we will need to know.
-
-Create a file at *application/controllers/Pages.php* with the following
-code.
-
-::
-
- <?php
- class Pages extends CI_Controller {
-
- public function view($page = 'home')
- {
- }
- }
-
-You have created a class named ``Pages``, with a view method that accepts
-one argument named ``$page``. The ``Pages`` class is extending the
-``CI_Controller`` class. This means that the new pages class can access the
-methods and variables defined in the ``CI_Controller`` class
-(*system/core/Controller.php*).
-
-The **controller is what will become the center of every request** to
-your web application. In very technical CodeIgniter discussions, it may
-be referred to as the *super object*. Like any php class, you refer to
-it within your controllers as ``$this``. Referring to ``$this`` is how
-you will load libraries, views, and generally command the framework.
-
-Now you've created your first method, it's time to make some basic page
-templates. We will be creating two "views" (page templates) that act as
-our page footer and header.
-
-Create the header at *application/views/templates/header.php* and add
-the following code:
-
-::
-
- <html>
- <head>
- <title>CodeIgniter Tutorial</title>
- </head>
- <body>
-
- <h1><?php echo $title; ?></h1>
-
-The header contains the basic HTML code that you'll want to display
-before loading the main view, together with a heading. It will also
-output the ``$title`` variable, which we'll define later in the controller.
-Now, create a footer at *application/views/templates/footer.php* that
-includes the following code:
-
-::
-
- <em>&copy; 2015</em>
- </body>
- </html>
-
-Adding logic to the controller
-------------------------------
-
-Earlier you set up a controller with a ``view()`` method. The method
-accepts one parameter, which is the name of the page to be loaded. The
-static page templates will be located in the *application/views/pages/*
-directory.
-
-In that directory, create two files named *home.php* and *about.php*.
-Within those files, type some text − anything you'd like − and save them.
-If you like to be particularly un-original, try "Hello World!".
-
-In order to load those pages, you'll have to check whether the requested
-page actually exists:
-
-::
-
- public function view($page = 'home')
- {
- if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
- {
- // Whoops, we don't have a page for that!
- show_404();
- }
-
- $data['title'] = ucfirst($page); // Capitalize the first letter
-
- $this->load->view('templates/header', $data);
- $this->load->view('pages/'.$page, $data);
- $this->load->view('templates/footer', $data);
- }
-
-Now, when the page does exist, it is loaded, including the header and
-footer, and displayed to the user. If the page doesn't exist, a "404
-Page not found" error is shown.
-
-The first line in this method checks whether the page actually exists.
-PHP's native ``file_exists()`` function is used to check whether the file
-is where it's expected to be. ``show_404()`` is a built-in CodeIgniter
-function that renders the default error page.
-
-In the header template, the ``$title`` variable was used to customize the
-page title. The value of title is defined in this method, but instead of
-assigning the value to a variable, it is assigned to the title element
-in the ``$data`` array.
-
-The last thing that has to be done is loading the views in the order
-they should be displayed. The second parameter in the ``view()`` method is
-used to pass values to the view. Each value in the ``$data`` array is
-assigned to a variable with the name of its key. So the value of
-``$data['title']`` in the controller is equivalent to ``$title`` in the
-view.
-
-Routing
--------
-
-The controller is now functioning! Point your browser to
-``[your-site-url]index.php/pages/view`` to see your page. When you visit
-``index.php/pages/view/about`` you'll see the about page, again including
-the header and footer.
-
-Using custom routing rules, you have the power to map any URI to any
-controller and method, and break free from the normal convention:
-``http://example.com/[controller-class]/[controller-method]/[arguments]``
-
-Let's do that. Open the routing file located at
-*application/config/routes.php* and add the following two lines.
-Remove all other code that sets any element in the ``$route`` array.
-
-::
-
- $route['default_controller'] = 'pages/view';
- $route['(:any)'] = 'pages/view/$1';
-
-CodeIgniter reads its routing rules from top to bottom and routes the
-request to the first matching rule. Each rule is a regular expression
-(left-side) mapped to a controller and method name separated by slashes
-(right-side). When a request comes in, CodeIgniter looks for the first
-match, and calls the appropriate controller and method, possibly with
-arguments.
-
-More information about routing can be found in the URI Routing
-:doc:`documentation <../general/routing>`.
-
-Here, the second rule in the ``$routes`` array matches **any** request
-using the wildcard string ``(:any)``. and passes the parameter to the
-``view()`` method of the ``Pages`` class.
-
-Now visit ``index.php/about``. Did it get routed correctly to the ``view()``
-method in the pages controller? Awesome!