summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--system/core/Common.php5
-rw-r--r--system/core/Input.php4
-rw-r--r--system/core/Loader.php47
-rw-r--r--system/libraries/Cache/drivers/Cache_redis.php2
-rw-r--r--system/libraries/Calendar.php2
-rw-r--r--system/libraries/Session/drivers/Session_database_driver.php4
-rw-r--r--tests/codeigniter/core/Input_test.php64
-rw-r--r--tests/codeigniter/core/Security_test.php20
-rw-r--r--user_guide_src/source/changelog.rst22
-rw-r--r--user_guide_src/source/contributing/index.rst7
-rw-r--r--user_guide_src/source/general/ancillary_classes.rst20
-rw-r--r--user_guide_src/source/general/credits.rst8
-rw-r--r--user_guide_src/source/general/environments.rst4
-rw-r--r--user_guide_src/source/general/requirements.rst2
-rw-r--r--user_guide_src/source/helpers/date_helper.rst4
-rw-r--r--user_guide_src/source/helpers/email_helper.rst2
-rw-r--r--user_guide_src/source/helpers/file_helper.rst2
-rw-r--r--user_guide_src/source/helpers/smiley_helper.rst2
-rw-r--r--user_guide_src/source/helpers/string_helper.rst2
-rw-r--r--user_guide_src/source/helpers/url_helper.rst4
-rw-r--r--user_guide_src/source/installation/downloads.rst16
-rw-r--r--user_guide_src/source/installation/upgrade_200.rst4
-rw-r--r--user_guide_src/source/installation/upgrade_300.rst2
-rw-r--r--user_guide_src/source/libraries/caching.rst3
-rw-r--r--user_guide_src/source/libraries/encryption.rst2
-rw-r--r--user_guide_src/source/libraries/javascript.rst8
-rw-r--r--user_guide_src/source/libraries/language.rst2
-rw-r--r--user_guide_src/source/libraries/loader.rst4
-rw-r--r--user_guide_src/source/libraries/sessions.rst9
-rw-r--r--user_guide_src/source/libraries/uri.rst4
-rw-r--r--user_guide_src/source/overview/features.rst2
-rw-r--r--user_guide_src/source/tutorial/create_news_items.rst22
-rw-r--r--user_guide_src/source/tutorial/index.rst8
-rw-r--r--user_guide_src/source/tutorial/news_section.rst14
-rw-r--r--user_guide_src/source/tutorial/static_pages.rst8
35 files changed, 200 insertions, 135 deletions
diff --git a/system/core/Common.php b/system/core/Common.php
index ee5a705b2..f28272b5b 100644
--- a/system/core/Common.php
+++ b/system/core/Common.php
@@ -741,6 +741,11 @@ if ( ! function_exists('html_escape'))
*/
function html_escape($var, $double_encode = TRUE)
{
+ if (empty($var))
+ {
+ return $var;
+ }
+
if (is_array($var))
{
return array_map('html_escape', $var, array_fill(0, count($var), $double_encode));
diff --git a/system/core/Input.php b/system/core/Input.php
index 6be4b9a6c..12332cf51 100644
--- a/system/core/Input.php
+++ b/system/core/Input.php
@@ -490,9 +490,9 @@ class CI_Input {
)
);
- for ($i = 0; $i < 8; $i++)
+ for ($j = 0; $j < 8; $j++)
{
- $ip[$i] = intval($ip[$i], 16);
+ $ip[$j] = intval($ip[$j], 16);
}
$sprintf = '%016b%016b%016b%016b%016b%016b%016b%016b';
diff --git a/system/core/Loader.php b/system/core/Loader.php
index b2eeb3b1d..254ad0d6d 100644
--- a/system/core/Loader.php
+++ b/system/core/Loader.php
@@ -1079,17 +1079,26 @@ class CI_Loader {
log_message('debug', $library_name.' class already loaded. Second attempt ignored.');
return;
}
- elseif (file_exists(APPPATH.'libraries/'.$file_path.$library_name.'.php'))
+
+ $paths = $this->_ci_library_paths;
+ array_pop($paths); // BASEPATH
+ array_pop($paths); // APPPATH (needs to be the first path checked)
+ array_unshift($paths, APPPATH);
+
+ foreach ($paths as $path)
{
- // Override
- include_once(APPPATH.'libraries/'.$file_path.$library_name.'.php');
- if (class_exists($prefix.$library_name, FALSE))
+ if (file_exists($path = $path.'libraries/'.$file_path.$library_name.'.php'))
{
- return $this->_ci_init_library($library_name, $prefix, $params, $object_name);
- }
- else
- {
- log_message('debug', APPPATH.'libraries/'.$file_path.$library_name.'.php exists, but does not declare '.$prefix.$library_name);
+ // Override
+ include_once($path);
+ if (class_exists($prefix.$library_name, FALSE))
+ {
+ return $this->_ci_init_library($library_name, $prefix, $params, $object_name);
+ }
+ else
+ {
+ log_message('debug', $path.' exists, but does not declare '.$prefix.$library_name);
+ }
}
}
@@ -1097,16 +1106,20 @@ class CI_Loader {
// Check for extensions
$subclass = config_item('subclass_prefix').$library_name;
- if (file_exists(APPPATH.'libraries/'.$file_path.$subclass.'.php'))
+ foreach ($paths as $path)
{
- include_once(APPPATH.'libraries/'.$file_path.$subclass.'.php');
- if (class_exists($subclass, FALSE))
+ if (file_exists($path = $path.'libraries/'.$file_path.$subclass.'.php'))
{
- $prefix = config_item('subclass_prefix');
- }
- else
- {
- log_message('debug', APPPATH.'libraries/'.$file_path.$subclass.'.php exists, but does not declare '.$subclass);
+ include_once($path);
+ if (class_exists($subclass, FALSE))
+ {
+ $prefix = config_item('subclass_prefix');
+ break;
+ }
+ else
+ {
+ log_message('debug', APPPATH.'libraries/'.$file_path.$subclass.'.php exists, but does not declare '.$subclass);
+ }
}
}
diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php
index 5236556d9..a35fbf6d2 100644
--- a/system/libraries/Cache/drivers/Cache_redis.php
+++ b/system/libraries/Cache/drivers/Cache_redis.php
@@ -111,7 +111,7 @@ class CI_Cache_redis extends CI_Driver
{
if (is_array($data) OR is_object($data))
{
- if ( ! $this->_redis->sAdd('_ci_redis_serialized', $id))
+ if ( ! $this->_redis->sIsMember('_ci_redis_serialized', $id) && ! $this->_redis->sAdd('_ci_redis_serialized', $id))
{
return FALSE;
}
diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php
index 014daac58..42fa00af2 100644
--- a/system/libraries/Calendar.php
+++ b/system/libraries/Calendar.php
@@ -131,7 +131,7 @@ class CI_Calendar {
{
$this->CI =& get_instance();
- if ( ! in_array('calendar_lang.php', $this->CI->lang->is_loaded, TRUE))
+ if ( ! isset($this->CI->lang->is_loaded['calendar_lang.php']))
{
$this->CI->lang->load('calendar');
}
diff --git a/system/libraries/Session/drivers/Session_database_driver.php b/system/libraries/Session/drivers/Session_database_driver.php
index 76c1cf34e..1d01c2923 100644
--- a/system/libraries/Session/drivers/Session_database_driver.php
+++ b/system/libraries/Session/drivers/Session_database_driver.php
@@ -93,6 +93,10 @@ class CI_Session_database_driver extends CI_Session_driver implements SessionHan
{
throw new Exception('Configured database connection is persistent. Aborting.');
}
+ elseif ($this->_db->cache_on)
+ {
+ throw new Exception('Configured database connection has cache enabled. Aborting.');
+ }
$db_driver = $this->_db->dbdriver.(empty($this->_db->subdriver) ? '' : '_'.$this->_db->subdriver);
if (strpos($db_driver, 'mysql') !== FALSE)
diff --git a/tests/codeigniter/core/Input_test.php b/tests/codeigniter/core/Input_test.php
index 21ff6d81f..c56900d22 100644
--- a/tests/codeigniter/core/Input_test.php
+++ b/tests/codeigniter/core/Input_test.php
@@ -134,6 +134,14 @@ class Input_test extends CI_TestCase {
$this->assertEquals('bar', $foo);
$this->assertEquals("Hello, i try to <script>alert('Hack');</script> your site", $harm);
$this->assertEquals("Hello, i try to [removed]alert&#40;'Hack'&#41;;[removed] your site", $harmless);
+
+ $_SERVER['REQUEST_METHOD'] = 'POST';
+ $_POST['foo']['bar'] = 'baz';
+ $barArray = array('bar' => 'baz');
+
+ $this->assertEquals('baz', $this->input->post('foo[bar]'));
+ $this->assertEquals($barArray, $this->input->post('foo[]'));
+ $this->assertNull($this->input->post('foo[baz]'));
}
// --------------------------------------------------------------------
@@ -198,9 +206,22 @@ class Input_test extends CI_TestCase {
$this->markTestSkipped('TODO: Find a way to test HTTP headers');
}
+ // --------------------------------------------------------------------
+
+ public function test_get_request_header()
+ {
+ $this->markTestSkipped('TODO: Find a way to test HTTP headers');
+ }
+
+ // --------------------------------------------------------------------
+
public function test_ip_address()
{
+ $this->input->ip_address = '127.0.0.1';
+ $this->assertEquals('127.0.0.1', $this->input->ip_address());
+
// 127.0.0.1 is set in our Bootstrap file
+ $this->input->ip_address = FALSE;
$this->assertEquals('127.0.0.1', $this->input->ip_address());
// Invalid
@@ -208,10 +229,47 @@ class Input_test extends CI_TestCase {
$this->input->ip_address = FALSE; // reset cached value
$this->assertEquals('0.0.0.0', $this->input->ip_address());
- // TODO: Add proxy_ips tests
+ $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
- // Back to reality
+ // Proxy_ips tests
+ $this->input->ip_address = FALSE;
+ $this->ci_set_config('proxy_ips', '127.0.0.3, 127.0.0.4, 127.0.0.2');
+ $_SERVER['HTTP_CLIENT_IP'] = '127.0.0.2';
+ $this->assertEquals('127.0.0.1', $this->input->ip_address());
+
+ // Invalid spoof
+ $this->input->ip_address = FALSE;
+ $this->ci_set_config('proxy_ips', 'invalid_ip_address');
+ $_SERVER['HTTP_CLIENT_IP'] = 'invalid_ip_address';
+ $this->assertEquals('127.0.0.1', $this->input->ip_address());
+
+ $this->input->ip_address = FALSE;
+ $this->ci_set_config('proxy_ips', 'http://foo/bar/baz, 127.0.0.1/1');
+ $_SERVER['HTTP_CLIENT_IP'] = '127.0.0.1';
+ $this->assertEquals('127.0.0.1', $this->input->ip_address());
+
+ $this->input->ip_address = FALSE;
+ $this->ci_set_config('proxy_ips', 'http://foo/bar/baz, 127.0.0.2');
+ $_SERVER['HTTP_CLIENT_IP'] = '127.0.0.2';
+ $_SERVER['REMOTE_ADDR'] = '127.0.0.2';
+ $this->assertEquals('127.0.0.2', $this->input->ip_address());
+
+ //IPv6
+ $this->input->ip_address = FALSE;
+ $this->ci_set_config('proxy_ips', 'FE80:0000:0000:0000:0202:B3FF:FE1E:8329/1, FE80:0000:0000:0000:0202:B3FF:FE1E:8300/2');
+ $_SERVER['HTTP_CLIENT_IP'] = 'FE80:0000:0000:0000:0202:B3FF:FE1E:8300';
+ $_SERVER['REMOTE_ADDR'] = 'FE80:0000:0000:0000:0202:B3FF:FE1E:8329';
+ $this->assertEquals('FE80:0000:0000:0000:0202:B3FF:FE1E:8300', $this->input->ip_address());
+
+ $this->input->ip_address = FALSE;
$_SERVER['REMOTE_ADDR'] = '127.0.0.1'; // back to reality
}
-} \ No newline at end of file
+ // --------------------------------------------------------------------
+
+ public function test_user_agent()
+ {
+ $_SERVER['HTTP_USER_AGENT'] = 'test';
+ $this->assertEquals('test', $this->input->user_agent());
+ }
+}
diff --git a/tests/codeigniter/core/Security_test.php b/tests/codeigniter/core/Security_test.php
index 7f467fb1b..b5524da0f 100644
--- a/tests/codeigniter/core/Security_test.php
+++ b/tests/codeigniter/core/Security_test.php
@@ -138,12 +138,12 @@ class Security_test extends CI_TestCase {
public function test_remove_evil_attributes()
{
- $this->assertEquals('<foo [removed]>', $this->security->remove_evil_attributes('<foo onAttribute="bar">', false));
- $this->assertEquals('<foo [removed]>', $this->security->remove_evil_attributes('<foo onAttributeNoQuotes=bar>', false));
- $this->assertEquals('<foo [removed]>', $this->security->remove_evil_attributes('<foo onAttributeWithSpaces = bar>', false));
- $this->assertEquals('<foo prefixOnAttribute="bar">', $this->security->remove_evil_attributes('<foo prefixOnAttribute="bar">', false));
- $this->assertEquals('<foo>onOutsideOfTag=test</foo>', $this->security->remove_evil_attributes('<foo>onOutsideOfTag=test</foo>', false));
- $this->assertEquals('onNoTagAtAll = true', $this->security->remove_evil_attributes('onNoTagAtAll = true', false));
+ $this->assertEquals('<foo [removed]>', $this->security->remove_evil_attributes('<foo onAttribute="bar">', FALSE));
+ $this->assertEquals('<foo [removed]>', $this->security->remove_evil_attributes('<foo onAttributeNoQuotes=bar>', FALSE));
+ $this->assertEquals('<foo [removed]>', $this->security->remove_evil_attributes('<foo onAttributeWithSpaces = bar>', FALSE));
+ $this->assertEquals('<foo prefixOnAttribute="bar">', $this->security->remove_evil_attributes('<foo prefixOnAttribute="bar">', FALSE));
+ $this->assertEquals('<foo>onOutsideOfTag=test</foo>', $this->security->remove_evil_attributes('<foo>onOutsideOfTag=test</foo>', FALSE));
+ $this->assertEquals('onNoTagAtAll = true', $this->security->remove_evil_attributes('onNoTagAtAll = true', FALSE));
}
// --------------------------------------------------------------------
@@ -199,7 +199,7 @@ class Security_test extends CI_TestCase {
public function test_strip_image_tags()
{
- $imgtags = Array(
+ $imgtags = array(
'<img src="smiley.gif" alt="Smiley face" height="42" width="42">',
'<img alt="Smiley face" height="42" width="42" src="smiley.gif">',
'<img src="http://www.w3schools.com/images/w3schools_green.jpg">',
@@ -210,7 +210,7 @@ class Security_test extends CI_TestCase {
'<img srcq="/img/sunset.gif" height="100%" width="100%">'
);
- $urls = Array(
+ $urls = array(
'smiley.gif',
'smiley.gif',
'http://www.w3schools.com/images/w3schools_green.jpg',
@@ -221,7 +221,7 @@ class Security_test extends CI_TestCase {
'<img srcq="/img/sunset.gif" height="100%" width="100%">'
);
- for($i = 0; $i < count($imgtags); $i++)
+ for ($i = 0; $i < count($imgtags); $i++)
{
$this->assertEquals($urls[$i], $this->security->strip_image_tags($imgtags[$i]));
}
@@ -245,4 +245,4 @@ class Security_test extends CI_TestCase {
$this->assertNotEmpty($this->security->get_csrf_hash());
}
-} \ No newline at end of file
+}
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index 44a58915b..a1b15105f 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -56,7 +56,7 @@ Release Date: Not Released
- Added availability checks where usage of dangerous functions like ``eval()`` and ``exec()`` is required.
- Added support for changing the file extension of log files using ``$config['log_file_extension']``.
- Added support for turning newline standardization on/off via ``$config['standardize_newlines']`` and set it to FALSE by default.
- - Added configuration setting ``$config['composer_autoload']`` to enable loading of a `Composer <https://getcomposer.org/>`_ auto-loader.
+ - Added configuration setting ``$config['composer_autoload']`` to enable loading of a `Composer <https://getcomposer.org>`_ auto-loader.
- Removed the automatic conversion of 'programmatic characters' to HTML entities from the :doc:`URI Library <libraries/uri>`.
- Changed log messages that say a class or file was loaded to "info" level instead of "debug", so that they don't pollute log files when ``$config['log_threshold']`` is set to 2 (debug).
@@ -67,7 +67,7 @@ Release Date: Not Released
- Added an optional third parameter to :php:func:`timespan()` that constrains the number of time units displayed.
- Added an optional parameter to :php:func:`timezone_menu()` that allows more attributes to be added to the generated select tag.
- Added function :php:func:`date_range()` that generates a list of dates between a specified period.
- - Deprecated ``standard_date()``, which now just uses the native ``date()`` with `DateTime constants <http://www.php.net/manual/en/class.datetime.php#datetime.constants.types>`_.
+ - Deprecated ``standard_date()``, which now just uses the native ``date()`` with `DateTime constants <http://php.net/manual/en/class.datetime.php#datetime.constants.types>`_.
- Changed :php:func:`now()` to work with all timezone strings supported by PHP.
- Changed :php:func:`days_in_month()` to use the native ``cal_days_in_month()`` PHP function, if available.
@@ -1137,12 +1137,8 @@ Bug fixes for 2.0.2
class <libraries/input>`.
- Added form_validation_lang entries for decimal, less_than and
greater_than.
-- `Fixed issue
- #153 <https://bitbucket.org/ellislab/codeigniter-reactor/issue/153/escape-str-bug-in-mssql-driver>`_
- Escape Str Bug in MSSQL driver.
-- `Fixed issue
- #172 <https://bitbucket.org/ellislab/codeigniter-reactor/issue/172/bug-in-chrome-and-form_open-in-201>`_
- Google Chrome 11 posts incorrectly when action is empty.
+- Fixed issue #153 Escape Str Bug in MSSQL driver.
+- Fixed issue #172 Google Chrome 11 posts incorrectly when action is empty.
Version 2.0.1
=============
@@ -1235,8 +1231,7 @@ Hg Tag: v2.0.0
libraries, models, config files, etc. in a single "package"
directory. See the :doc:`Loader class <libraries/loader>`
documentation for more details.
- - In-development code is now hosted at
- `BitBucket <http://bitbucket.org/ellislab/codeigniter-reactor/>`_.
+ - In-development code is now hosted at BitBucket .
- Removed the deprecated Validation Class.
- Added CI\_ Prefix to all core classes.
- Package paths can now be set in application/config/autoload.php.
@@ -1378,7 +1373,7 @@ Hg Tag: v2.0.0
precision.
- Added alpha, and sha1 string types to random_string() in the
:doc:`String Helper <helpers/string_helper>`.
- - Modified prep_url() so as to not prepend http:// if the supplied
+ - Modified prep_url() so as to not prepend http&#58;// if the supplied
string already has a scheme.
- Modified get_file_info in the file helper, changing filectime()
to filemtime() for dates.
@@ -2118,7 +2113,7 @@ Bugfixes for 1.6.2
instantiating new Language and Exception objects, and not using the
error heading.
- Fixed a bug (#4413) where a URI containing slashes only e.g.
- 'http://example.com/index.php?//' would result in PHP errors
+ 'http&#58;//example.com/index.php?//' would result in PHP errors
- Fixed an array to string conversion error in the Validation library
(#4425)
- Fixed bug (#4451, #4299, #4339) where failed transactions will not
@@ -2770,8 +2765,7 @@ Release Date: September 17, 2006
the core files.
- Added the ability to organize controller files :doc:`into
sub-folders <general/controllers>`. Kudos to Marco for
- `suggesting <http://codeigniter.com/forums/viewthread/627/>`_ this
- (and the next two) feature.
+ suggesting this (and the next two) feature.
- Added regular expressions support for :doc:`routing
rules <./general/routing>`.
- Added the ability to :doc:`remap function
diff --git a/user_guide_src/source/contributing/index.rst b/user_guide_src/source/contributing/index.rst
index e88147753..0112ca065 100644
--- a/user_guide_src/source/contributing/index.rst
+++ b/user_guide_src/source/contributing/index.rst
@@ -10,9 +10,8 @@ Contributing to CodeIgniter
CodeIgniter is a community driven project and accepts contributions of code
and documentation from the community. These contributions are made in the form
-of Issues or `Pull Requests <http://help.github.com/send-pull-requests/>`_ on
-the `CodeIgniter repository
-<https://github.com/bcit-ci/CodeIgniter>`_ on GitHub.
+of Issues or `Pull Requests <https://help.github.com/articles/using-pull-requests/>`_
+on the `CodeIgniter repository <https://github.com/bcit-ci/CodeIgniter>`_ on GitHub.
Issues are a quick way to point out a bug. If you find a bug or documentation
error in CodeIgniter then please check a few things first:
@@ -75,7 +74,7 @@ PHP Style
=========
All code must meet the `Style Guide
-<http://codeigniter.com/user_guide/general/styleguide.html>`_, which is
+<http://www.codeigniter.com/userguide3/general/styleguide.html>`_, which is
essentially the `Allman indent style
<http://en.wikipedia.org/wiki/Indent_style#Allman_style>`_, underscores and
readable operators. This makes certain that all code is the same format as the
diff --git a/user_guide_src/source/general/ancillary_classes.rst b/user_guide_src/source/general/ancillary_classes.rst
index 6a64742ce..f1285d931 100644
--- a/user_guide_src/source/general/ancillary_classes.rst
+++ b/user_guide_src/source/general/ancillary_classes.rst
@@ -11,7 +11,8 @@ get_instance()
.. php:function:: get_instance()
- :returns: object of class CI_Controller
+ :returns: Reference to your controller's instance
+ :rtype: CI_Controller
**Any class that you instantiate within your controller methods can
access CodeIgniter's native resources** simply by using the
@@ -44,17 +45,9 @@ Once you've assigned the object to a variable, you'll use that variable
$CI->config->item('base_url');
// etc.
-.. note:: You'll notice that the above get_instance() ``function`` is being
- passed by reference::
-
- $CI =& get_instance();
-
- This is very important. Assigning by reference allows you to use the
- original CodeIgniter object rather than creating a copy of it.
-
-Furthermore, if you'll be using ``get_instance()`` inside another class,
-then it would be better if you assign it to a property. This way, you
-won't need to call ``get_instance()`` in every single method.
+If you'll be using ``get_instance()`` inside another class, then it would
+be better if you assign it to a property. This way, you won't need to call
+``get_instance()`` in every single method.
Example::
@@ -80,9 +73,8 @@ Example::
{
$this->CI->config->item('base_url');
}
-
}
In the above example, both methods ``foo()`` and ``bar()`` will work
after you instantiate the Example class, without the need to call
-``get_instance()`` in each of them. \ No newline at end of file
+``get_instance()`` in each of them.
diff --git a/user_guide_src/source/general/credits.rst b/user_guide_src/source/general/credits.rst
index d22e3a9bc..d0f14b3bd 100644
--- a/user_guide_src/source/general/credits.rst
+++ b/user_guide_src/source/general/credits.rst
@@ -2,17 +2,17 @@
Credits
#######
-CodeIgniter was originally developed by `Rick Ellis <http://www.ellislab.com/>`_
-(CEO of `EllisLab, Inc. <http://ellislab.com/>`_). The framework was written for
+CodeIgniter was originally developed by `Rick Ellis <https://ellislab.com/>`_
+(CEO of `EllisLab, Inc. <https://ellislab.com/>`_). The framework was written for
performance in the real world, with many of the class libraries, helpers, and
sub-systems borrowed from the code-base of `ExpressionEngine
-<http://www.expressionengine.com/>`_.
+<https://ellislab.com/expressionengine>`_.
It was, for years, developed and maintained by EllisLab, the ExpressionEngine
Development Team and a group of community members called the Reactor Team.
In 2014, CodeIgniter was acquired by the `British Columbia Institute of Technology
-<http://bcit.ca/>`_ and was then officially announced as a community-maintained
+<http://www.bcit.ca/>`_ and was then officially announced as a community-maintained
project.
Bleeding edge development is spearheaded by the handpicked contributors
diff --git a/user_guide_src/source/general/environments.rst b/user_guide_src/source/general/environments.rst
index 1ce4fde3a..f5a4f617e 100644
--- a/user_guide_src/source/general/environments.rst
+++ b/user_guide_src/source/general/environments.rst
@@ -48,5 +48,5 @@ Configuration Files
Optionally, you can have CodeIgniter load environment-specific
configuration files. This may be useful for managing things like
differing API keys across multiple environments. This is described in
-more detail in the environment section of the `Config
-Class <../libraries/config.html#environments>`_ documentation. \ No newline at end of file
+more detail in the environment section of the :doc:`Config
+Class <../libraries/config#environments>`_ documentation. \ No newline at end of file
diff --git a/user_guide_src/source/general/requirements.rst b/user_guide_src/source/general/requirements.rst
index e3f73dba8..f90cdd30d 100644
--- a/user_guide_src/source/general/requirements.rst
+++ b/user_guide_src/source/general/requirements.rst
@@ -2,7 +2,7 @@
Server Requirements
###################
-`PHP <http://www.php.net/>`_ version 5.4 or newer is recommended.
+`PHP <http://php.net/>`_ version 5.4 or newer is recommended.
It should work on 5.2.4 as well, but we strongly advise you NOT to run
such old versions of PHP, because of potential security and performance
diff --git a/user_guide_src/source/helpers/date_helper.rst b/user_guide_src/source/helpers/date_helper.rst
index bed3b32a2..e0f9f0033 100644
--- a/user_guide_src/source/helpers/date_helper.rst
+++ b/user_guide_src/source/helpers/date_helper.rst
@@ -50,7 +50,7 @@ The following functions are available:
:returns: MySQL-formatted date
:rtype: string
- This function is identical to PHP's `date() <http://www.php.net/date>`_
+ This function is identical to PHP's `date() <http://php.net/manual/en/function.date.php>`_
function, except that it lets you use MySQL style date codes, where each
code letter is preceded with a percent sign, e.g. `%Y %m %d`
@@ -84,7 +84,7 @@ The following functions are available:
.. note:: This function is DEPRECATED. Use the native ``date()`` combined with
`DateTime's format constants
- <http://www.php.net/manual/en/class.datetime.php#datetime.constants.types>`_
+ <http://php.net/manual/en/class.datetime.php#datetime.constants.types>`_
instead::
echo date(DATE_RFC822, time());
diff --git a/user_guide_src/source/helpers/email_helper.rst b/user_guide_src/source/helpers/email_helper.rst
index 685226951..1ee97d902 100644
--- a/user_guide_src/source/helpers/email_helper.rst
+++ b/user_guide_src/source/helpers/email_helper.rst
@@ -62,7 +62,7 @@ The following functions are available:
:returns: TRUE if the mail was successfully sent, FALSE in case of an error
:rtype: bool
- Sends an email using PHP's native `mail() <http://www.php.net/function.mail>`_
+ Sends an email using PHP's native `mail() <http://php.net/function.mail>`_
function.
.. note:: All that this function does is to use PHP's native ``mail``
diff --git a/user_guide_src/source/helpers/file_helper.rst b/user_guide_src/source/helpers/file_helper.rst
index 92cb31a82..833cddea4 100644
--- a/user_guide_src/source/helpers/file_helper.rst
+++ b/user_guide_src/source/helpers/file_helper.rst
@@ -76,7 +76,7 @@ The following functions are available:
write_file('./path/to/file.php', $data, 'r+');
- The default mode is 'wb'. Please see the `PHP user guide <http://php.net/fopen>`_
+ The default mode is 'wb'. Please see the `PHP user guide <http://php.net/manual/en/function.fopen.php>`_
for mode options.
.. note: In order for this function to write data to a file, its permissions must
diff --git a/user_guide_src/source/helpers/smiley_helper.rst b/user_guide_src/source/helpers/smiley_helper.rst
index 978d11e5f..3e7669942 100644
--- a/user_guide_src/source/helpers/smiley_helper.rst
+++ b/user_guide_src/source/helpers/smiley_helper.rst
@@ -43,7 +43,7 @@ download and install the smiley images, then create a controller and the
View as described.
.. important:: Before you begin, please `download the smiley images
- <http://ellislab.com/asset/ci_download_files/smileys.zip>`_
+ <https://ellislab.com/asset/ci_download_files/smileys.zip>`_
and put them in a publicly accessible place on your server.
This helper also assumes you have the smiley replacement array
located at `application/config/smileys.php`
diff --git a/user_guide_src/source/helpers/string_helper.rst b/user_guide_src/source/helpers/string_helper.rst
index 9d0d890b3..a1acb215c 100644
--- a/user_guide_src/source/helpers/string_helper.rst
+++ b/user_guide_src/source/helpers/string_helper.rst
@@ -124,7 +124,7 @@ The following functions are available:
:rtype: string
Converts double slashes in a string to a single slash, except those
- found in URL protocol prefixes (e.g. http://).
+ found in URL protocol prefixes (e.g. http&#58;//).
Example::
diff --git a/user_guide_src/source/helpers/url_helper.rst b/user_guide_src/source/helpers/url_helper.rst
index 83864d9d3..64deae240 100644
--- a/user_guide_src/source/helpers/url_helper.rst
+++ b/user_guide_src/source/helpers/url_helper.rst
@@ -144,7 +144,7 @@ Available Functions
be a string or an array.
.. note:: If you are building links that are internal to your application
- do not include the base URL (http://...). This will be added
+ do not include the base URL (http&#58;//...). This will be added
automatically from the information specified in your config file.
Include only the URI segments you wish appended to the URL.
@@ -317,7 +317,7 @@ Available Functions
:returns: Protocol-prefixed URL string
:rtype: string
- This function will add http:// in the event that a protocol prefix
+ This function will add http&#58;// in the event that a protocol prefix
is missing from a URL.
Pass the URL string to the function like this::
diff --git a/user_guide_src/source/installation/downloads.rst b/user_guide_src/source/installation/downloads.rst
index 3b4ebe64b..e2b6a9c18 100644
--- a/user_guide_src/source/installation/downloads.rst
+++ b/user_guide_src/source/installation/downloads.rst
@@ -2,14 +2,14 @@
Downloading CodeIgniter
#######################
-- `CodeIgniter v3.0.0 (Current version) <https://github.com/bcit-ci/CodeIgniter/archive/develop.zip>`_
-- `CodeIgniter v2.2.1 <https://github.com/bcit-ci/CodeIgniter/archive/2.2.1.zip>`_
-- `CodeIgniter v2.2.0 <https://github.com/bcit-ci/CodeIgniter/archive/2.2.0.zip>`_
-- `CodeIgniter v2.1.4 <https://github.com/bcit-ci/CodeIgniter/archive/2.1.4.zip>`_
-- `CodeIgniter v2.1.3 <https://github.com/bcit-ci/CodeIgniter/archive/2.1.3.zip>`_
-- `CodeIgniter v2.1.2 <https://github.com/bcit-ci/CodeIgniter/archive/2.1.2.zip>`_
-- `CodeIgniter v2.1.1 <https://github.com/bcit-ci/CodeIgniter/archive/2.1.1.zip>`_
-- `CodeIgniter v2.1.0 <https://github.com/bcit-ci/CodeIgniter/archive/v2.1.0.zip>`_
+- `CodeIgniter v3.0.0 (Current version) <https://codeload.github.com/bcit-ci/CodeIgniter/zip/develop>`_
+- `CodeIgniter v2.2.1 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/2.2.1>`_
+- `CodeIgniter v2.2.0 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/2.2.0>`_
+- `CodeIgniter v2.1.4 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/2.1.4>`_
+- `CodeIgniter v2.1.3 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/2.1.3>`_
+- `CodeIgniter v2.1.2 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/2.1.2>`_
+- `CodeIgniter v2.1.1 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/2.1.1>`_
+- `CodeIgniter v2.1.0 <https://codeload.github.com/bcit-ci/CodeIgniter/zip/v2.1.0>`_
******
GitHub
diff --git a/user_guide_src/source/installation/upgrade_200.rst b/user_guide_src/source/installation/upgrade_200.rst
index ca2c6c1e0..03b8ff4ac 100644
--- a/user_guide_src/source/installation/upgrade_200.rst
+++ b/user_guide_src/source/installation/upgrade_200.rst
@@ -64,8 +64,8 @@ string using the improved methods. This will enable you to easily
replace stale encrypted data with fresh in your applications, either on
the fly or en masse.
-Please read `how to use this
-method <../libraries/encrypt.html#legacy>`_ in the Encrypt library
+Please read :doc:`how to use this
+method <../libraries/encrypt>` in the Encrypt library
documentation.
Step 5: Remove loading calls for the compatibility helper.
diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst
index 2f806cccf..7e3479740 100644
--- a/user_guide_src/source/installation/upgrade_300.rst
+++ b/user_guide_src/source/installation/upgrade_300.rst
@@ -627,7 +627,7 @@ Date helper standard_date()
===========================
:doc:`Date Helper <../helpers/date_helper>` function ``standard_date()`` is being deprecated due
-to the availability of native PHP `constants <http://www.php.net/manual/en/class.datetime.php#datetime.constants.types>`_,
+to the availability of native PHP `constants <http://php.net/manual/en/class.datetime.php#datetime.constants.types>`_,
which when combined with ``date()`` provide the same functionality. Furthermore, they have the
exact same names as the ones supported by ``standard_date()``. Here are examples of how to replace
its usage:
diff --git a/user_guide_src/source/libraries/caching.rst b/user_guide_src/source/libraries/caching.rst
index 86439b4ee..f54de5faf 100644
--- a/user_guide_src/source/libraries/caching.rst
+++ b/user_guide_src/source/libraries/caching.rst
@@ -250,8 +250,7 @@ Redis Caching
=============
Redis is an in-memory key-value store which can operate in LRU cache mode.
-To use it, you need Redis server and phpredis PHP extension
-`https://github.com/nicolasff/phpredis <https://github.com/nicolasff/phpredis>`_.
+To use it, you need `Redis server and phpredis PHP extension <https://github.com/phpredis/phpredis>`_.
Config options to connect to redis server must be stored in the application/config/redis.php file.
Available options are::
diff --git a/user_guide_src/source/libraries/encryption.rst b/user_guide_src/source/libraries/encryption.rst
index 0c347604c..599be4df0 100644
--- a/user_guide_src/source/libraries/encryption.rst
+++ b/user_guide_src/source/libraries/encryption.rst
@@ -482,7 +482,7 @@ The reason for not including other popular algorithms, such as
MD5 or SHA1 is that they are no longer considered secure enough
and as such, we don't want to encourage their usage.
If you absolutely need to use them, it is easy to do so via PHP's
-native `hash_hmac() <http://php.net/hash_hmac()>`_ function.
+native `hash_hmac() <http://php.net/manual/en/function.hash-hmac.php>`_ function.
Stronger algorithms of course will be added in the future as they
appear and become widely available.
diff --git a/user_guide_src/source/libraries/javascript.rst b/user_guide_src/source/libraries/javascript.rst
index 7f83b2f70..e91b9ad78 100644
--- a/user_guide_src/source/libraries/javascript.rst
+++ b/user_guide_src/source/libraries/javascript.rst
@@ -135,7 +135,7 @@ In the above example:
keydown, keyup, load, mousedown, mouseup, mouseover, mouseup, resize,
scroll, or unload.
- "element_path" is any valid `jQuery selector
- <http://docs.jquery.com/Selectors>`_. Due to jQuery's unique
+ <http://api.jquery.com/category/selectors/>`_. Due to jQuery's unique
selector syntax, this is usually an element id, or CSS selector. For
example "#notice_area" would effect ``<div id="notice_area">``, and
"#content a.notice" would effect all anchors with a class of "notice"
@@ -147,7 +147,7 @@ Effects
=======
The query library supports a powerful
-`Effects <http://docs.jquery.com/Effects>`_ repertoire. Before an effect
+`Effects <http://api.jquery.com/category/effects/>`_ repertoire. Before an effect
can be used, it must be loaded::
$this->jquery->effect([optional path] plugin name); // for example $this->jquery->effect('bounce');
@@ -201,7 +201,7 @@ animate()
other additional information.
For a full summary, see
-`http://docs.jquery.com/Effects/animate <http://docs.jquery.com/Effects/animate>`_
+`http://api.jquery.com/animate/ <http://api.jquery.com/animate/>`_
Here is an example of an animate() called on a div with an id of "note",
and triggered by a click using the jQuery library's click() event.
@@ -288,7 +288,7 @@ corner()
--------
Used to add distinct corners to page elements. For full details see
-`http://www.malsup.com/jquery/corner/ <http://www.malsup.com/jquery/corner/>`_
+`http://malsup.com/jquery/corner/ <http://malsup.com/jquery/corner/>`_
::
diff --git a/user_guide_src/source/libraries/language.rst b/user_guide_src/source/libraries/language.rst
index ee1cefcd0..de17c8288 100644
--- a/user_guide_src/source/libraries/language.rst
+++ b/user_guide_src/source/libraries/language.rst
@@ -19,7 +19,7 @@ your **application/language/** directory, with separate sub-directories for each
The CodeIgniter framework comes with a set of language files for the "english" idiom.
Additional approved translations for different idioms may be found in the
-`CodeIgniter 3 Translations repositories <https://github.com/codeigniter3-translations>`_.
+`CodeIgniter 3 Translations repositories <https://github.com/bcit-ci/codeigniter3-translations>`_.
Each repository deals with a single idiom.
When CodeIgniter loads language files, it will load the one in **system/language/**
diff --git a/user_guide_src/source/libraries/loader.rst b/user_guide_src/source/libraries/loader.rst
index efa9d519b..228d5e478 100644
--- a/user_guide_src/source/libraries/loader.rst
+++ b/user_guide_src/source/libraries/loader.rst
@@ -238,7 +238,7 @@ Class Reference
The second **optional** parameter can take an associative array or an
object as input, which it runs through the PHP
- `extract() <http://www.php.net/extract>`_ function to convert to variables
+ `extract() <http://php.net/extract>`_ function to convert to variables
that can be used in your view files. Again, read the
:doc:`Views <../general/views>` page to learn how this might be useful.
@@ -259,7 +259,7 @@ Class Reference
:rtype: CI_Loader
This method takes an associative array as input and generates
- variables using the PHP `extract() <http://www.php.net/extract>`_
+ variables using the PHP `extract() <http://php.net/extract>`_
function. This method produces the same result as using the second
parameter of the ``$this->load->view()`` method above. The reason you
might want to use this method independently is if you would like to
diff --git a/user_guide_src/source/libraries/sessions.rst b/user_guide_src/source/libraries/sessions.rst
index 51ecc03bd..2034ed2b0 100644
--- a/user_guide_src/source/libraries/sessions.rst
+++ b/user_guide_src/source/libraries/sessions.rst
@@ -569,9 +569,10 @@ However, there are some conditions that must be met:
- Only your **default** database connection (or the one that you access
as ``$this->db`` from your controllers) can be used.
- - You can NOT use a persistent connection.
- You must have the :doc:`Query Builder </database/query_builder>`
enabled.
+ - You can NOT use a persistent connection.
+ - You can NOT use a connection with the *cache_on* setting enabled.
In order to use the 'database' session driver, you must also create this
table that we already mentioned and then set it as your
@@ -639,7 +640,7 @@ of its high performance, which is also probably your reason to use the
'redis' session driver.
The downside is that it is not as ubiquitous as relational databases and
-requires the `phpredis <https://github.com/nicolasff/phpredis>`_ PHP
+requires the `phpredis <https://github.com/phpredis/phpredis>`_ PHP
extension to be installed on your system, and that one doesn't come
bundled with PHP.
Chances are, you're only be using the 'redis' driver only if you're already
@@ -836,7 +837,7 @@ Class Reference
.. note:: This method is DEPRECATED. Use ``userdata()``
with no parameters instead.
- .. php:method:: &get_usedata()
+ .. php:method:: &get_userdata()
:returns: A reference to ``$_SESSION``
:rtype: array
@@ -1053,4 +1054,4 @@ Class Reference
$this->session->foo = 'bar';
// Results in:
- // $_SESSION['foo'] = 'bar'; \ No newline at end of file
+ // $_SESSION['foo'] = 'bar';
diff --git a/user_guide_src/source/libraries/uri.rst b/user_guide_src/source/libraries/uri.rst
index ae56184cc..4d38c1d22 100644
--- a/user_guide_src/source/libraries/uri.rst
+++ b/user_guide_src/source/libraries/uri.rst
@@ -110,7 +110,7 @@ Class Reference
:returns: Associative URI segments array
:rtype: array
- This method lets you turn URI segments into and associative array of
+ This method lets you turn URI segments into an associative array of
key/value pairs. Consider this URI::
index.php/user/search/name/joe/location/UK/gender/male
@@ -230,4 +230,4 @@ Class Reference
This method is identical to ``segment_array()``, except that it returns
the array of segments in your re-routed URI in the event you are using
- CodeIgniter's :doc:`URI Routing <../general/routing>` feature. \ No newline at end of file
+ CodeIgniter's :doc:`URI Routing <../general/routing>` feature.
diff --git a/user_guide_src/source/overview/features.rst b/user_guide_src/source/overview/features.rst
index 8c27b1436..b230be9a3 100644
--- a/user_guide_src/source/overview/features.rst
+++ b/user_guide_src/source/overview/features.rst
@@ -8,7 +8,7 @@ how intuitively or intelligently it is designed. Features don't reveal
anything about the quality of the code, or the performance, or the
attention to detail, or security practices. The only way to really judge
an app is to try it and get to know the code.
-`Installing <../installation/>`_ CodeIgniter is child's play so we
+:doc:`Installing <../installation/>`_ CodeIgniter is child's play so we
encourage you to do just that. In the mean time here's a list of
CodeIgniter's main features.
diff --git a/user_guide_src/source/tutorial/create_news_items.rst b/user_guide_src/source/tutorial/create_news_items.rst
index 461584723..71d2080af 100644
--- a/user_guide_src/source/tutorial/create_news_items.rst
+++ b/user_guide_src/source/tutorial/create_news_items.rst
@@ -37,16 +37,16 @@ application/views/news/create.php.
There are only two things here that probably look unfamiliar to you: the
form_open() function and the validation_errors() function.
-The first function is provided by the `form
-helper <../helpers/form_helper.html>`_ and renders the form element and
-adds extra functionality, like adding a hidden `CSRF prevention
-field <../libraries/security.html>`_. The latter is used to report
+The first function is provided by the :doc:`form
+helper <../helpers/form_helper>` and renders the form element and
+adds extra functionality, like adding a hidden :doc:`CSRF prevention
+field <../libraries/security>`. The latter is used to report
errors related to form validation.
Go back to your news controller. You're going to do two things here,
check whether the form was submitted and whether the submitted data
-passed the validation rules. You'll use the `form
-validation <../libraries/form_validation.html>`_ library to do this.
+passed the validation rules. You'll use the :doc:`form
+validation <../libraries/form_validation>` library to do this.
::
@@ -81,8 +81,8 @@ the name of the input field, the name to be used in error messages, and
the rule. In this case the title and text fields are required.
CodeIgniter has a powerful form validation library as demonstrated
-above. You can read `more about this library
-here <../libraries/form_validation.html>`_.
+above. You can read :doc:`more about this library
+here <../libraries/form_validation>`.
Continuing down, you can see a condition that checks whether the form
validation ran successfully. If it did not, the form is displayed, if it
@@ -117,7 +117,7 @@ the model created earlier and add the following:
This new method takes care of inserting the news item into the database.
The third line contains a new function, url\_title(). This function -
-provided by the `URL helper <../helpers/url_helper.html>`_ - strips down
+provided by the :doc:`URL helper <../helpers/url_helper>` - strips down
the string you pass it, replacing all spaces by dashes (-) and makes
sure everything is in lowercase characters. This leaves you with a nice
slug, perfect for creating URIs.
@@ -125,8 +125,8 @@ slug, perfect for creating URIs.
Let's continue with preparing the record that is going to be inserted
later, inside the $data array. Each element corresponds with a column in
the database table created earlier. You might notice a new method here,
-namely the post() method from the `input
-library <../libraries/input.html>`_. This method makes sure the data is
+namely the post() method from the :doc:`input
+library <../libraries/input>`. This method makes sure the data is
sanitized, protecting you from nasty attacks from others. The input
library is loaded by default. At last, you insert our $data array into
our database.
diff --git a/user_guide_src/source/tutorial/index.rst b/user_guide_src/source/tutorial/index.rst
index b1ab331d1..91f99c7cd 100644
--- a/user_guide_src/source/tutorial/index.rst
+++ b/user_guide_src/source/tutorial/index.rst
@@ -24,13 +24,13 @@ through the following pages:
- Introduction, this page, which gives you an overview of what to
expect.
-- `Static pages <static_pages.html>`_, which will teach you the basics
+- :doc:`Static pages <static_pages>`, which will teach you the basics
of controllers, views and routing.
-- `News section <news_section.html>`_, where you'll start using models
+- :doc:`News section <news_section>`, where you'll start using models
and will be doing some basic database operations.
-- `Create news items <create_news_items.html>`_, which will introduce
+- :doc:`Create news items <create_news_items>`, which will introduce
more advanced database operations and form validation.
-- `Conclusion <conclusion.html>`_, which will give you some pointers on
+- :doc:`Conclusion <conclusion>`, which will give you some pointers on
further reading and other resources.
Enjoy your exploration of the CodeIgniter framework.
diff --git a/user_guide_src/source/tutorial/news_section.rst b/user_guide_src/source/tutorial/news_section.rst
index f436b2510..d8ebac4a3 100644
--- a/user_guide_src/source/tutorial/news_section.rst
+++ b/user_guide_src/source/tutorial/news_section.rst
@@ -18,7 +18,7 @@ database or other data stores. They represent your data.
Open up the application/models directory and create a new file called
News_model.php and add the following code. Make sure you've configured
your database properly as described
-`here <../database/configuration.html>`_.
+:doc:`here <../database/configuration>`.
::
@@ -53,10 +53,10 @@ seed records.
Now that the database and a model have been set up, you'll need a method
to get all of our posts from our database. To do this, the database
-abstraction layer that is included with CodeIgniter — `Active
-Record <../database/query_builder.html>`_ — is used. This makes it
-possible to write your 'queries' once and make them work on `all
-supported database systems <../general/requirements.html>`_. Add the
+abstraction layer that is included with CodeIgniter —
+:doc:`Query Builder <../database/query_builder>` — is used. This makes it
+possible to write your 'queries' once and make them work on :doc:`all
+supported database systems <../general/requirements>`. Add the
following code to your model.
::
@@ -157,8 +157,8 @@ and add the next piece of code.
Here, each news item is looped and displayed to the user. You can see we
wrote our template in PHP mixed with HTML. If you prefer to use a
-template language, you can use CodeIgniter's `Template
-Parser <../libraries/parser>`_ class or a third party parser.
+template language, you can use CodeIgniter's :doc:`Template
+Parser <../libraries/parser>` class or a third party parser.
The news overview page is now done, but a page to display individual
news items is still absent. The model created earlier is made in such
diff --git a/user_guide_src/source/tutorial/static_pages.rst b/user_guide_src/source/tutorial/static_pages.rst
index 53f286473..210d9f8d6 100644
--- a/user_guide_src/source/tutorial/static_pages.rst
+++ b/user_guide_src/source/tutorial/static_pages.rst
@@ -3,7 +3,7 @@ Static pages
############
**Note:** This tutorial assumes you've downloaded CodeIgniter and
-`installed the framework <../installation/index.html>`_ in your
+: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
@@ -12,14 +12,14 @@ It is the glue of your web application.
For example, when a call is made to:
- http://example.com/news/latest/10
+ http&#58;//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]
+ http&#58;//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.
@@ -159,7 +159,7 @@ match, and calls the appropriate controller and method, possibly with
arguments.
More information about routing can be found in the URI Routing
-`documentation <../general/routing.html>`_.
+: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()``