From d3ad748a5eb5ab48e6c885a5617bd07dcad6e167 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Wed, 5 Aug 2015 13:22:42 +0200 Subject: Update welcome_message.php --- application/views/welcome_message.php | 207 +++++++++++++++++++++------------- 1 file changed, 127 insertions(+), 80 deletions(-) diff --git a/application/views/welcome_message.php b/application/views/welcome_message.php index f5115630b..a9e29d765 100644 --- a/application/views/welcome_message.php +++ b/application/views/welcome_message.php @@ -3,87 +3,134 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - - Welcome to CodeIgniter - - + + Welcome to CodeIgniter + + - - -
-

Welcome to CodeIgniter!

- -
-

The page you are looking at is being generated dynamically by CodeIgniter.

- -

If you would like to edit this page you'll find it located at:

- application/views/welcome_message.php -

The corresponding controller for this page is found at:

- application/controllers/Welcome.php - -

If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.

+ +
+
+

+ + Welcome to CodeIgniter! +

+ +
+

The page you are looking at is being generated dynamically by CodeIgniter.

+ +

If you would like to edit this page you'll find it located at:

+ application/views/welcome_message.php + +

The corresponding controller for this page is found at:

+ application/controllers/Welcome.php + +

If you are exploring CodeIgniter for the very first time, you should start by reading the + User Guide. +

+
+ + +
- - -
- - \ No newline at end of file + -- cgit v1.2.3-24-g4f1b From f489474b3242f9484a03b48dd6b9af04246fead1 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 7 Aug 2015 14:37:02 +0300 Subject: [ci skip] Add 3.0.1 release date to changelog --- user_guide_src/source/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index dcdd36b57..62ba4ec55 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -5,7 +5,7 @@ Change Log Version 3.0.1 ============= -Release Date: Not Released +Release Date: August 7, 2015 - Core -- cgit v1.2.3-24-g4f1b From 52b663d3df611817cc38fc93e3a564ca7c41b9a8 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 7 Aug 2015 14:44:41 +0300 Subject: [ci skip] Start of 3.1.0-dev --- system/core/CodeIgniter.php | 2 +- user_guide_src/source/changelog.rst | 6 ++++++ user_guide_src/source/conf.py | 4 ++-- user_guide_src/source/installation/downloads.rst | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index ddf322749..fece65bde 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -55,7 +55,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @var string * */ - define('CI_VERSION', '3.0.1-dev'); + define('CI_VERSION', '3.1.0-dev'); /* * ------------------------------------------------------ diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 62ba4ec55..0a1651cb3 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -2,6 +2,12 @@ Change Log ########## +Version 3.1.0 +============= + +Release Date: Not Released + + Version 3.0.1 ============= diff --git a/user_guide_src/source/conf.py b/user_guide_src/source/conf.py index 1704654b6..de55513bf 100644 --- a/user_guide_src/source/conf.py +++ b/user_guide_src/source/conf.py @@ -48,9 +48,9 @@ copyright = u'2014 - 2015, British Columbia Institute of Technology' # built documents. # # The short X.Y version. -version = '3.0.1' +version = '3.1.0-dev' # The full version, including alpha/beta/rc tags. -release = '3.0.0-dev' +release = '3.1.0-dev' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/user_guide_src/source/installation/downloads.rst b/user_guide_src/source/installation/downloads.rst index 16c8e537a..4fe36dd64 100644 --- a/user_guide_src/source/installation/downloads.rst +++ b/user_guide_src/source/installation/downloads.rst @@ -2,7 +2,8 @@ Downloading CodeIgniter ####################### -- `CodeIgniter v3.0.1-dev (Current version) `_ +- `CodeIgniter v3.1.0-dev (Current version) `_ +- `CodeIgniter v3.0.1 `_ - `CodeIgniter v3.0.0 `_ - `CodeIgniter v2.2.3 `_ - `CodeIgniter v2.2.2 `_ -- cgit v1.2.3-24-g4f1b From d2891cf972c8a80af4c949a0abe2f581e0d25a56 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 7 Aug 2015 14:49:50 +0300 Subject: [ci skip] Add 3.0.2 upgrade instructions file --- user_guide_src/source/installation/upgrade_302.rst | 14 ++++++++++++++ user_guide_src/source/installation/upgrading.rst | 1 + 2 files changed, 15 insertions(+) create mode 100644 user_guide_src/source/installation/upgrade_302.rst diff --git a/user_guide_src/source/installation/upgrade_302.rst b/user_guide_src/source/installation/upgrade_302.rst new file mode 100644 index 000000000..755e7788b --- /dev/null +++ b/user_guide_src/source/installation/upgrade_302.rst @@ -0,0 +1,14 @@ +############################# +Upgrading from 3.0.1 to 3.0.2 +############################# + +Before performing an update you should take your site offline by +replacing the index.php file with a static one. + +Step 1: Update your CodeIgniter files +===================================== + +Replace all files and directories in your *system/* directory. + +.. note:: If you have any custom developed files in these directories, + please make copies of them first. diff --git a/user_guide_src/source/installation/upgrading.rst b/user_guide_src/source/installation/upgrading.rst index e0f0dd5b7..76fe434b5 100644 --- a/user_guide_src/source/installation/upgrading.rst +++ b/user_guide_src/source/installation/upgrading.rst @@ -8,6 +8,7 @@ upgrading from. .. toctree:: :titlesonly: + Upgrading from 3.0.1 to 3.0.2 Upgrading from 3.0.0 to 3.0.1 Upgrading from 2.2.x to 3.0.x Upgrading from 2.2.2 to 2.2.3 -- cgit v1.2.3-24-g4f1b From a7b8df729c8b821f936a090031d02e59ae6426e6 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 7 Aug 2015 14:52:06 +0300 Subject: [ci skip] Add 3.1.0 upgrade instructions file --- user_guide_src/source/installation/upgrade_310.rst | 14 ++++++++++++++ user_guide_src/source/installation/upgrading.rst | 1 + 2 files changed, 15 insertions(+) create mode 100644 user_guide_src/source/installation/upgrade_310.rst diff --git a/user_guide_src/source/installation/upgrade_310.rst b/user_guide_src/source/installation/upgrade_310.rst new file mode 100644 index 000000000..7060ebc4c --- /dev/null +++ b/user_guide_src/source/installation/upgrade_310.rst @@ -0,0 +1,14 @@ +############################# +Upgrading from 3.0.x to 3.1.x +############################# + +Before performing an update you should take your site offline by +replacing the index.php file with a static one. + +Step 1: Update your CodeIgniter files +===================================== + +Replace all files and directories in your *system/* directory. + +.. note:: If you have any custom developed files in these directories, + please make copies of them first. diff --git a/user_guide_src/source/installation/upgrading.rst b/user_guide_src/source/installation/upgrading.rst index 76fe434b5..9dda16786 100644 --- a/user_guide_src/source/installation/upgrading.rst +++ b/user_guide_src/source/installation/upgrading.rst @@ -8,6 +8,7 @@ upgrading from. .. toctree:: :titlesonly: + Upgrading from 3.0.x to 3.1.x Upgrading from 3.0.1 to 3.0.2 Upgrading from 3.0.0 to 3.0.1 Upgrading from 2.2.x to 3.0.x -- cgit v1.2.3-24-g4f1b From db2d93917443a3241b4c29a17ab618a43e0900e5 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Fri, 7 Aug 2015 16:52:47 +0200 Subject: Update welcome_message.php --- application/views/welcome_message.php | 256 ++++++++++++++++++---------------- 1 file changed, 136 insertions(+), 120 deletions(-) diff --git a/application/views/welcome_message.php b/application/views/welcome_message.php index a9e29d765..43610e541 100644 --- a/application/views/welcome_message.php +++ b/application/views/welcome_message.php @@ -2,135 +2,151 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> + + + Welcome to CodeIgniter -
-
-

- - Welcome to CodeIgniter! -

- -
-

The page you are looking at is being generated dynamically by CodeIgniter.

- -

If you would like to edit this page you'll find it located at:

- application/views/welcome_message.php - -

The corresponding controller for this page is found at:

- application/controllers/Welcome.php - -

If you are exploring CodeIgniter for the very first time, you should start by reading the - User Guide. -

-
- - -
-
+ +
+ +
+ +

+ CodeIgniter +

+ +
+ +

Welcome to CodeIgniter!

+ +

The page you are looking at is being generated dynamically by CodeIgniter.

+ +

If you would like to edit this page you'll find it located at:

+ + application/views/welcome_message.php + +

The corresponding controller for this page is found at:

+ + application/controllers/Welcome.php + +

If you are exploring CodeIgniter for the very first time, you should start by reading the + User Guide. +

+ +
+ + + +
+ +
+ + -- cgit v1.2.3-24-g4f1b From 08901281fdc5e43680b5f0f7185ede42f0929108 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Fri, 7 Aug 2015 16:53:28 +0200 Subject: Update error_404.php --- application/views/errors/html/error_404.php | 162 ++++++++++++++++++---------- 1 file changed, 107 insertions(+), 55 deletions(-) diff --git a/application/views/errors/html/error_404.php b/application/views/errors/html/error_404.php index 756ea9d62..2215273be 100644 --- a/application/views/errors/html/error_404.php +++ b/application/views/errors/html/error_404.php @@ -2,63 +2,115 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> + - -404 Page Not Found - + + + + 404 Page Not Found + + + + -
-

- + +
+ +
+ +

+ +
+ +
+ +
+
+ - \ No newline at end of file + + -- cgit v1.2.3-24-g4f1b From 179ffb70f005d533ade0398f27e81c07751884a3 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Fri, 7 Aug 2015 16:53:52 +0200 Subject: Update error_db.php --- application/views/errors/html/error_db.php | 164 +++++++++++++++++++---------- 1 file changed, 109 insertions(+), 55 deletions(-) diff --git a/application/views/errors/html/error_db.php b/application/views/errors/html/error_db.php index f5a43f638..c0c65a491 100644 --- a/application/views/errors/html/error_db.php +++ b/application/views/errors/html/error_db.php @@ -2,63 +2,117 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> + - -Database Error - + + + + Database Error + + + + -
-

- + +
+ +
+ +

+ +
+ + + +
+ +
+
+ - \ No newline at end of file + + -- cgit v1.2.3-24-g4f1b From d354e2cc51d08ef107659dcd4df5e98a72ed995d Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Fri, 7 Aug 2015 16:54:47 +0200 Subject: Update error_exception.php --- application/views/errors/html/error_exception.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/errors/html/error_exception.php b/application/views/errors/html/error_exception.php index 87848866a..22e4f8351 100644 --- a/application/views/errors/html/error_exception.php +++ b/application/views/errors/html/error_exception.php @@ -2,7 +2,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> -
+

An uncaught Exception was encountered

@@ -29,4 +29,4 @@ defined('BASEPATH') OR exit('No direct script access allowed'); -
\ No newline at end of file +
-- cgit v1.2.3-24-g4f1b From 14161555747f398b80a341bf1de65691904a1be5 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Fri, 7 Aug 2015 16:55:15 +0200 Subject: Update error_general.php --- application/views/errors/html/error_general.php | 160 ++++++++++++++++-------- 1 file changed, 106 insertions(+), 54 deletions(-) diff --git a/application/views/errors/html/error_general.php b/application/views/errors/html/error_general.php index fc3b2ebad..e69f70a8b 100644 --- a/application/views/errors/html/error_general.php +++ b/application/views/errors/html/error_general.php @@ -2,63 +2,115 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> + + -Error - + + Error + + + + -
-

- + +
+ +
+ +

+ +
+ +
+ +
+
+ - \ No newline at end of file + + -- cgit v1.2.3-24-g4f1b From 2ead61d153e7f56a685c399e7d54abfd744585f3 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Fri, 7 Aug 2015 16:55:57 +0200 Subject: Update error_php.php --- application/views/errors/html/error_php.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/errors/html/error_php.php b/application/views/errors/html/error_php.php index b146f9c5b..8bf6efc61 100644 --- a/application/views/errors/html/error_php.php +++ b/application/views/errors/html/error_php.php @@ -2,7 +2,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> -
+

A PHP Error was encountered

@@ -30,4 +30,4 @@ defined('BASEPATH') OR exit('No direct script access allowed'); -
\ No newline at end of file +
-- cgit v1.2.3-24-g4f1b From 67295d93c2c001421ade797232950db8397b00d3 Mon Sep 17 00:00:00 2001 From: Mat Whitney Date: Mon, 10 Aug 2015 08:01:20 -0700 Subject: Fix path for CLI error templates in upgrade doc --- user_guide_src/source/installation/upgrade_301.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/installation/upgrade_301.rst b/user_guide_src/source/installation/upgrade_301.rst index f38d34008..450cdb288 100644 --- a/user_guide_src/source/installation/upgrade_301.rst +++ b/user_guide_src/source/installation/upgrade_301.rst @@ -16,4 +16,4 @@ Replace all files and directories in your *system/* directory. Step 2: Update your CLI error templates ======================================= -Replace all files under your *application/errors/cli/* directory. \ No newline at end of file +Replace all files under your *application/views/errors/cli/* directory. -- cgit v1.2.3-24-g4f1b From 999d7f7861ad6430d515514ce71fa44bd6b77a46 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 13 Aug 2015 13:14:59 +0300 Subject: Update config/constants.php with defined() checks Allows for easier override with an environment-based configs. Close #4045 --- application/config/constants.php | 68 +++++++++++----------- user_guide_src/source/changelog.rst | 14 +++++ user_guide_src/source/installation/upgrade_302.rst | 10 ++++ 3 files changed, 58 insertions(+), 34 deletions(-) diff --git a/application/config/constants.php b/application/config/constants.php index 48283e223..e8d2c00ea 100644 --- a/application/config/constants.php +++ b/application/config/constants.php @@ -1,6 +1,18 @@ ` method ``protect_identifiers()`` breaks when :doc:`Query Builder ` isn't enabled. + Version 3.0.1 ============= diff --git a/user_guide_src/source/installation/upgrade_302.rst b/user_guide_src/source/installation/upgrade_302.rst index 755e7788b..93d87ac41 100644 --- a/user_guide_src/source/installation/upgrade_302.rst +++ b/user_guide_src/source/installation/upgrade_302.rst @@ -12,3 +12,13 @@ Replace all files and directories in your *system/* directory. .. note:: If you have any custom developed files in these directories, please make copies of them first. + +Step 2: Update your application/config/constants.php file +========================================================= + +The *application/config/constants.php* file has been updated to check +if constants aren't already defined before doing that, making it easier +to add an environment-specific configuration. + +.. note:: If you've made modifications to this file, please make a + backup first and cross-check the differences first. \ No newline at end of file -- cgit v1.2.3-24-g4f1b From b4e1fb248cf173474acd549c024a0df030b0f20f Mon Sep 17 00:00:00 2001 From: Claudio Galdiolo Date: Thu, 13 Aug 2015 10:21:42 -0400 Subject: Fix typo in comments --- system/core/Common.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Common.php b/system/core/Common.php index ce324a1cc..ad3ca9f93 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -677,7 +677,7 @@ if ( ! function_exists('_shutdown_handler')) * of CodeIgniter.php. The main reason we use this is to simulate * a complete custom exception handler. * - * E_STRICT is purposivly neglected because such events may have + * E_STRICT is purposively neglected because such events may have * been caught. Duplication or none? None is preferred for now. * * @link http://insomanic.me.uk/post/229851073/php-trick-catching-fatal-errors-e-error-with-a -- cgit v1.2.3-24-g4f1b From 71ca3c3f650dd0ff8011cbd2aa18aca141a47ef3 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Tue, 18 Aug 2015 19:54:27 +0200 Subject: Update welcome_message.php --- application/views/welcome_message.php | 244 +++++++++++++++------------------- 1 file changed, 108 insertions(+), 136 deletions(-) diff --git a/application/views/welcome_message.php b/application/views/welcome_message.php index 43610e541..186c55eca 100644 --- a/application/views/welcome_message.php +++ b/application/views/welcome_message.php @@ -2,151 +2,123 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - - - - - Welcome to CodeIgniter - - + + Welcome to CodeIgniter + + - -
- -
- -

- CodeIgniter -

- -
- -

Welcome to CodeIgniter!

+
+
+

+ CodeIgniter +

-

The page you are looking at is being generated dynamically by CodeIgniter.

+
+

The page you are looking at is being generated dynamically by CodeIgniter.

-

If you would like to edit this page you'll find it located at:

+

If you would like to edit this page you'll find it located at:

+ application/views/welcome_message.php - application/views/welcome_message.php +

The corresponding controller for this page is found at:

+ application/controllers/Welcome.php -

The corresponding controller for this page is found at:

+

If you are exploring CodeIgniter for the very first time, you should start by reading the User Guide.

+
- application/controllers/Welcome.php - -

If you are exploring CodeIgniter for the very first time, you should start by reading the - User Guide. -

- -
- - - -
- -
+ +
+
- -- cgit v1.2.3-24-g4f1b From 7ee26148de394d8634c98915623881e0488c12b8 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Tue, 18 Aug 2015 20:39:20 +0200 Subject: Update welcome_message.php --- application/views/welcome_message.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/views/welcome_message.php b/application/views/welcome_message.php index 186c55eca..ddcfa98fd 100644 --- a/application/views/welcome_message.php +++ b/application/views/welcome_message.php @@ -41,7 +41,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); } h1 img { - display: block; + display: block; } h2 { -- cgit v1.2.3-24-g4f1b From ba7a627bdad08fa6911325d3785619ee3497a072 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Tue, 18 Aug 2015 20:40:11 +0200 Subject: Update error_404.php --- application/views/errors/html/error_404.php | 175 ++++++++++++---------------- 1 file changed, 76 insertions(+), 99 deletions(-) diff --git a/application/views/errors/html/error_404.php b/application/views/errors/html/error_404.php index 2215273be..54b5ba3eb 100644 --- a/application/views/errors/html/error_404.php +++ b/application/views/errors/html/error_404.php @@ -2,115 +2,92 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - - - - - 404 Page Not Found - - - + +404 Page Not Found + - -
-
-

-
-
-
- - -- cgit v1.2.3-24-g4f1b From a59d4c70d70c37d9b35a9e8f4f603b705284da05 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Tue, 18 Aug 2015 20:41:28 +0200 Subject: Update error_db.php --- application/views/errors/html/error_db.php | 177 +++++++++++++---------------- 1 file changed, 76 insertions(+), 101 deletions(-) diff --git a/application/views/errors/html/error_db.php b/application/views/errors/html/error_db.php index c0c65a491..561b20c63 100644 --- a/application/views/errors/html/error_db.php +++ b/application/views/errors/html/error_db.php @@ -2,117 +2,92 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - - - - - Database Error - - - + +Database Error + - -
-
-

-
- -
-
-
- - -- cgit v1.2.3-24-g4f1b -- cgit v1.2.3-24-g4f1b -- cgit v1.2.3-24-g4f1b From 96d626801b2ccb40300d50662fdf6468ae3167b7 Mon Sep 17 00:00:00 2001 From: Diederik Lascaris Date: Tue, 18 Aug 2015 20:45:09 +0200 Subject: Update error_general.php --- application/views/errors/html/error_general.php | 179 +++++++++++------------- 1 file changed, 78 insertions(+), 101 deletions(-) diff --git a/application/views/errors/html/error_general.php b/application/views/errors/html/error_general.php index e69f70a8b..0c28e3164 100644 --- a/application/views/errors/html/error_general.php +++ b/application/views/errors/html/error_general.php @@ -2,115 +2,92 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - - - - Error - - - +Error + - -
-
-

- -
- -
- +
+ +
-
- - -- cgit v1.2.3-24-g4f1b -- cgit v1.2.3-24-g4f1b From 53626ec7797292979f568e72cd2458d7ca1b25ef Mon Sep 17 00:00:00 2001 From: Dotan Cohen Date: Sun, 23 Aug 2015 17:32:54 +0300 Subject: Specify to which character dashes will be replaced --- application/config/routes.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/config/routes.php b/application/config/routes.php index a98c6d122..599c79b0e 100644 --- a/application/config/routes.php +++ b/application/config/routes.php @@ -43,8 +43,8 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | This is not exactly a route, but allows you to automatically route | controller and method names that contain dashes. '-' isn't a valid | class or method name character, so it requires translation. -| When you set this option to TRUE, it will replace ALL dashes in the -| controller and method URI segments. +| When you set this option to TRUE, it will replace ALL dashes with +| underscores in the controller and method URI segments. | | Examples: my-controller/index -> my_controller/index | my-controller/my-method -> my_controller/my_method -- cgit v1.2.3-24-g4f1b From 32b0038062a87a6f210ceb2b8682e9376538e1b9 Mon Sep 17 00:00:00 2001 From: Ivan Tcholakov Date: Sun, 23 Aug 2015 17:52:27 +0300 Subject: A minor documentation correction about Image_lib, the default value of the option 'wm_shadow_distance' is 2 actually. --- user_guide_src/source/libraries/image_lib.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/image_lib.rst b/user_guide_src/source/libraries/image_lib.rst index e5f7c000f..40a280b5c 100644 --- a/user_guide_src/source/libraries/image_lib.rst +++ b/user_guide_src/source/libraries/image_lib.rst @@ -282,7 +282,7 @@ Preference Default Value Options Description **wm_shadow_color** None None The color of the drop shadow, specified in hex. If you leave this blank a drop shadow will not be used. Both the full 6-length (ie, 993300) and the short three character abbreviated version (ie, fff) are supported. -**wm_shadow_distance** 3 None The distance (in pixels) from the font that the drop shadow should +**wm_shadow_distance** 2 None The distance (in pixels) from the font that the drop shadow should appear. ======================= =================== =================== ========================================================================== -- cgit v1.2.3-24-g4f1b From 01bb8dafa5af458c9799d80804f458edc9bf5237 Mon Sep 17 00:00:00 2001 From: Tomasz Turkowski Date: Fri, 28 Aug 2015 01:12:04 +0200 Subject: Change if is not set or count equals zero into if empty --- system/database/DB.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB.php b/system/database/DB.php index 0c7cf54b3..23de414b5 100644 --- a/system/database/DB.php +++ b/system/database/DB.php @@ -82,7 +82,7 @@ function &DB($params = '', $query_builder_override = NULL) } } - if ( ! isset($db) OR count($db) === 0) + if (empty($db)) { show_error('No database connection settings were found in the database config file.'); } -- cgit v1.2.3-24-g4f1b From 2b2962f1efbdf243b70688690de3f09f9564ad05 Mon Sep 17 00:00:00 2001 From: rich Date: Wed, 9 Sep 2015 15:52:26 -0400 Subject: Change form validation library to allow the pipe character within square brackets --- system/libraries/Form_validation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index d9ecc45f9..af90316a4 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -211,7 +211,7 @@ class CI_Form_validation { return $this; } - $rules = explode('|', $rules); + $rules = preg_split('/\|(?![^\[]*\])/', $rules); } // If the field label wasn't passed we use the field name -- cgit v1.2.3-24-g4f1b From 59c4fb6fd48ec98bfaf541d292930ed11d9f4bc7 Mon Sep 17 00:00:00 2001 From: kenjis Date: Wed, 16 Sep 2015 13:11:42 +0900 Subject: Fix typo Signed-off-by: Kenji Suzuki --- user_guide_src/source/tutorial/create_news_items.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/tutorial/create_news_items.rst b/user_guide_src/source/tutorial/create_news_items.rst index 5c5270472..bc0ce7612 100644 --- a/user_guide_src/source/tutorial/create_news_items.rst +++ b/user_guide_src/source/tutorial/create_news_items.rst @@ -58,7 +58,7 @@ validation <../libraries/form_validation>` library to do this. $data['title'] = 'Create a news item'; $this->form_validation->set_rules('title', 'Title', 'required'); - $this->form_validation->set_rules('text', 'text', 'required'); + $this->form_validation->set_rules('text', 'Text', 'required'); if ($this->form_validation->run() === FALSE) { -- cgit v1.2.3-24-g4f1b From fbc08a0820bc45fd9e1a8ccefcc711a0126c6509 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Sun, 20 Sep 2015 09:14:50 -0700 Subject: The Lang unit testing claimed to be testing for non-alpha idioms, but wasn't. Setup a new test method to isolate this. Signed-off-by:Master Yoda --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 64120df8e..aaa2f7c73 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -22,6 +22,7 @@ Bug fixes for 3.0.2 - Fixed a bug (#2284) - :doc:`Database ` method ``protect_identifiers()`` breaks when :doc:`Query Builder ` isn't enabled. - Fixed a bug (#4052) - :doc:`Routing ` with anonymous functions didn't work for routes that don't use regular expressions. +- Fixed a bug - the Lang unit testing claimed to be testing for non-alpha idioms, but wasn't. Version 3.0.1 ============= -- cgit v1.2.3-24-g4f1b From ba8f8bca6946c85f78c3d65802474bb128bbf8d9 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Sun, 20 Sep 2015 09:15:05 -0700 Subject: The Lang unit testing claimed to be testing for non-alpha idioms, but wasn't. Setup a new test method to isolate this. Signed-off-by:Master Yoda --- tests/codeigniter/core/Lang_test.php | 173 ++++++++++++++++++----------------- 1 file changed, 89 insertions(+), 84 deletions(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index d2dd7598a..f04f6eab9 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -2,88 +2,93 @@ class Lang_test extends CI_TestCase { - protected $lang; - - public function set_up() - { - $loader_cls = $this->ci_core_class('load'); - $this->ci_instance_var('load', new $loader_cls); - $cls = $this->ci_core_class('lang'); - $this->lang = new $cls; - } - - // -------------------------------------------------------------------- - - public function test_load() - { - // Regular usage - $this->ci_vfs_clone('system/language/english/profiler_lang.php'); - $this->assertTrue($this->lang->load('profiler', 'english')); - $this->assertEquals('URI STRING', $this->lang->language['profiler_uri_string']); - - // Already loaded file - $this->assertNull($this->lang->load('profiler', 'english')); - - // Unspecified language (defaults to english) - $this->ci_vfs_clone('system/language/english/date_lang.php'); - $this->assertTrue($this->lang->load('date')); - $this->assertEquals('Year', $this->lang->language['date_year']); - - // A language other than english - $this->ci_vfs_clone('system/language/english/email_lang.php', 'system/language/german/'); - $this->assertTrue($this->lang->load('email', 'german')); - $this->assertEquals('german', $this->lang->is_loaded['email_lang.php']); - - // Non-alpha idiom (should act the same as unspecified language) - $this->ci_vfs_clone('system/language/english/number_lang.php'); - $this->assertTrue($this->lang->load('number')); - $this->assertEquals('Bytes', $this->lang->language['bytes']); - - // Non-existent file - $this->setExpectedException( - 'RuntimeException', - 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' - ); - $this->lang->load('nonexistent'); - } - - // -------------------------------------------------------------------- - - public function test_multiple_file_load() - { - // Multiple files - $this->ci_vfs_clone('system/language/english/profiler_lang.php'); - $files = array( - 0 => 'profiler', - 1 => 'nonexistent' - ); - $this->setExpectedException( - 'RuntimeException', - 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' - ); - $this->lang->load($files, 'english'); - } - - // -------------------------------------------------------------------- - - public function test_alternative_path_load() - { - // Alternative Path - $this->ci_vfs_clone('system/language/english/profiler_lang.php'); - $this->assertTrue($this->lang->load('profiler', 'english', FALSE, TRUE, 'vfs://system/')); - } - - // -------------------------------------------------------------------- - - /** - * @depends test_load - */ - public function test_line() - { - $this->ci_vfs_clone('system/language/english/profiler_lang.php'); - $this->lang->load('profiler', 'english'); - $this->assertEquals('URI STRING', $this->lang->line('profiler_uri_string')); - $this->assertFalse($this->lang->line('nonexistent_string')); - $this->assertFalse($this->lang->line(NULL)); - } + protected $lang; + + public function set_up() { + $loader_cls = $this->ci_core_class('load'); + $this->ci_instance_var('load', new $loader_cls); + $cls = $this->ci_core_class('lang'); + $this->lang = new $cls; + } + + // -------------------------------------------------------------------- + + public function test_load() { + // Regular usage + $this->ci_vfs_clone('system/language/english/profiler_lang.php'); + $this->assertTrue($this->lang->load('profiler', 'english')); + $this->assertEquals('URI STRING', $this->lang->language['profiler_uri_string']); + + // Already loaded file + $this->assertNull($this->lang->load('profiler', 'english')); + + // Unspecified language (defaults to english) + $this->ci_vfs_clone('system/language/english/date_lang.php'); + $this->assertTrue($this->lang->load('date')); + $this->assertEquals('Year', $this->lang->language['date_year']); + + // A language other than english + $this->ci_vfs_clone('system/language/english/email_lang.php', 'application/language/german/'); + $this->assertTrue($this->lang->load('email', 'german')); + $this->assertEquals('german', $this->lang->is_loaded['email_lang.php']); + + // Non-existent file + $this->setExpectedException( + 'RuntimeException', 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' + ); + $this->lang->load('nonexistent'); + } + + // -------------------------------------------------------------------- + + public function test_non_alpha_idiom() { + // Non-alpha idiom (should act the same as unspecified language) + // test with existing file + $this->ci_vfs_clone('system/language/english/number_lang.php'); + $this->ci_vfs_clone('system/language/english/number_lang.php', 'system/language/123funny/'); + $this->assertTrue($this->lang->load('number', '123funny')); + $this->assertEquals('Bytes', $this->lang->language['bytes']); + + // test without existing file + $this->ci_vfs_clone('system/language/english/email_lang.php'); + $this->assertTrue($this->lang->load('email', '456funny')); + $this->assertEquals('Bytes', $this->lang->language['bytes']); + } + + // -------------------------------------------------------------------- + + public function test_multiple_file_load() { + // Multiple files + $this->ci_vfs_clone('system/language/english/profiler_lang.php'); + $files = array( + 0 => 'profiler', + 1 => 'nonexistent' + ); + $this->setExpectedException( + 'RuntimeException', 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' + ); + $this->lang->load($files, 'english'); + } + + // -------------------------------------------------------------------- + + public function test_alternative_path_load() { + // Alternative Path + $this->ci_vfs_clone('system/language/english/profiler_lang.php'); + $this->assertTrue($this->lang->load('profiler', 'english', FALSE, TRUE, 'vfs://system/')); + } + + // -------------------------------------------------------------------- + + /** + * @depends test_load + */ + public function test_line() { + $this->ci_vfs_clone('system/language/english/profiler_lang.php'); + $this->lang->load('profiler', 'english'); + $this->assertEquals('URI STRING', $this->lang->line('profiler_uri_string')); + $this->assertFalse($this->lang->line('nonexistent_string')); + $this->assertFalse($this->lang->line(NULL)); + } + } -- cgit v1.2.3-24-g4f1b From 1adf834231dae85e55c1bf2d19f3f4b28324f356 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Sun, 20 Sep 2015 09:39:39 -0700 Subject: The Lang unit testing claimed to be testing for non-alpha idioms, but wasn't. Setup a new test method to isolate this. Signed-off-by:Master Yoda --- tests/codeigniter/core/Lang_test.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index f04f6eab9..8262d3e75 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -4,7 +4,8 @@ class Lang_test extends CI_TestCase { protected $lang; - public function set_up() { + public function set_up() + { $loader_cls = $this->ci_core_class('load'); $this->ci_instance_var('load', new $loader_cls); $cls = $this->ci_core_class('lang'); @@ -13,7 +14,8 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_load() { + public function test_load() + { // Regular usage $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $this->assertTrue($this->lang->load('profiler', 'english')); @@ -41,7 +43,8 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_non_alpha_idiom() { + public function test_non_alpha_idiom() + { // Non-alpha idiom (should act the same as unspecified language) // test with existing file $this->ci_vfs_clone('system/language/english/number_lang.php'); @@ -57,7 +60,8 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_multiple_file_load() { + public function test_multiple_file_load() + { // Multiple files $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $files = array( @@ -72,7 +76,8 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_alternative_path_load() { + public function test_alternative_path_load() + { // Alternative Path $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $this->assertTrue($this->lang->load('profiler', 'english', FALSE, TRUE, 'vfs://system/')); @@ -83,7 +88,8 @@ class Lang_test extends CI_TestCase { /** * @depends test_load */ - public function test_line() { + public function test_line() + { $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $this->lang->load('profiler', 'english'); $this->assertEquals('URI STRING', $this->lang->line('profiler_uri_string')); -- cgit v1.2.3-24-g4f1b From 5f8fa02b9e386dfc474d8a6f2302e32674f2b55a Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Sun, 20 Sep 2015 09:43:12 -0700 Subject: Revert "The Lang unit testing claimed to be testing for non-alpha idioms, but wasn't. Setup a new test method to isolate this. Signed-off-by:Master Yoda " This reverts commit 1adf834231dae85e55c1bf2d19f3f4b28324f356. --- tests/codeigniter/core/Lang_test.php | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index 8262d3e75..f04f6eab9 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -4,8 +4,7 @@ class Lang_test extends CI_TestCase { protected $lang; - public function set_up() - { + public function set_up() { $loader_cls = $this->ci_core_class('load'); $this->ci_instance_var('load', new $loader_cls); $cls = $this->ci_core_class('lang'); @@ -14,8 +13,7 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_load() - { + public function test_load() { // Regular usage $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $this->assertTrue($this->lang->load('profiler', 'english')); @@ -43,8 +41,7 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_non_alpha_idiom() - { + public function test_non_alpha_idiom() { // Non-alpha idiom (should act the same as unspecified language) // test with existing file $this->ci_vfs_clone('system/language/english/number_lang.php'); @@ -60,8 +57,7 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_multiple_file_load() - { + public function test_multiple_file_load() { // Multiple files $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $files = array( @@ -76,8 +72,7 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_alternative_path_load() - { + public function test_alternative_path_load() { // Alternative Path $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $this->assertTrue($this->lang->load('profiler', 'english', FALSE, TRUE, 'vfs://system/')); @@ -88,8 +83,7 @@ class Lang_test extends CI_TestCase { /** * @depends test_load */ - public function test_line() - { + public function test_line() { $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $this->lang->load('profiler', 'english'); $this->assertEquals('URI STRING', $this->lang->line('profiler_uri_string')); -- cgit v1.2.3-24-g4f1b From 8a9932ba827f5d69e6aaf5f16cb5c3b1c8024904 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Sun, 20 Sep 2015 09:43:32 -0700 Subject: Revert "Revert "The Lang unit testing claimed to be testing for non-alpha idioms, but wasn't. Setup a new test method to isolate this. Signed-off-by:Master Yoda "" This reverts commit 5f8fa02b9e386dfc474d8a6f2302e32674f2b55a. --- tests/codeigniter/core/Lang_test.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index f04f6eab9..8262d3e75 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -4,7 +4,8 @@ class Lang_test extends CI_TestCase { protected $lang; - public function set_up() { + public function set_up() + { $loader_cls = $this->ci_core_class('load'); $this->ci_instance_var('load', new $loader_cls); $cls = $this->ci_core_class('lang'); @@ -13,7 +14,8 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_load() { + public function test_load() + { // Regular usage $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $this->assertTrue($this->lang->load('profiler', 'english')); @@ -41,7 +43,8 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_non_alpha_idiom() { + public function test_non_alpha_idiom() + { // Non-alpha idiom (should act the same as unspecified language) // test with existing file $this->ci_vfs_clone('system/language/english/number_lang.php'); @@ -57,7 +60,8 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_multiple_file_load() { + public function test_multiple_file_load() + { // Multiple files $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $files = array( @@ -72,7 +76,8 @@ class Lang_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_alternative_path_load() { + public function test_alternative_path_load() + { // Alternative Path $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $this->assertTrue($this->lang->load('profiler', 'english', FALSE, TRUE, 'vfs://system/')); @@ -83,7 +88,8 @@ class Lang_test extends CI_TestCase { /** * @depends test_load */ - public function test_line() { + public function test_line() + { $this->ci_vfs_clone('system/language/english/profiler_lang.php'); $this->lang->load('profiler', 'english'); $this->assertEquals('URI STRING', $this->lang->line('profiler_uri_string')); -- cgit v1.2.3-24-g4f1b From b6b401bcb134f7e99a9ea18e300c0af44d0685bf Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Sun, 20 Sep 2015 09:46:40 -0700 Subject: The Lang unit testing claimed to be testing for non-alpha idioms, but wasn't. Setup a new test method to isolate this. Signed-off-by:Master Yoda --- tests/codeigniter/core/Lang_test.php | 193 ++++++++++++++++++----------------- 1 file changed, 99 insertions(+), 94 deletions(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index 8262d3e75..f8c12d884 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -2,99 +2,104 @@ class Lang_test extends CI_TestCase { - protected $lang; - - public function set_up() - { - $loader_cls = $this->ci_core_class('load'); - $this->ci_instance_var('load', new $loader_cls); - $cls = $this->ci_core_class('lang'); - $this->lang = new $cls; - } - - // -------------------------------------------------------------------- - - public function test_load() - { - // Regular usage - $this->ci_vfs_clone('system/language/english/profiler_lang.php'); - $this->assertTrue($this->lang->load('profiler', 'english')); - $this->assertEquals('URI STRING', $this->lang->language['profiler_uri_string']); - - // Already loaded file - $this->assertNull($this->lang->load('profiler', 'english')); - - // Unspecified language (defaults to english) - $this->ci_vfs_clone('system/language/english/date_lang.php'); - $this->assertTrue($this->lang->load('date')); - $this->assertEquals('Year', $this->lang->language['date_year']); - - // A language other than english - $this->ci_vfs_clone('system/language/english/email_lang.php', 'application/language/german/'); - $this->assertTrue($this->lang->load('email', 'german')); - $this->assertEquals('german', $this->lang->is_loaded['email_lang.php']); - - // Non-existent file - $this->setExpectedException( - 'RuntimeException', 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' - ); - $this->lang->load('nonexistent'); - } - - // -------------------------------------------------------------------- - - public function test_non_alpha_idiom() - { - // Non-alpha idiom (should act the same as unspecified language) - // test with existing file - $this->ci_vfs_clone('system/language/english/number_lang.php'); - $this->ci_vfs_clone('system/language/english/number_lang.php', 'system/language/123funny/'); - $this->assertTrue($this->lang->load('number', '123funny')); - $this->assertEquals('Bytes', $this->lang->language['bytes']); - - // test without existing file - $this->ci_vfs_clone('system/language/english/email_lang.php'); - $this->assertTrue($this->lang->load('email', '456funny')); - $this->assertEquals('Bytes', $this->lang->language['bytes']); - } - - // -------------------------------------------------------------------- - - public function test_multiple_file_load() - { - // Multiple files - $this->ci_vfs_clone('system/language/english/profiler_lang.php'); - $files = array( - 0 => 'profiler', - 1 => 'nonexistent' - ); - $this->setExpectedException( - 'RuntimeException', 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' - ); - $this->lang->load($files, 'english'); - } - - // -------------------------------------------------------------------- - - public function test_alternative_path_load() - { - // Alternative Path - $this->ci_vfs_clone('system/language/english/profiler_lang.php'); - $this->assertTrue($this->lang->load('profiler', 'english', FALSE, TRUE, 'vfs://system/')); - } - - // -------------------------------------------------------------------- - - /** - * @depends test_load - */ - public function test_line() - { - $this->ci_vfs_clone('system/language/english/profiler_lang.php'); - $this->lang->load('profiler', 'english'); - $this->assertEquals('URI STRING', $this->lang->line('profiler_uri_string')); - $this->assertFalse($this->lang->line('nonexistent_string')); - $this->assertFalse($this->lang->line(NULL)); - } + protected $lang; + + public function set_up() + { + $loader_cls = $this->ci_core_class('load'); + $this->ci_instance_var('load', new $loader_cls); + $cls = $this->ci_core_class('lang'); + $this->lang = new $cls; + } + + // -------------------------------------------------------------------- + + public function test_load() + { + // Regular usage + $this->ci_vfs_clone('system/language/english/profiler_lang.php'); + $this->assertTrue($this->lang->load('profiler', 'english')); + $this->assertEquals('URI STRING', $this->lang->language['profiler_uri_string']); + + // Already loaded file + $this->assertNull($this->lang->load('profiler', 'english')); + + // Unspecified language (defaults to english) + $this->ci_vfs_clone('system/language/english/date_lang.php'); + $this->assertTrue($this->lang->load('date')); + $this->assertEquals('Year', $this->lang->language['date_year']); + + // A language other than english + $this->ci_vfs_clone('system/language/english/email_lang.php', 'system/language/german/'); + $this->assertTrue($this->lang->load('email', 'german')); + $this->assertEquals('german', $this->lang->is_loaded['email_lang.php']); + + // Non-alpha idiom (should act the same as unspecified language) + $this->ci_vfs_clone('system/language/english/number_lang.php'); + $this->assertTrue($this->lang->load('number')); + $this->assertEquals('Bytes', $this->lang->language['bytes']); + + // Non-existent file + $this->setExpectedException( + 'RuntimeException', 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' + ); + $this->lang->load('nonexistent'); + } + + // -------------------------------------------------------------------- + + public function test_non_alpha_idiom() + { + // Non-alpha idiom (should act the same as unspecified language) + // test with existing file + $this->ci_vfs_clone('system/language/english/number_lang.php'); + $this->ci_vfs_clone('system/language/english/number_lang.php', 'system/language/123funny/'); + $this->assertTrue($this->lang->load('number', '123funny')); + $this->assertEquals('Bytes', $this->lang->language['bytes']); + + // test without existing file + $this->ci_vfs_clone('system/language/english/email_lang.php'); + $this->assertTrue($this->lang->load('email', '456funny')); + $this->assertEquals('Bytes', $this->lang->language['bytes']); + } + + // -------------------------------------------------------------------- + + public function test_multiple_file_load() + { + // Multiple files + $this->ci_vfs_clone('system/language/english/profiler_lang.php'); + $files = array( + 0 => 'profiler', + 1 => 'nonexistent' + ); + $this->setExpectedException( + 'RuntimeException', 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' + ); + $this->lang->load($files, 'english'); + } + + // -------------------------------------------------------------------- + + public function test_alternative_path_load() + { + // Alternative Path + $this->ci_vfs_clone('system/language/english/profiler_lang.php'); + $this->assertTrue($this->lang->load('profiler', 'english', FALSE, TRUE, 'vfs://system/')); + } + + // -------------------------------------------------------------------- + + /** + * @depends test_load + */ + public function test_line() + { + $this->ci_vfs_clone('system/language/english/profiler_lang.php'); + $this->lang->load('profiler', 'english'); + $this->assertEquals('URI STRING', $this->lang->line('profiler_uri_string')); + $this->assertFalse($this->lang->line('nonexistent_string')); + $this->assertFalse($this->lang->line(NULL)); + } } -- cgit v1.2.3-24-g4f1b From 60858b65a4be78b1d384492588b52e98fd644403 Mon Sep 17 00:00:00 2001 From: zoaked Date: Sun, 20 Sep 2015 17:16:24 -0400 Subject: Persist config file settings when resetting form_validation When checking multiple arrays using form_validation you have to call reset_validation between each separate check due to the instance of the library being a singleton. The issue comes in when the settings are loaded from a config file as they are initially loaded from a parameter in the constructor, but are set to an empty array when resetting the class. To get around this issue a copy of the config parameter is made and then the copy is used to reset the rules when clearing. --- system/libraries/Form_validation.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index af90316a4..a2991395c 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -68,6 +68,7 @@ class CI_Form_validation { * @var array */ protected $_config_rules = array(); + private $_default_config_rules = array(); /** * Array of validation errors @@ -141,7 +142,7 @@ class CI_Form_validation { } // Validation rules can be stored in a config file. - $this->_config_rules = $rules; + $this->_default_config_rules = $this->_config_rules = $rules; // Automatically load the form helper $this->CI->load->helper('form'); @@ -1586,7 +1587,7 @@ class CI_Form_validation { public function reset_validation() { $this->_field_data = array(); - $this->_config_rules = array(); + $this->_config_rules = $this->_default_config_rules; $this->_error_array = array(); $this->_error_messages = array(); $this->error_string = ''; -- cgit v1.2.3-24-g4f1b From f1ca7661ed6479a0f53b20ec5e704321b3e47fcf Mon Sep 17 00:00:00 2001 From: zoaked Date: Sun, 20 Sep 2015 22:29:13 -0400 Subject: Switch from saving copy of config to reset method parameter --- system/libraries/Form_validation.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index a2991395c..aca1d1da9 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -68,7 +68,6 @@ class CI_Form_validation { * @var array */ protected $_config_rules = array(); - private $_default_config_rules = array(); /** * Array of validation errors @@ -142,7 +141,7 @@ class CI_Form_validation { } // Validation rules can be stored in a config file. - $this->_default_config_rules = $this->_config_rules = $rules; + $this->_config_rules = $rules; // Automatically load the form helper $this->CI->load->helper('form'); @@ -1582,12 +1581,14 @@ class CI_Form_validation { * Prevents subsequent validation routines from being affected by the * results of any previous validation routine due to the CI singleton. * + * @param bool * @return CI_Form_validation */ - public function reset_validation() + public function reset_validation($keep_config=false) { $this->_field_data = array(); - $this->_config_rules = $this->_default_config_rules; + if( ! $keep_config) + $this->_config_rules = array(); $this->_error_array = array(); $this->_error_messages = array(); $this->error_string = ''; -- cgit v1.2.3-24-g4f1b From 16742b2bc7183e0b74c02532f8bbceed191fa4e2 Mon Sep 17 00:00:00 2001 From: zoaked Date: Sun, 20 Sep 2015 22:37:05 -0400 Subject: Update changelog.rst --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 64120df8e..0448025cc 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -22,6 +22,7 @@ Bug fixes for 3.0.2 - Fixed a bug (#2284) - :doc:`Database ` method ``protect_identifiers()`` breaks when :doc:`Query Builder ` isn't enabled. - Fixed a bug (#4052) - :doc:`Routing ` with anonymous functions didn't work for routes that don't use regular expressions. +- Fixed a bug (#4126) - Added optional parameter to ``reset_validation()`` in ``Form_validation`` that stops ``_config_rules`` from being cleared. Version 3.0.1 ============= -- cgit v1.2.3-24-g4f1b From 3fa8486605da66f5436d44cac16279233bb0cf47 Mon Sep 17 00:00:00 2001 From: zoaked Date: Sun, 20 Sep 2015 22:55:35 -0400 Subject: Update form_validation.rst --- user_guide_src/source/libraries/form_validation.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index be6d1f233..858ff1ac0 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -714,6 +714,8 @@ file. You can organize these rules into "groups". These groups can either be loaded automatically when a matching controller/method is called, or you can manually call each set as needed. +.. important:: Make sure that when using the ``reset_validation()`` method you pass ``true`` as a parameter. If you do not then all the validation rules loaded from the config file will be cleared as well! + How to save your rules ====================== @@ -1076,8 +1078,9 @@ Class Reference Permits you to set an array for validation, instead of using the default ``$_POST`` array. - .. php:method:: reset_validation() + .. php:method:: reset_validation($keep_config=false) + :param bool $keep_config: Will leave configured validation rules alone when true or clear them when false. This parameter must be true if your rules are being loaded from a config file :returns: CI_Form_validation instance (method chaining) :rtype: CI_Form_validation @@ -1137,4 +1140,4 @@ the following functions: - :php:func:`set_radio()` Note that these are procedural functions, so they **do not** require you -to prepend them with ``$this->form_validation``. \ No newline at end of file +to prepend them with ``$this->form_validation``. -- cgit v1.2.3-24-g4f1b From 70db3ca0f0d28a975c7a1a65726e5f31392c6a40 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Mon, 21 Sep 2015 07:17:40 -0700 Subject: Fixed the pulldown nav Signed-off-by:Master Yoda --- .../_themes/sphinx_rtd_theme/static/js/theme.js | 202 ++++++++++++--------- user_guide_src/source/changelog.rst | 1 + 2 files changed, 118 insertions(+), 85 deletions(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js index 66edf2fa2..8aee6ca29 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js @@ -1,84 +1,116 @@ -$( document ).ready(function() { +$(document).ready(function () { // Shift nav in mobile when clicking the menu. - $(document).on('click', "[data-toggle='wy-nav-top']", function() { - $("[data-toggle='wy-nav-shift']").toggleClass("shift"); - $("[data-toggle='rst-versions']").toggleClass("shift"); + $(document).on('click', "[data-toggle='wy-nav-top']", function () { + $("[data-toggle='wy-nav-shift']").toggleClass("shift"); + $("[data-toggle='rst-versions']").toggleClass("shift"); }); // Close menu when you click a link. - $(document).on('click', ".wy-menu-vertical .current ul li a", function() { - $("[data-toggle='wy-nav-shift']").removeClass("shift"); - $("[data-toggle='rst-versions']").toggleClass("shift"); + $(document).on('click', ".wy-menu-vertical .current ul li a", function () { + $("[data-toggle='wy-nav-shift']").removeClass("shift"); + $("[data-toggle='rst-versions']").toggleClass("shift"); + }); + $(document).on('click', "[data-toggle='rst-current-version']", function () { + $("[data-toggle='rst-versions']").toggleClass("shift-up"); }); - $(document).on('click', "[data-toggle='rst-current-version']", function() { - $("[data-toggle='rst-versions']").toggleClass("shift-up"); - }); // Make tables responsive - $("table.docutils:not(.field-list)").wrap("
"); - // --- - // START DOC MODIFICATION BY RUFNEX - // v1.0 04.02.2015 - // Add ToogleButton to get FullWidth-View by Johannes Gamperl codeigniter.de - var ciNav = ''; - ciNav += '
'; - $('body').prepend(ciNav); - // - var a = ['Index', 'CodeIgniter User Guide¶', 'Change Log¶', 'Developer’s Certificate of Origin 1.1¶', 'The MIT License (MIT)¶']; - if ($.inArray($('h1').text(), a) > 0 || $('h2').text() == 'Search Results') - { - $('table.ciNav a').each(function(){ - $(this).attr('href', $(this).attr("href").replace('../', '')); - }); - console.log(1111); - } - // - $('#openToc').click(function(){ - $('#nav').slideToggle(); - }); - $('.wy-breadcrumbs').append('
toc
'); - $('#closeMe').toggle( - function() - { - setCookie('ciNav', true, 365); - $('#nav2').show(); - $('#topMenu').remove(); - $('body').css({ background:'none' }); - $('.wy-nav-content-wrap').css({ background:'none', 'margin-left':0 }); - $('.wy-breadcrumbs').append('
'+$('.wy-form').parent().html()+'
');$('.wy-nav-side').toggle(); - }, - function() - { - setCookie('ciNav', false, 365); - $('#topMenu').remove(); - $('#nav').hide(); - $('#nav2').hide(); - $('body').css({ background:'#edf0f2;' }); - $('.wy-nav-content-wrap').css({ background:'none repeat scroll 0 0 #fcfcfc;', 'margin-left':'300px' }); - $('.wy-nav-side').show(); - } - ); - if (getCookie('ciNav') == 'true') - { - $('#closeMe').trigger('click'); - //$('#nav').slideToggle(); - } - // END MODIFICATION --- + $("table.docutils:not(.field-list)").wrap("
"); + // --- + // START DOC MODIFICATION BY RUFNEX + // v1.0 04.02.2015 + // Add ToogleButton to get FullWidth-View by Johannes Gamperl codeigniter.de + // JLP - reformatted to make additions or corrections easier. Still hard-coded :(( + var ciNav = '\ +\ +
\ +'; + $('body').prepend(ciNav); + // + var a = ['Index', 'CodeIgniter User Guide¶', 'Change Log¶', 'Developer’s Certificate of Origin 1.1¶', 'The MIT License (MIT)¶']; + if ($.inArray($('h1').text(), a) > 0 || $('#search-results').length) + { + $('table.ciNav a').each(function () { + $(this).attr('href', $(this).attr("href").replace('../', '')); + }); + } + + // + $('#openToc').click(function () { + $('#nav').slideToggle(); + }); + $('.wy-breadcrumbs').append('
toc
'); + $('#closeMe').toggle( + function () + { + setCookie('ciNav', true, 365); + $('#nav2').show(); + $('#topMenu').remove(); + $('body').css({background: 'none'}); + $('.wy-nav-content-wrap').css({background: 'none', 'margin-left': 0}); + $('.wy-breadcrumbs').append('
' + $('.wy-form').parent().html() + '
'); + $('.wy-nav-side').toggle(); + }, + function () + { + setCookie('ciNav', false, 365); + $('#topMenu').remove(); + $('#nav').hide(); + $('#nav2').hide(); + $('body').css({background: '#edf0f2;'}); + $('.wy-nav-content-wrap').css({background: 'none repeat scroll 0 0 #fcfcfc;', 'margin-left': '300px'}); + $('.wy-nav-side').show(); + } + ); + if (getCookie('ciNav') == 'true') + { + $('#closeMe').trigger('click'); + //$('#nav').slideToggle(); + } + // END MODIFICATION --- }); // Rufnex Cookie functions -function setCookie(cname,cvalue,exdays) { +function setCookie(cname, cvalue, exdays) { var d = new Date(); - d.setTime(d.getTime() + (exdays*24*60*60*1000)); + d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toGMTString(); - document.cookie = cname+"="+cvalue+"; "+expires; + document.cookie = cname + "=" + cvalue + "; " + expires; } function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); - for(var i=0; i` method ``protect_identifiers()`` breaks when :doc:`Query Builder ` isn't enabled. - Fixed a bug (#4052) - :doc:`Routing ` with anonymous functions didn't work for routes that don't use regular expressions. +- Fixed a bug (#4043) - broken links in pulldown menu after search Version 3.0.1 ============= -- cgit v1.2.3-24-g4f1b From 9f1b1bc3dd18ec8439b3fda6ac92c2cd87da31fb Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Mon, 21 Sep 2015 07:22:25 -0700 Subject: Changes suggested by Andrey Signed-off-by:Master Yoda --- tests/codeigniter/core/Lang_test.php | 6 ++++-- user_guide_src/source/changelog.rst | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index f8c12d884..1aa5212ac 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -41,7 +41,8 @@ class Lang_test extends CI_TestCase { // Non-existent file $this->setExpectedException( - 'RuntimeException', 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' + 'RuntimeException', + 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' ); $this->lang->load('nonexistent'); } @@ -74,7 +75,8 @@ class Lang_test extends CI_TestCase { 1 => 'nonexistent' ); $this->setExpectedException( - 'RuntimeException', 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' + 'RuntimeException', + 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' ); $this->lang->load($files, 'english'); } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index aaa2f7c73..64120df8e 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -22,7 +22,6 @@ Bug fixes for 3.0.2 - Fixed a bug (#2284) - :doc:`Database ` method ``protect_identifiers()`` breaks when :doc:`Query Builder ` isn't enabled. - Fixed a bug (#4052) - :doc:`Routing ` with anonymous functions didn't work for routes that don't use regular expressions. -- Fixed a bug - the Lang unit testing claimed to be testing for non-alpha idioms, but wasn't. Version 3.0.1 ============= -- cgit v1.2.3-24-g4f1b From a15d96ccf56092d992831df5a6292387c8918242 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Mon, 21 Sep 2015 09:27:46 -0700 Subject: Removed mention of the fix in the changelog - not a framework issue. Signed-off-by:Master Yoda --- user_guide_src/source/changelog.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 578c84979..64120df8e 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -22,7 +22,6 @@ Bug fixes for 3.0.2 - Fixed a bug (#2284) - :doc:`Database ` method ``protect_identifiers()`` breaks when :doc:`Query Builder ` isn't enabled. - Fixed a bug (#4052) - :doc:`Routing ` with anonymous functions didn't work for routes that don't use regular expressions. -- Fixed a bug (#4043) - broken links in pulldown menu after search Version 3.0.1 ============= -- cgit v1.2.3-24-g4f1b From cf0586148b4a2901adc21575fb9487f9aeaa6892 Mon Sep 17 00:00:00 2001 From: zoaked Date: Mon, 21 Sep 2015 22:41:07 -0400 Subject: Styling changes --- system/libraries/Form_validation.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index aca1d1da9..31f80e959 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1584,14 +1584,16 @@ class CI_Form_validation { * @param bool * @return CI_Form_validation */ - public function reset_validation($keep_config=false) + public function reset_validation($keep_config = FALSE) { $this->_field_data = array(); - if( ! $keep_config) - $this->_config_rules = array(); $this->_error_array = array(); $this->_error_messages = array(); $this->error_string = ''; + if ( ! $keep_config) + { + $this->_config_rules = array(); + } return $this; } -- cgit v1.2.3-24-g4f1b From 2811b5554e9a348a35873bf3b867d8e2773d2728 Mon Sep 17 00:00:00 2001 From: zoaked Date: Mon, 21 Sep 2015 22:47:52 -0400 Subject: Added optional parameter to reset_validation() in form_validation library --- user_guide_src/source/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 0448025cc..e176f4355 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -16,13 +16,13 @@ Release Date: Not Released - General Changes - Updated the *application/config/constants.php* file to check if constants aren't already defined before doing that. + - Added optional parameter to ``reset_validation()`` in :doc:`form validation` that stops ``_config_rules`` from being cleared. Bug fixes for 3.0.2 ------------------- - Fixed a bug (#2284) - :doc:`Database ` method ``protect_identifiers()`` breaks when :doc:`Query Builder ` isn't enabled. - Fixed a bug (#4052) - :doc:`Routing ` with anonymous functions didn't work for routes that don't use regular expressions. -- Fixed a bug (#4126) - Added optional parameter to ``reset_validation()`` in ``Form_validation`` that stops ``_config_rules`` from being cleared. Version 3.0.1 ============= -- cgit v1.2.3-24-g4f1b From 505e15d01bb4b1b222d9685062d5c294c1ad38c0 Mon Sep 17 00:00:00 2001 From: zoaked Date: Mon, 21 Sep 2015 23:02:30 -0400 Subject: Added optional parameter to reset_validation() --- user_guide_src/source/libraries/form_validation.rst | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 858ff1ac0..15d9b1cb7 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -714,8 +714,6 @@ file. You can organize these rules into "groups". These groups can either be loaded automatically when a matching controller/method is called, or you can manually call each set as needed. -.. important:: Make sure that when using the ``reset_validation()`` method you pass ``true`` as a parameter. If you do not then all the validation rules loaded from the config file will be cleared as well! - How to save your rules ====================== @@ -1078,9 +1076,9 @@ Class Reference Permits you to set an array for validation, instead of using the default ``$_POST`` array. - .. php:method:: reset_validation($keep_config=false) + .. php:method:: reset_validation($keep_config = FALSE) - :param bool $keep_config: Will leave configured validation rules alone when true or clear them when false. This parameter must be true if your rules are being loaded from a config file + :param bool $keep_config: Whether to reset validation rules from config files :returns: CI_Form_validation instance (method chaining) :rtype: CI_Form_validation -- cgit v1.2.3-24-g4f1b From 4f674091a22fa07d034eebef5848620fca6f9ca2 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Thu, 24 Sep 2015 07:25:32 -0700 Subject: Fix the tabs Signed-off-by:Master Yoda --- tests/codeigniter/core/Lang_test.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index 1aa5212ac..8197028a2 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -41,8 +41,8 @@ class Lang_test extends CI_TestCase { // Non-existent file $this->setExpectedException( - 'RuntimeException', - 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' + 'RuntimeException', + 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' ); $this->lang->load('nonexistent'); } @@ -75,8 +75,8 @@ class Lang_test extends CI_TestCase { 1 => 'nonexistent' ); $this->setExpectedException( - 'RuntimeException', - 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' + 'RuntimeException', + 'CI Error: Unable to load the requested language file: language/english/nonexistent_lang.php' ); $this->lang->load($files, 'english'); } -- cgit v1.2.3-24-g4f1b From fcb4129694951a8e43aacbdbaa08688d1c7c7225 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Thu, 24 Sep 2015 07:26:32 -0700 Subject: Fix the tabs Signed-off-by:Master Yoda --- tests/codeigniter/core/Lang_test.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index 8197028a2..c5aaf04b2 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -103,5 +103,4 @@ class Lang_test extends CI_TestCase { $this->assertFalse($this->lang->line('nonexistent_string')); $this->assertFalse($this->lang->line(NULL)); } - } -- cgit v1.2.3-24-g4f1b From deabce0f19610949a297093516527837ee094469 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Thu, 24 Sep 2015 07:27:33 -0700 Subject: Fix the tabs Signed-off-by:Master Yoda --- tests/codeigniter/core/Lang_test.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index c5aaf04b2..263bb9665 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -34,11 +34,6 @@ class Lang_test extends CI_TestCase { $this->assertTrue($this->lang->load('email', 'german')); $this->assertEquals('german', $this->lang->is_loaded['email_lang.php']); - // Non-alpha idiom (should act the same as unspecified language) - $this->ci_vfs_clone('system/language/english/number_lang.php'); - $this->assertTrue($this->lang->load('number')); - $this->assertEquals('Bytes', $this->lang->language['bytes']); - // Non-existent file $this->setExpectedException( 'RuntimeException', -- cgit v1.2.3-24-g4f1b From bbed8d5429917d5f7b188bcf59d9156e330a7749 Mon Sep 17 00:00:00 2001 From: zoaked Date: Sat, 26 Sep 2015 12:40:31 -0400 Subject: Removing config_rules from reset_validation Signed-off-by: Junior Asparagus --- system/libraries/Form_validation.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 31f80e959..a158225ee 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1581,19 +1581,14 @@ class CI_Form_validation { * Prevents subsequent validation routines from being affected by the * results of any previous validation routine due to the CI singleton. * - * @param bool * @return CI_Form_validation */ - public function reset_validation($keep_config = FALSE) + public function reset_validation() { $this->_field_data = array(); $this->_error_array = array(); $this->_error_messages = array(); $this->error_string = ''; - if ( ! $keep_config) - { - $this->_config_rules = array(); - } return $this; } -- cgit v1.2.3-24-g4f1b From 8ccab5218d318ce14ad3a7d76477a21a8930e269 Mon Sep 17 00:00:00 2001 From: zoaked Date: Sat, 26 Sep 2015 12:44:10 -0400 Subject: Removed reset_validation changes that were no longer needed --- user_guide_src/source/libraries/form_validation.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 15d9b1cb7..140bbc65d 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -1076,9 +1076,8 @@ Class Reference Permits you to set an array for validation, instead of using the default ``$_POST`` array. - .. php:method:: reset_validation($keep_config = FALSE) + .. php:method:: reset_validation() - :param bool $keep_config: Whether to reset validation rules from config files :returns: CI_Form_validation instance (method chaining) :rtype: CI_Form_validation -- cgit v1.2.3-24-g4f1b From c8f30aac973491cb6a00335c8ac768c149245e11 Mon Sep 17 00:00:00 2001 From: zoaked Date: Sat, 26 Sep 2015 12:52:11 -0400 Subject: Removing config_rules from reset_validation Signed-off-by: Junior Asparagus --- user_guide_src/source/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index e176f4355..aa61a886e 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -16,13 +16,13 @@ Release Date: Not Released - General Changes - Updated the *application/config/constants.php* file to check if constants aren't already defined before doing that. - - Added optional parameter to ``reset_validation()`` in :doc:`form validation` that stops ``_config_rules`` from being cleared. Bug fixes for 3.0.2 ------------------- - Fixed a bug (#2284) - :doc:`Database ` method ``protect_identifiers()`` breaks when :doc:`Query Builder ` isn't enabled. - Fixed a bug (#4052) - :doc:`Routing ` with anonymous functions didn't work for routes that don't use regular expressions. +- Fixed a bug (#4126) - :doc:`Form Validation Library ` was needlessly clearing ``$_config_rules`` when calling ``reset_validation()`` method. Version 3.0.1 ============= -- cgit v1.2.3-24-g4f1b From ddb80e7402697b6ca995f31810ad9e1c8f380b81 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Sat, 26 Sep 2015 10:05:45 -0700 Subject: Fix the testing of non-alhpa idioms Signed-off-by:Master Yoda --- tests/codeigniter/core/Lang_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/codeigniter/core/Lang_test.php b/tests/codeigniter/core/Lang_test.php index 263bb9665..4958f42e1 100644 --- a/tests/codeigniter/core/Lang_test.php +++ b/tests/codeigniter/core/Lang_test.php @@ -56,7 +56,7 @@ class Lang_test extends CI_TestCase { // test without existing file $this->ci_vfs_clone('system/language/english/email_lang.php'); $this->assertTrue($this->lang->load('email', '456funny')); - $this->assertEquals('Bytes', $this->lang->language['bytes']); + $this->assertEquals('You did not specify a SMTP hostname.', $this->lang->language['email_no_hostname']); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 921b9ee11bcf29dfdc4113928fa87448c5f1c1d1 Mon Sep 17 00:00:00 2001 From: Дмитрий Date: Sun, 27 Sep 2015 07:34:11 +0800 Subject: cal_cel_other forget to close a tag cal_cel_other --- user_guide_src/source/libraries/calendar.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/libraries/calendar.rst b/user_guide_src/source/libraries/calendar.rst index 52883d297..ea0f4d108 100644 --- a/user_guide_src/source/libraries/calendar.rst +++ b/user_guide_src/source/libraries/calendar.rst @@ -179,7 +179,7 @@ will be placed within a pair of pseudo-variables as shown here:: {cal_cell_blank} {/cal_cell_blank} - {cal_cell_other}{day}{cal_cel_other} + {cal_cell_other}{day}{/cal_cel_other} {cal_cell_end}{/cal_cell_end} {cal_cell_end_today}{/cal_cell_end_today} @@ -304,4 +304,4 @@ Class Reference :rtype: CI_Calendar Harvests the data within the template ``{pseudo-variables}`` used to - display the calendar. \ No newline at end of file + display the calendar. -- cgit v1.2.3-24-g4f1b From 0dbd848dbc69b74489f1fb4e360e8be785727c76 Mon Sep 17 00:00:00 2001 From: zoaked Date: Mon, 28 Sep 2015 11:38:16 -0400 Subject: Update changelog.rst --- user_guide_src/source/changelog.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index aa61a886e..64120df8e 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -22,7 +22,6 @@ Bug fixes for 3.0.2 - Fixed a bug (#2284) - :doc:`Database ` method ``protect_identifiers()`` breaks when :doc:`Query Builder ` isn't enabled. - Fixed a bug (#4052) - :doc:`Routing ` with anonymous functions didn't work for routes that don't use regular expressions. -- Fixed a bug (#4126) - :doc:`Form Validation Library ` was needlessly clearing ``$_config_rules`` when calling ``reset_validation()`` method. Version 3.0.1 ============= -- cgit v1.2.3-24-g4f1b From 84b5f24f2fa9932e6986cdb98731d1a0e7e76e1e Mon Sep 17 00:00:00 2001 From: Hongyi Zhang Date: Tue, 29 Sep 2015 17:42:29 -0700 Subject: refactor pulldown menu generation using sphinx toctree Signed-off-by: Hongyi Zhang --- .../_themes/sphinx_rtd_theme/breadcrumbs.html | 3 + .../source/_themes/sphinx_rtd_theme/layout.html | 2 + .../source/_themes/sphinx_rtd_theme/pulldown.html | 17 ++++ .../sphinx_rtd_theme/static/css/citheme.css | 70 ++++++++++++++++- .../_themes/sphinx_rtd_theme/static/js/theme.js | 90 ++++++---------------- 5 files changed, 113 insertions(+), 69 deletions(-) create mode 100644 user_guide_src/source/_themes/sphinx_rtd_theme/pulldown.html diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html index ff0938e5c..55337accf 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html @@ -14,6 +14,9 @@ View page source {% endif %} +
+ classic layout +

diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/layout.html b/user_guide_src/source/_themes/sphinx_rtd_theme/layout.html index 1203b2f34..20ede7d32 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/layout.html +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/layout.html @@ -77,6 +77,8 @@ + {% include "pulldown.html" %} +
{# SIDE NAV, TOGGLES ON MOBILE #} diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/pulldown.html b/user_guide_src/source/_themes/sphinx_rtd_theme/pulldown.html new file mode 100644 index 000000000..7877346d8 --- /dev/null +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/pulldown.html @@ -0,0 +1,17 @@ + + diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css index 10e7d04c6..0f83765b2 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css @@ -4,4 +4,72 @@ padding: 0px !important; font-weight: inherit !important; background-color: #f1d40f !important; -} \ No newline at end of file +} + +#nav { + background-color: #494949; + margin: 0; + padding: 0; + display:none; +} + +#nav2 { + background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgKCgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAMgAzAwERAAIRAQMRAf/EAFkAAQADAQAAAAAAAAAAAAAAAAABBQcIAQEAAAAAAAAAAAAAAAAAAAAAEAABAgYDAAAAAAAAAAAAAAAAAVERAtMEFJRVBxgRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AMRAAAAAAAA7a87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wN/wJGAYEjAMCRgGBIwDAkYBgSMAwJGAsoIwCCMAgjAIIwCCMAgjAIIwEgAAAAAAAAAAAAAAAAAAAAAAAH//2Q==) repeat-x scroll left top transparent; + margin: 0; + padding: 0 310px 0 0; + text-align: right; + display:none; +} + +#nav_inner { + background-color: transparent; + font-family: Lucida Grande,Verdana,Geneva,sans-serif; + font-size: 11px; + margin: 0; + padding: 8px 12px 0 20px; +} + +div#pulldown-menu { + -moz-column-count: 5; + -moz-column-gap: 20px; + -webkit-column-count: 5; + -webkit-column-gap: 20px; + column-count: 5; + column-gap: 20px; + -webkit-column-rule: 1px groove #B8B8B8; + -moz-column-rule: 1px groove #B8B8B8; + column-rule: 1px groove #B8B8B8; +} + +#pulldown-menu > ul { + padding-top: 10px; + padding-bottom: 10px; + -webkit-column-break-inside: avoid; /*Chrome, Safari*/ + display: table; /*Firefox*/ + break-inside: avoid; /*IE 10+ theoretically*/ +} + +#pulldown-menu ul li.toctree-l2 { + font-size:0.82em; + margin-left: 20px; + list-style-image: url(data:image/gif;base64,R0lGODlhCwAJALMJAO7u7uTk5PLy8unp6fb29t7e3vj4+Li4uIWFheTk5AAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAALAAkAAAQoMJ1JqTQ4Z3SI98jHCWSJkByArCyiHkMsIzEX3DeCc0Xv+4hEa5iIAAA7); +} + +#pulldown-menu ul li.toctree-l1 a { + color:#fff; + text-decoration: none; + font-size:12px; + font-family: "Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif; + font-weight: 700; +} + +#pulldown-menu ul li.toctree-l2 a { + text-decoration: none; + font-size:11px; + line-height:1.4em; + font-weight: 300; + font-family: Lucida Grande,Verdana,Geneva,sans-serif; + color: #aaa; +} + + diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js index 8aee6ca29..267d87c6e 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js @@ -12,89 +12,43 @@ $(document).ready(function () { $(document).on('click', "[data-toggle='rst-current-version']", function () { $("[data-toggle='rst-versions']").toggleClass("shift-up"); }); - // Make tables responsive - $("table.docutils:not(.field-list)").wrap("
"); + // // Make tables responsive + // $("table.docutils:not(.field-list)").wrap("
"); // --- // START DOC MODIFICATION BY RUFNEX // v1.0 04.02.2015 // Add ToogleButton to get FullWidth-View by Johannes Gamperl codeigniter.de - // JLP - reformatted to make additions or corrections easier. Still hard-coded :(( - var ciNav = '\ -\ -
\ -'; - $('body').prepend(ciNav); - // - var a = ['Index', 'CodeIgniter User Guide¶', 'Change Log¶', 'Developer’s Certificate of Origin 1.1¶', 'The MIT License (MIT)¶']; - if ($.inArray($('h1').text(), a) > 0 || $('#search-results').length) - { - $('table.ciNav a').each(function () { - $(this).attr('href', $(this).attr("href").replace('../', '')); - }); - } - // $('#openToc').click(function () { $('#nav').slideToggle(); }); - $('.wy-breadcrumbs').append('
toc
'); $('#closeMe').toggle( - function () - { - setCookie('ciNav', true, 365); - $('#nav2').show(); - $('#topMenu').remove(); - $('body').css({background: 'none'}); - $('.wy-nav-content-wrap').css({background: 'none', 'margin-left': 0}); - $('.wy-breadcrumbs').append('
' + $('.wy-form').parent().html() + '
'); - $('.wy-nav-side').toggle(); - }, - function () - { - setCookie('ciNav', false, 365); - $('#topMenu').remove(); - $('#nav').hide(); - $('#nav2').hide(); - $('body').css({background: '#edf0f2;'}); - $('.wy-nav-content-wrap').css({background: 'none repeat scroll 0 0 #fcfcfc;', 'margin-left': '300px'}); - $('.wy-nav-side').show(); - } + function () + { + setCookie('ciNav', true, 365); + $('#nav2').show(); + $('#topMenu').remove(); + $('body').css({background: 'none'}); + $('.wy-nav-content-wrap').css({background: 'none', 'margin-left': 0}); + $('.wy-breadcrumbs').append('
' + $('.wy-form').parent().html() + '
'); + $('.wy-nav-side').toggle(); + }, + function () + { + setCookie('ciNav', false, 365); + $('#topMenu').remove(); + $('#nav').hide(); + $('#nav2').hide(); + $('body').css({background: '#edf0f2;'}); + $('.wy-nav-content-wrap').css({background: 'none repeat scroll 0 0 #fcfcfc;', 'margin-left': '300px'}); + $('.wy-nav-side').show(); + } ); if (getCookie('ciNav') == 'true') { $('#closeMe').trigger('click'); //$('#nav').slideToggle(); } - // END MODIFICATION --- }); // Rufnex Cookie functions -- cgit v1.2.3-24-g4f1b From b881ba33067000117f50ede4a9b76aaef99a3605 Mon Sep 17 00:00:00 2001 From: Hongyi Zhang Date: Tue, 29 Sep 2015 17:46:48 -0700 Subject: add end modification message back Signed-off-by: Hongyi Zhang --- user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js index 267d87c6e..f7ea328bf 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js @@ -49,6 +49,8 @@ $(document).ready(function () { $('#closeMe').trigger('click'); //$('#nav').slideToggle(); } + // END MODIFICATION --- + }); // Rufnex Cookie functions -- cgit v1.2.3-24-g4f1b From ce5734911bcfe31e0a56d6e38f625d81ceb9c1b6 Mon Sep 17 00:00:00 2001 From: Hongyi Zhang Date: Thu, 1 Oct 2015 15:00:58 -0700 Subject: Fix indentations Signed-off-by: Hongyi Zhang --- .../_themes/sphinx_rtd_theme/breadcrumbs.html | 23 +++++++++++----------- .../sphinx_rtd_theme/static/css/citheme.css | 14 ++++++------- .../_themes/sphinx_rtd_theme/static/js/theme.js | 3 +-- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html index 55337accf..74ca4dc00 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html @@ -2,21 +2,20 @@ -
diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css index 0f83765b2..b2e1dd494 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css @@ -31,11 +31,11 @@ div#pulldown-menu { -moz-column-count: 5; - -moz-column-gap: 20px; - -webkit-column-count: 5; - -webkit-column-gap: 20px; - column-count: 5; - column-gap: 20px; + -moz-column-gap: 20px; + -webkit-column-count: 5; + -webkit-column-gap: 20px; + column-count: 5; + column-gap: 20px; -webkit-column-rule: 1px groove #B8B8B8; -moz-column-rule: 1px groove #B8B8B8; column-rule: 1px groove #B8B8B8; @@ -45,8 +45,8 @@ div#pulldown-menu { padding-top: 10px; padding-bottom: 10px; -webkit-column-break-inside: avoid; /*Chrome, Safari*/ - display: table; /*Firefox*/ - break-inside: avoid; /*IE 10+ theoretically*/ + display: table; /*Firefox*/ + break-inside: avoid; /*IE 10+ theoretically*/ } #pulldown-menu ul li.toctree-l2 { diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js index f7ea328bf..17ded53f1 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js @@ -49,8 +49,7 @@ $(document).ready(function () { $('#closeMe').trigger('click'); //$('#nav').slideToggle(); } - // END MODIFICATION --- - + // END MODIFICATION --- }); // Rufnex Cookie functions -- cgit v1.2.3-24-g4f1b From e8ea8ec857425575b7c3c7dfdce76c693d7f5b5c Mon Sep 17 00:00:00 2001 From: Hongyi Zhang Date: Thu, 1 Oct 2015 15:26:42 -0700 Subject: minor fixes: add back theme codes Signed-off-by: Hongyi Zhang --- user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html | 1 + user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html index 74ca4dc00..60343661a 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html @@ -18,4 +18,5 @@ classic layout
+
diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js index 17ded53f1..b77789d06 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js @@ -12,8 +12,8 @@ $(document).ready(function () { $(document).on('click', "[data-toggle='rst-current-version']", function () { $("[data-toggle='rst-versions']").toggleClass("shift-up"); }); - // // Make tables responsive - // $("table.docutils:not(.field-list)").wrap("
"); + // Make tables responsive + $("table.docutils:not(.field-list)").wrap("
"); // --- // START DOC MODIFICATION BY RUFNEX // v1.0 04.02.2015 -- cgit v1.2.3-24-g4f1b From 93e8513136b76fd848221fba275fa43b63b3dce7 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Fri, 2 Oct 2015 06:47:30 -0700 Subject: Rearrange the TOC slightly, to support consistency between the side menu and the sphonx toctree-derived pulldown menu. Signed-off-by:Master Yoda --- user_guide_src/source/index.rst | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/user_guide_src/source/index.rst b/user_guide_src/source/index.rst index 8d8aa9438..a13ec983e 100644 --- a/user_guide_src/source/index.rst +++ b/user_guide_src/source/index.rst @@ -54,6 +54,16 @@ Tutorial tutorial/index +*************************** +Contributing to CodeIgniter +*************************** + +.. toctree:: + :glob: + :titlesonly: + + contributing/index + ************** General Topics ************** @@ -94,16 +104,6 @@ Helper Reference helpers/index -*************************** -Contributing to CodeIgniter -*************************** - -.. toctree:: - :glob: - :titlesonly: - - contributing/index - .. toctree:: :glob: :titlesonly: -- cgit v1.2.3-24-g4f1b From d4357dcc8ef213874d263dd9c55d39446bed2163 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 2 Oct 2015 16:59:58 +0300 Subject: [ci skip] Some consistency in the docs' theme CSS --- .../sphinx_rtd_theme/static/css/citheme.css | 72 +++++++++++----------- 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css index b2e1dd494..192af2004 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css @@ -3,42 +3,42 @@ .highlighted { padding: 0px !important; font-weight: inherit !important; - background-color: #f1d40f !important; + background-color: #f1d40f !important; } -#nav { - background-color: #494949; - margin: 0; +#nav { + background-color: #494949; + margin: 0; padding: 0; - display:none; + display: none; } -#nav2 { - background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgKCgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAMgAzAwERAAIRAQMRAf/EAFkAAQADAQAAAAAAAAAAAAAAAAABBQcIAQEAAAAAAAAAAAAAAAAAAAAAEAABAgYDAAAAAAAAAAAAAAAAAVERAtMEFJRVBxgRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AMRAAAAAAAA7a87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wN/wJGAYEjAMCRgGBIwDAkYBgSMAwJGAsoIwCCMAgjAIIwCCMAgjAIIwEgAAAAAAAAAAAAAAAAAAAAAAAH//2Q==) repeat-x scroll left top transparent; - margin: 0; - padding: 0 310px 0 0; +#nav2 { + background: url(data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2JlAGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgKCgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAMgAzAwERAAIRAQMRAf/EAFkAAQADAQAAAAAAAAAAAAAAAAABBQcIAQEAAAAAAAAAAAAAAAAAAAAAEAABAgYDAAAAAAAAAAAAAAAAAVERAtMEFJRVBxgRAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AMRAAAAAAAA7a87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wHnbrLgV272uA87dZcCu3e1wN/wJGAYEjAMCRgGBIwDAkYBgSMAwJGAsoIwCCMAgjAIIwCCMAgjAIIwEgAAAAAAAAAAAAAAAAAAAAAAAH//2Q==) repeat-x scroll left top transparent; + margin: 0; + padding: 0 310px 0 0; text-align: right; - display:none; + display: none; } -#nav_inner { - background-color: transparent; - font-family: Lucida Grande,Verdana,Geneva,sans-serif; - font-size: 11px; - margin: 0; +#nav_inner { + background-color: transparent; + font-family: Lucida Grande,Verdana,Geneva,sans-serif; + font-size: 11px; + margin: 0; padding: 8px 12px 0 20px; } -div#pulldown-menu { +div#pulldown-menu { -moz-column-count: 5; -moz-column-gap: 20px; -webkit-column-count: 5; -webkit-column-gap: 20px; column-count: 5; column-gap: 20px; - -webkit-column-rule: 1px groove #B8B8B8; - -moz-column-rule: 1px groove #B8B8B8; - column-rule: 1px groove #B8B8B8; + -webkit-column-rule: 1px groove #b8b8b8; + -moz-column-rule: 1px groove #b8b8b8; + column-rule: 1px groove #b8b8b8; } #pulldown-menu > ul { @@ -49,27 +49,25 @@ div#pulldown-menu { break-inside: avoid; /*IE 10+ theoretically*/ } -#pulldown-menu ul li.toctree-l2 { - font-size:0.82em; - margin-left: 20px; - list-style-image: url(data:image/gif;base64,R0lGODlhCwAJALMJAO7u7uTk5PLy8unp6fb29t7e3vj4+Li4uIWFheTk5AAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAALAAkAAAQoMJ1JqTQ4Z3SI98jHCWSJkByArCyiHkMsIzEX3DeCc0Xv+4hEa5iIAAA7); +#pulldown-menu ul li.toctree-l2 { + font-size: 0.82em; + margin-left: 20px; + list-style-image: url(data:image/gif;base64,R0lGODlhCwAJALMJAO7u7uTk5PLy8unp6fb29t7e3vj4+Li4uIWFheTk5AAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAALAAkAAAQoMJ1JqTQ4Z3SI98jHCWSJkByArCyiHkMsIzEX3DeCc0Xv+4hEa5iIAAA7); } -#pulldown-menu ul li.toctree-l1 a { - color:#fff; - text-decoration: none; - font-size:12px; +#pulldown-menu ul li.toctree-l1 a { + color: #ffffff; + text-decoration: none; + font-size: 12px; font-family: "Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif; font-weight: 700; } -#pulldown-menu ul li.toctree-l2 a { - text-decoration: none; - font-size:11px; - line-height:1.4em; - font-weight: 300; - font-family: Lucida Grande,Verdana,Geneva,sans-serif; - color: #aaa; -} - - +#pulldown-menu ul li.toctree-l2 a { + text-decoration: none; + font-size: 11px; + line-height: 1.4em; + font-weight: 300; + font-family: Lucida Grande,Verdana,Geneva,sans-serif; + color: #aaaaaa; +} \ No newline at end of file -- cgit v1.2.3-24-g4f1b From d8687a59572f1f1b6d855588577363f6e628242e Mon Sep 17 00:00:00 2001 From: Ahmad Anbar Date: Sat, 10 Oct 2015 22:51:54 +0300 Subject: Optimize csv_from_result speed. --- system/database/DB_utility.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php index 78398ea83..b51893e18 100644 --- a/system/database/DB_utility.php +++ b/system/database/DB_utility.php @@ -254,11 +254,12 @@ abstract class CI_DB_utility { // Next blast through the result array and build out the rows while ($row = $query->unbuffered_row('array')) { + $line = array(); foreach ($row as $item) { - $out .= $enclosure.str_replace($enclosure, $enclosure.$enclosure, $item).$enclosure.$delim; + $line[] = $enclosure.str_replace($enclosure, $enclosure.$enclosure, $item).$enclosure; } - $out = substr($out, 0, -strlen($delim)).$newline; + $out .= implode($delim, $line).$newline; } return $out; -- cgit v1.2.3-24-g4f1b From 406ce65e26c4fda1b840b7267b148228cc3ca2f2 Mon Sep 17 00:00:00 2001 From: Hongyi Zhang Date: Sun, 11 Oct 2015 15:58:45 -0700 Subject: disable pulldown menu on mobile devices Signed-off-by: Hongyi Zhang --- user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html | 2 +- .../source/_themes/sphinx_rtd_theme/static/css/citheme.css | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html index 60343661a..1694a1b09 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html @@ -15,7 +15,7 @@ {% endif %}
- classic layout + switch layout

diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css index 192af2004..4c5c2f30b 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css @@ -70,4 +70,11 @@ div#pulldown-menu { font-weight: 300; font-family: Lucida Grande,Verdana,Geneva,sans-serif; color: #aaaaaa; +} + +/*disable switch layout on mobile devices*/ +@media (max-width: 768px) { + #closeMe { + display: none; + } } \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 89c7123621f22533e1777796237a9b06bd190976 Mon Sep 17 00:00:00 2001 From: Hongyi Zhang Date: Fri, 16 Oct 2015 00:57:08 -0700 Subject: revert img alt changes, fix cookies, and improve pulldown menu in multiple screen size Signed-off-by: Hongyi Zhang --- .../_themes/sphinx_rtd_theme/breadcrumbs.html | 2 +- .../sphinx_rtd_theme/static/css/citheme.css | 18 ++++++++---- .../_themes/sphinx_rtd_theme/static/js/theme.js | 32 ++++++++++++++++++++-- 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html index 1694a1b09..60343661a 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/breadcrumbs.html @@ -15,7 +15,7 @@ {% endif %}
- switch layout + classic layout

diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css index 4c5c2f30b..a2a3b3e91 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/citheme.css @@ -72,9 +72,17 @@ div#pulldown-menu { color: #aaaaaa; } -/*disable switch layout on mobile devices*/ -@media (max-width: 768px) { - #closeMe { - display: none; - } +/*hide pulldown menu on mobile devices*/ +@media (max-width: 768px) { /*tablet size defined by theme*/ + #closeMe { + display: none; + } + + #pulldown { + display: none; + } + + #openToc { + display: none; + } } \ No newline at end of file diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js index b77789d06..52580a056 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js @@ -25,7 +25,7 @@ $(document).ready(function () { $('#closeMe').toggle( function () { - setCookie('ciNav', true, 365); + setCookie('ciNav', 'true', 365); $('#nav2').show(); $('#topMenu').remove(); $('body').css({background: 'none'}); @@ -35,7 +35,7 @@ $(document).ready(function () { }, function () { - setCookie('ciNav', false, 365); + setCookie('ciNav', 'false', 365); $('#topMenu').remove(); $('#nav').hide(); $('#nav2').hide(); @@ -50,14 +50,19 @@ $(document).ready(function () { //$('#nav').slideToggle(); } // END MODIFICATION --- + }); // Rufnex Cookie functions function setCookie(cname, cvalue, exdays) { + // expire the old cookie if existed to avoid multiple cookies with the same name + if (getCookie(cname) != false) { + document.cookie = cname + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; + } var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toGMTString(); - document.cookie = cname + "=" + cvalue + "; " + expires; + document.cookie = cname + "=" + cvalue + "; " + expires + "; path=/"; } function getCookie(cname) { var name = cname + "="; @@ -74,6 +79,27 @@ function getCookie(cname) { } // End +// resize window +$(window).on('resize', function(){ + // show side nav on small screens when pulldown is enabled + if (getCookie('ciNav') == 'true' && $(window).width() <= 768) { // 768px is the tablet size defined by the theme + $('.wy-nav-side').show(); + } + // changing css with jQuenry seems to override the default css media query + // change margin + else if (getCookie('ciNav') == 'false' && $(window).width() <= 768) { + $('.wy-nav-content-wrap').css({'margin-left': 0}); + } + // hide side nav on large screens when pulldown is enabled + else if (getCookie('ciNav') == 'true' && $(window).width() > 768) { + $('.wy-nav-side').hide(); + } + // change margin + else if (getCookie('ciNav') == 'false' && $(window).width() > 768) { + $('.wy-nav-content-wrap').css({'margin-left': '300px'}); + } +}); + window.SphinxRtdTheme = (function (jquery) { var stickyNav = (function () { var navBar, -- cgit v1.2.3-24-g4f1b From af042458194867ce9a9304eae2c261c14676b83a Mon Sep 17 00:00:00 2001 From: Hongyi Zhang Date: Fri, 16 Oct 2015 01:47:04 -0700 Subject: fix a typo in comment Signed-off-by: Hongyi Zhang --- user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js index 52580a056..bc996b710 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js @@ -85,7 +85,7 @@ $(window).on('resize', function(){ if (getCookie('ciNav') == 'true' && $(window).width() <= 768) { // 768px is the tablet size defined by the theme $('.wy-nav-side').show(); } - // changing css with jQuenry seems to override the default css media query + // changing css with jquery seems to override the default css media query // change margin else if (getCookie('ciNav') == 'false' && $(window).width() <= 768) { $('.wy-nav-content-wrap').css({'margin-left': 0}); -- cgit v1.2.3-24-g4f1b From 99c8ff3d03a95b1e8f589ecfc9de925d5fecedac Mon Sep 17 00:00:00 2001 From: Hongyi Zhang Date: Mon, 19 Oct 2015 12:54:17 -0700 Subject: rename cookie values to make codes clear Signed-off-by: Hongyi Zhang --- .../source/_themes/sphinx_rtd_theme/static/js/theme.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js index bc996b710..081d77bdf 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js @@ -25,7 +25,7 @@ $(document).ready(function () { $('#closeMe').toggle( function () { - setCookie('ciNav', 'true', 365); + setCookie('ciNav', 'yes', 365); $('#nav2').show(); $('#topMenu').remove(); $('body').css({background: 'none'}); @@ -35,7 +35,7 @@ $(document).ready(function () { }, function () { - setCookie('ciNav', 'false', 365); + setCookie('ciNav', 'no', 365); $('#topMenu').remove(); $('#nav').hide(); $('#nav2').hide(); @@ -44,7 +44,7 @@ $(document).ready(function () { $('.wy-nav-side').show(); } ); - if (getCookie('ciNav') == 'true') + if (getCookie('ciNav') == 'yes') { $('#closeMe').trigger('click'); //$('#nav').slideToggle(); @@ -56,7 +56,7 @@ $(document).ready(function () { // Rufnex Cookie functions function setCookie(cname, cvalue, exdays) { // expire the old cookie if existed to avoid multiple cookies with the same name - if (getCookie(cname) != false) { + if (getCookie(cname)) { document.cookie = cname + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; } var d = new Date(); @@ -75,27 +75,27 @@ function getCookie(cname) { return c.substring(name.length, c.length); } } - return false; + return ''; } // End // resize window $(window).on('resize', function(){ // show side nav on small screens when pulldown is enabled - if (getCookie('ciNav') == 'true' && $(window).width() <= 768) { // 768px is the tablet size defined by the theme + if (getCookie('ciNav') == 'yes' && $(window).width() <= 768) { // 768px is the tablet size defined by the theme $('.wy-nav-side').show(); } // changing css with jquery seems to override the default css media query // change margin - else if (getCookie('ciNav') == 'false' && $(window).width() <= 768) { + else if (getCookie('ciNav') == 'no' && $(window).width() <= 768) { $('.wy-nav-content-wrap').css({'margin-left': 0}); } // hide side nav on large screens when pulldown is enabled - else if (getCookie('ciNav') == 'true' && $(window).width() > 768) { + else if (getCookie('ciNav') == 'yes' && $(window).width() > 768) { $('.wy-nav-side').hide(); } // change margin - else if (getCookie('ciNav') == 'false' && $(window).width() > 768) { + else if (getCookie('ciNav') == 'no' && $(window).width() > 768) { $('.wy-nav-content-wrap').css({'margin-left': '300px'}); } }); -- cgit v1.2.3-24-g4f1b From 175b17c4b74d03a7578440d92a3ac9d80924ef78 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 23 Oct 2015 14:11:47 +0300 Subject: [ci skip] Link HackerOne page in the readme --- readme.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/readme.rst b/readme.rst index 640dd241b..2e35d7223 100644 --- a/readme.rst +++ b/readme.rst @@ -59,7 +59,8 @@ Resources - `Community Wiki `_ - `Community IRC `_ -Report security issues to our `Security Panel `_, thank you. +Report security issues to our `Security Panel `_ +or via our `page on HackerOne `_, thank you. *************** Acknowledgement -- cgit v1.2.3-24-g4f1b From a9f7e8cfb16b53394a5f77393e4ab3e93ef9001e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 4 Nov 2015 15:50:31 +0200 Subject: [ci skip] Add 3.0.4 to changelog as well --- user_guide_src/source/changelog.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index f28fd8930..77ccd7ce7 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -7,6 +7,10 @@ Version 3.1.0 Release Date: Not Released +Version 3.0.4 +============= + +Release Date: Not Released Version 3.0.3 ============= -- cgit v1.2.3-24-g4f1b From 845ed89709f84d56edeeb91e877f585a5798006d Mon Sep 17 00:00:00 2001 From: Nate Silva Date: Thu, 5 Nov 2015 13:43:53 -0800 Subject: Build base_url correctly if SERVER_ADDR is IPv6 --- system/core/Config.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/system/core/Config.php b/system/core/Config.php index 0264776f9..dfef8dbe4 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -90,7 +90,15 @@ class CI_Config { { if (isset($_SERVER['SERVER_ADDR'])) { - $base_url = (is_https() ? 'https' : 'http').'://'.$_SERVER['SERVER_ADDR'] + if ((bool) filter_var($_SERVER['SERVER_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) + { + $server_addr = '[' . $_SERVER['SERVER_ADDR'] . ']'; + } + else + { + $server_addr = $_SERVER['SERVER_ADDR']; + } + $base_url = (is_https() ? 'https' : 'http').'://'.$server_addr .substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], basename($_SERVER['SCRIPT_FILENAME']))); } else -- cgit v1.2.3-24-g4f1b From 76d5f881ecd0c70759cbebc9c5c622ef7d716aa8 Mon Sep 17 00:00:00 2001 From: Rafael Schwemmer Date: Thu, 5 Nov 2015 22:49:17 +0100 Subject: Added MIME types for JPEG2000 Added all MIME types and file extensions to support JPEG2000 images as allowed file type. --- application/config/mimes.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/application/config/mimes.php b/application/config/mimes.php index 8eff4d2d5..a9b82008f 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -78,6 +78,14 @@ return array( 'jpeg' => array('image/jpeg', 'image/pjpeg'), 'jpg' => array('image/jpeg', 'image/pjpeg'), 'jpe' => array('image/jpeg', 'image/pjpeg'), + 'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'png' => array('image/png', 'image/x-png'), 'tiff' => 'image/tiff', 'tif' => 'image/tiff', -- cgit v1.2.3-24-g4f1b From 871811e81af949c52604eb1df8394c0071dba10c Mon Sep 17 00:00:00 2001 From: Rafael Schwemmer Date: Fri, 6 Nov 2015 10:22:00 +0100 Subject: Fixed white-space for JPEG2000 MIME types Replaced spaces by tabs to be consistent with rest of the code --- application/config/mimes.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index a9b82008f..5e43773a8 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -78,14 +78,14 @@ return array( 'jpeg' => array('image/jpeg', 'image/pjpeg'), 'jpg' => array('image/jpeg', 'image/pjpeg'), 'jpe' => array('image/jpeg', 'image/pjpeg'), - 'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'png' => array('image/png', 'image/x-png'), 'tiff' => 'image/tiff', 'tif' => 'image/tiff', -- cgit v1.2.3-24-g4f1b From 4ccf88dc97d009e3421b79c351e426d31fc11b41 Mon Sep 17 00:00:00 2001 From: Nate Silva Date: Fri, 6 Nov 2015 07:06:28 -0800 Subject: Simpler way to detect an IPv6 address (strpos) --- system/core/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Config.php b/system/core/Config.php index dfef8dbe4..87ed32aca 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -90,7 +90,7 @@ class CI_Config { { if (isset($_SERVER['SERVER_ADDR'])) { - if ((bool) filter_var($_SERVER['SERVER_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) + if (strpos($_SERVER['SERVER_ADDR'], ':') !== FALSE) { $server_addr = '[' . $_SERVER['SERVER_ADDR'] . ']'; } -- cgit v1.2.3-24-g4f1b From e735b1dfe14d1d6d955d142a30e8c83ba900fe2b Mon Sep 17 00:00:00 2001 From: Nate Silva Date: Fri, 6 Nov 2015 07:07:11 -0800 Subject: Tweak to match CI coding style --- system/core/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Config.php b/system/core/Config.php index 87ed32aca..1d2a0d155 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -92,7 +92,7 @@ class CI_Config { { if (strpos($_SERVER['SERVER_ADDR'], ':') !== FALSE) { - $server_addr = '[' . $_SERVER['SERVER_ADDR'] . ']'; + $server_addr = '['.$_SERVER['SERVER_ADDR'].']'; } else { -- cgit v1.2.3-24-g4f1b From ae480daecb0f7aeed017c5cc5a67cc39b90be570 Mon Sep 17 00:00:00 2001 From: Nate Silva Date: Fri, 6 Nov 2015 07:10:44 -0800 Subject: Minor formatting: add empty line after else close --- system/core/Config.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/core/Config.php b/system/core/Config.php index 1d2a0d155..c507f342c 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -98,6 +98,7 @@ class CI_Config { { $server_addr = $_SERVER['SERVER_ADDR']; } + $base_url = (is_https() ? 'https' : 'http').'://'.$server_addr .substr($_SERVER['SCRIPT_NAME'], 0, strpos($_SERVER['SCRIPT_NAME'], basename($_SERVER['SCRIPT_FILENAME']))); } -- cgit v1.2.3-24-g4f1b From dd11297837f50ea2fd37f891cb8b4408f84f53e0 Mon Sep 17 00:00:00 2001 From: Steffen Stollfuß Date: Sun, 8 Nov 2015 20:52:25 +0100 Subject: CI_DB_driver->simple_query() discard return of CI_DB_driver->initialize() when db_debug = FALSE #4223 --- system/database/DB_driver.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 0ea679432..6797df0f8 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -774,7 +774,10 @@ abstract class CI_DB_driver { { if ( ! $this->conn_id) { - $this->initialize(); + if( !$this->initialize() ) + { + return FALSE; + } } return $this->_execute($sql); -- cgit v1.2.3-24-g4f1b From 06381b6307aa23f5e0fbe6669df0695d712ce69a Mon Sep 17 00:00:00 2001 From: Steffen Stollfuß Date: Mon, 9 Nov 2015 10:15:29 +0100 Subject: Fixed PHP code style * fixed PHP code style --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 6797df0f8..88b41fa5e 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -774,7 +774,7 @@ abstract class CI_DB_driver { { if ( ! $this->conn_id) { - if( !$this->initialize() ) + if( ! $this->initialize()) { return FALSE; } -- cgit v1.2.3-24-g4f1b From b880069aa8521291ebedc57d5c229bc6f72e0426 Mon Sep 17 00:00:00 2001 From: Hongyi Zhang Date: Mon, 9 Nov 2015 02:24:27 -0800 Subject: modify and add test cases for Loader class to test more exceptions Signed-off-by: Hongyi Zhang --- tests/codeigniter/core/Loader_test.php | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index 889ab92e4..db5088d80 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -48,11 +48,9 @@ class Loader_test extends CI_TestCase { // Test a string given to params $this->assertInstanceOf('CI_Loader', $this->load->library($lib, ' ')); - // Create library w/o class - $lib = 'bad_test_lib'; - $this->ci_vfs_create($lib, '', $this->ci_base_root, 'libraries'); + // test non existent lib + $lib = 'non_existent_test_lib'; - // Test non-existent class $this->setExpectedException( 'RuntimeException', 'CI Error: Unable to load the requested class: '.ucfirst($lib) @@ -62,6 +60,19 @@ class Loader_test extends CI_TestCase { // -------------------------------------------------------------------- + public function test_bad_library() + { + $lib = 'bad_test_lib'; + $this->ci_vfs_create(ucfirst($lib), '', $this->ci_app_root, 'libraries'); + $this->setExpectedException( + 'RuntimeException', + 'CI Error: Non-existent class: '.ucfirst($lib) + ); + $this->assertInstanceOf('CI_Loader', $this->load->library($lib)); + } + + // -------------------------------------------------------------------- + public function test_library_extension() { // Create library and extension in VFS @@ -131,6 +142,16 @@ class Loader_test extends CI_TestCase { // Test is_loaded $this->assertEquals($obj, $this->load->is_loaded(ucfirst($lib))); + + // Test to load another class with the same object name + $lib = 'another_test_lib'; + $class = ucfirst($lib); + $this->ci_vfs_create(ucfirst($lib), 'ci_app_root, 'libraries'); + $this->setExpectedException( + 'RuntimeException', + "CI Error: Resource '".$obj."' already exists and is not a ".$class." instance." + ); + $this->load->library($lib, NULL, $obj); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From cebb13b988e0e4d352d90170e064d1affbcf1697 Mon Sep 17 00:00:00 2001 From: Steffen Stollfuß Date: Mon, 9 Nov 2015 12:26:04 +0100 Subject: Fixed PHP code style part 2 * added missing space character --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 88b41fa5e..25e70ec3f 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -774,7 +774,7 @@ abstract class CI_DB_driver { { if ( ! $this->conn_id) { - if( ! $this->initialize()) + if ( ! $this->initialize()) { return FALSE; } -- cgit v1.2.3-24-g4f1b From 8f75f7fdd14acef06f591ce03163ef5937c3b612 Mon Sep 17 00:00:00 2001 From: Claudio Galdiolo Date: Wed, 11 Nov 2015 10:20:42 -0500 Subject: [ci skip] Make it clear that PHP <5.5 usage is discouraged PHP 5.4 reached end of life Signed-off-by: Claudio Galdiolo --- contributing.md | 2 +- readme.rst | 2 +- user_guide_src/source/contributing/index.rst | 2 +- user_guide_src/source/general/requirements.rst | 2 +- user_guide_src/source/general/styleguide.rst | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contributing.md b/contributing.md index 5a25698bf..f4d6705ed 100644 --- a/contributing.md +++ b/contributing.md @@ -29,7 +29,7 @@ If you change anything that requires a change to documentation then you will nee ### Compatibility -CodeIgniter recommends PHP 5.4 or newer to be used, but it should be +CodeIgniter recommends PHP 5.5 or newer to be used, but it should be compatible with PHP 5.2.4 so all code supplied must stick to this requirement. If PHP 5.3 (and above) functions or features are used then there must be a fallback for PHP 5.2.4. diff --git a/readme.rst b/readme.rst index 2e35d7223..64ace3a39 100644 --- a/readme.rst +++ b/readme.rst @@ -29,7 +29,7 @@ guide change log `_ version 5.4 or newer is recommended. +`PHP `_ version 5.5 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/general/styleguide.rst b/user_guide_src/source/general/styleguide.rst index 7704a59c5..b21246b4f 100644 --- a/user_guide_src/source/general/styleguide.rst +++ b/user_guide_src/source/general/styleguide.rst @@ -345,7 +345,7 @@ inability for CodeIgniter to send proper headers. Compatibility ============= -CodeIgniter recommends PHP 5.4 or newer to be used, but it should be +CodeIgniter recommends PHP 5.5 or newer to be used, but it should be compatible with PHP 5.2.4. Your code must either be compatible with this requirement, provide a suitable fallback, or be an optional feature that dies quietly without affecting a user's application. -- cgit v1.2.3-24-g4f1b From 01fb0d44167196ab0cb5bc0a3f1385204f932992 Mon Sep 17 00:00:00 2001 From: Craig Johnson Date: Thu, 12 Nov 2015 23:44:17 +0530 Subject: Grammar correction in database configuration guide "it" changed to "in" on line 10. "in" seems like the correct word to be used there. Small change. --- user_guide_src/source/database/configuration.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/database/configuration.rst b/user_guide_src/source/database/configuration.rst index 8026be63a..e231a7d6a 100644 --- a/user_guide_src/source/database/configuration.rst +++ b/user_guide_src/source/database/configuration.rst @@ -7,7 +7,7 @@ connection values (username, password, database name, etc.). The config file is located at application/config/database.php. You can also set database connection values for specific :doc:`environments <../libraries/config>` by placing **database.php** -it the respective environment config folder. +in the respective environment config folder. The config settings are stored in a multi-dimensional array with this prototype:: -- cgit v1.2.3-24-g4f1b From 874096c1f652f25b7f3e89e8c6b45b13c8a5e0e8 Mon Sep 17 00:00:00 2001 From: sskaje Date: Sat, 14 Nov 2015 11:55:36 +0800 Subject: add unix socket support to redis session driver --- .../Session/drivers/Session_redis_driver.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index b098cc441..f74067978 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -85,10 +85,24 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { log_message('error', 'Session: No Redis save path configured.'); } + elseif (strpos($this->_config['save_path'], 'unix://') === 0 && preg_match('#(?:unix://)?([^:?]+)(\?.+)?#', $this->_config['save_path'], $matches)) + { + isset($matches[2]) OR $matches[2] = ''; // Just to avoid undefined index notices below + $this->_config['save_path'] = array( + 'type' => 'unix', + 'path' => $matches[1], + 'password' => preg_match('#auth=([^\s&]+)#', $matches[2], $match) ? $match[1] : NULL, + 'database' => preg_match('#database=(\d+)#', $matches[2], $match) ? (int) $match[1] : NULL, + 'timeout' => preg_match('#timeout=(\d+\.\d+)#', $matches[2], $match) ? (float) $match[1] : NULL + ); + + preg_match('#prefix=([^\s&]+)#', $matches[3], $match) && $this->_key_prefix = $match[1]; + } elseif (preg_match('#(?:tcp://)?([^:?]+)(?:\:(\d+))?(\?.+)?#', $this->_config['save_path'], $matches)) { isset($matches[3]) OR $matches[3] = ''; // Just to avoid undefined index notices below $this->_config['save_path'] = array( + 'type' => 'tcp', 'host' => $matches[1], 'port' => empty($matches[2]) ? NULL : $matches[2], 'password' => preg_match('#auth=([^\s&]+)#', $matches[3], $match) ? $match[1] : NULL, @@ -128,7 +142,11 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle } $redis = new Redis(); - if ( ! $redis->connect($this->_config['save_path']['host'], $this->_config['save_path']['port'], $this->_config['save_path']['timeout'])) + if ($this->_config['save_path']['type'] == 'unix' && !$redis->connect($this->_config['save_path']['path'])) + { + log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); + } + else if ( ! $redis->connect($this->_config['save_path']['host'], $this->_config['save_path']['port'], $this->_config['save_path']['timeout'])) { log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); } -- cgit v1.2.3-24-g4f1b From 58d6854ad29b97061a1eb2fbd96ac57c29a13a3a Mon Sep 17 00:00:00 2001 From: Suhindra Date: Sat, 14 Nov 2015 15:04:00 +0700 Subject: Added and Updated MIME types for Flash Video Update 'f4v' entry and add 'flv' to support Flash Video as allowed file type. --- application/config/mimes.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index aa3b1836a..957dc05d8 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -137,7 +137,8 @@ return array( '3gp' => array('video/3gp', 'video/3gpp'), 'mp4' => 'video/mp4', 'm4a' => 'audio/x-m4a', - 'f4v' => 'video/mp4', + 'f4v' => array('video/mp4', 'video/x-f4v'), + 'flv' => 'video/x-flv', 'webm' => 'video/webm', 'aac' => 'audio/x-acc', 'm4u' => 'application/vnd.mpegurl', -- cgit v1.2.3-24-g4f1b From 9703a0bbac81477365da7012a6a47d71c547cf96 Mon Sep 17 00:00:00 2001 From: kemeng Date: Mon, 16 Nov 2015 18:35:43 +0800 Subject: fixed a typo in unix socket parameter; change coding style to match CI; fix an elseif --- .../libraries/Session/drivers/Session_redis_driver.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index f74067978..fe82ca917 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -85,7 +85,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { log_message('error', 'Session: No Redis save path configured.'); } - elseif (strpos($this->_config['save_path'], 'unix://') === 0 && preg_match('#(?:unix://)?([^:?]+)(\?.+)?#', $this->_config['save_path'], $matches)) + elseif (preg_match('#^unix://([^\?]+)(\?.+)?$#', $this->_config['save_path'], $matches)) { isset($matches[2]) OR $matches[2] = ''; // Just to avoid undefined index notices below $this->_config['save_path'] = array( @@ -96,7 +96,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle 'timeout' => preg_match('#timeout=(\d+\.\d+)#', $matches[2], $match) ? (float) $match[1] : NULL ); - preg_match('#prefix=([^\s&]+)#', $matches[3], $match) && $this->_key_prefix = $match[1]; + preg_match('#prefix=([^\s&]+)#', $matches[2], $match) && $this->_key_prefix = $match[1]; } elseif (preg_match('#(?:tcp://)?([^:?]+)(?:\:(\d+))?(\?.+)?#', $this->_config['save_path'], $matches)) { @@ -142,15 +142,19 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle } $redis = new Redis(); - if ($this->_config['save_path']['type'] == 'unix' && !$redis->connect($this->_config['save_path']['path'])) + if ($this->_config['save_path']['type'] == 'unix') { - log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); + if (! $redis->connect($this->_config['save_path']['path'])) + { + log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); + } } - else if ( ! $redis->connect($this->_config['save_path']['host'], $this->_config['save_path']['port'], $this->_config['save_path']['timeout'])) + elseif (! $redis->connect($this->_config['save_path']['host'], $this->_config['save_path']['port'], $this->_config['save_path']['timeout'])) { log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); } - elseif (isset($this->_config['save_path']['password']) && ! $redis->auth($this->_config['save_path']['password'])) + + if (isset($this->_config['save_path']['password']) && ! $redis->auth($this->_config['save_path']['password'])) { log_message('error', 'Session: Unable to authenticate to Redis instance.'); } -- cgit v1.2.3-24-g4f1b From 47c37de5ec5f673b9db13a3c0f4d899fd651d703 Mon Sep 17 00:00:00 2001 From: kemeng Date: Mon, 16 Nov 2015 18:52:37 +0800 Subject: Spaces around ! . Changelog entry in 3.1.0. --- system/libraries/Session/drivers/Session_redis_driver.php | 4 ++-- user_guide_src/source/changelog.rst | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index fe82ca917..44ffddc4b 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -144,12 +144,12 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle $redis = new Redis(); if ($this->_config['save_path']['type'] == 'unix') { - if (! $redis->connect($this->_config['save_path']['path'])) + if ( ! $redis->connect($this->_config['save_path']['path'])) { log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); } } - elseif (! $redis->connect($this->_config['save_path']['host'], $this->_config['save_path']['port'], $this->_config['save_path']['timeout'])) + elseif ( ! $redis->connect($this->_config['save_path']['host'], $this->_config['save_path']['port'], $this->_config['save_path']['timeout'])) { log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 77ccd7ce7..6c11bf3d7 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -7,6 +7,11 @@ Version 3.1.0 Release Date: Not Released +- Session + + - Add unix socket support to redis session driver. + + Version 3.0.4 ============= -- cgit v1.2.3-24-g4f1b From e9e4ab00991343ba94f9542c1a6f18a42b559257 Mon Sep 17 00:00:00 2001 From: kemeng Date: Mon, 16 Nov 2015 20:03:24 +0800 Subject: do not try to auth/select db on redis connect failure --- .../Session/drivers/Session_redis_driver.php | 28 +++++++++++++--------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 44ffddc4b..8f9bcce24 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -141,31 +141,37 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return FALSE; } + $connected = TRUE; $redis = new Redis(); if ($this->_config['save_path']['type'] == 'unix') { if ( ! $redis->connect($this->_config['save_path']['path'])) { log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); + $connected = FALSE; } } elseif ( ! $redis->connect($this->_config['save_path']['host'], $this->_config['save_path']['port'], $this->_config['save_path']['timeout'])) { log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); + $connected = FALSE; } - if (isset($this->_config['save_path']['password']) && ! $redis->auth($this->_config['save_path']['password'])) + if ($connected) { - log_message('error', 'Session: Unable to authenticate to Redis instance.'); - } - elseif (isset($this->_config['save_path']['database']) && ! $redis->select($this->_config['save_path']['database'])) - { - log_message('error', 'Session: Unable to select Redis database with index '.$this->_config['save_path']['database']); - } - else - { - $this->_redis = $redis; - return TRUE; + if (isset($this->_config['save_path']['password']) && ! $redis->auth($this->_config['save_path']['password'])) + { + log_message('error', 'Session: Unable to authenticate to Redis instance.'); + } + elseif (isset($this->_config['save_path']['database']) && ! $redis->select($this->_config['save_path']['database'])) + { + log_message('error', 'Session: Unable to select Redis database with index '.$this->_config['save_path']['database']); + } + else + { + $this->_redis = $redis; + return TRUE; + } } return FALSE; -- cgit v1.2.3-24-g4f1b From 0f6e5bc4d356680bae470f05ccb9e115dd57422e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 16 Nov 2015 16:17:07 +0200 Subject: [ci skip] Polish changes from PR #4240 --- .../Session/drivers/Session_redis_driver.php | 71 ++++++++++------------ user_guide_src/source/changelog.rst | 4 +- 2 files changed, 35 insertions(+), 40 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 8f9bcce24..4fa6c28b3 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -85,41 +85,39 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { log_message('error', 'Session: No Redis save path configured.'); } - elseif (preg_match('#^unix://([^\?]+)(\?.+)?$#', $this->_config['save_path'], $matches)) + elseif (preg_match('#^unix://([^\?]+)(?\?.+)?$#', $this->_config['save_path'], $matches)) { - isset($matches[2]) OR $matches[2] = ''; // Just to avoid undefined index notices below - $this->_config['save_path'] = array( - 'type' => 'unix', - 'path' => $matches[1], - 'password' => preg_match('#auth=([^\s&]+)#', $matches[2], $match) ? $match[1] : NULL, - 'database' => preg_match('#database=(\d+)#', $matches[2], $match) ? (int) $match[1] : NULL, - 'timeout' => preg_match('#timeout=(\d+\.\d+)#', $matches[2], $match) ? (float) $match[1] : NULL - ); - - preg_match('#prefix=([^\s&]+)#', $matches[2], $match) && $this->_key_prefix = $match[1]; + $save_path = array('path' => $matches[1]); } - elseif (preg_match('#(?:tcp://)?([^:?]+)(?:\:(\d+))?(\?.+)?#', $this->_config['save_path'], $matches)) + elseif (preg_match('#(?:tcp://)?([^:?]+)(?:\:(\d+))?(?\?.+)?#', $this->_config['save_path'], $matches)) { - isset($matches[3]) OR $matches[3] = ''; // Just to avoid undefined index notices below - $this->_config['save_path'] = array( - 'type' => 'tcp', + $save_path = array( 'host' => $matches[1], - 'port' => empty($matches[2]) ? NULL : $matches[2], - 'password' => preg_match('#auth=([^\s&]+)#', $matches[3], $match) ? $match[1] : NULL, - 'database' => preg_match('#database=(\d+)#', $matches[3], $match) ? (int) $match[1] : NULL, - 'timeout' => preg_match('#timeout=(\d+\.\d+)#', $matches[3], $match) ? (float) $match[1] : NULL + 'port' => empty($matches[2]) ? NULL : $matches[2] ); - - preg_match('#prefix=([^\s&]+)#', $matches[3], $match) && $this->_key_prefix = $match[1]; } else { log_message('error', 'Session: Invalid Redis save path format: '.$this->_config['save_path']); } - if ($this->_config['match_ip'] === TRUE) + if (isset($save_path)) { - $this->_key_prefix .= $_SERVER['REMOTE_ADDR'].':'; + if (isset($matches['options'])) + { + $save_path['password'] = preg_match('#auth=([^\s&]+)#', $matches['options'], $match) ? $match[1] : NULL; + $save_path['database'] = preg_match('#database=(\d+)#', $matches['options'], $match) ? (int) $match[1] : NULL; + $save_path['timeout'] = preg_match('#timeout=(\d+\.\d+)#', $matches['options'], $match) ? (float) $match[1] : NULL; + + preg_match('#prefix=([^\s&]+)#', $matches['options'], $match) && $this->_key_prefix = $match[1]; + } + + $this->_config['save_path'] = $save_path; + + if ($this->_config['match_ip'] === TRUE) + { + $this->_key_prefix .= $_SERVER['REMOTE_ADDR'].':'; + } } } @@ -141,23 +139,16 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return FALSE; } - $connected = TRUE; $redis = new Redis(); - if ($this->_config['save_path']['type'] == 'unix') - { - if ( ! $redis->connect($this->_config['save_path']['path'])) - { - log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); - $connected = FALSE; - } - } - elseif ( ! $redis->connect($this->_config['save_path']['host'], $this->_config['save_path']['port'], $this->_config['save_path']['timeout'])) - { - log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); - $connected = FALSE; - } + $connected = isset($this->_config['save_path']['path']) + ? $redis->connect($this->_config['save_path']['path']) + : $redis->connect( + $this->_config['save_path']['host'], + $this->_config['save_path']['port'], + $this->_config['save_path']['timeout'] + ); - if ($connected) + if ($connected) { if (isset($this->_config['save_path']['password']) && ! $redis->auth($this->_config['save_path']['password'])) { @@ -173,6 +164,10 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return TRUE; } } + else + { + log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); + } return FALSE; } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 6c11bf3d7..986525437 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -7,9 +7,9 @@ Version 3.1.0 Release Date: Not Released -- Session +- Libraries - - Add unix socket support to redis session driver. + - Added UNIX socket connection support to :doc:`Session Library ` 'redis' driver. Version 3.0.4 -- cgit v1.2.3-24-g4f1b From 6a7a16073aefbc0bff0fb850d97ea11c57d693c1 Mon Sep 17 00:00:00 2001 From: dimitribalazs Date: Wed, 18 Nov 2015 11:50:22 +0100 Subject: Added alt attribute functionality … MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It hasn't been possible to set the alt attribute on the image. Added img_alt key on the $defaults array and integrated the $img_alt variable into the img string. --- system/helpers/captcha_helper.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 85bcfb5a0..3cf581bba 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -79,7 +79,8 @@ if ( ! function_exists('create_captcha')) 'border' => array(153,102,102), 'text' => array(204,153,153), 'grid' => array(255,182,182) - ) + ), + 'img_alt' => 'captcha' ); foreach ($defaults as $key => $val) @@ -330,7 +331,7 @@ if ( ! function_exists('create_captcha')) return FALSE; } - $img = ' '; + $img = ''.$img_alt.''; ImageDestroy($im); return array('word' => $word, 'time' => $now, 'image' => $img, 'filename' => $img_filename); -- cgit v1.2.3-24-g4f1b From fd70fa5ff7cec722a69f3e720a962aea3dec03fe Mon Sep 17 00:00:00 2001 From: Sébastien Adam Date: Wed, 25 Nov 2015 18:25:17 +0100 Subject: HTML Helper - meta(): now can generate HTML meta charset & Open Graph property --- system/helpers/html_helper.php | 9 +++++---- user_guide_src/source/helpers/html_helper.rst | 12 ++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 28fbe00be..4e25f8c9b 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -338,7 +338,7 @@ if ( ! function_exists('link_tag')) if ( ! function_exists('meta')) { /** - * Generates meta tags from an array of key/values + * Generates meta tags from an array of key/values, compatible with html5 and open graph * * @param array * @param string @@ -359,13 +359,14 @@ if ( ! function_exists('meta')) // Turn single array into multidimensional $name = array($name); } - + $allowed_type = array('charset', 'http-equiv', 'name', 'property'); $str = ''; foreach ($name as $meta) { - $type = (isset($meta['type']) && $meta['type'] !== 'name') ? 'http-equiv' : 'name'; + $meta['type'] = (isset($meta['type']) && ($meta['type'] == 'equiv')) ? 'http-equiv' : $meta['type']; // backward compatibility + $type = (isset($meta['type']) && in_array($meta['type'], $allowed_type))? $meta['type'] : 'name'; $name = isset($meta['name']) ? $meta['name'] : ''; - $content = isset($meta['content']) ? $meta['content'] : ''; + $content = (isset($meta['content']) && $type != 'charset') ? $meta['content'] : ''; $newline = isset($meta['newline']) ? $meta['newline'] : "\n"; $str .= ''.$newline; diff --git a/user_guide_src/source/helpers/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst index 2c748bea0..1445b3bf0 100644 --- a/user_guide_src/source/helpers/html_helper.rst +++ b/user_guide_src/source/helpers/html_helper.rst @@ -285,9 +285,9 @@ The following functions are available: echo meta('description', 'My Great site'); // Generates: - echo meta('Content-type', 'text/html; charset=utf-8', 'equiv'); - // Note the third parameter. Can be "equiv" or "name" - // Generates: + echo meta('refresh', '30', 'http-equiv'); + // Note the third parameter. Can be "charset", "http-equiv", "name" or "property" + // Generates: echo meta(array('name' => 'robots', 'content' => 'no-cache')); // Generates: @@ -310,8 +310,8 @@ The following functions are available: 'content' => 'no-cache' ), array( - 'name' => 'Content-type', - 'content' => 'text/html; charset=utf-8', 'type' => 'equiv' + 'name' => 'UTF-8', + 'type' => 'charset' ) ); @@ -321,7 +321,7 @@ The following functions are available: // // // - // + // .. php:function:: doctype([$type = 'xhtml1-strict']) -- cgit v1.2.3-24-g4f1b From dfcc5318d378ae66dd21806c6ac2dad67d73dc26 Mon Sep 17 00:00:00 2001 From: Sébastien Adam Date: Wed, 25 Nov 2015 18:30:34 +0100 Subject: HTML Helper - doctype(): now default type is HTML 5 --- system/helpers/html_helper.php | 2 +- user_guide_src/source/helpers/html_helper.rst | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 4e25f8c9b..b4c605a01 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -229,7 +229,7 @@ if ( ! function_exists('doctype')) * @param string type The doctype to be generated * @return string */ - function doctype($type = 'xhtml1-strict') + function doctype($type = 'html5') { static $doctypes; diff --git a/user_guide_src/source/helpers/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst index 1445b3bf0..bfd4afbe2 100644 --- a/user_guide_src/source/helpers/html_helper.rst +++ b/user_guide_src/source/helpers/html_helper.rst @@ -324,18 +324,18 @@ The following functions are available: // -.. php:function:: doctype([$type = 'xhtml1-strict']) +.. php:function:: doctype([$type = 'html5']) :param string $type: Doctype name :returns: HTML DocType tag :rtype: string - Helps you generate document type declarations, or DTD's. XHTML 1.0 - Strict is used by default, but many doctypes are available. + Helps you generate document type declarations, or DTD's. HTML 5 + is used by default, but many doctypes are available. Example:: - echo doctype(); // + echo doctype(); // echo doctype('html4-trans'); // -- cgit v1.2.3-24-g4f1b From 49077f1a80c1c644c3e15864a1dab285e7fb8de5 Mon Sep 17 00:00:00 2001 From: Claudio Galdiolo Date: Wed, 25 Nov 2015 15:34:16 -0500 Subject: Fix file name With case-sensitive filesystem, visiting example.com/index.php/form/ returns a '404 Page Not Found' error --- user_guide_src/source/libraries/form_validation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index c288cc8c0..dd3ffbbaf 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -116,7 +116,7 @@ this code and save it to your application/views/ folder:: The Controller ============== -Using a text editor, create a controller called form.php. In it, place +Using a text editor, create a controller called Form.php. In it, place this code and save it to your application/controllers/ folder:: Date: Thu, 26 Nov 2015 22:58:46 +0700 Subject: fix another file name according PR #4271 Fix another file name in documentation according PR #4271 --- user_guide_src/source/libraries/form_validation.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index dd3ffbbaf..9189d082e 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -175,7 +175,7 @@ The form (myform.php) is a standard web form with a couple exceptions: This function will return any error messages sent back by the validator. If there are no messages it returns an empty string. -The controller (form.php) has one method: ``index()``. This method +The controller (Form.php) has one method: ``index()``. This method initializes the validation class and loads the form helper and URL helper used by your view files. It also runs the validation routine. Based on whether the validation was successful it either presents the @@ -205,7 +205,7 @@ The above method takes **three** parameters as input: .. note:: If you would like the field name to be stored in a language file, please see :ref:`translating-field-names`. -Here is an example. In your controller (form.php), add this code just +Here is an example. In your controller (Form.php), add this code just below the validation initialization method:: $this->form_validation->set_rules('username', 'Username', 'required'); -- cgit v1.2.3-24-g4f1b From 6ab09773d96ce6ac672a3d852256126d10aa25d8 Mon Sep 17 00:00:00 2001 From: Sébastien Adam Date: Tue, 1 Dec 2015 20:02:07 +0100 Subject: Modified as asked after pull request: * comment of meta fuction adapted * alignments in meta fuction adapted * using '===' comparator in meta function * changing back the example of the meta function help * changing back the default value of the doctype function Also changing test unit to reflect the modification of the meta function (original tests not modified). --- system/helpers/html_helper.php | 14 +++++++------- tests/codeigniter/helpers/html_helper_test.php | 6 +++++- user_guide_src/source/helpers/html_helper.rst | 4 ++-- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index b4c605a01..36680053a 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -229,7 +229,7 @@ if ( ! function_exists('doctype')) * @param string type The doctype to be generated * @return string */ - function doctype($type = 'html5') + function doctype($type = 'xhtml1-strict') { static $doctypes; @@ -363,13 +363,13 @@ if ( ! function_exists('meta')) $str = ''; foreach ($name as $meta) { - $meta['type'] = (isset($meta['type']) && ($meta['type'] == 'equiv')) ? 'http-equiv' : $meta['type']; // backward compatibility - $type = (isset($meta['type']) && in_array($meta['type'], $allowed_type))? $meta['type'] : 'name'; - $name = isset($meta['name']) ? $meta['name'] : ''; - $content = (isset($meta['content']) && $type != 'charset') ? $meta['content'] : ''; - $newline = isset($meta['newline']) ? $meta['newline'] : "\n"; + $meta['type'] = isset($meta['type']) ? (($meta['type'] === 'equiv') ? 'http-equiv' : $meta['type']) : ''; // backward compatibility + $type = in_array($meta['type'], $allowed_type) ? $meta['type'] : 'name'; + $name = isset($meta['name']) ? $meta['name'] : ''; + $content = isset($meta['content']) ? $meta['content'] : ''; + $newline = isset($meta['newline']) ? $meta['newline'] : "\n"; - $str .= ''.$newline; + $str .= ''.$newline; } return $str; diff --git a/tests/codeigniter/helpers/html_helper_test.php b/tests/codeigniter/helpers/html_helper_test.php index d66ad895c..0b9655bf5 100644 --- a/tests/codeigniter/helpers/html_helper_test.php +++ b/tests/codeigniter/helpers/html_helper_test.php @@ -87,6 +87,10 @@ EOH; $this->assertEquals($expect, meta(array('name' => 'foo'))); + $expect = "\n"; + + $this->assertEquals($expect, meta(array('name' => 'foo', 'type' => 'charset'))); + } -} \ No newline at end of file +} diff --git a/user_guide_src/source/helpers/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst index bfd4afbe2..fffb2cab4 100644 --- a/user_guide_src/source/helpers/html_helper.rst +++ b/user_guide_src/source/helpers/html_helper.rst @@ -285,9 +285,9 @@ The following functions are available: echo meta('description', 'My Great site'); // Generates: - echo meta('refresh', '30', 'http-equiv'); + echo meta('Content-type', 'text/html; charset=utf-8', 'equiv'); // Note the third parameter. Can be "charset", "http-equiv", "name" or "property" - // Generates: + // Generates: echo meta(array('name' => 'robots', 'content' => 'no-cache')); // Generates: -- cgit v1.2.3-24-g4f1b From 7cf4cda4d56ca8c7dc51b38442d83d3b593d96f8 Mon Sep 17 00:00:00 2001 From: Sébastien Adam Date: Tue, 1 Dec 2015 20:24:32 +0100 Subject: Forgot change in the comment on the meta function --- system/helpers/html_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 36680053a..9ed21a168 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -338,7 +338,7 @@ if ( ! function_exists('link_tag')) if ( ! function_exists('meta')) { /** - * Generates meta tags from an array of key/values, compatible with html5 and open graph + * Generates meta tags from an array of key/values * * @param array * @param string -- cgit v1.2.3-24-g4f1b From 3f273628540c20ffa1ea8b88da315314a5046983 Mon Sep 17 00:00:00 2001 From: b-kaxa Date: Mon, 7 Dec 2015 02:23:10 +0900 Subject: fix phpdoc --- system/core/Router.php | 1 + system/core/URI.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/system/core/Router.php b/system/core/Router.php index a84be1f1d..0a6975881 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -118,6 +118,7 @@ class CI_Router { * * Runs the route mapping function. * + * @param array $routing * @return void */ public function __construct($routing = NULL) diff --git a/system/core/URI.php b/system/core/URI.php index 5b658f679..5179b401f 100644 --- a/system/core/URI.php +++ b/system/core/URI.php @@ -294,7 +294,7 @@ class CI_URI { * * Do some final cleaning of the URI and return it, currently only used in self::_parse_request_uri() * - * @param string $url + * @param string $uri * @return string */ protected function _remove_relative_directory($uri) -- cgit v1.2.3-24-g4f1b From 5ced82ab986f6a53ca95f5498a63ac503ea8f580 Mon Sep 17 00:00:00 2001 From: "Halmai, Csongor" Date: Mon, 7 Dec 2015 13:20:39 +1100 Subject: Detecting if database connection was not successful --- system/core/Loader.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/system/core/Loader.php b/system/core/Loader.php index 18e4c5287..7593ae5d6 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -361,6 +361,10 @@ class CI_Loader { // Load the DB class $CI->db =& DB($params, $query_builder); + if (!$CI->db->conn_id) + { + return FALSE; + } return $this; } -- cgit v1.2.3-24-g4f1b From 887eb91ff2799036a6d899ee3dbadd8a6a51ff54 Mon Sep 17 00:00:00 2001 From: b-kaxa Date: Mon, 7 Dec 2015 19:03:20 +0900 Subject: replace spaces with tabs --- system/core/Router.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Router.php b/system/core/Router.php index 0a6975881..ce41aa958 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -118,7 +118,7 @@ class CI_Router { * * Runs the route mapping function. * - * @param array $routing + * @param array $routing * @return void */ public function __construct($routing = NULL) -- cgit v1.2.3-24-g4f1b From 0f56007d95a8713f0c4276e37604e221f4efbe66 Mon Sep 17 00:00:00 2001 From: "Halmai, Csongor" Date: Tue, 8 Dec 2015 11:32:35 +1100 Subject: rolling back previous solution; throwing exception if database connection was not successful. --- system/core/Loader.php | 4 ---- system/database/DB_driver.php | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 7593ae5d6..18e4c5287 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -361,10 +361,6 @@ class CI_Loader { // Load the DB class $CI->db =& DB($params, $query_builder); - if (!$CI->db->conn_id) - { - return FALSE; - } return $this; } diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 25e70ec3f..fb9955b7c 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -436,7 +436,7 @@ abstract class CI_DB_driver { $this->display_error('db_unable_to_connect'); } - return FALSE; + throw new RuntimeException('Database connection failure.'); } } -- cgit v1.2.3-24-g4f1b From ac0e0bf62d483d1b7db86fe760447ca0dd83baf2 Mon Sep 17 00:00:00 2001 From: "Halmai, Csongor" Date: Tue, 8 Dec 2015 11:40:24 +1100 Subject: documentation for the new RuntimeException --- user_guide_src/source/changelog.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 986525437..5a41fa18b 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -11,6 +11,10 @@ Release Date: Not Released - Added UNIX socket connection support to :doc:`Session Library ` 'redis' driver. +- Database + + - CI_DB_driver::initialize() throws a "Database connection failure." RuntimeException if couldn't connect to the database. + Version 3.0.4 ============= -- cgit v1.2.3-24-g4f1b From b1cde1fdd77aec1278dd2b4d6ae071e814a58c2a Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 8 Dec 2015 13:10:41 +0200 Subject: Type-hint csv_from_result(), xml_from_result() DB utilities Close #4299 --- system/database/DB_utility.php | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php index b51893e18..fcc56f24e 100644 --- a/system/database/DB_utility.php +++ b/system/database/DB_utility.php @@ -235,13 +235,8 @@ abstract class CI_DB_utility { * @param string $enclosure Enclosure (default: ") * @return string */ - public function csv_from_result($query, $delim = ',', $newline = "\n", $enclosure = '"') + public function csv_from_result(CI_DB_result $query, $delim = ',', $newline = "\n", $enclosure = '"') { - if ( ! is_object($query) OR ! method_exists($query, 'list_fields')) - { - show_error('You must submit a valid result object'); - } - $out = ''; // First generate the headings from the table column names foreach ($query->list_fields() as $name) @@ -274,13 +269,8 @@ abstract class CI_DB_utility { * @param array $params Any preferences * @return string */ - public function xml_from_result($query, $params = array()) + public function xml_from_result(CI_DB_result $query, $params = array()) { - if ( ! is_object($query) OR ! method_exists($query, 'list_fields')) - { - show_error('You must submit a valid result object'); - } - // Set our default values foreach (array('root' => 'root', 'element' => 'element', 'newline' => "\n", 'tab' => "\t") as $key => $val) { -- cgit v1.2.3-24-g4f1b From 2410c30c457e108c1f57978df610e82abab0361e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 8 Dec 2015 13:25:19 +0200 Subject: Remove CI_DB_driver::load_rdriver() --- system/database/DB.php | 5 ++++- system/database/DB_driver.php | 27 +++------------------------ 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/system/database/DB.php b/system/database/DB.php index 23de414b5..355d26fb5 100644 --- a/system/database/DB.php +++ b/system/database/DB.php @@ -192,10 +192,13 @@ function &DB($params = '', $query_builder_override = NULL) // Load the DB driver $driver_file = BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php'; - file_exists($driver_file) OR show_error('Invalid DB driver'); require_once($driver_file); + // Load the result classes as well + require_once(BASEPATH.'database/DB_result.php'); + require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_result.php'); + // Instantiate the DB adapter $driver = 'CI_DB_'.$params['dbdriver'].'_driver'; $DB = new $driver($params); diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 25e70ec3f..bc016efbf 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -622,7 +622,6 @@ abstract class CI_DB_driver { // cached query if it exists if ($this->cache_on === TRUE && $return_object === TRUE && $this->_cache_init()) { - $this->load_rdriver(); if (FALSE !== ($cache = $this->CACHE->read($sql))) { return $cache; @@ -710,9 +709,9 @@ abstract class CI_DB_driver { return TRUE; } - // Load and instantiate the result driver - $driver = $this->load_rdriver(); - $RES = new $driver($this); + // Instantiate the driver-specific result class + $driver = 'CI_DB_'.$this->dbdriver.'_result'; + $RES = new $driver($this); // Is query caching enabled? If so, we'll serialize the // result object and save it to a cache file. @@ -741,26 +740,6 @@ abstract class CI_DB_driver { // -------------------------------------------------------------------- - /** - * Load the result drivers - * - * @return string the name of the result class - */ - public function load_rdriver() - { - $driver = 'CI_DB_'.$this->dbdriver.'_result'; - - if ( ! class_exists($driver, FALSE)) - { - require_once(BASEPATH.'database/DB_result.php'); - require_once(BASEPATH.'database/drivers/'.$this->dbdriver.'/'.$this->dbdriver.'_result.php'); - } - - return $driver; - } - - // -------------------------------------------------------------------- - /** * Simple Query * This is a simplified version of the query() function. Internally -- cgit v1.2.3-24-g4f1b From 62a106e277e53a99346314cc10480e549225b08c Mon Sep 17 00:00:00 2001 From: Phil Scherer Date: Tue, 8 Dec 2015 18:06:11 -0500 Subject: Fix mismatched brackets in documentation Sphinx generates incomplete/incorrect HTML output because there are mismatched brackets in the documentation. Signed-off-by: Phil Scherer --- user_guide_src/source/database/db_driver_reference.rst | 2 +- user_guide_src/source/helpers/cookie_helper.rst | 6 +++--- user_guide_src/source/helpers/form_helper.rst | 4 ++-- user_guide_src/source/libraries/sessions.rst | 2 +- user_guide_src/source/libraries/trackback.rst | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/user_guide_src/source/database/db_driver_reference.rst b/user_guide_src/source/database/db_driver_reference.rst index 8fc26c01b..1e436ede1 100644 --- a/user_guide_src/source/database/db_driver_reference.rst +++ b/user_guide_src/source/database/db_driver_reference.rst @@ -83,7 +83,7 @@ This article is intended to be a reference for them. Database version number. - .. php:method:: query($sql[, $binds = FALSE[, $return_object = NULL]]]) + .. php:method:: query($sql[, $binds = FALSE[, $return_object = NULL]]) :param string $sql: The SQL statement to execute :param array $binds: An array of binding data diff --git a/user_guide_src/source/helpers/cookie_helper.rst b/user_guide_src/source/helpers/cookie_helper.rst index da26151cb..c9d2f419c 100644 --- a/user_guide_src/source/helpers/cookie_helper.rst +++ b/user_guide_src/source/helpers/cookie_helper.rst @@ -25,7 +25,7 @@ Available Functions The following functions are available: -.. php:function:: set_cookie($name[, $value = ''[, $expire = ''[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = FALSE[, $httponly = FALSE]]]]]]]]) +.. php:function:: set_cookie($name[, $value = ''[, $expire = ''[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = FALSE[, $httponly = FALSE]]]]]]]) :param mixed $name: Cookie name *or* associative array of all of the parameters available to this function :param string $value: Cookie value @@ -42,7 +42,7 @@ The following functions are available: a description of its use, as this function is an alias for ``CI_Input::set_cookie()``. -.. php:function:: get_cookie($index[, $xss_clean = NULL]]) +.. php:function:: get_cookie($index[, $xss_clean = NULL]) :param string $index: Cookie name :param bool $xss_clean: Whether to apply XSS filtering to the returned value @@ -56,7 +56,7 @@ The following functions are available: the ``$config['cookie_prefix']`` that you might've set in your *application/config/config.php* file. -.. php:function:: delete_cookie($name[, $domain = ''[, $path = '/'[, $prefix = '']]]]) +.. php:function:: delete_cookie($name[, $domain = ''[, $path = '/'[, $prefix = '']]]) :param string $name: Cookie name :param string $domain: Cookie domain (usually: .yourdomain.com) diff --git a/user_guide_src/source/helpers/form_helper.rst b/user_guide_src/source/helpers/form_helper.rst index d3ee3ffb6..a67dbc0bf 100644 --- a/user_guide_src/source/helpers/form_helper.rst +++ b/user_guide_src/source/helpers/form_helper.rst @@ -108,7 +108,7 @@ The following functions are available: -.. php:function:: form_open_multipart([$action = ''[, $attributes = array()[, $hidden = array()]]) +.. php:function:: form_open_multipart([$action = ''[, $attributes = array()[, $hidden = array()]]]) :param string $action: Form action/target URI string :param array $attributes: HTML attributes @@ -187,7 +187,7 @@ The following functions are available: */ -.. php:function:: form_input([$data = ''[, $value = ''[, $extra = '']]) +.. php:function:: form_input([$data = ''[, $value = ''[, $extra = '']]]) :param array $data: Field attributes data :param string $value: Field value diff --git a/user_guide_src/source/libraries/sessions.rst b/user_guide_src/source/libraries/sessions.rst index 9c9761bbf..881705c92 100644 --- a/user_guide_src/source/libraries/sessions.rst +++ b/user_guide_src/source/libraries/sessions.rst @@ -842,7 +842,7 @@ Class Reference .. note:: This method is DEPRECATED. Use ``userdata()`` with no parameters instead. - .. php:method:: &get_userdata() + .. php:method:: get_userdata() :returns: A reference to ``$_SESSION`` :rtype: array diff --git a/user_guide_src/source/libraries/trackback.rst b/user_guide_src/source/libraries/trackback.rst index 4e0cb5541..bceb515f2 100644 --- a/user_guide_src/source/libraries/trackback.rst +++ b/user_guide_src/source/libraries/trackback.rst @@ -239,7 +239,7 @@ Class Reference This method simply validates the incoming TB data, returning TRUE on success and FALSE on failure. If the data is valid it is set to the ``$this->data`` array so that it can be inserted into a database. - .. php:method:: send_error([$message = 'Incomplete information') + .. php:method:: send_error([$message = 'Incomplete information']) :param string $message: Error message :rtype: void -- cgit v1.2.3-24-g4f1b From 367dad5bab86f72a843010f07590aa9c3ecc5780 Mon Sep 17 00:00:00 2001 From: Phil Scherer Date: Wed, 9 Dec 2015 13:34:38 -0500 Subject: Remove accidentally included change --- user_guide_src/source/libraries/sessions.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/sessions.rst b/user_guide_src/source/libraries/sessions.rst index 881705c92..9c9761bbf 100644 --- a/user_guide_src/source/libraries/sessions.rst +++ b/user_guide_src/source/libraries/sessions.rst @@ -842,7 +842,7 @@ Class Reference .. note:: This method is DEPRECATED. Use ``userdata()`` with no parameters instead. - .. php:method:: get_userdata() + .. php:method:: &get_userdata() :returns: A reference to ``$_SESSION`` :rtype: array -- cgit v1.2.3-24-g4f1b From 97ecf2fcce8e3133e286e16de1b49612235a8dcf Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 12 Dec 2015 17:26:28 +0200 Subject: Complete the proposed changes from PR #4300 --- system/database/DB_driver.php | 19 +++---------------- user_guide_src/source/changelog.rst | 2 +- .../source/database/db_driver_reference.rst | 1 + 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index f3aeb7f81..418de27c8 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -381,6 +381,7 @@ abstract class CI_DB_driver { * Initialize Database Settings * * @return bool + * @throws RuntimeException In case of failure */ public function initialize() { @@ -429,14 +430,7 @@ abstract class CI_DB_driver { // We still don't have a connection? if ( ! $this->conn_id) { - log_message('error', 'Unable to connect to the database'); - - if ($this->db_debug) - { - $this->display_error('db_unable_to_connect'); - } - - throw new RuntimeException('Database connection failure.'); + throw new RuntimeException('Unable to connect to the database.'); } } @@ -751,14 +745,7 @@ abstract class CI_DB_driver { */ public function simple_query($sql) { - if ( ! $this->conn_id) - { - if ( ! $this->initialize()) - { - return FALSE; - } - } - + empty($this->conn_id) && $this->initialize(); return $this->_execute($sql); } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 5a41fa18b..1ea34eee6 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -13,7 +13,7 @@ Release Date: Not Released - Database - - CI_DB_driver::initialize() throws a "Database connection failure." RuntimeException if couldn't connect to the database. + - Failure to initialize a database connection will now throw a ``RuntimeException``. Version 3.0.4 diff --git a/user_guide_src/source/database/db_driver_reference.rst b/user_guide_src/source/database/db_driver_reference.rst index 1e436ede1..f0a438883 100644 --- a/user_guide_src/source/database/db_driver_reference.rst +++ b/user_guide_src/source/database/db_driver_reference.rst @@ -19,6 +19,7 @@ This article is intended to be a reference for them. :returns: TRUE on success, FALSE on failure :rtype: bool + :throws: RuntimeException In case of failure Initialize database settings, establish a connection to the database. -- cgit v1.2.3-24-g4f1b From 85bc9fc53e4c3e46b2f4e1b1eac7e2828d4869e6 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 14 Dec 2015 17:56:14 +0200 Subject: Change DB charset handling Close #4311 --- system/database/DB_driver.php | 32 +-------------- system/database/drivers/mssql/mssql_driver.php | 14 +------ system/database/drivers/mysql/mysql_driver.php | 31 ++++++++------- system/database/drivers/mysqli/mysqli_driver.php | 20 ++++------ system/database/drivers/postgre/postgre_driver.php | 20 ++++------ user_guide_src/source/changelog.rst | 5 ++- .../source/database/db_driver_reference.rst | 11 +----- user_guide_src/source/installation/upgrade_310.rst | 45 ++++++++++++++++++++++ 8 files changed, 81 insertions(+), 97 deletions(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 885a814be..af6b9f399 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -380,7 +380,7 @@ abstract class CI_DB_driver { /** * Initialize Database Settings * - * @return bool + * @return void * @throws RuntimeException In case of failure */ public function initialize() @@ -393,7 +393,7 @@ abstract class CI_DB_driver { */ if ($this->conn_id) { - return TRUE; + return; } // ---------------------------------------------------------------- @@ -433,9 +433,6 @@ abstract class CI_DB_driver { throw new RuntimeException('Unable to connect to the database.'); } } - - // Now we set the character set and that's all - return $this->db_set_charset($this->char_set); } // -------------------------------------------------------------------- @@ -510,31 +507,6 @@ abstract class CI_DB_driver { // -------------------------------------------------------------------- - /** - * Set client character set - * - * @param string - * @return bool - */ - public function db_set_charset($charset) - { - if (method_exists($this, '_db_set_charset') && ! $this->_db_set_charset($charset)) - { - log_message('error', 'Unable to set database connection charset: '.$charset); - - if ($this->db_debug) - { - $this->display_error('db_unable_to_set_charset', $charset); - } - - return FALSE; - } - - return TRUE; - } - - // -------------------------------------------------------------------- - /** * The name of the platform in use (mysql, mssql, etc...) * diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php index b9e310a3a..bf18babeb 100644 --- a/system/database/drivers/mssql/mssql_driver.php +++ b/system/database/drivers/mssql/mssql_driver.php @@ -108,6 +108,7 @@ class CI_DB_mssql_driver extends CI_DB { */ public function db_connect($persistent = FALSE) { + ini_set('mssql.charset', $this->char_set); $this->conn_id = ($persistent) ? mssql_pconnect($this->hostname, $this->username, $this->password) : mssql_connect($this->hostname, $this->username, $this->password); @@ -247,19 +248,6 @@ class CI_DB_mssql_driver extends CI_DB { // -------------------------------------------------------------------- - /** - * Set client character set - * - * @param string $charset - * @return bool - */ - protected function _db_set_charset($charset) - { - return (ini_set('mssql.charset', $charset) !== FALSE); - } - - // -------------------------------------------------------------------- - /** * Version number query string * diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php index 9c630d0d6..76f50368f 100644 --- a/system/database/drivers/mysql/mysql_driver.php +++ b/system/database/drivers/mysql/mysql_driver.php @@ -147,12 +147,24 @@ class CI_DB_mysql_driver extends CI_DB { : FALSE; } - if ($this->stricton && is_resource($this->conn_id)) + if (is_resource($this->conn_id)) { - $this->simple_query('SET SESSION sql_mode="STRICT_ALL_TABLES"'); + if ( ! mysql_set_charset($this->char_set, $this->conn_id)) + { + log_message('error', "Database: Unable to set the configured connection charset ('{$this->char_set}')."); + $this->close(); + return ($this->db->debug) ? $this->display_error('db_unable_to_set_charset', $charset) : FALSE; + } + + if ($this->stricton) + { + $this->simple_query('SET SESSION sql_mode="STRICT_ALL_TABLES"'); + } + + return $this->conn_id; } - return $this->conn_id; + return FALSE; } // -------------------------------------------------------------------- @@ -199,19 +211,6 @@ class CI_DB_mysql_driver extends CI_DB { // -------------------------------------------------------------------- - /** - * Set client character set - * - * @param string $charset - * @return bool - */ - protected function _db_set_charset($charset) - { - return mysql_set_charset($charset, $this->conn_id); - } - - // -------------------------------------------------------------------- - /** * Database version number * diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index 827470078..f9a20ea2f 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -173,6 +173,13 @@ class CI_DB_mysqli_driver extends CI_DB { return ($this->db->db_debug) ? $this->db->display_error($message, '', TRUE) : FALSE; } + if ( ! $mysqli->set_charset($this->char_set)) + { + log_message('error', "Database: Unable to set the configured connection charset ('{$this->char_set}')."); + $mysqli->close(); + return ($this->db->db_debug) ? $this->display_error('db_unable_to_set_charset', $charset) : FALSE; + } + return $mysqli; } @@ -223,19 +230,6 @@ class CI_DB_mysqli_driver extends CI_DB { // -------------------------------------------------------------------- - /** - * Set client character set - * - * @param string $charset - * @return bool - */ - protected function _db_set_charset($charset) - { - return $this->conn_id->set_charset($charset); - } - - // -------------------------------------------------------------------- - /** * Database version number * diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php index b1df326f7..e4db12d69 100644 --- a/system/database/drivers/postgre/postgre_driver.php +++ b/system/database/drivers/postgre/postgre_driver.php @@ -163,6 +163,13 @@ class CI_DB_postgre_driver extends CI_DB { return FALSE; } + if (pg_set_client_encoding($this->conn_id, $charset) !== 0) + { + log_message('error', "Database: Unable to set the configured connection charset ('{$this->char_set}')."); + pg_close($this->conn_id); + return ($this->db->db_debug) ? $this->display_error('db_unable_to_set_charset', $charset) : FALSE; + } + empty($this->schema) OR $this->simple_query('SET search_path TO '.$this->schema.',public'); } @@ -189,19 +196,6 @@ class CI_DB_postgre_driver extends CI_DB { // -------------------------------------------------------------------- - /** - * Set client character set - * - * @param string $charset - * @return bool - */ - protected function _db_set_charset($charset) - { - return (pg_set_client_encoding($this->conn_id, $charset) === 0); - } - - // -------------------------------------------------------------------- - /** * Database version number * diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 6d7474765..3c0dc8a72 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -13,8 +13,9 @@ Release Date: Not Released - Database - - Failure to initialize a database connection will now throw a ``RuntimeException``. - + - Changed method ``initialize()`` to return void and instead throw a ``RuntimeException`` in case of failure. + - Changed method ``db_connect()`` to always set the connection character set (if supported by the driver) and to fail if it can't. + - Removed method ``db_set_charset()`` and the ability to change a connection character set at runtime. Version 3.0.4 ============= diff --git a/user_guide_src/source/database/db_driver_reference.rst b/user_guide_src/source/database/db_driver_reference.rst index f0a438883..75d1538bd 100644 --- a/user_guide_src/source/database/db_driver_reference.rst +++ b/user_guide_src/source/database/db_driver_reference.rst @@ -17,8 +17,7 @@ This article is intended to be a reference for them. .. php:method:: initialize() - :returns: TRUE on success, FALSE on failure - :rtype: bool + :rtype: void :throws: RuntimeException In case of failure Initialize database settings, establish a connection to @@ -62,14 +61,6 @@ This article is intended to be a reference for them. Select / switch the current database. - .. php:method:: db_set_charset($charset) - - :param string $charset: Character set name - :returns: TRUE on success, FALSE on failure - :rtype: bool - - Set client character set. - .. php:method:: platform() :returns: Platform name diff --git a/user_guide_src/source/installation/upgrade_310.rst b/user_guide_src/source/installation/upgrade_310.rst index 7060ebc4c..37772cd4f 100644 --- a/user_guide_src/source/installation/upgrade_310.rst +++ b/user_guide_src/source/installation/upgrade_310.rst @@ -12,3 +12,48 @@ Replace all files and directories in your *system/* directory. .. note:: If you have any custom developed files in these directories, please make copies of them first. + +Step 2: Change database connection handling +=========================================== + +"Loading" a database, whether by using the *config/autoload.php* settings +or manually via calling ``$this->load->database()`` or the less-known +``DB()`` function, will now throw a ``RuntimeException`` in case of a +failure. + +In addition, being unable to set the configured character set is now also +considered a connection failure. + +.. note:: This has been the case for most database drivers in the in the + past as well (i.e. all but the 'mysql', 'mysqli' and 'postgre' + drivers). + +What this means is that if you're unable to connect to a database, or +have an erroneous character set configured, CodeIgniter will no longer +fail silently, but will throw an exception instead. + +You may choose to explicitly catch it (and for that purpose you can't use +*config/autoload.php* to load the :doc:`Database Class <../database/index>`) +:: + + try + { + $this->load->database(); + } + catch (RuntimeException $e) + { + // Handle the failure + } + +Or you may leave it to CodeIgniter's default exception handler, which would +log the error message and display an error screen if you're running in +development mode. + +Remove db_set_charset() calls +----------------------------- + +With the above-mentioned changes, the purpose of the ``db_set_charset()`` +method would now only be to change the connection character set at runtime. +That doesn't make sense and that's the reason why most database drivers +don't support it at all. +Thus, ``db_set_charset()`` is no longer necessary and is removed. -- cgit v1.2.3-24-g4f1b From 2dc9a352b7cb55255b54b5bab6ba2fc83fc86dbe Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 14 Dec 2015 17:57:23 +0200 Subject: Remove PHP 7 from allowed_failures in Travis --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index adc60d759..5a7eb11b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,7 +32,6 @@ matrix: allow_failures: - php: 5.2 - php: hhvm - - php: 7 exclude: - php: hhvm env: DB=pgsql -- cgit v1.2.3-24-g4f1b From d3c8134b1342dc403df2faf3e63e4bdcdfbd4b92 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 14 Dec 2015 18:01:25 +0200 Subject: Adjust test case for changes from 85bc9fc53e4c3e46b2f4e1b1eac7e2828d4869e6 --- tests/codeigniter/database/DB_driver_test.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/codeigniter/database/DB_driver_test.php b/tests/codeigniter/database/DB_driver_test.php index 26416d3fc..13e9abf84 100644 --- a/tests/codeigniter/database/DB_driver_test.php +++ b/tests/codeigniter/database/DB_driver_test.php @@ -7,8 +7,6 @@ class DB_driver_test extends CI_TestCase { $config = Mock_Database_DB::config(DB_DRIVER); sscanf(DB_DRIVER, '%[^/]/', $driver_name); $driver = $this->{$driver_name}($config[DB_DRIVER]); - - $this->assertTrue($driver->initialize()); } protected function pdo($config) -- cgit v1.2.3-24-g4f1b From f437fd20a78b9f28405d1ebba5f7ed53b1a33545 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 14 Dec 2015 18:06:49 +0200 Subject: Fix erroneous variables from 85bc9fc53e4c3e46b2f4e1b1eac7e2828d4869e6 --- system/database/drivers/mysql/mysql_driver.php | 2 +- system/database/drivers/mysqli/mysqli_driver.php | 2 +- system/database/drivers/postgre/postgre_driver.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php index 76f50368f..3fafe3fd8 100644 --- a/system/database/drivers/mysql/mysql_driver.php +++ b/system/database/drivers/mysql/mysql_driver.php @@ -153,7 +153,7 @@ class CI_DB_mysql_driver extends CI_DB { { log_message('error', "Database: Unable to set the configured connection charset ('{$this->char_set}')."); $this->close(); - return ($this->db->debug) ? $this->display_error('db_unable_to_set_charset', $charset) : FALSE; + return ($this->db->debug) ? $this->display_error('db_unable_to_set_charset', $this->char_set) : FALSE; } if ($this->stricton) diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index f9a20ea2f..847544780 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -177,7 +177,7 @@ class CI_DB_mysqli_driver extends CI_DB { { log_message('error', "Database: Unable to set the configured connection charset ('{$this->char_set}')."); $mysqli->close(); - return ($this->db->db_debug) ? $this->display_error('db_unable_to_set_charset', $charset) : FALSE; + return ($this->db->db_debug) ? $this->display_error('db_unable_to_set_charset', $this->char_set) : FALSE; } return $mysqli; diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php index e4db12d69..2d4e5a5d5 100644 --- a/system/database/drivers/postgre/postgre_driver.php +++ b/system/database/drivers/postgre/postgre_driver.php @@ -163,11 +163,11 @@ class CI_DB_postgre_driver extends CI_DB { return FALSE; } - if (pg_set_client_encoding($this->conn_id, $charset) !== 0) + if (pg_set_client_encoding($this->conn_id, $this->char_set) !== 0) { log_message('error', "Database: Unable to set the configured connection charset ('{$this->char_set}')."); pg_close($this->conn_id); - return ($this->db->db_debug) ? $this->display_error('db_unable_to_set_charset', $charset) : FALSE; + return ($this->db->db_debug) ? $this->display_error('db_unable_to_set_charset', $this->char_set) : FALSE; } empty($this->schema) OR $this->simple_query('SET search_path TO '.$this->schema.',public'); -- cgit v1.2.3-24-g4f1b From 3933a3f8a96346d45d98d2c15a41b14ec1f970b2 Mon Sep 17 00:00:00 2001 From: Suhindra Date: Thu, 17 Dec 2015 09:04:05 +0700 Subject: added Vivaldi browser added new browser Vivaldi --- application/config/user_agents.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/config/user_agents.php b/application/config/user_agents.php index 1129dbacd..721ec08d3 100644 --- a/application/config/user_agents.php +++ b/application/config/user_agents.php @@ -87,7 +87,8 @@ $browsers = array( 'amaya' => 'Amaya', 'IBrowse' => 'IBrowse', 'Maxthon' => 'Maxthon', - 'Ubuntu' => 'Ubuntu Web Browser' + 'Ubuntu' => 'Ubuntu Web Browser', + 'Vivaldi' => 'Vivaldi' ); $mobiles = array( -- cgit v1.2.3-24-g4f1b From db68d401f67496ba5e495dd36adabe6d85187b44 Mon Sep 17 00:00:00 2001 From: Sai Phaninder Reddy Jonnala Date: Mon, 21 Dec 2015 11:33:57 -0500 Subject: Refactoring the `CI_Log` line formatting - Extracting the `CI_Log` line formatting into a protected function `_format_log_line()` so as to make it easy to change the log line format via extending the class and overriding the method. --- system/core/Log.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/system/core/Log.php b/system/core/Log.php index e8cb401f5..cf2793a56 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -204,7 +204,7 @@ class CI_Log { $date = date($this->_date_fmt); } - $message .= $level.' - '.$date.' --> '.$msg."\n"; + $message .= $this->_format_log_line($level, $date, $msg); flock($fp, LOCK_EX); @@ -227,4 +227,20 @@ class CI_Log { return is_int($result); } + /** + * Format the log line. + * + * This is for extensibility of log formatting. + * If you want to change the log format, + * extend the CI_Log class and override this method. + * + * @param $level + * @param $date + * @param $msg + * + * @return string formatted log line with a new line character '\n' at the end. + */ + protected function _format_log_line($level, $date, $msg){ + return $level.' - '.$date.' --> '.$msg."\n"; + } } -- cgit v1.2.3-24-g4f1b From 3ac1fd1af92a1d45f9624fff99f5e0692c59d7c6 Mon Sep 17 00:00:00 2001 From: Sai Phaninder Reddy Jonnala Date: Mon, 21 Dec 2015 12:27:40 -0500 Subject: fixing my blatant mistakes in styling the code --- system/core/Log.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/system/core/Log.php b/system/core/Log.php index cf2793a56..0e1f7e2ac 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -234,13 +234,13 @@ class CI_Log { * If you want to change the log format, * extend the CI_Log class and override this method. * - * @param $level - * @param $date - * @param $msg - * - * @return string formatted log line with a new line character '\n' at the end. + * @param string the error level: 'error', 'debug' or 'info' + * @param string formatted date string + * @param string the log message + * @return string formatted log line with a new line character '\n' at the end. */ - protected function _format_log_line($level, $date, $msg){ + protected function _format_log_line($level, $date, $msg) + { return $level.' - '.$date.' --> '.$msg."\n"; } } -- cgit v1.2.3-24-g4f1b From f3b711fd9f7d8e096bf774f9c6cfc0a4ca075919 Mon Sep 17 00:00:00 2001 From: Sai Phaninder Reddy Jonnala Date: Mon, 28 Dec 2015 15:19:31 -0500 Subject: Refactor: logic to get the rule's error message --- system/libraries/Form_validation.php | 73 +++++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index c2212585d..12cfdff43 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -637,21 +637,7 @@ class CI_Form_validation { // Set the message type $type = in_array('required', $rules) ? 'required' : 'isset'; - // Check if a custom message is defined - if (isset($this->_field_data[$row['field']]['errors'][$type])) - { - $line = $this->_field_data[$row['field']]['errors'][$type]; - } - elseif (isset($this->_error_messages[$type])) - { - $line = $this->_error_messages[$type]; - } - elseif (FALSE === ($line = $this->CI->lang->line('form_validation_'.$type)) - // DEPRECATED support for non-prefixed keys - && FALSE === ($line = $this->CI->lang->line($type, FALSE))) - { - $line = 'The field was not set'; - } + $line = $this->_get_raw_error_message($type, $row); // Build the error message $message = $this->_build_error_msg($line, $this->_translate_fieldname($row['label'])); @@ -820,23 +806,9 @@ class CI_Form_validation { { $line = $this->CI->lang->line('form_validation_error_message_not_set').'(Anonymous function)'; } - // Check if a custom message is defined - elseif (isset($this->_field_data[$row['field']]['errors'][$rule])) - { - $line = $this->_field_data[$row['field']]['errors'][$rule]; - } - elseif ( ! isset($this->_error_messages[$rule])) - { - if (FALSE === ($line = $this->CI->lang->line('form_validation_'.$rule)) - // DEPRECATED support for non-prefixed keys - && FALSE === ($line = $this->CI->lang->line($rule, FALSE))) - { - $line = $this->CI->lang->line('form_validation_error_message_not_set').'('.$rule.')'; - } - } else { - $line = $this->_error_messages[$rule]; + $line = $this->_get_raw_error_message($rule, $row); } // Is the parameter we are inserting into the error message the name @@ -864,6 +836,47 @@ class CI_Form_validation { // -------------------------------------------------------------------- + /** + * Get the error message for the rule + * + * @param string the rule name. + * @param array + * @return string + */ + private function _get_raw_error_message($key, $row) + { + $error_message = ''; + // Check if a custom message is defined through validation config row. + if (isset($this->_field_data[$row['field']]['errors'][$key])) + { + $error_message = $this->_field_data[$row['field']]['errors'][$key]; + } + // check if a custom message has been set using the set_message() function + elseif (isset($this->_error_messages[$key])) + { + $error_message = $this->_error_messages[$key]; + } + // check if we have an error message in lang file + elseif (FALSE !== ($line_tmp = $this->CI->lang->line('form_validation_'.$key))) + { + $error_message = $line_tmp; + } + // DEPRECATED support for non-prefixed keys, lang file again + elseif (FALSE !== ($line_tmp = $this->CI->lang->line($key, FALSE))) + { + $error_message = $line_tmp; + } + //error message not found + else + { + $error_message = $this->CI->lang->line('form_validation_error_message_not_set').'('.$key.')'; + } + + return $error_message; + } + + // -------------------------------------------------------------------- + /** * Translate a field name * -- cgit v1.2.3-24-g4f1b From 0951e58f94c970a03f8ac2d5cba31d122bfa948a Mon Sep 17 00:00:00 2001 From: Sai Phaninder Reddy Jonnala Date: Mon, 28 Dec 2015 15:28:02 -0500 Subject: renamed variable for better readability. --- system/libraries/Form_validation.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 12cfdff43..a34694bfe 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -843,33 +843,33 @@ class CI_Form_validation { * @param array * @return string */ - private function _get_raw_error_message($key, $row) + private function _get_raw_error_message($rule_name, $row) { $error_message = ''; - // Check if a custom message is defined through validation config row. - if (isset($this->_field_data[$row['field']]['errors'][$key])) + // check if a custom message is defined through validation config row. + if (isset($this->_field_data[$row['field']]['errors'][$rule_name])) { - $error_message = $this->_field_data[$row['field']]['errors'][$key]; + $error_message = $this->_field_data[$row['field']]['errors'][$rule_name]; } // check if a custom message has been set using the set_message() function - elseif (isset($this->_error_messages[$key])) + elseif (isset($this->_error_messages[$rule_name])) { - $error_message = $this->_error_messages[$key]; + $error_message = $this->_error_messages[$rule_name]; } // check if we have an error message in lang file - elseif (FALSE !== ($line_tmp = $this->CI->lang->line('form_validation_'.$key))) + elseif (FALSE !== ($line_tmp = $this->CI->lang->line('form_validation_'.$rule_name))) { $error_message = $line_tmp; } // DEPRECATED support for non-prefixed keys, lang file again - elseif (FALSE !== ($line_tmp = $this->CI->lang->line($key, FALSE))) + elseif (FALSE !== ($line_tmp = $this->CI->lang->line($rule_name, FALSE))) { $error_message = $line_tmp; } - //error message not found + // error message not found else { - $error_message = $this->CI->lang->line('form_validation_error_message_not_set').'('.$key.')'; + $error_message = $this->CI->lang->line('form_validation_error_message_not_set').'('.$rule_name.')'; } return $error_message; -- cgit v1.2.3-24-g4f1b From 0f13e09ebb153315539e1ff7f77698f2709996b5 Mon Sep 17 00:00:00 2001 From: Sai Phaninder Reddy Jonnala Date: Mon, 28 Dec 2015 15:45:03 -0500 Subject: block comment formatting --- system/libraries/Form_validation.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index a34694bfe..c37a73418 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -839,9 +839,9 @@ class CI_Form_validation { /** * Get the error message for the rule * - * @param string the rule name. - * @param array - * @return string + * @param string the rule name. + * @param array + * @return string */ private function _get_raw_error_message($rule_name, $row) { -- cgit v1.2.3-24-g4f1b From 20105a70a79c39aeffb06861e982558610ec8a43 Mon Sep 17 00:00:00 2001 From: Gordon Murray Date: Tue, 29 Dec 2015 13:24:34 +0000 Subject: Renamed Step 20 to Step 21 There were two Step 20's --- user_guide_src/source/installation/upgrade_300.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index a29f400f8..45ce21320 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -855,7 +855,7 @@ It is now deprecated and scheduled for removal in CodeIgniter 3.1+. sooner rather than later. *********************************************************** -Step 20: Check your usage of Text helper highlight_phrase() +Step 21: Check your usage of Text helper highlight_phrase() *********************************************************** The default HTML tag used by :doc:`Text Helper <../helpers/text_helper>` function -- cgit v1.2.3-24-g4f1b From 673413e06d05b5695bd7cc1d90c9d66a93aaa955 Mon Sep 17 00:00:00 2001 From: paranic Date: Sat, 2 Jan 2016 00:21:52 +0200 Subject: typo correction to avoid copy paste error --- user_guide_src/source/libraries/image_lib.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/image_lib.rst b/user_guide_src/source/libraries/image_lib.rst index 40a280b5c..d5c24c1b0 100644 --- a/user_guide_src/source/libraries/image_lib.rst +++ b/user_guide_src/source/libraries/image_lib.rst @@ -471,4 +471,4 @@ Class Reference Returns all detected errors formatted as a string. :: - echo $this->image_lib->diplay_errors(); \ No newline at end of file + echo $this->image_lib->display_errors(); -- cgit v1.2.3-24-g4f1b From b1b45557ad18c596bd9756bd2eebf93fe2d54b0d Mon Sep 17 00:00:00 2001 From: ponsfrilus Date: Fri, 8 Jan 2016 10:24:58 +0100 Subject: [typo] missing ; at end of PHP lines 464 and 469 --- user_guide_src/source/helpers/form_helper.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/helpers/form_helper.rst b/user_guide_src/source/helpers/form_helper.rst index a67dbc0bf..bc30a0e98 100644 --- a/user_guide_src/source/helpers/form_helper.rst +++ b/user_guide_src/source/helpers/form_helper.rst @@ -461,12 +461,12 @@ The following functions are available: fourth parameter:: $js = 'onClick="some_function()"'; - echo form_checkbox('newsletter', 'accept', TRUE, $js) + echo form_checkbox('newsletter', 'accept', TRUE, $js); Or you can pass it as an array:: $js = array('onClick' => 'some_function();'); - echo form_checkbox('newsletter', 'accept', TRUE, $js) + echo form_checkbox('newsletter', 'accept', TRUE, $js); .. php:function:: form_radio([$data = ''[, $value = ''[, $checked = FALSE[, $extra = '']]]]) -- cgit v1.2.3-24-g4f1b From 8de7faa9ff7f342d57966bde0b0429ab241c2a6f Mon Sep 17 00:00:00 2001 From: Claudio Galdiolo Date: Fri, 8 Jan 2016 15:13:13 -0500 Subject: use 'while' instead of 'if' 'do' 'while' --- system/database/DB_driver.php | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index af6b9f399..59662a946 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -641,19 +641,15 @@ abstract class CI_DB_driver { // if transactions are enabled. If we don't call this here // the error message will trigger an exit, causing the // transactions to remain in limbo. - if ($this->_trans_depth !== 0) + while ($this->_trans_depth !== 0) { - do + $trans_depth = $this->_trans_depth; + $this->trans_complete(); + if ($trans_depth === $this->_trans_depth) { - $trans_depth = $this->_trans_depth; - $this->trans_complete(); - if ($trans_depth === $this->_trans_depth) - { - log_message('error', 'Database: Failure during an automated transaction commit/rollback!'); - break; - } + log_message('error', 'Database: Failure during an automated transaction commit/rollback!'); + break; } - while ($this->_trans_depth !== 0); } // Display errors -- cgit v1.2.3-24-g4f1b From 8219714647602c94dd38e6b2efedb4e7ed1c8c4e Mon Sep 17 00:00:00 2001 From: Fery Wardiyanto Date: Sat, 9 Jan 2016 19:30:32 +0700 Subject: Add extra mime for .ogg file Signed-off-by: Fery Wardiyanto --- application/config/mimes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index 957dc05d8..8bac87251 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -149,7 +149,7 @@ return array( 'au' => 'audio/x-au', 'ac3' => 'audio/ac3', 'flac' => 'audio/x-flac', - 'ogg' => 'audio/ogg', + 'ogg' => array('audio/ogg', 'video/ogg', 'application/ogg'), 'kmz' => array('application/vnd.google-earth.kmz', 'application/zip', 'application/x-zip'), 'kml' => array('application/vnd.google-earth.kml+xml', 'application/xml', 'text/xml'), 'ics' => 'text/calendar', -- cgit v1.2.3-24-g4f1b From 8f1047ff6bc961159a7103e7be02e6cc459d925e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 11 Jan 2016 13:20:12 +0200 Subject: Polish changes from PR #4269 --- system/helpers/html_helper.php | 28 ++++++++++++++++------ tests/codeigniter/helpers/html_helper_test.php | 32 ++++++++++++++++---------- user_guide_src/source/helpers/html_helper.rst | 12 +++++++--- 3 files changed, 50 insertions(+), 22 deletions(-) diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 5cc994ff1..becd9a00c 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -359,17 +359,31 @@ if ( ! function_exists('meta')) // Turn single array into multidimensional $name = array($name); } - $allowed_type = array('charset', 'http-equiv', 'name', 'property'); + + $allowed_types = array('charset', 'http-equiv', 'name', 'property'); $str = ''; foreach ($name as $meta) { - $meta['type'] = isset($meta['type']) ? (($meta['type'] === 'equiv') ? 'http-equiv' : $meta['type']) : ''; // backward compatibility - $type = in_array($meta['type'], $allowed_type) ? $meta['type'] : 'name'; - $name = isset($meta['name']) ? $meta['name'] : ''; - $content = isset($meta['content']) ? $meta['content'] : ''; - $newline = isset($meta['newline']) ? $meta['newline'] : "\n"; + // This is to preserve BC with pre-3.1 versions where only + // 'http-equiv' (default) and 'name' were supported. + if (isset($meta['type'])) + { + if ($meta['type'] === 'equiv') + { + $meta['type'] === 'http-equiv'; + } + elseif ( ! in_array($meta['type'], $allowed_types, TRUE)) + { + $meta['type'] = 'name'; + } + } + + $type = isset($meta['type']) ? $meta['type'] : 'name'; + $name = isset($meta['name']) ? $meta['name'] : ''; + $content = isset($meta['content']) ? $meta['content'] : ''; + $newline = isset($meta['newline']) ? $meta['newline'] : "\n"; - $str .= ''.$newline; + $str .= ''.$newline; } return $str; diff --git a/tests/codeigniter/helpers/html_helper_test.php b/tests/codeigniter/helpers/html_helper_test.php index 0b9655bf5..029f3f4cd 100644 --- a/tests/codeigniter/helpers/html_helper_test.php +++ b/tests/codeigniter/helpers/html_helper_test.php @@ -81,16 +81,24 @@ EOH; public function test_meta() { - $this->assertEquals("\n", meta('test', 'foo')); - - $expect = "\n"; - - $this->assertEquals($expect, meta(array('name' => 'foo'))); - - $expect = "\n"; - - $this->assertEquals($expect, meta(array('name' => 'foo', 'type' => 'charset'))); - + $this->assertEquals( + "\n", + meta('test', 'foo') + ); + + $this->assertEquals( + "\n", + meta(array('name' => 'foo')) + ); + + $this->assertEquals( + "\n", + meta(array('name' => 'foo', 'type' => 'charset')) + ); + + $this->assertEquals( + "\n", + meta(array('name' => 'foo', 'type' => 'charset')) + ); } - -} +} \ No newline at end of file diff --git a/user_guide_src/source/helpers/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst index fffb2cab4..a19924dde 100644 --- a/user_guide_src/source/helpers/html_helper.rst +++ b/user_guide_src/source/helpers/html_helper.rst @@ -309,6 +309,11 @@ The following functions are available: 'name' => 'robots', 'content' => 'no-cache' ), + array( + 'name' => 'Content-Type', + 'type' => 'http-equiv', + 'content' => 'text/html; charset=utf-8' + ), array( 'name' => 'UTF-8', 'type' => 'charset' @@ -321,21 +326,22 @@ The following functions are available: // // // + // // -.. php:function:: doctype([$type = 'html5']) +.. php:function:: doctype([$type = 'xhtml1-strict']) :param string $type: Doctype name :returns: HTML DocType tag :rtype: string - Helps you generate document type declarations, or DTD's. HTML 5 + Helps you generate document type declarations, or DTD's. XHTML 1.0 is used by default, but many doctypes are available. Example:: - echo doctype(); // + echo doctype(); // echo doctype('html4-trans'); // -- cgit v1.2.3-24-g4f1b From c5cbe8cafc55dae693b8fa973d8f219272d463bd Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 11 Jan 2016 13:22:42 +0200 Subject: [ci skip] Add changelog entry for PR #4269 --- user_guide_src/source/changelog.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 7a0d0f9fa..bf5427ef4 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -17,6 +17,10 @@ Release Date: Not Released - Changed method ``db_connect()`` to always set the connection character set (if supported by the driver) and to fail if it can't. - Removed method ``db_set_charset()`` and the ability to change a connection character set at runtime. +- Helpers + + - Updated :doc:`HTML Helper ` function :php:func:`meta()` with support for "charset" and "property" properties. + Version 3.0.4 ============= -- cgit v1.2.3-24-g4f1b From 4e44a4d9fcf6590fddbba93545b8bde893910c22 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 12 Jan 2016 16:15:50 +0200 Subject: [ci skip] 2016 in index.php --- index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.php b/index.php index 13fcd5996..5cc37108a 100755 --- a/index.php +++ b/index.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2015, British Columbia Institute of Technology + * Copyright (c) 2014 - 2016, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2015, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 -- cgit v1.2.3-24-g4f1b From d1688af15458af8684a109e5e65f41a8a02786fb Mon Sep 17 00:00:00 2001 From: Jason Neal Date: Wed, 13 Jan 2016 08:46:03 -0500 Subject: Fix type in default constants configuration The word "destructive" was misspelled in the conditional portion. --- application/config/constants.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/config/constants.php b/application/config/constants.php index e8d2c00ea..18d3b4b76 100644 --- a/application/config/constants.php +++ b/application/config/constants.php @@ -42,7 +42,7 @@ defined('DIR_WRITE_MODE') OR define('DIR_WRITE_MODE', 0755); defined('FOPEN_READ') OR define('FOPEN_READ', 'rb'); defined('FOPEN_READ_WRITE') OR define('FOPEN_READ_WRITE', 'r+b'); defined('FOPEN_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care -defined('FOPEN_READ_WRITE_CREATE_DESCTRUCTIVE') OR define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b'); // truncates existing file data, use with care +defined('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE') OR define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b'); // truncates existing file data, use with care defined('FOPEN_WRITE_CREATE') OR define('FOPEN_WRITE_CREATE', 'ab'); defined('FOPEN_READ_WRITE_CREATE') OR define('FOPEN_READ_WRITE_CREATE', 'a+b'); defined('FOPEN_WRITE_CREATE_STRICT') OR define('FOPEN_WRITE_CREATE_STRICT', 'xb'); -- cgit v1.2.3-24-g4f1b From 009ce6c4b68375f77bc8864528602824d6c603ba Mon Sep 17 00:00:00 2001 From: Sai Phaninder Reddy Jonnala Date: Fri, 15 Jan 2016 10:25:53 -0500 Subject: Code styling changes as suggested by narfbg --- system/core/Log.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/system/core/Log.php b/system/core/Log.php index 0e1f7e2ac..f338a36ec 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -154,8 +154,8 @@ class CI_Log { * * Generally this function will be called using the global log_message() function * - * @param string the error level: 'error', 'debug' or 'info' - * @param string the error message + * @param string $level The error level: 'error', 'debug' or 'info' + * @param string $msg The error message * @return bool */ public function write_log($level, $msg) @@ -204,7 +204,7 @@ class CI_Log { $date = date($this->_date_fmt); } - $message .= $this->_format_log_line($level, $date, $msg); + $message .= $this->_format_line($level, $date, $msg); flock($fp, LOCK_EX); @@ -227,6 +227,8 @@ class CI_Log { return is_int($result); } + // -------------------------------------------------------------------- + /** * Format the log line. * @@ -234,13 +236,13 @@ class CI_Log { * If you want to change the log format, * extend the CI_Log class and override this method. * - * @param string the error level: 'error', 'debug' or 'info' - * @param string formatted date string - * @param string the log message + * @param string $level The error level + * @param string $date Formatted date string + * @param string $msg The log message * @return string formatted log line with a new line character '\n' at the end. */ - protected function _format_log_line($level, $date, $msg) + protected function _format_line($level, $date, $message) { - return $level.' - '.$date.' --> '.$msg."\n"; + return $level.' - '.$date.' --> '.$message."\n"; } } -- cgit v1.2.3-24-g4f1b From b6774cbeb11ac7bc5bd694c1da87ed77e9d4f9fb Mon Sep 17 00:00:00 2001 From: Sébastien Adam Date: Wed, 20 Jan 2016 09:25:22 +0100 Subject: Default doctype is now HTML 5 --- system/helpers/html_helper.php | 2 +- user_guide_src/source/helpers/html_helper.rst | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index becd9a00c..696f0eee2 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -229,7 +229,7 @@ if ( ! function_exists('doctype')) * @param string type The doctype to be generated * @return string */ - function doctype($type = 'xhtml1-strict') + function doctype($type = 'html5') { static $doctypes; diff --git a/user_guide_src/source/helpers/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst index a19924dde..b4e56fdca 100644 --- a/user_guide_src/source/helpers/html_helper.rst +++ b/user_guide_src/source/helpers/html_helper.rst @@ -330,18 +330,18 @@ The following functions are available: // -.. php:function:: doctype([$type = 'xhtml1-strict']) +.. php:function:: doctype([$type = 'html5']) :param string $type: Doctype name :returns: HTML DocType tag :rtype: string - Helps you generate document type declarations, or DTD's. XHTML 1.0 + Helps you generate document type declarations, or DTD's. HTML 5 is used by default, but many doctypes are available. Example:: - echo doctype(); // + echo doctype(); // echo doctype('html4-trans'); // -- cgit v1.2.3-24-g4f1b From a062bdc6cf80268f89309d8be416cc3489e010c5 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 20 Jan 2016 12:03:21 +0200 Subject: [ci skip] Add changelog entry and upgrade instructions following PR #4389 --- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/installation/upgrade_310.rst | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 9bbe38207..7c09047f0 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -20,6 +20,7 @@ Release Date: Not Released - Helpers - Updated :doc:`HTML Helper ` function :php:func:`meta()` with support for "charset" and "property" properties. + - Changed :doc:`HTML Helper ` function :php:func:`doctype()` default document type to HTML 5. Version 3.0.5 ============= diff --git a/user_guide_src/source/installation/upgrade_310.rst b/user_guide_src/source/installation/upgrade_310.rst index 37772cd4f..b86bb1da3 100644 --- a/user_guide_src/source/installation/upgrade_310.rst +++ b/user_guide_src/source/installation/upgrade_310.rst @@ -57,3 +57,16 @@ method would now only be to change the connection character set at runtime. That doesn't make sense and that's the reason why most database drivers don't support it at all. Thus, ``db_set_charset()`` is no longer necessary and is removed. + +Step 3: Check usage of doctype() HTML helper +============================================ + +The :doc:`HTML Helper <../helpers/html_helper>` function +:php:func:`doctype()` used to default to 'xhtml1-strict' (XHTML 1.0 Strict) +when no document type was specified. That default value is now changed to +'html5', which obviously stands for the modern HTML 5 standard. + +Nothing should be really broken by this change, but if your application +relies on the default value, you should double-check it and either +explicitly set the desired format, or adapt your front-end to use proper +HTML 5 formatting. \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 356ad58b61d485570d4f4ca96fefda0d3a9c5d32 Mon Sep 17 00:00:00 2001 From: jekkos Date: Mon, 18 Jan 2016 21:14:06 +0100 Subject: Respect $config['cur_page'] variable for pagination After upgrading to CI3 I noticed that developers are able to determine the current page counter for pagination based on * Explicit query string parameters * URI segment configuration In earlier versions a developer could still set the current page counter in the pagination lib directly which is useful if you want to use pagination with HTTP POST instead of GET. This could be done by passing $config['cur_page'] = '10'; to the pagination function for link generation. Currently this code has changed and will always try to check whether the uri segment is a valid number or not, even if the cur_page variable was passed in the associative array, and fallback to zero if it fails to validate that result. This can be easily resolved by checking whether the counter was already set with a valid number from the $config array before trying to resolve it from the uri segment. This fix give a developer more flexibility and stop CI from overwriting the externally set value with an incorrect one. Signed-off-by: jekkos --- system/libraries/Pagination.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index cef98ebf4..9ac9661ad 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -497,7 +497,7 @@ class CI_Pagination { { $this->cur_page = $this->CI->input->get($this->query_string_segment); } - else + elseif (empty($this->cur_page)) { // Default to the last segment number if one hasn't been defined. if ($this->uri_segment === 0) @@ -512,6 +512,10 @@ class CI_Pagination { { $this->cur_page = str_replace(array($this->prefix, $this->suffix), '', $this->cur_page); } + } + else + { + $this->cur_page = (string) $this->cur_page; } // If something isn't quite right, back to the default base page. -- cgit v1.2.3-24-g4f1b From 1e77136c47032221ae0cdb7f6b43f56792dae224 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 20 Jan 2016 19:36:39 +0200 Subject: [ci skip] Remove a trailing space from latest PR merge --- system/libraries/Pagination.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 9ac9661ad..44f848fe0 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -512,7 +512,7 @@ class CI_Pagination { { $this->cur_page = str_replace(array($this->prefix, $this->suffix), '', $this->cur_page); } - } + } else { $this->cur_page = (string) $this->cur_page; -- cgit v1.2.3-24-g4f1b From 4a7d2fd8d7dfc3512f15172431c75c8b2dba281a Mon Sep 17 00:00:00 2001 From: Sherman K Date: Fri, 29 Jan 2016 02:12:04 +0800 Subject: Fixed minor typographical error Signed-off-by: Sherman K --- user_guide_src/source/contributing/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/contributing/index.rst b/user_guide_src/source/contributing/index.rst index da5bb527b..64e9f0d92 100644 --- a/user_guide_src/source/contributing/index.rst +++ b/user_guide_src/source/contributing/index.rst @@ -155,5 +155,5 @@ could even alias git commit to use the -s flag so you don’t have to think abou it. By signing your work in this manner, you certify to a "Developer's Certificate -or Origin". The current version of this certificate is in the :doc:`/DCO` file +of Origin". The current version of this certificate is in the :doc:`/DCO` file in the root of this documentation. -- cgit v1.2.3-24-g4f1b From 237b4c915d873ab1b4efc80d50e86b97cbb97c03 Mon Sep 17 00:00:00 2001 From: Sherman K Date: Fri, 29 Jan 2016 09:33:20 +0800 Subject: Consistent formatting of italicised file paths and inline code references Signed-off-by: Sherman K --- user_guide_src/source/installation/index.rst | 18 +++++++++--------- user_guide_src/source/installation/troubleshooting.rst | 6 +++--- user_guide_src/source/overview/at_a_glance.rst | 4 ++-- user_guide_src/source/tutorial/create_news_items.rst | 16 ++++++++-------- user_guide_src/source/tutorial/static_pages.rst | 2 +- 5 files changed, 23 insertions(+), 23 deletions(-) diff --git a/user_guide_src/source/installation/index.rst b/user_guide_src/source/installation/index.rst index 50493bbbd..fbf6ecee1 100644 --- a/user_guide_src/source/installation/index.rst +++ b/user_guide_src/source/installation/index.rst @@ -6,37 +6,37 @@ CodeIgniter is installed in four steps: #. Unzip the package. #. Upload the CodeIgniter folders and files to your server. Normally the - index.php file will be at your root. -#. Open the application/config/config.php file with a text editor and + *index.php* file will be at your root. +#. Open the *application/config/config.php* file with a text editor and set your base URL. If you intend to use encryption or sessions, set your encryption key. #. If you intend to use a database, open the - application/config/database.php file with a text editor and set your + *application/config/database.php* file with a text editor and set your database settings. If you wish to increase security by hiding the location of your CodeIgniter files you can rename the system and application folders to something more private. If you do rename them, you must open your main -index.php file and set the $system_path and $application_folder +*index.php* file and set the ``$system_path`` and ``$application_folder`` variables at the top of the file with the new name you've chosen. For the best security, both the system and any application folders should be placed above web root so that they are not directly accessible -via a browser. By default, .htaccess files are included in each folder +via a browser. By default, *.htaccess* files are included in each folder to help prevent direct access, but it is best to remove them from public access entirely in case the web server configuration changes or doesn't -abide by the .htaccess. +abide by the *.htaccess*. If you would like to keep your views public it is also possible to move the views folder out of your application folder. After moving them, open your main index.php file and set the -$system_path, $application_folder and $view_folder variables, -preferably with a full path, e.g. '/www/MyUser/system'. +``$system_path``, ``$application_folder`` and ``$view_folder`` variables, +preferably with a full path, e.g. '*/www/MyUser/system*'. One additional measure to take in production environments is to disable PHP error reporting and any other development-only functionality. In -CodeIgniter, this can be done by setting the ENVIRONMENT constant, which +CodeIgniter, this can be done by setting the ``ENVIRONMENT`` constant, which is more fully described on the :doc:`security page <../general/security>`. diff --git a/user_guide_src/source/installation/troubleshooting.rst b/user_guide_src/source/installation/troubleshooting.rst index e874bb0ec..ffd65e0e9 100644 --- a/user_guide_src/source/installation/troubleshooting.rst +++ b/user_guide_src/source/installation/troubleshooting.rst @@ -4,12 +4,12 @@ Troubleshooting If you find that no matter what you put in your URL only your default page is loading, it might be that your server does not support the -REQUEST_URI variable needed to serve search-engine friendly URLs. As a -first step, open your application/config/config.php file and look for +``REQUEST_URI`` variable needed to serve search-engine friendly URLs. As a +first step, open your *application/config/config.php* file and look for the URI Protocol information. It will recommend that you try a couple alternate settings. If it still doesn't work after you've tried this you'll need to force CodeIgniter to add a question mark to your URLs. To -do this open your **application/config/config.php** file and change this:: +do this open your *application/config/config.php* file and change this:: $config['index_page'] = "index.php"; diff --git a/user_guide_src/source/overview/at_a_glance.rst b/user_guide_src/source/overview/at_a_glance.rst index ce195c211..b4db6b18b 100644 --- a/user_guide_src/source/overview/at_a_glance.rst +++ b/user_guide_src/source/overview/at_a_glance.rst @@ -54,8 +54,8 @@ approach:: example.com/news/article/345 -Note: By default the index.php file is included in the URL but it can be -removed using a simple .htaccess file. +Note: By default the *index.php* file is included in the URL but it can be +removed using a simple *.htaccess* file. CodeIgniter Packs a Punch ========================= diff --git a/user_guide_src/source/tutorial/create_news_items.rst b/user_guide_src/source/tutorial/create_news_items.rst index bc0ce7612..e10eebd3b 100644 --- a/user_guide_src/source/tutorial/create_news_items.rst +++ b/user_guide_src/source/tutorial/create_news_items.rst @@ -14,7 +14,7 @@ To input data into the database you need to create a form where you can input the information to be stored. This means you'll be needing a form with two fields, one for the title and one for the text. You'll derive the slug from our title in the model. Create the new view at -application/views/news/create.php. +*application/views/news/create.php*. :: @@ -35,7 +35,7 @@ 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. +``form_open()`` function and the ``validation_errors()`` function. The first function is provided by the :doc:`form helper <../helpers/form_helper>` and renders the form element and @@ -76,7 +76,7 @@ validation <../libraries/form_validation>` library to do this. The code above adds a lot of functionality. The first few lines load the form helper and the form validation library. After that, rules for the -form validation are set. The set\_rules() method takes three arguments; +form validation are set. The ``set\_rules()`` method takes three arguments; 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. @@ -88,7 +88,7 @@ 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 was submitted **and** passed all the rules, the model is called. After this, a view is loaded to display a success message. Create a view at -application/views/news/success.php and write a success message. +*application/views/news/success.php* and write a success message. Model ----- @@ -123,19 +123,19 @@ sure everything is in lowercase characters. This leaves you with a nice 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 +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 :doc:`input +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 +library is loaded by default. At last, you insert our ``$data`` array into our database. Routing ------- Before you can start adding news items into your CodeIgniter application -you have to add an extra rule to config/routes.php file. Make sure your +you have to add an extra rule to *config/routes.php* file. Make sure your file contains the following. This makes sure CodeIgniter sees 'create' as a method instead of a news item's slug. diff --git a/user_guide_src/source/tutorial/static_pages.rst b/user_guide_src/source/tutorial/static_pages.rst index 66621471e..569287c98 100644 --- a/user_guide_src/source/tutorial/static_pages.rst +++ b/user_guide_src/source/tutorial/static_pages.rst @@ -24,7 +24,7 @@ you'll see URL patterns that match: 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 +Create a file at *application/controllers/Pages.php* with the following code. :: -- cgit v1.2.3-24-g4f1b From c31588a7fc0a2bc44d6b64644726cebba0be7b3f Mon Sep 17 00:00:00 2001 From: kenjis Date: Mon, 25 Jan 2016 14:57:39 +0900 Subject: Fix formatting of paths Signed-off-by: Kenji Suzuki --- user_guide_src/source/installation/upgrade_300.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index 45ce21320..9a40f2b60 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -65,7 +65,7 @@ Step 3: Replace config/mimes.php ******************************** This config file has been updated to contain more user mime-types, please copy -it to _application/config/mimes.php*. +it to *application/config/mimes.php*. ************************************************************** Step 4: Remove $autoload['core'] from your config/autoload.php @@ -206,13 +206,13 @@ Step 8: Replace your error templates ************************************ In CodeIgniter 3.0, the error templates are now considered as views and have been moved to the -_application/views/errors* directory. +*application/views/errors* directory. Furthermore, we've added support for CLI error templates in plain-text format that unlike HTML, is suitable for the command line. This of course requires another level of separation. -It is safe to move your old templates from _application/errors* to _application/views/errors/html*, -but you'll have to copy the new _application/views/errors/cli* directory from the CodeIgniter archive. +It is safe to move your old templates from *application/errors* to *application/views/errors/html*, +but you'll have to copy the new *application/views/errors/cli* directory from the CodeIgniter archive. ****************************************** Step 9: Update your config/routes.php file -- cgit v1.2.3-24-g4f1b From f51ef09e34f049911af99332f937ebaf723c129e Mon Sep 17 00:00:00 2001 From: Kristian Matthews Date: Sun, 31 Jan 2016 15:54:30 +0000 Subject: Added Unique Field Attribute Doc Signed-off-by: Kristian Matthews --- user_guide_src/source/database/forge.rst | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/user_guide_src/source/database/forge.rst b/user_guide_src/source/database/forge.rst index 646e3a56e..cb5c35662 100644 --- a/user_guide_src/source/database/forge.rst +++ b/user_guide_src/source/database/forge.rst @@ -97,6 +97,7 @@ Additionally, the following key/values can be used: - auto_increment/true : generates an auto_increment flag on the field. Note that the field type must be a type that supports this, such as integer. +- unique/false : to generate a unique key for the field definition. :: @@ -110,6 +111,7 @@ Additionally, the following key/values can be used: 'blog_title' => array( 'type' => 'VARCHAR', 'constraint' => '100', + 'unique' => TRUE, ), 'blog_author' => array( 'type' =>'VARCHAR', @@ -175,14 +177,14 @@ below is for MySQL. $this->dbforge->add_key('blog_id', TRUE); // gives PRIMARY KEY `blog_id` (`blog_id`) - + $this->dbforge->add_key('blog_id', TRUE); $this->dbforge->add_key('site_id', TRUE); // gives PRIMARY KEY `blog_id_site_id` (`blog_id`, `site_id`) - + $this->dbforge->add_key('blog_name'); // gives KEY `blog_name` (`blog_name`) - + $this->dbforge->add_key(array('blog_name', 'blog_label')); // gives KEY `blog_name_blog_label` (`blog_name`, `blog_label`) @@ -261,7 +263,7 @@ number of additional fields. $fields = array( 'preferences' => array('type' => 'TEXT') ); - $this->dbforge->add_column('table_name', $fields); + $this->dbforge->add_column('table_name', $fields); // Executes: ALTER TABLE table_name ADD preferences TEXT If you are using MySQL or CUBIRD, then you can take advantage of their -- cgit v1.2.3-24-g4f1b From ea07f04725c56730d4b99d5f215d6e09edb54df6 Mon Sep 17 00:00:00 2001 From: Kristian Matthews Date: Mon, 1 Feb 2016 18:06:17 +0000 Subject: Changed Unique Value Changed unique value from false to true. Signed-off-by: Kristian Matthews --- user_guide_src/source/database/forge.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/database/forge.rst b/user_guide_src/source/database/forge.rst index cb5c35662..5af4f2248 100644 --- a/user_guide_src/source/database/forge.rst +++ b/user_guide_src/source/database/forge.rst @@ -97,7 +97,7 @@ Additionally, the following key/values can be used: - auto_increment/true : generates an auto_increment flag on the field. Note that the field type must be a type that supports this, such as integer. -- unique/false : to generate a unique key for the field definition. +- unique/true : to generate a unique key for the field definition. :: -- cgit v1.2.3-24-g4f1b From 4dc17cf59142b3d3d80e9b3cdba77e7db0d2b75c Mon Sep 17 00:00:00 2001 From: Jonty Sewell Date: Wed, 3 Feb 2016 11:41:34 +0000 Subject: If attempting to write an empty session to Redis, a key will not actually be created, so when the driver tries to set the expiration timeout on the key, 0 is returned, triggering a warning from session_write_close Signed-off-by: Jonty Sewell --- system/libraries/Session/drivers/Session_redis_driver.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index c7c574202..aa8459bef 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -240,9 +240,15 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return $this->_failure; } - return ($this->_redis->setTimeout($this->_key_prefix.$session_id, $this->_config['expiration'])) - ? $this->_success - : $this->_failure; + if($this->_fingerprint === md5('')) + { + // A blank session will not be written to redis, so a timeout cannot be set on it + return $this->_success; + } else { + return ($this->_redis->setTimeout($this->_key_prefix.$session_id, $this->_config['expiration'])) + ? $this->_success + : $this->_failure; + } } return $this->_failure; -- cgit v1.2.3-24-g4f1b From b864ece65755e91e28a802824da7e4beebab3a9c Mon Sep 17 00:00:00 2001 From: Claudio Galdiolo Date: Thu, 4 Feb 2016 13:02:39 -0500 Subject: [ci skip] fix comment --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index e565f0fd1..1b52bf3b8 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -1731,7 +1731,7 @@ abstract class CI_DB_driver { * the table prefix onto it. Some logic is necessary in order to deal with * column names that include the path. Consider a query like this: * - * SELECT * FROM hostname.database.table.column AS c FROM hostname.database.table + * SELECT hostname.database.table.column AS c FROM hostname.database.table * * Or a query with aliasing: * -- cgit v1.2.3-24-g4f1b From 880036d5cea0021258c43c0d0fba0e6fd9d04b69 Mon Sep 17 00:00:00 2001 From: Jonty Sewell Date: Fri, 5 Feb 2016 09:27:47 +0000 Subject: Revert previous changes - fixing the source of the problem rather than working around it Signed-off-by: Jonty Sewell --- system/libraries/Session/drivers/Session_redis_driver.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index aa8459bef..c7c574202 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -240,15 +240,9 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return $this->_failure; } - if($this->_fingerprint === md5('')) - { - // A blank session will not be written to redis, so a timeout cannot be set on it - return $this->_success; - } else { - return ($this->_redis->setTimeout($this->_key_prefix.$session_id, $this->_config['expiration'])) - ? $this->_success - : $this->_failure; - } + return ($this->_redis->setTimeout($this->_key_prefix.$session_id, $this->_config['expiration'])) + ? $this->_success + : $this->_failure; } return $this->_failure; -- cgit v1.2.3-24-g4f1b From 74f846890d69e6f5ff5f0bb4268539803242d015 Mon Sep 17 00:00:00 2001 From: Jonty Sewell Date: Fri, 5 Feb 2016 09:39:05 +0000 Subject: Add a flag to determine whether the redis key currently exists, and if not, force creation of it at write-time Signed-off-by: Jonty Sewell --- .../Session/drivers/Session_redis_driver.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index c7c574202..e62a3c597 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -69,6 +69,13 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle */ protected $_lock_key; + /** + * Key exists flag + * + * @var boolean + */ + protected $_key_exists = FALSE; + // ------------------------------------------------------------------------ /** @@ -189,7 +196,15 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle // Needed by write() to detect session_regenerate_id() calls $this->_session_id = $session_id; - $session_data = (string) $this->_redis->get($this->_key_prefix.$session_id); + $session_data = $this->_redis->get($this->_key_prefix.$session_id); + + if ($session_data === FALSE) + { + // The session ID does not exist in redis yet, so set a flag to create it + $this->_key_exists = FALSE; + $session_data = ''; + } + $this->_fingerprint = md5($session_data); return $session_data; } @@ -229,7 +244,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle if (isset($this->_lock_key)) { $this->_redis->setTimeout($this->_lock_key, 300); - if ($this->_fingerprint !== ($fingerprint = md5($session_data))) + if ($this->_fingerprint !== ($fingerprint = md5($session_data)) OR $this->_key_exists === FALSE) { if ($this->_redis->set($this->_key_prefix.$session_id, $session_data, $this->_config['expiration'])) { -- cgit v1.2.3-24-g4f1b From a7f9ea28aa40bd036de1cee7a4ec4ab63235fd12 Mon Sep 17 00:00:00 2001 From: Jonty Sewell Date: Fri, 5 Feb 2016 10:33:00 +0000 Subject: Set the _key_exists flag to TRUE when the key does in fact exist. Set it to FALSE if the ID is being regenerated, and set it to TRUE once it's been written. Signed-off-by: Jonty Sewell --- system/libraries/Session/drivers/Session_redis_driver.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index e62a3c597..be5b37e81 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -72,7 +72,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle /** * Key exists flag * - * @var boolean + * @var bool */ protected $_key_exists = FALSE; @@ -204,6 +204,10 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle $this->_key_exists = FALSE; $session_data = ''; } + else + { + $this->_key_exists = TRUE; + } $this->_fingerprint = md5($session_data); return $session_data; @@ -237,7 +241,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return $this->_failure; } - $this->_fingerprint = md5(''); + $this->_key_exists = FALSE; $this->_session_id = $session_id; } @@ -249,6 +253,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle if ($this->_redis->set($this->_key_prefix.$session_id, $session_data, $this->_config['expiration'])) { $this->_fingerprint = $fingerprint; + $this->_key_exists = TRUE; return $this->_success; } -- cgit v1.2.3-24-g4f1b From 0f19fd0550e95354e8512c28ff19799aa913c0f9 Mon Sep 17 00:00:00 2001 From: Jonty Sewell Date: Fri, 5 Feb 2016 10:38:43 +0000 Subject: Setting the flag to FALSE is unnecessary since it defaults to FALSE, therefore this block of code can be reduced to a single statement Signed-off-by: Jonty Sewell --- system/libraries/Session/drivers/Session_redis_driver.php | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index be5b37e81..c4483e439 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -198,16 +198,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle $session_data = $this->_redis->get($this->_key_prefix.$session_id); - if ($session_data === FALSE) - { - // The session ID does not exist in redis yet, so set a flag to create it - $this->_key_exists = FALSE; - $session_data = ''; - } - else - { - $this->_key_exists = TRUE; - } + is_string($session_data) && $this->_key_exists = TRUE; $this->_fingerprint = md5($session_data); return $session_data; -- cgit v1.2.3-24-g4f1b From c07ae0888377fb434ce70d0817746962722ea3b1 Mon Sep 17 00:00:00 2001 From: Jonty Sewell Date: Fri, 5 Feb 2016 12:34:01 +0000 Subject: Fix regression on PHP7 when regenerating the session (#4362) --- system/libraries/Session/drivers/Session_redis_driver.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index c4483e439..dc4328644 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -198,7 +198,9 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle $session_data = $this->_redis->get($this->_key_prefix.$session_id); - is_string($session_data) && $this->_key_exists = TRUE; + is_string($session_data) + ? $this->_key_exists = TRUE + : $session_data = ''; $this->_fingerprint = md5($session_data); return $session_data; -- cgit v1.2.3-24-g4f1b From 57fb63c388b8487e3f4d08f251b3fca1677688e5 Mon Sep 17 00:00:00 2001 From: Sherman K Date: Sat, 6 Feb 2016 14:16:38 +0800 Subject: Reverted formatting for non-variable --- user_guide_src/source/installation/troubleshooting.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/installation/troubleshooting.rst b/user_guide_src/source/installation/troubleshooting.rst index ffd65e0e9..cca290763 100644 --- a/user_guide_src/source/installation/troubleshooting.rst +++ b/user_guide_src/source/installation/troubleshooting.rst @@ -4,7 +4,7 @@ Troubleshooting If you find that no matter what you put in your URL only your default page is loading, it might be that your server does not support the -``REQUEST_URI`` variable needed to serve search-engine friendly URLs. As a +REQUEST_URI variable needed to serve search-engine friendly URLs. As a first step, open your *application/config/config.php* file and look for the URI Protocol information. It will recommend that you try a couple alternate settings. If it still doesn't work after you've tried this -- cgit v1.2.3-24-g4f1b From dd149da93a2064937e490977343d152207b73815 Mon Sep 17 00:00:00 2001 From: Sai Phaninder Reddy Jonnala Date: Mon, 8 Feb 2016 09:32:24 -0500 Subject: code styling changes as suggested by @narfbg --- system/libraries/Form_validation.php | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index c37a73418..da5ab4e04 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -637,7 +637,7 @@ class CI_Form_validation { // Set the message type $type = in_array('required', $rules) ? 'required' : 'isset'; - $line = $this->_get_raw_error_message($type, $row); + $line = $this->_get_error_message($type, $row["field"]); // Build the error message $message = $this->_build_error_msg($line, $this->_translate_fieldname($row['label'])); @@ -808,7 +808,7 @@ class CI_Form_validation { } else { - $line = $this->_get_raw_error_message($rule, $row); + $line = $this->_get_error_message($rule, $row["field"]); } // Is the parameter we are inserting into the error message the name @@ -839,40 +839,34 @@ class CI_Form_validation { /** * Get the error message for the rule * - * @param string the rule name. - * @param array + * @param string $rule The rule name + * @param string $field + * * @return string */ - private function _get_raw_error_message($rule_name, $row) + protected function _get_error_message($rule, $field) { - $error_message = ''; // check if a custom message is defined through validation config row. - if (isset($this->_field_data[$row['field']]['errors'][$rule_name])) + if (isset($this->_field_data[$field]['errors'][$rule])) { - $error_message = $this->_field_data[$row['field']]['errors'][$rule_name]; + return $this->_field_data[$field]['errors'][$rule]; } // check if a custom message has been set using the set_message() function - elseif (isset($this->_error_messages[$rule_name])) + elseif (isset($this->_error_messages[$rule])) { - $error_message = $this->_error_messages[$rule_name]; + return $this->_error_messages[$rule]; } - // check if we have an error message in lang file - elseif (FALSE !== ($line_tmp = $this->CI->lang->line('form_validation_'.$rule_name))) + elseif (FALSE !== ($tmp = $this->CI->lang->line('form_validation_' . $rule))) { - $error_message = $line_tmp; + return $tmp; } // DEPRECATED support for non-prefixed keys, lang file again - elseif (FALSE !== ($line_tmp = $this->CI->lang->line($rule_name, FALSE))) - { - $error_message = $line_tmp; - } - // error message not found - else + elseif (FALSE !== ($tmp = $this->CI->lang->line($rule, FALSE))) { - $error_message = $this->CI->lang->line('form_validation_error_message_not_set').'('.$rule_name.')'; + return $tmp; } - return $error_message; + return $this->CI->lang->line('form_validation_error_message_not_set'). '(' . $rule . ')'; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From e9aad049553f4f276093a1a212a2f03f20cb337d Mon Sep 17 00:00:00 2001 From: Sai Phaninder Reddy Jonnala Date: Mon, 8 Feb 2016 16:42:37 -0500 Subject: Doc block formatting change. --- system/core/Log.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/system/core/Log.php b/system/core/Log.php index f338a36ec..34ac64a27 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -232,14 +232,13 @@ class CI_Log { /** * Format the log line. * - * This is for extensibility of log formatting. - * If you want to change the log format, - * extend the CI_Log class and override this method. + * This is for extensibility of log formatting + * If you want to change the log format, extend the CI_Log class and override this method * * @param string $level The error level * @param string $date Formatted date string * @param string $msg The log message - * @return string formatted log line with a new line character '\n' at the end. + * @return string Formatted log line with a new line character '\n' at the end */ protected function _format_line($level, $date, $message) { -- cgit v1.2.3-24-g4f1b From 7b31ac381409989580dbcab99d56be4024d14cb9 Mon Sep 17 00:00:00 2001 From: Damien Grandi Date: Tue, 9 Feb 2016 13:49:04 +0100 Subject: Update DB_query_builder.php - phpdoc (some incorrect return type) Edit of some return type in phpdoc. This can also help to fix some autocompletion troubles in some IDE. --- system/database/DB_query_builder.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index be7582815..cf2927b23 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1138,7 +1138,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string $key * @param string $value * @param bool $escape - * @return object + * @return CI_DB_query_builder */ public function having($key, $value = NULL, $escape = NULL) { @@ -1155,7 +1155,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string $key * @param string $value * @param bool $escape - * @return object + * @return CI_DB_query_builder */ public function or_having($key, $value = NULL, $escape = NULL) { @@ -1339,7 +1339,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string the table * @param string the limit clause * @param string the offset clause - * @return object + * @return CI_DB_result */ public function get($table = '', $limit = NULL, $offset = NULL) { @@ -1422,7 +1422,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string $where * @param int $limit * @param int $offset - * @return object + * @return CI_DB_result */ public function get_where($table = '', $where = NULL, $limit = NULL, $offset = NULL) { @@ -1456,7 +1456,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string $table Table to insert into * @param array $set An associative array of insert values * @param bool $escape Whether to escape values and identifiers - * @return int Number of rows inserted or FALSE on failure + * @return int|bool Number of rows inserted or FALSE on failure */ public function insert_batch($table, $set = NULL, $escape = NULL) { @@ -1618,7 +1618,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string the table to insert data into * @param array an associative array of insert values * @param bool $escape Whether to escape values and identifiers - * @return object + * @return bool TRUE on success, FALSE on failure */ public function insert($table = '', $set = NULL, $escape = NULL) { @@ -1684,7 +1684,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * * @param string the table to replace data into * @param array an associative array of insert values - * @return object + * @return bool TRUE on success, FALSE on failure */ public function replace($table = '', $set = NULL) { @@ -1790,7 +1790,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param array $set An associative array of update values * @param mixed $where * @param int $limit - * @return object + * @return bool TRUE on success, FALSE on failure */ public function update($table = '', $set = NULL, $where = NULL, $limit = NULL) { @@ -1863,7 +1863,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string the table to retrieve the results from * @param array an associative array of update values * @param string the where key - * @return int number of rows affected or FALSE on failure + * @return int|bool Number of rows affected or FALSE on failure */ public function update_batch($table, $set = NULL, $index = NULL) { @@ -2010,7 +2010,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * Compiles a delete string and runs "DELETE FROM table" * * @param string the table to empty - * @return object + * @return bool TRUE on success, FALSE on failure */ public function empty_table($table = '') { @@ -2043,7 +2043,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * This function maps to "DELETE FROM table" * * @param string the table to truncate - * @return object + * @return bool TRUE on success, FALSE on failure */ public function truncate($table = '') { @@ -2114,7 +2114,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param mixed the where clause * @param mixed the limit clause * @param bool - * @return mixed + * @return CI_DB_query_builder|bool CI_DB_query_builder instance or FALSE on failure */ public function delete($table = '', $where = '', $limit = NULL, $reset_data = TRUE) { -- cgit v1.2.3-24-g4f1b From 8d6df5afde9b4c0eb29fcce233bc8e290378d557 Mon Sep 17 00:00:00 2001 From: Damien Grandi Date: Tue, 9 Feb 2016 18:09:46 +0100 Subject: Revert some previous changes --- system/database/DB_query_builder.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index cf2927b23..02be94d66 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1456,7 +1456,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string $table Table to insert into * @param array $set An associative array of insert values * @param bool $escape Whether to escape values and identifiers - * @return int|bool Number of rows inserted or FALSE on failure + * @return int Number of rows inserted or FALSE on failure */ public function insert_batch($table, $set = NULL, $escape = NULL) { @@ -1863,7 +1863,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string the table to retrieve the results from * @param array an associative array of update values * @param string the where key - * @return int|bool Number of rows affected or FALSE on failure + * @return int Number of rows affected or FALSE on failure */ public function update_batch($table, $set = NULL, $index = NULL) { @@ -2114,7 +2114,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param mixed the where clause * @param mixed the limit clause * @param bool - * @return CI_DB_query_builder|bool CI_DB_query_builder instance or FALSE on failure + * @return mixed */ public function delete($table = '', $where = '', $limit = NULL, $reset_data = TRUE) { -- cgit v1.2.3-24-g4f1b From a90c53e71d3dfac5372526363f8aaa0e1d30ad9e Mon Sep 17 00:00:00 2001 From: Damien Grandi Date: Tue, 9 Feb 2016 18:11:29 +0100 Subject: fix a typo edit --- system/database/DB_query_builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 02be94d66..00c5394e2 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1863,7 +1863,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param string the table to retrieve the results from * @param array an associative array of update values * @param string the where key - * @return int Number of rows affected or FALSE on failure + * @return int number of rows affected or FALSE on failure */ public function update_batch($table, $set = NULL, $index = NULL) { -- cgit v1.2.3-24-g4f1b From 37da3bd78530478b2bb2a23bc2144d50e1589313 Mon Sep 17 00:00:00 2001 From: Sai Phaninder Reddy Jonnala Date: Tue, 9 Feb 2016 16:09:57 -0500 Subject: Code formatting changes, again. I am bad at this. --- system/libraries/Form_validation.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index da5ab4e04..097d7aaba 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -637,7 +637,7 @@ class CI_Form_validation { // Set the message type $type = in_array('required', $rules) ? 'required' : 'isset'; - $line = $this->_get_error_message($type, $row["field"]); + $line = $this->_get_error_message($type, $row['field']); // Build the error message $message = $this->_build_error_msg($line, $this->_translate_fieldname($row['label'])); @@ -808,7 +808,7 @@ class CI_Form_validation { } else { - $line = $this->_get_error_message($rule, $row["field"]); + $line = $this->_get_error_message($rule, $row['field']); } // Is the parameter we are inserting into the error message the name @@ -840,8 +840,7 @@ class CI_Form_validation { * Get the error message for the rule * * @param string $rule The rule name - * @param string $field - * + * @param string $field The field name * @return string */ protected function _get_error_message($rule, $field) @@ -856,7 +855,7 @@ class CI_Form_validation { { return $this->_error_messages[$rule]; } - elseif (FALSE !== ($tmp = $this->CI->lang->line('form_validation_' . $rule))) + elseif (FALSE !== ($tmp = $this->CI->lang->line('form_validation_'.$rule))) { return $tmp; } @@ -866,7 +865,7 @@ class CI_Form_validation { return $tmp; } - return $this->CI->lang->line('form_validation_error_message_not_set'). '(' . $rule . ')'; + return $this->CI->lang->line('form_validation_error_message_not_set').'('.$rule.')'; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 376ae77cb420df1bae8313d76bf0b01d5c523c48 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 9 Feb 2016 23:37:59 +0200 Subject: [ci skip] Whitespace --- tests/codeigniter/core/Log_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index 01e90f5fc..d44cbac0f 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -17,7 +17,7 @@ class Log_test extends CI_TestCase { $enabled = new ReflectionProperty('CI_Log', '_enabled'); $enabled->setAccessible(TRUE); - $this->ci_set_config('log_path', '/root/'); + $this->ci_set_config('log_path', '/root/'); $this->ci_set_config('log_threshold', 'z'); $this->ci_set_config('log_date_format', 'd.m.Y'); $this->ci_set_config('log_file_extension', ''); -- cgit v1.2.3-24-g4f1b From 24adbfc5e163de9da72f59e36be6c0ac02bf10c2 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 9 Feb 2016 23:46:25 +0200 Subject: Rename back a variable changed by the last PR merge Because. --- system/libraries/Form_validation.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 24b2d1fc4..296ddb92a 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -855,14 +855,14 @@ class CI_Form_validation { { return $this->_error_messages[$rule]; } - elseif (FALSE !== ($tmp = $this->CI->lang->line('form_validation_'.$rule))) + elseif (FALSE !== ($line = $this->CI->lang->line('form_validation_'.$rule))) { - return $tmp; + return $line; } // DEPRECATED support for non-prefixed keys, lang file again - elseif (FALSE !== ($tmp = $this->CI->lang->line($rule, FALSE))) + elseif (FALSE !== ($line = $this->CI->lang->line($rule, FALSE))) { - return $tmp; + return $line; } return $this->CI->lang->line('form_validation_error_message_not_set').'('.$rule.')'; -- cgit v1.2.3-24-g4f1b From 46adb9fdbc9604065dc7990bc61707446aa5cc81 Mon Sep 17 00:00:00 2001 From: Kristian Matthews Date: Thu, 11 Feb 2016 21:23:30 +0000 Subject: Autoload Driver Object Names Updated documentation for `$autoload['drivers']`. Updated loader to autoload drivers with object names the same as autoloading libraries. Signed-off-by: Kristian Matthews --- application/config/autoload.php | 5 +++++ system/core/Loader.php | 16 ++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/application/config/autoload.php b/application/config/autoload.php index 4bc6bf0ad..aeacbdb66 100644 --- a/application/config/autoload.php +++ b/application/config/autoload.php @@ -72,6 +72,11 @@ $autoload['libraries'] = array(); | Prototype: | | $autoload['drivers'] = array('cache'); +| +| You can also supply an alternative library name to be assigned in +| the controller: +| +| $autoload['drivers'] = array('cache' => 'cch'); */ $autoload['drivers'] = array(); diff --git a/system/core/Loader.php b/system/core/Loader.php index 18e4c5287..dc61ed882 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -688,9 +688,16 @@ class CI_Loader { { if (is_array($library)) { - foreach ($library as $driver) + foreach ($library as $key => $value) { - $this->driver($driver); + if (is_int($key)) + { + $this->driver($value, $params); + } + else + { + $this->driver($key, $params, $value) + } } return $this; @@ -1304,10 +1311,7 @@ class CI_Loader { // Autoload drivers if (isset($autoload['drivers'])) { - foreach ($autoload['drivers'] as $item) - { - $this->driver($item); - } + $this->driver($autoload['drivers']); } // Load libraries -- cgit v1.2.3-24-g4f1b From 0d181ee540749c3a5dc147b1e280b7515d1b360e Mon Sep 17 00:00:00 2001 From: Kristian Matthews Date: Fri, 12 Feb 2016 12:13:04 +0000 Subject: Fixed syntax error. Signed-off-by: Kristian Matthews --- system/core/Loader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index dc61ed882..b9f5a52c7 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -696,7 +696,7 @@ class CI_Loader { } else { - $this->driver($key, $params, $value) + $this->driver($key, $params, $value); } } -- cgit v1.2.3-24-g4f1b From 1be0f05e3f70a369e9e3e5153d0f786c0d2dface Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Fri, 12 Feb 2016 22:31:15 +0100 Subject: return false when image isn't valid --- system/language/english/imglib_lang.php | 1 + system/libraries/Image_lib.php | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/system/language/english/imglib_lang.php b/system/language/english/imglib_lang.php index 7f23233b4..0f3ba0f59 100644 --- a/system/language/english/imglib_lang.php +++ b/system/language/english/imglib_lang.php @@ -51,6 +51,7 @@ $lang['imglib_libpath_invalid'] = 'The path to your image library is not correct $lang['imglib_image_process_failed'] = 'Image processing failed. Please verify that your server supports the chosen protocol and that the path to your image library is correct.'; $lang['imglib_rotation_angle_required'] = 'An angle of rotation is required to rotate the image.'; $lang['imglib_invalid_path'] = 'The path to the image is not correct.'; +$lang['imglib_invalid_image'] = 'The provided image is not valid.'; $lang['imglib_copy_failed'] = 'The image copy routine failed.'; $lang['imglib_missing_font'] = 'Unable to find a font to use.'; $lang['imglib_save_failed'] = 'Unable to save the image. Please make sure the image and file directory are writable.'; diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index f594b7125..e3e87f93f 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -1641,6 +1641,11 @@ class CI_Image_lib { } $vals = getimagesize($path); + if ($vals === FALSE) + { + $this->set_error('imglib_invalid_image'); + return FALSE; + } $types = array(1 => 'gif', 2 => 'jpeg', 3 => 'png'); $mime = (isset($types[$vals[2]])) ? 'image/'.$types[$vals[2]] : 'image/jpg'; -- cgit v1.2.3-24-g4f1b From a6d1c538f61ce12216eef7bb92716e24af0b86bf Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 15 Feb 2016 14:09:48 +0200 Subject: Don't apply url_suffix, permitted_uri_chars to CLI requests Close #4085 Close #4460 --- system/core/URI.php | 118 ++++++++++++--------- user_guide_src/source/changelog.rst | 4 + user_guide_src/source/installation/upgrade_310.rst | 15 ++- 3 files changed, 86 insertions(+), 51 deletions(-) diff --git a/system/core/URI.php b/system/core/URI.php index 544f6c85f..79cf640b9 100644 --- a/system/core/URI.php +++ b/system/core/URI.php @@ -100,41 +100,36 @@ class CI_URI { { $this->config =& load_class('Config', 'core'); + // If it's a CLI request, ignore the configuration + if (is_cli()) + { + $this->_set_uri_string($this->_parse_argv(), TRUE); + } // If query strings are enabled, we don't need to parse any segments. - // However, they don't make sense under CLI. - if (is_cli() OR $this->config->item('enable_query_strings') !== TRUE) + elseif ($this->config->item('enable_query_strings') !== TRUE) { $this->_permitted_uri_chars = $this->config->item('permitted_uri_chars'); + $protocol = $this->config->item('uri_protocol'); + empty($protocol) && $protocol = 'REQUEST_URI'; - // If it's a CLI request, ignore the configuration - if (is_cli()) + switch ($protocol) { - $uri = $this->_parse_argv(); + case 'AUTO': // For BC purposes only + case 'REQUEST_URI': + $uri = $this->_parse_request_uri(); + break; + case 'QUERY_STRING': + $uri = $this->_parse_query_string(); + break; + case 'PATH_INFO': + default: + $uri = isset($_SERVER[$protocol]) + ? $_SERVER[$protocol] + : $this->_parse_request_uri(); + break; } - else - { - $protocol = $this->config->item('uri_protocol'); - empty($protocol) && $protocol = 'REQUEST_URI'; - switch ($protocol) - { - case 'AUTO': // For BC purposes only - case 'REQUEST_URI': - $uri = $this->_parse_request_uri(); - break; - case 'QUERY_STRING': - $uri = $this->_parse_query_string(); - break; - case 'PATH_INFO': - default: - $uri = isset($_SERVER[$protocol]) - ? $_SERVER[$protocol] - : $this->_parse_request_uri(); - break; - } - } - - $this->_set_uri_string($uri); + $this->_set_uri_string($uri, FALSE); } log_message('info', 'URI Class Initialized'); @@ -145,43 +140,66 @@ class CI_URI { /** * Set URI String * - * @param string $str + * @param string $str Input URI string + * @param bool $is_cli Whether the input comes from CLI * @return void */ - protected function _set_uri_string($str) + protected function _set_uri_string($str, $is_cli = FALSE) { - // Filter out control characters and trim slashes - $this->uri_string = trim(remove_invisible_characters($str, FALSE), '/'); - - if ($this->uri_string !== '') + // CLI requests have a bit simpler logic + if ($is_cli) { - // Remove the URL suffix, if present - if (($suffix = (string) $this->config->item('url_suffix')) !== '') + if (($this->uri_string = trim($str, '/')) === '') { - $slen = strlen($suffix); - - if (substr($this->uri_string, -$slen) === $suffix) - { - $this->uri_string = substr($this->uri_string, 0, -$slen); - } + return; } $this->segments[0] = NULL; - // Populate the segments array - foreach (explode('/', trim($this->uri_string, '/')) as $val) + foreach (explode('/', $this->uri_string) as $segment) { - $val = trim($val); - // Filter segments for security - $this->filter_uri($val); - - if ($val !== '') + if (($segment = trim($segment)) !== '') { - $this->segments[] = $val; + $this->segments[] = $segment; } } unset($this->segments[0]); + return; + } + + // Filter out control characters and trim slashes + $this->uri_string = trim(remove_invisible_characters($str, FALSE), '/'); + + if ($this->uri_string === '') + { + return; } + + // Remove the URL suffix, if present + if (($suffix = (string) $this->config->item('url_suffix')) !== '') + { + $slen = strlen($suffix); + + if (substr($this->uri_string, -$slen) === $suffix) + { + $this->uri_string = substr($this->uri_string, 0, -$slen); + } + } + + $this->segments[0] = NULL; + foreach (explode('/', trim($this->uri_string, '/')) as $segment) + { + $segment = trim($segment); + // Filter segments for security + $this->filter_uri($segment); + + if ($segment !== '') + { + $this->segments[] = $segment; + } + } + + unset($this->segments[0]); } // -------------------------------------------------------------------- diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index d490f1504..8e1789fb9 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -7,6 +7,10 @@ Version 3.1.0 Release Date: Not Released +- Core + + - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. + - Libraries - Added UNIX socket connection support to :doc:`Session Library ` 'redis' driver. diff --git a/user_guide_src/source/installation/upgrade_310.rst b/user_guide_src/source/installation/upgrade_310.rst index b86bb1da3..a6e6bae7e 100644 --- a/user_guide_src/source/installation/upgrade_310.rst +++ b/user_guide_src/source/installation/upgrade_310.rst @@ -58,7 +58,20 @@ That doesn't make sense and that's the reason why most database drivers don't support it at all. Thus, ``db_set_charset()`` is no longer necessary and is removed. -Step 3: Check usage of doctype() HTML helper +Step 3: Check logic related to URI parsing of CLI requests +========================================================== + +When running a CodeIgniter application from the CLI, the +:doc:`URI Library ` will now ignore the +``$config['url_suffix']`` and ``$config['permitted_uri_chars']`` +configuration settings. + +These two options don't make sense under the command line (which is why +this change was made) and therefore you shouldn't be affected by this, but +if you've relied on them for some reason, you'd probably have to make some +changes to your code. + +Step 4: Check usage of doctype() HTML helper ============================================ The :doc:`HTML Helper <../helpers/html_helper>` function -- cgit v1.2.3-24-g4f1b From 2426635afc58f7bbf8355e80d4228076321a669d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 15 Feb 2016 14:21:13 +0200 Subject: [ci skip] Add notes in config about CLI for url_suffix, permitted_uri_chars --- application/config/config.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/application/config/config.php b/application/config/config.php index 23ef5a528..0a7b8202b 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -63,6 +63,8 @@ $config['uri_protocol'] = 'REQUEST_URI'; | For more information please see the user guide: | | https://codeigniter.com/user_guide/general/urls.html +| +| Note: This option is ignored for CLI requests. */ $config['url_suffix'] = ''; @@ -157,6 +159,8 @@ $config['composer_autoload'] = FALSE; | | DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!! | +| Note: This option is ignored for CLI requests. +| */ $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; -- cgit v1.2.3-24-g4f1b From 2a34081c5e1b8a86d2d3f87c3da69b9d580d6027 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 15 Feb 2016 14:33:34 +0200 Subject: Pass CI_Config as a parameter to CI_URI constructor --- system/core/CodeIgniter.php | 2 +- system/core/URI.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 14f62edaa..84f224123 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -298,7 +298,7 @@ if ( ! is_php('5.4')) * Instantiate the URI class * ------------------------------------------------------ */ - $URI =& load_class('URI', 'core'); + $URI =& load_class('URI', 'core', $CFG); /* * ------------------------------------------------------ diff --git a/system/core/URI.php b/system/core/URI.php index 79cf640b9..7c93e36b7 100644 --- a/system/core/URI.php +++ b/system/core/URI.php @@ -96,9 +96,9 @@ class CI_URI { * * @return void */ - public function __construct() + public function __construct(CI_Config &$config) { - $this->config =& load_class('Config', 'core'); + $this->config = $config; // If it's a CLI request, ignore the configuration if (is_cli()) -- cgit v1.2.3-24-g4f1b From 02fde67322db74df42ef8dc953cc2be3f9fc4ccd Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 15 Feb 2016 14:35:37 +0200 Subject: Remove reference usage from last commit ... it's useless --- system/core/URI.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/URI.php b/system/core/URI.php index 7c93e36b7..7f07bfe1e 100644 --- a/system/core/URI.php +++ b/system/core/URI.php @@ -96,7 +96,7 @@ class CI_URI { * * @return void */ - public function __construct(CI_Config &$config) + public function __construct(CI_Config $config) { $this->config = $config; -- cgit v1.2.3-24-g4f1b From a7bd30c75e844f133b6aa8aae7c64e6cf9ce143a Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 15 Feb 2016 14:39:59 +0200 Subject: [ci skip] Polish changes from PR #4453 --- application/config/autoload.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/application/config/autoload.php b/application/config/autoload.php index aeacbdb66..7cdc9013c 100644 --- a/application/config/autoload.php +++ b/application/config/autoload.php @@ -73,10 +73,11 @@ $autoload['libraries'] = array(); | | $autoload['drivers'] = array('cache'); | -| You can also supply an alternative library name to be assigned in +| You can also supply an alternative property name to be assigned in | the controller: | -| $autoload['drivers'] = array('cache' => 'cch'); +| $autoload['drivers'] = array('cache' => 'cch'); +| */ $autoload['drivers'] = array(); -- cgit v1.2.3-24-g4f1b From 6f1342986a2954daa331b0a849e8a6817e5e1920 Mon Sep 17 00:00:00 2001 From: vibbow Date: Sat, 20 Feb 2016 17:30:48 +0000 Subject: Update CodeIgniter.php Declare get_instance() return type --- system/core/CodeIgniter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 84f224123..3d8ae7e87 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -359,7 +359,7 @@ if ( ! is_php('5.4')) * * Returns current CI instance object * - * @return object + * @return CI_Controller object */ function &get_instance() { -- cgit v1.2.3-24-g4f1b From 7230d5dea1e2fa6b242df2b840ad2dc54f0306b0 Mon Sep 17 00:00:00 2001 From: versalle88 Date: Tue, 23 Feb 2016 11:44:35 -0500 Subject: Changed calls to class_exists to ignore __autoload() to match other calls --- system/core/Loader.php | 2 +- system/libraries/Session/Session.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 80de804ea..62781a7bf 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -321,7 +321,7 @@ class CI_Loader { } $model = ucfirst($model); - if ( ! class_exists($model)) + if ( ! class_exists($model, FALSE)) { foreach ($this->_ci_model_paths as $mod_path) { diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index b93c00c15..c6413c102 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -231,7 +231,7 @@ class CI_Session { } } - if ( ! class_exists($prefix.$class) && file_exists($file_path = APPPATH.'libraries/Session/drivers/'.$prefix.$class.'.php')) + if ( ! class_exists($prefix.$class, FAlSE) && file_exists($file_path = APPPATH.'libraries/Session/drivers/'.$prefix.$class.'.php')) { require_once($file_path); if (class_exists($prefix.$class, FALSE)) -- cgit v1.2.3-24-g4f1b From 17c52eaef97a58545004b49141689ef612c9456c Mon Sep 17 00:00:00 2001 From: versalle88 Date: Tue, 23 Feb 2016 11:46:08 -0500 Subject: Changed calls to class_exists to ignore __autoload() to match other calls --- system/libraries/Session/Session.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index c6413c102..77c56ae70 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -231,7 +231,7 @@ class CI_Session { } } - if ( ! class_exists($prefix.$class, FAlSE) && file_exists($file_path = APPPATH.'libraries/Session/drivers/'.$prefix.$class.'.php')) + if ( ! class_exists($prefix.$class, FALSE) && file_exists($file_path = APPPATH.'libraries/Session/drivers/'.$prefix.$class.'.php')) { require_once($file_path); if (class_exists($prefix.$class, FALSE)) -- cgit v1.2.3-24-g4f1b From 1e4e75421ec0fd00b75de1b34ca60d84b300e050 Mon Sep 17 00:00:00 2001 From: versalle88 Date: Tue, 23 Feb 2016 11:47:45 -0500 Subject: Removed --- system/libraries/Session/Session.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index 77c56ae70..b93c00c15 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -231,7 +231,7 @@ class CI_Session { } } - if ( ! class_exists($prefix.$class, FALSE) && file_exists($file_path = APPPATH.'libraries/Session/drivers/'.$prefix.$class.'.php')) + if ( ! class_exists($prefix.$class) && file_exists($file_path = APPPATH.'libraries/Session/drivers/'.$prefix.$class.'.php')) { require_once($file_path); if (class_exists($prefix.$class, FALSE)) -- cgit v1.2.3-24-g4f1b From 82d5c231d55aa290a2739d01055a9b8e6c8243a6 Mon Sep 17 00:00:00 2001 From: versalle88 Date: Tue, 23 Feb 2016 11:48:04 -0500 Subject: Fixed typo --- system/libraries/Session/Session.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index b93c00c15..77c56ae70 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -231,7 +231,7 @@ class CI_Session { } } - if ( ! class_exists($prefix.$class) && file_exists($file_path = APPPATH.'libraries/Session/drivers/'.$prefix.$class.'.php')) + if ( ! class_exists($prefix.$class, FALSE) && file_exists($file_path = APPPATH.'libraries/Session/drivers/'.$prefix.$class.'.php')) { require_once($file_path); if (class_exists($prefix.$class, FALSE)) -- cgit v1.2.3-24-g4f1b From fa34429e85b4bf452ba595072124a884ca3e8b89 Mon Sep 17 00:00:00 2001 From: sprakash4 Date: Fri, 26 Feb 2016 16:02:07 -0800 Subject: Downgraded log level for some pesky messages to INFO --- system/core/Config.php | 2 +- system/core/Input.php | 2 +- system/core/Output.php | 4 ++-- system/core/Utf8.php | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/system/core/Config.php b/system/core/Config.php index ca6fb3793..5c6ba2a4d 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -169,7 +169,7 @@ class CI_Config { $this->is_loaded[] = $file_path; $config = NULL; $loaded = TRUE; - log_message('debug', 'Config file loaded: '.$file_path); + log_message('info', 'Config file loaded: '.$file_path); } } diff --git a/system/core/Input.php b/system/core/Input.php index a7c9ecd0d..59b39620c 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -653,7 +653,7 @@ class CI_Input { // Sanitize PHP_SELF $_SERVER['PHP_SELF'] = strip_tags($_SERVER['PHP_SELF']); - log_message('debug', 'Global POST, GET and COOKIE data sanitized'); + log_message('info', 'Global POST, GET and COOKIE data sanitized'); } // -------------------------------------------------------------------- diff --git a/system/core/Output.php b/system/core/Output.php index ec9c21b91..6e0b4e724 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -492,7 +492,7 @@ class CI_Output { echo $output; log_message('info', 'Final output sent to browser'); - log_message('debug', 'Total execution time: '.$elapsed); + log_message('info', 'Total execution time: '.$elapsed); return; } @@ -529,7 +529,7 @@ class CI_Output { } log_message('info', 'Final output sent to browser'); - log_message('debug', 'Total execution time: '.$elapsed); + log_message('info', 'Total execution time: '.$elapsed); } // -------------------------------------------------------------------- diff --git a/system/core/Utf8.php b/system/core/Utf8.php index f2f42e6ca..93c611675 100644 --- a/system/core/Utf8.php +++ b/system/core/Utf8.php @@ -66,12 +66,12 @@ class CI_Utf8 { ) { define('UTF8_ENABLED', TRUE); - log_message('debug', 'UTF-8 Support Enabled'); + log_message('info', 'UTF-8 Support Enabled'); } else { define('UTF8_ENABLED', FALSE); - log_message('debug', 'UTF-8 Support Disabled'); + log_message('info', 'UTF-8 Support Disabled'); } log_message('info', 'Utf8 Class Initialized'); -- cgit v1.2.3-24-g4f1b From b89f5d3ddfc897f0afc4f15a0993f8f1b2b56b88 Mon Sep 17 00:00:00 2001 From: roastduck Date: Sun, 28 Feb 2016 10:18:19 +0800 Subject: clean current lock key in redis session driver set $this->_lock_key to NULL after close Signed-off-by: roastduck --- system/libraries/Session/drivers/Session_redis_driver.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index dc4328644..5081bd5d4 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -278,6 +278,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle if ($this->_redis->ping() === '+PONG') { isset($this->_lock_key) && $this->_redis->delete($this->_lock_key); + $this->_lock_key = NULL; if ($this->_redis->close() === $this->_failure) { return $this->_failure; -- cgit v1.2.3-24-g4f1b From 9d1c16a8ccbfe555e5646b4a08c47d26dc36a33c Mon Sep 17 00:00:00 2001 From: Claudio Galdiolo Date: Mon, 29 Feb 2016 09:36:20 -0500 Subject: [ci skip] fix comment --- system/database/DB_query_builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index d6f35e0df..eb9620f16 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -2342,7 +2342,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * * Escapes identifiers in WHERE and HAVING statements at execution time. * - * Required so that aliases are tracked properly, regardless of wether + * Required so that aliases are tracked properly, regardless of whether * where(), or_where(), having(), or_having are called prior to from(), * join() and dbprefix is added only if needed. * -- cgit v1.2.3-24-g4f1b From 7f0f73ba81ad712f2553e2f7ef5d0a50f16e119e Mon Sep 17 00:00:00 2001 From: __RD Date: Mon, 29 Feb 2016 22:56:29 +0800 Subject: delete lock directly -> call _release_lock() --- system/libraries/Session/drivers/Session_redis_driver.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 5081bd5d4..3b648d183 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -277,8 +277,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle try { if ($this->_redis->ping() === '+PONG') { - isset($this->_lock_key) && $this->_redis->delete($this->_lock_key); - $this->_lock_key = NULL; + $this->_release_lock($this->_lock_key); if ($this->_redis->close() === $this->_failure) { return $this->_failure; -- cgit v1.2.3-24-g4f1b From 9a15344bc610b2c6a3a1a0a0b73db2fe0eba987a Mon Sep 17 00:00:00 2001 From: __RD Date: Mon, 29 Feb 2016 22:58:23 +0800 Subject: fix typo --- system/libraries/Session/drivers/Session_redis_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 3b648d183..c0c20a7ca 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -277,7 +277,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle try { if ($this->_redis->ping() === '+PONG') { - $this->_release_lock($this->_lock_key); + $this->_release_lock(); if ($this->_redis->close() === $this->_failure) { return $this->_failure; -- cgit v1.2.3-24-g4f1b From b03380c8d20f76bbc6b49c7d9d31198bb769f422 Mon Sep 17 00:00:00 2001 From: Adi Prasetyo Date: Thu, 3 Mar 2016 03:53:26 +0700 Subject: Doc , update image_lib.rst > at *the* same level *as* --- user_guide_src/source/libraries/image_lib.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/image_lib.rst b/user_guide_src/source/libraries/image_lib.rst index d5c24c1b0..b25d2512f 100644 --- a/user_guide_src/source/libraries/image_lib.rst +++ b/user_guide_src/source/libraries/image_lib.rst @@ -63,7 +63,8 @@ called *mypic.jpg* located in the source_image folder, then create a thumbnail that is 75 X 50 pixels using the GD2 image_library. Since the maintain_ratio option is enabled, the thumb will be as close to the target width and height as possible while preserving the original aspect -ratio. The thumbnail will be called *mypic_thumb.jpg* +ratio. The thumbnail will be called *mypic_thumb.jpg* and located at +the same level as *source_image*. .. note:: In order for the image class to be allowed to do any processing, the folder containing the image files must have write -- cgit v1.2.3-24-g4f1b From 1d7443acb57fa473295ecf4856a456d2c4fbe59f Mon Sep 17 00:00:00 2001 From: mixinix Date: Mon, 7 Mar 2016 05:23:38 +0700 Subject: Update calendar.rst --- user_guide_src/source/libraries/calendar.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/user_guide_src/source/libraries/calendar.rst b/user_guide_src/source/libraries/calendar.rst index ea0f4d108..8fdacf1d7 100644 --- a/user_guide_src/source/libraries/calendar.rst +++ b/user_guide_src/source/libraries/calendar.rst @@ -60,10 +60,10 @@ parameter of the calendar generating function. Consider this example:: $this->load->library('calendar'); $data = array( - 3 => 'http://example.com/news/article/2006/03/', - 7 => 'http://example.com/news/article/2006/07/', - 13 => 'http://example.com/news/article/2006/13/', - 26 => 'http://example.com/news/article/2006/26/' + 3 => 'http://example.com/news/article/2006/06/03/', + 7 => 'http://example.com/news/article/2006/06/07/', + 13 => 'http://example.com/news/article/2006/06/13/', + 26 => 'http://example.com/news/article/2006/06/26/' ); echo $this->calendar->generate(2006, 6, $data); -- cgit v1.2.3-24-g4f1b From a479ae85f21caef9d109b2e75229853e0b660cce Mon Sep 17 00:00:00 2001 From: vibbow Date: Mon, 7 Mar 2016 15:38:36 +0000 Subject: Update CodeIgniter.php --- system/core/CodeIgniter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 3d8ae7e87..d9ac7efe3 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -359,7 +359,7 @@ if ( ! is_php('5.4')) * * Returns current CI instance object * - * @return CI_Controller object + * @return CI_Controller */ function &get_instance() { -- cgit v1.2.3-24-g4f1b From fb78f8576816133973ee9586c523a72cdcaeac35 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 10:49:41 +0500 Subject: Added variables to Docblocks where they are skipped --- system/libraries/Cache/drivers/Cache_redis.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 81b49e2fc..a9a9e09cb 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -138,7 +138,7 @@ class CI_Cache_redis extends CI_Driver /** * Get cache * - * @param string Cache ID + * @param string $key Cache ID * @return mixed */ public function get($key) @@ -190,7 +190,7 @@ class CI_Cache_redis extends CI_Driver /** * Delete from cache * - * @param string Cache key + * @param string $key Cache key * @return bool */ public function delete($key) @@ -255,7 +255,7 @@ class CI_Cache_redis extends CI_Driver /** * Get cache driver info * - * @param string Not supported in Redis. + * @param string $type Not supported in Redis. * Only included in order to offer a * consistent cache API. * @return array @@ -271,7 +271,7 @@ class CI_Cache_redis extends CI_Driver /** * Get cache metadata * - * @param string Cache key + * @param string $key Cache key * @return array */ public function get_metadata($key) -- cgit v1.2.3-24-g4f1b From bbfa3ffdb8096e9d20b800ebbc8de672caf98d9e Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 11:12:58 +0500 Subject: Added the destructor (disconnect from memcache(d)) --- system/libraries/Cache/drivers/Cache_memcached.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index c44958b97..91ad4d243 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -286,4 +286,25 @@ class CI_Cache_memcached extends CI_Driver { { return (extension_loaded('memcached') OR extension_loaded('memcache')); } + + // ------------------------------------------------------------------------ + + /** + * Class destructor + * + * Closes the connection to Memcache(d) if present. + * + * @return void + */ + public function __destruct() + { + if ($this->_memcached instanceof Memcache) + { + $this->_memcached->close(); + } + elseif ($this->_memcached instanceof Memcached) + { + $this->_memcached->quit(); + } + } } -- cgit v1.2.3-24-g4f1b From ae340cc7fca696b9d71588f724c6f35924d24dc4 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 11:19:25 +0500 Subject: Added variables to Docblocks (memcached) --- system/libraries/Cache/drivers/Cache_memcached.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index c44958b97..16684fbb1 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -186,7 +186,7 @@ class CI_Cache_memcached extends CI_Driver { /** * Delete from Cache * - * @param mixed key to be deleted. + * @param mixed $id key to be deleted. * @return bool true on success, false on failure */ public function delete($id) @@ -251,7 +251,7 @@ class CI_Cache_memcached extends CI_Driver { /** * Get Cache Metadata * - * @param mixed key to get cache metadata on + * @param mixed $id key to get cache metadata on * @return mixed FALSE on failure, array on success. */ public function get_metadata($id) -- cgit v1.2.3-24-g4f1b From 4933c16efd7bad7353877910b7d43d0b5a87735e Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 11:26:28 +0500 Subject: Renamed $this->_memcache_conf to $this->_config --- system/libraries/Cache/drivers/Cache_memcached.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index c44958b97..09dc7b0de 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -60,7 +60,7 @@ class CI_Cache_memcached extends CI_Driver { * * @var array */ - protected $_memcache_conf = array( + protected $_config = array( 'default' => array( 'host' => '127.0.0.1', 'port' => 11211, @@ -81,17 +81,17 @@ class CI_Cache_memcached extends CI_Driver { { // Try to load memcached server info from the config file. $CI =& get_instance(); - $defaults = $this->_memcache_conf['default']; + $defaults = $this->_config['default']; if ($CI->config->load('memcached', TRUE, TRUE)) { if (is_array($CI->config->config['memcached'])) { - $this->_memcache_conf = array(); + $this->_config = array(); foreach ($CI->config->config['memcached'] as $name => $conf) { - $this->_memcache_conf[$name] = $conf; + $this->_config[$name] = $conf; } } } @@ -109,7 +109,7 @@ class CI_Cache_memcached extends CI_Driver { log_message('error', 'Cache: Failed to create Memcache(d) object; extension not loaded?'); } - foreach ($this->_memcache_conf as $cache_server) + foreach ($this->_config as $cache_server) { isset($cache_server['hostname']) OR $cache_server['hostname'] = $defaults['host']; isset($cache_server['port']) OR $cache_server['port'] = $defaults['port']; -- cgit v1.2.3-24-g4f1b From 2f10aebf8ca7d650ecf7614e8d5e3455c88f96d9 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 11:28:57 +0500 Subject: Reduction of constructions --- system/libraries/Cache/drivers/Cache_memcached.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 09dc7b0de..7a3267a1e 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -87,12 +87,7 @@ class CI_Cache_memcached extends CI_Driver { { if (is_array($CI->config->config['memcached'])) { - $this->_config = array(); - - foreach ($CI->config->config['memcached'] as $name => $conf) - { - $this->_config[$name] = $conf; - } + $this->_config = $CI->config->config['memcached']; } } -- cgit v1.2.3-24-g4f1b From d03832c6ee27ac1dcf3c5bff3831fcfdd35765f6 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 11:31:16 +0500 Subject: Combined two "if" conditions to one --- system/libraries/Cache/drivers/Cache_memcached.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 7a3267a1e..02b2d438e 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -83,12 +83,9 @@ class CI_Cache_memcached extends CI_Driver { $CI =& get_instance(); $defaults = $this->_config['default']; - if ($CI->config->load('memcached', TRUE, TRUE)) + if ($CI->config->load('memcached', TRUE, TRUE) && is_array($CI->config->config['memcached'])) { - if (is_array($CI->config->config['memcached'])) - { - $this->_config = $CI->config->config['memcached']; - } + $this->_config = $CI->config->config['memcached']; } if (class_exists('Memcached', FALSE)) -- cgit v1.2.3-24-g4f1b From db91d5b1b3ed2cfd8e1ad0ba59906ad527ef8786 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 11:37:27 +0500 Subject: The "get_class($A) == B" replaced by "$A instanceof B" --- system/libraries/Cache/drivers/Cache_memcached.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index c44958b97..ae90b9858 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -115,7 +115,7 @@ class CI_Cache_memcached extends CI_Driver { isset($cache_server['port']) OR $cache_server['port'] = $defaults['port']; isset($cache_server['weight']) OR $cache_server['weight'] = $defaults['weight']; - if (get_class($this->_memcached) === 'Memcache') + if ($this->_memcached instanceof Memcache) { // Third parameter is persistance and defaults to TRUE. $this->_memcached->addServer( @@ -169,11 +169,11 @@ class CI_Cache_memcached extends CI_Driver { $data = array($data, time(), $ttl); } - if (get_class($this->_memcached) === 'Memcached') + if ($this->_memcached instanceof Memcached) { return $this->_memcached->set($id, $data, $ttl); } - elseif (get_class($this->_memcached) === 'Memcache') + elseif ($this->_memcached instanceof Memcache) { return $this->_memcached->set($id, $data, 0, $ttl); } -- cgit v1.2.3-24-g4f1b From 35d9f36538be2acc86beb060fb54d93f268cf307 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 11:38:47 +0500 Subject: Added a second check "instanceof" --- system/libraries/Cache/drivers/Cache_memcached.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index ae90b9858..c22a36f4c 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -125,7 +125,7 @@ class CI_Cache_memcached extends CI_Driver { $cache_server['weight'] ); } - else + elseif ($this->_memcached instanceof Memcached) { $this->_memcached->addServer( $cache_server['hostname'], -- cgit v1.2.3-24-g4f1b From e5102e1fa8adaa7317f8d3da773f8b77d6f7a2c1 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 12:32:49 +0500 Subject: Changed the methods of working with serializable values --- system/libraries/Cache/drivers/Cache_redis.php | 47 ++++++++++---------------- 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 81b49e2fc..c50da1303 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -143,14 +143,21 @@ class CI_Cache_redis extends CI_Driver */ public function get($key) { - $value = $this->_redis->get($key); + $value = $this->_redis->hMGet($key, array('serialized', 'data')); - if ($value !== FALSE && isset($this->_serialized[$key])) + if ( ! is_array($value)) { - return unserialize($value); + return FALSE; } - return $value; + if ( ! empty($value['serialized'])) + { + return unserialize($value['data']); + } + else + { + return $value['data']; + } } // ------------------------------------------------------------------------ @@ -168,21 +175,12 @@ class CI_Cache_redis extends CI_Driver { if (is_array($data) OR is_object($data)) { - if ( ! $this->_redis->sIsMember('_ci_redis_serialized', $id) && ! $this->_redis->sAdd('_ci_redis_serialized', $id)) - { - return FALSE; - } - - isset($this->_serialized[$id]) OR $this->_serialized[$id] = TRUE; - $data = serialize($data); + return $this->_redis->hMSet($id, array('serialized' => TRUE, 'data' => serialize($data))); } - elseif (isset($this->_serialized[$id])) + else { - $this->_serialized[$id] = NULL; - $this->_redis->sRemove('_ci_redis_serialized', $id); + return $this->_redis->hMSet($id, array('serialized' => FALSE, 'data' => $data)); } - - return $this->_redis->set($id, $data, $ttl); } // ------------------------------------------------------------------------ @@ -195,18 +193,7 @@ class CI_Cache_redis extends CI_Driver */ public function delete($key) { - if ($this->_redis->delete($key) !== 1) - { - return FALSE; - } - - if (isset($this->_serialized[$key])) - { - $this->_serialized[$key] = NULL; - $this->_redis->sRemove('_ci_redis_serialized', $key); - } - - return TRUE; + return ($this->_redis->delete($key) === 1); } // ------------------------------------------------------------------------ @@ -220,7 +207,7 @@ class CI_Cache_redis extends CI_Driver */ public function increment($id, $offset = 1) { - return $this->_redis->incr($id, $offset); + return $this->_redis->hIncrBy($id, 'data', $offset); } // ------------------------------------------------------------------------ @@ -234,7 +221,7 @@ class CI_Cache_redis extends CI_Driver */ public function decrement($id, $offset = 1) { - return $this->_redis->decr($id, $offset); + return $this->_redis->hIncrBy($id, 'data', -$offset); } // ------------------------------------------------------------------------ -- cgit v1.2.3-24-g4f1b From 25da4ec2e02d7ec258f11916d1b9b40c10b97ace Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 12:40:07 +0500 Subject: Fixed the index existence error --- system/libraries/Cache/drivers/Cache_redis.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index c50da1303..a302609a2 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -145,12 +145,12 @@ class CI_Cache_redis extends CI_Driver { $value = $this->_redis->hMGet($key, array('serialized', 'data')); - if ( ! is_array($value)) + if ( ! is_array($value) OR ! isset($value['serialized'], $value['data'])) { return FALSE; } - if ( ! empty($value['serialized'])) + if ($value['serialized']) { return unserialize($value['data']); } -- cgit v1.2.3-24-g4f1b From 12c3d1474e43cdd6e76245e89f11440793a5d8f0 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 12:51:46 +0500 Subject: Setup the data defining for stored data --- system/libraries/Cache/drivers/Cache_redis.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index a302609a2..c334afb0d 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -143,19 +143,20 @@ class CI_Cache_redis extends CI_Driver */ public function get($key) { - $value = $this->_redis->hMGet($key, array('serialized', 'data')); + $value = $this->_redis->hMGet($key, array('type', 'data')); - if ( ! is_array($value) OR ! isset($value['serialized'], $value['data'])) + if ( ! is_array($value) OR ! isset($value['type'], $value['data'])) { return FALSE; } - if ($value['serialized']) + if ($value['type'] === 'array' OR $value['type'] === 'object') { return unserialize($value['data']); } else { + settype($value['data'], $value['type']); return $value['data']; } } @@ -175,11 +176,11 @@ class CI_Cache_redis extends CI_Driver { if (is_array($data) OR is_object($data)) { - return $this->_redis->hMSet($id, array('serialized' => TRUE, 'data' => serialize($data))); + return $this->_redis->hMSet($id, array('type' => gettype($data), 'data' => serialize($data))); } else { - return $this->_redis->hMSet($id, array('serialized' => FALSE, 'data' => $data)); + return $this->_redis->hMSet($id, array('type' => gettype($data), 'data' => $data)); } } -- cgit v1.2.3-24-g4f1b From 5ea30f85f964b6b207a27c2700c65df89736d0e9 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 15:21:29 +0500 Subject: Fixed an indent of description --- system/libraries/Cache/drivers/Cache_redis.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index a9a9e09cb..9d48da8f9 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -256,8 +256,8 @@ class CI_Cache_redis extends CI_Driver * Get cache driver info * * @param string $type Not supported in Redis. - * Only included in order to offer a - * consistent cache API. + * Only included in order to offer a + * consistent cache API. * @return array * @see Redis::info() */ -- cgit v1.2.3-24-g4f1b From a604554c592c090334b3a57d41e498d6f03fd1e4 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 15:27:58 +0500 Subject: Removed an unnecessary is_array() check. --- system/libraries/Cache/drivers/Cache_memcached.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 02b2d438e..2d6236a6f 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -83,7 +83,7 @@ class CI_Cache_memcached extends CI_Driver { $CI =& get_instance(); $defaults = $this->_config['default']; - if ($CI->config->load('memcached', TRUE, TRUE) && is_array($CI->config->config['memcached'])) + if ($CI->config->load('memcached', TRUE, TRUE)) { $this->_config = $CI->config->config['memcached']; } -- cgit v1.2.3-24-g4f1b From b13604287adcd1b70a624c83be67b8e2f35835c5 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 11:59:54 +0500 Subject: The "$config" variable is moved to "if" condition --- system/libraries/Cache/drivers/Cache_redis.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index a58aaef4e..27107b332 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -102,10 +102,13 @@ class CI_Cache_redis extends CI_Driver if ($CI->config->load('redis', TRUE, TRUE)) { - $config = $CI->config->item('redis'); + $config = array_merge(self::$_default_config, $CI->config->item('redis')); + } + else + { + $config = self::$_default_config; } - $config = array_merge(self::$_default_config, $config); $this->_redis = new Redis(); try -- cgit v1.2.3-24-g4f1b From 12798c426d6232eb4ad2930af4d58d18692d077f Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 15:55:51 +0500 Subject: Removed an unnecessary array() initialization --- system/libraries/Cache/drivers/Cache_redis.php | 1 - 1 file changed, 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 27107b332..d4d95ebb1 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -97,7 +97,6 @@ class CI_Cache_redis extends CI_Driver return; } - $config = array(); $CI =& get_instance(); if ($CI->config->load('redis', TRUE, TRUE)) -- cgit v1.2.3-24-g4f1b From 0c70b8ab83998c3771bbda3a9717da574f421357 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 16:15:30 +0500 Subject: Fixed a condition in the get method --- system/libraries/Cache/drivers/Cache_redis.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index c334afb0d..a50eb22ac 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -145,7 +145,7 @@ class CI_Cache_redis extends CI_Driver { $value = $this->_redis->hMGet($key, array('type', 'data')); - if ( ! is_array($value) OR ! isset($value['type'], $value['data'])) + if ($value === FALSE OR $value['type'] === FALSE) { return FALSE; } -- cgit v1.2.3-24-g4f1b From f26a876acf4cca26329dfbe3d0eee1aa0c05ace0 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 16:25:56 +0500 Subject: Removed an extra space char --- system/libraries/Cache/drivers/Cache_redis.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index a50eb22ac..e29551089 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -145,7 +145,7 @@ class CI_Cache_redis extends CI_Driver { $value = $this->_redis->hMGet($key, array('type', 'data')); - if ($value === FALSE OR $value['type'] === FALSE) + if ($value === FALSE OR $value['type'] === FALSE) { return FALSE; } -- cgit v1.2.3-24-g4f1b From 0abb9777fd45cf87dc3e0e4780ae2292b2822407 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 16:32:13 +0500 Subject: Changed a condition in the get method to empty() --- system/libraries/Cache/drivers/Cache_redis.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index e29551089..88f1815a7 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -145,7 +145,7 @@ class CI_Cache_redis extends CI_Driver { $value = $this->_redis->hMGet($key, array('type', 'data')); - if ($value === FALSE OR $value['type'] === FALSE) + if (empty($value['type'])) { return FALSE; } -- cgit v1.2.3-24-g4f1b From fb722b6eacc574975de223a05e619f9c90aa8d99 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 17:32:12 +0500 Subject: Added the expiration to save() method --- system/libraries/Cache/drivers/Cache_redis.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 6da86728c..fa318403e 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -184,12 +184,19 @@ class CI_Cache_redis extends CI_Driver { if (is_array($data) OR is_object($data)) { - return $this->_redis->hMSet($id, array('type' => gettype($data), 'data' => serialize($data))); + $success = $this->_redis->hMSet($id, array('type' => gettype($data), 'data' => serialize($data))); } else { - return $this->_redis->hMSet($id, array('type' => gettype($data), 'data' => $data)); + $success = $this->_redis->hMSet($id, array('type' => gettype($data), 'data' => $data)); } + + if ($success && $ttl) + { + $this->_redis->expireAt($id, time() + $ttl); + } + + return $success; } // ------------------------------------------------------------------------ -- cgit v1.2.3-24-g4f1b From 44ce8f4545c8a0c0de97e93ceb9b2b9f751bc474 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 12 Mar 2016 14:52:22 +0200 Subject: Add changelog entries for and polish changes from PRs #4528, #4530 --- system/libraries/Cache/drivers/Cache_redis.php | 52 ++++++++++++++++++-------- user_guide_src/source/changelog.rst | 6 +++ 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index fa318403e..49385dffa 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -151,21 +151,29 @@ class CI_Cache_redis extends CI_Driver */ public function get($key) { - $value = $this->_redis->hMGet($key, array('type', 'data')); + $data = $this->_redis->hMGet($key, array('__ci_type', '__ci_value')); - if (empty($value['type'])) + if ( ! isset($data['__ci_type'], $data['__ci_value']) OR $data['__ci_value'] === FALSE) { return FALSE; } - if ($value['type'] === 'array' OR $value['type'] === 'object') + switch ($data['__ci_type']) { - return unserialize($value['data']); - } - else - { - settype($value['data'], $value['type']); - return $value['data']; + case 'array': + case 'object': + return unserialize($data['__ci_value']); + case 'boolean': + case 'integer': + case 'double': // Yes, 'double' is returned and NOT 'float' + case 'string': + case 'NULL': + return settype($data['__ci_value'], $data['__ci_type']) + ? $data['__ci_value'] + : FALSE; + case 'resource': + default: + return FALSE; } } @@ -182,21 +190,33 @@ class CI_Cache_redis extends CI_Driver */ public function save($id, $data, $ttl = 60, $raw = FALSE) { - if (is_array($data) OR is_object($data)) + switch ($data_type = gettype($data)) { - $success = $this->_redis->hMSet($id, array('type' => gettype($data), 'data' => serialize($data))); + case 'array': + case 'object': + $data = serialize($data); + break; + case 'boolean': + case 'integer': + case 'double': // Yes, 'double' is returned and NOT 'float' + case 'string': + case 'NULL': + break; + case 'resource': + default: + return FALSE; } - else + + if ( ! $this->_redis->hMSet($id, array('__ci_type' => $data_type, '__ci_value' => $data))) { - $success = $this->_redis->hMSet($id, array('type' => gettype($data), 'data' => $data)); + return FALSE; } - - if ($success && $ttl) + elseif ($ttl) { $this->_redis->expireAt($id, time() + $ttl); } - return $success; + return TRUE; } // ------------------------------------------------------------------------ diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 2a9ccd57a..3bb7e48f5 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -14,6 +14,7 @@ Release Date: Not Released - Libraries - Added UNIX socket connection support to :doc:`Session Library ` 'redis' driver. + - Changed data serialization logic in :doc:`Cache Library ` 'redis' driver for better performance. - Database @@ -26,6 +27,11 @@ Release Date: Not Released - Updated :doc:`HTML Helper ` function :php:func:`meta()` with support for "charset" and "property" properties. - Changed :doc:`HTML Helper ` function :php:func:`doctype()` default document type to HTML 5. +Bug fixes for 3.1.0 +------------------- + +- Fixed a bug (#4528) - :doc:`Cache Library ` stored all scalar values as strings with the 'redis' driver. + Version 3.0.6 ============= -- cgit v1.2.3-24-g4f1b From 16436e3c037ba4688954cffab2316d44115b2eff Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 12 Mar 2016 15:00:43 +0200 Subject: [ci skip] Removed leftovers from the old serialization logic in Cache_redis --- system/libraries/Cache/drivers/Cache_redis.php | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 49385dffa..7d1b4f39a 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -69,13 +69,6 @@ class CI_Cache_redis extends CI_Driver */ protected $_redis; - /** - * An internal cache for storing keys of serialized values. - * - * @var array - */ - protected $_serialized = array(); - // ------------------------------------------------------------------------ /** @@ -135,10 +128,6 @@ class CI_Cache_redis extends CI_Driver { log_message('error', 'Cache: Redis connection refused ('.$e->getMessage().')'); } - - // Initialize the index of serialized values. - $serialized = $this->_redis->sMembers('_ci_redis_serialized'); - empty($serialized) OR $this->_serialized = array_flip($serialized); } // ------------------------------------------------------------------------ -- cgit v1.2.3-24-g4f1b From 9cc1618502a147d973e5917d6b305642437e7e8c Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sat, 12 Mar 2016 19:05:47 +0500 Subject: Removed the second condition for unix sockets --- system/libraries/Cache/drivers/Cache_redis.php | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 7d1b4f39a..29f43ba6f 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -55,7 +55,6 @@ class CI_Cache_redis extends CI_Driver * @var array */ protected static $_default_config = array( - 'socket_type' => 'tcp', 'host' => '127.0.0.1', 'password' => NULL, 'port' => 6379, @@ -105,16 +104,7 @@ class CI_Cache_redis extends CI_Driver try { - if ($config['socket_type'] === 'unix') - { - $success = $this->_redis->connect($config['socket']); - } - else // tcp socket - { - $success = $this->_redis->connect($config['host'], $config['port'], $config['timeout']); - } - - if ( ! $success) + if ( ! $this->_redis->connect($config['host'], $config['port'], $config['timeout'])) { log_message('error', 'Cache: Redis connection failed. Check your configuration.'); } -- cgit v1.2.3-24-g4f1b From 7e5ed70625180c416a1b7d784c3fae7fe9ff6cea Mon Sep 17 00:00:00 2001 From: Goran Grbic Date: Sat, 12 Mar 2016 15:26:50 +0100 Subject: Removing character Removing forward slash since `APPPATH` ends with `DIRECTORY_SEPARATOR`. --- user_guide_src/source/tutorial/static_pages.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/tutorial/static_pages.rst b/user_guide_src/source/tutorial/static_pages.rst index 569287c98..5daaa958f 100644 --- a/user_guide_src/source/tutorial/static_pages.rst +++ b/user_guide_src/source/tutorial/static_pages.rst @@ -97,7 +97,7 @@ page actually exists: public function view($page = 'home') { - if ( ! file_exists(APPPATH.'/views/pages/'.$page.'.php')) + if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php')) { // Whoops, we don't have a page for that! show_404(); -- cgit v1.2.3-24-g4f1b From 6047ec16b2a99b3c19d452b07b81be9df8d2ad78 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Mon, 14 Mar 2016 13:08:22 +0500 Subject: Removed socket_type and socket parameters from the user guide --- user_guide_src/source/libraries/caching.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/user_guide_src/source/libraries/caching.rst b/user_guide_src/source/libraries/caching.rst index a7081ec6b..81019c015 100644 --- a/user_guide_src/source/libraries/caching.rst +++ b/user_guide_src/source/libraries/caching.rst @@ -255,8 +255,6 @@ To use it, you need `Redis server and phpredis PHP extension Date: Mon, 14 Mar 2016 13:18:39 +0500 Subject: UNIX socket check --- system/libraries/Cache/drivers/Cache_redis.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 29f43ba6f..b55d8bf25 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -104,6 +104,11 @@ class CI_Cache_redis extends CI_Driver try { + if ($config['host']{0} === '/') + { + $config['port'] = 0; // for unix domain socket + } + if ( ! $this->_redis->connect($config['host'], $config['port'], $config['timeout'])) { log_message('error', 'Cache: Redis connection failed. Check your configuration.'); -- cgit v1.2.3-24-g4f1b From 7755322d9457b1ba73f27e46e1d1fcfa62b46830 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Mon, 14 Mar 2016 13:36:15 +0500 Subject: Fixed brackets --- system/libraries/Cache/drivers/Cache_redis.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index b55d8bf25..bae46bab4 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -104,7 +104,7 @@ class CI_Cache_redis extends CI_Driver try { - if ($config['host']{0} === '/') + if ($config['host'][0] === '/') { $config['port'] = 0; // for unix domain socket } -- cgit v1.2.3-24-g4f1b From d3029505bc703c439d17dc902ad208574ba788b4 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Mon, 14 Mar 2016 13:38:58 +0500 Subject: Added the timeout value for the UNIX socket check --- system/libraries/Cache/drivers/Cache_redis.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index bae46bab4..1c12a0a22 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -104,9 +104,11 @@ class CI_Cache_redis extends CI_Driver try { + // for unix domain socket if ($config['host'][0] === '/') { - $config['port'] = 0; // for unix domain socket + $config['port'] = 0; + $config['timeout'] = 0; } if ( ! $this->_redis->connect($config['host'], $config['port'], $config['timeout'])) -- cgit v1.2.3-24-g4f1b From 49f440a12974ea0af37b3e306cd3a26aa557f469 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Mon, 14 Mar 2016 13:40:01 +0500 Subject: Removed a space char --- system/libraries/Cache/drivers/Cache_redis.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 1c12a0a22..475dd4420 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -104,7 +104,7 @@ class CI_Cache_redis extends CI_Driver try { - // for unix domain socket + // for unix domain socket if ($config['host'][0] === '/') { $config['port'] = 0; -- cgit v1.2.3-24-g4f1b From d327a4fc32b507a44e418cdd4b6e2c63690bc5cc Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Mon, 14 Mar 2016 14:05:12 +0500 Subject: Unix socket check in one long line --- system/libraries/Cache/drivers/Cache_redis.php | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 475dd4420..ec4432437 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -104,14 +104,7 @@ class CI_Cache_redis extends CI_Driver try { - // for unix domain socket - if ($config['host'][0] === '/') - { - $config['port'] = 0; - $config['timeout'] = 0; - } - - if ( ! $this->_redis->connect($config['host'], $config['port'], $config['timeout'])) + if ( ! $this->_redis->connect($config['host'], ($config['host'][0] === '/' ? 0 : $config['port']), $config['timeout'])) { log_message('error', 'Cache: Redis connection failed. Check your configuration.'); } -- cgit v1.2.3-24-g4f1b From 7df9453c0797b3e9f8af2b2a03413282890a677b Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 16 Mar 2016 12:39:52 +0200 Subject: [ci skip] Add (detection-based) UNIX sockets support to Cache_memcached --- system/libraries/Cache/drivers/Cache_memcached.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 6dee1e8e4..ca3997ad5 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -102,10 +102,22 @@ class CI_Cache_memcached extends CI_Driver { return; } - foreach ($this->_config as $cache_server) + foreach ($this->_config as $cache_name => $cache_server) { - isset($cache_server['hostname']) OR $cache_server['hostname'] = $defaults['host']; - isset($cache_server['port']) OR $cache_server['port'] = $defaults['port']; + if ( ! isset($cache_server['hostname'])) + { + log_message('debug', 'Cache: Memcache(d) configuration "'.$cache_name.'" doesn\'t include a hostname; ignoring.'); + continue; + } + elseif ($cache_server['hostname'][0] === '/') + { + $cache_server['port'] = 0; + } + elseif (empty($cache_server['port'])) + { + $cache_server['port'] = $defaults['port']; + } + isset($cache_server['weight']) OR $cache_server['weight'] = $defaults['weight']; if ($this->_memcached instanceof Memcache) -- cgit v1.2.3-24-g4f1b From 35e91f609d7d4d5944d13d1048c61e407b537c9e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 16 Mar 2016 12:40:24 +0200 Subject: [ci skip] Add changelog entries for recent CI_Cache changes to redis, memcached --- user_guide_src/source/changelog.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 3bb7e48f5..a9614cf84 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -14,7 +14,13 @@ Release Date: Not Released - Libraries - Added UNIX socket connection support to :doc:`Session Library ` 'redis' driver. - - Changed data serialization logic in :doc:`Cache Library ` 'redis' driver for better performance. + + - :doc:`Cache Library ` changes include: + + - Added UNIX socket connection support to the 'memcached' driver. + - Changed the 'memcached' driver to ignore configurations that don't specify a hostname. + - Removed the *socket_type* configuration setting from the 'redis' driver. + - Changed data serialization logic in 'redis' driver for better performance. - Database -- cgit v1.2.3-24-g4f1b From fa91f30c144c041ad19925e55fe06c4065337896 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 16 Mar 2016 14:33:15 +0200 Subject: [ci skip] Add upgrade instructions for CI_Cache changes --- user_guide_src/source/installation/upgrade_310.rst | 31 ++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/installation/upgrade_310.rst b/user_guide_src/source/installation/upgrade_310.rst index a6e6bae7e..36f69d01b 100644 --- a/user_guide_src/source/installation/upgrade_310.rst +++ b/user_guide_src/source/installation/upgrade_310.rst @@ -62,7 +62,7 @@ Step 3: Check logic related to URI parsing of CLI requests ========================================================== When running a CodeIgniter application from the CLI, the -:doc:`URI Library ` will now ignore the +:doc:`URI Library <../libraries/uri>` will now ignore the ``$config['url_suffix']`` and ``$config['permitted_uri_chars']`` configuration settings. @@ -71,7 +71,34 @@ this change was made) and therefore you shouldn't be affected by this, but if you've relied on them for some reason, you'd probably have to make some changes to your code. -Step 4: Check usage of doctype() HTML helper +Step 4: Check Cache Library configurations for Redis, Memcache(d) +================================================================= + +The new improvements for the 'redis' and 'memcached' drivers of the +:doc:`Cache Library <../libraries/caching>` may require some small +adjustments to your configuration values ... + +Redis +----- + +If you're using the 'redis' driver with a UNIX socket connection, you'll +have to move the socket path from ``$config['socket']`` to +``$config['host']`` instead. + +The ``$config['socket_type']`` option is also removed, although that won't +affect your application - it will be ignored and the connection type will +be determined by the format used for ``$config['host']`` instead. + +Memcache(d) +----------- + +The 'memcached' will now ignore configurations that don't specify a ``host`` +value (previously, it just set the host to the default '127.0.0.1'). + +Therefore, if you've added a configuration that only sets e.g. a ``port``, +you will now have to explicitly set the ``host`` to '127.0.0.1' as well. + +Step 5: Check usage of doctype() HTML helper ============================================ The :doc:`HTML Helper <../helpers/html_helper>` function -- cgit v1.2.3-24-g4f1b From 51ee810a6463d05730da61893a76b122e0acc993 Mon Sep 17 00:00:00 2001 From: Fülöp Márk Date: Thu, 17 Mar 2016 13:58:40 +0100 Subject: adding code format on line 29 --- user_guide_src/source/libraries/zip.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/zip.rst b/user_guide_src/source/libraries/zip.rst index 816f49ca1..9704d5b1d 100644 --- a/user_guide_src/source/libraries/zip.rst +++ b/user_guide_src/source/libraries/zip.rst @@ -24,7 +24,7 @@ your controller using the $this->load->library function:: $this->load->library('zip'); -Once loaded, the Zip library object will be available using: +Once loaded, the Zip library object will be available using:: $this->zip -- cgit v1.2.3-24-g4f1b From a2f837f0931f23cc440c1b7ffd298c6fe8705fe9 Mon Sep 17 00:00:00 2001 From: Moses Kurniawan Date: Wed, 13 Apr 2016 01:05:17 +0700 Subject: Removed double quotes on $cid because if we using quotes, the embedded image will not appear. --- user_guide_src/source/libraries/email.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/email.rst b/user_guide_src/source/libraries/email.rst index eadfcfd5c..0b38737f1 100644 --- a/user_guide_src/source/libraries/email.rst +++ b/user_guide_src/source/libraries/email.rst @@ -374,7 +374,7 @@ Class Reference { $this->email->to($address); $cid = $this->email->attachment_cid($filename); - $this->email->message('photo1'); + $this->email->message('photo1'); $this->email->send(); } -- cgit v1.2.3-24-g4f1b From 92d8eb2acf7204d01f595081551a4b08c4660cf3 Mon Sep 17 00:00:00 2001 From: Robert Angyal Date: Sun, 17 Apr 2016 06:48:22 +0200 Subject: Fixes #4583 by separating attachments to related and mixed multiparts Signed-off-by: Robert Angyal --- system/libraries/Email.php | 135 +++++++++++++++++++++++++++++++++------------ 1 file changed, 101 insertions(+), 34 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index ed6f737a1..ef9b58b61 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -149,13 +149,6 @@ class CI_Email { */ public $charset = 'utf-8'; - /** - * Multipart message - * - * @var string 'mixed' (in the body) or 'related' (separate) - */ - public $multipart = 'mixed'; // "mixed" (in the body) or "related" (separate) - /** * Alternative message (for HTML messages only) * @@ -274,6 +267,13 @@ class CI_Email { */ protected $_atc_boundary = ''; + /** + * Related Attachment boundary + * + * @var string + */ + protected $_rel_boundary = ''; + /** * Final headers to send * @@ -766,7 +766,8 @@ class CI_Email { 'name' => array($file, $newname), 'disposition' => empty($disposition) ? 'attachment' : $disposition, // Can also be 'inline' Not sure if it matters 'type' => $mime, - 'content' => chunk_split(base64_encode($file_content)) + 'content' => chunk_split(base64_encode($file_content)), + 'multipart' => 'mixed' ); return $this; @@ -784,15 +785,11 @@ class CI_Email { */ public function attachment_cid($filename) { - if ($this->multipart !== 'related') - { - $this->multipart = 'related'; // Thunderbird need this for inline images - } - for ($i = 0, $c = count($this->_attachments); $i < $c; $i++) { if ($this->_attachments[$i]['name'][0] === $filename) { + $this->_attachments[$i]['multipart'] = 'related'; $this->_attachments[$i]['cid'] = uniqid(basename($this->_attachments[$i]['name'][0]).'@'); return $this->_attachments[$i]['cid']; } @@ -945,6 +942,7 @@ class CI_Email { { $this->_alt_boundary = 'B_ALT_'.uniqid(''); // multipart/alternative $this->_atc_boundary = 'B_ATC_'.uniqid(''); // attachment boundary + $this->_rel_boundary = 'B_REL_'.uniqid(''); // related attachment boundary } // -------------------------------------------------------------------- @@ -1391,7 +1389,7 @@ class CI_Email { case 'plain-attach' : - $hdr .= 'Content-Type: multipart/'.$this->multipart.'; boundary="'.$this->_atc_boundary.'"'; + $hdr .= 'Content-Type: multipart/mixed; boundary="'.$this->_atc_boundary.'"'; if ($this->_get_protocol() === 'mail') { @@ -1406,18 +1404,45 @@ class CI_Email { .$this->newline .$this->_body.$this->newline.$this->newline; + $attachment_prepared = $this->_prep_attachments($this->_attachments, $this->_atc_boundary); + break; case 'html-attach' : - $hdr .= 'Content-Type: multipart/'.$this->multipart.'; boundary="'.$this->_atc_boundary.'"'; + $attachments_indexed_by_multipart = $this->_attachments_indexed_by_multipart(); + $attachments_related = $attachments_indexed_by_multipart['related']; + $attachments_mixed = $attachments_indexed_by_multipart['mixed']; + $prepared_attachment_parts = array(); + + if (isset($attachments_mixed) && count($attachments_mixed) > 0) + { + $hdr .= 'Content-Type: multipart/mixed; boundary="'.$this->_atc_boundary.'"'; + + array_push($prepared_attachment_parts, $this->_prep_attachments($attachments_mixed, $this->_atc_boundary)); + $last_boundary = $this->_atc_boundary; + } + + if (isset($attachments_related) && count($attachments_related) > 0) + { + $target_container =& $hdr; + if (isset($last_boundary)) { + $target_container =& $body; + $target_container .= '--' . $last_boundary . $this->newline; + } + $target_container .= 'Content-Type: multipart/related; boundary="'.$this->_rel_boundary.'"'; + + array_unshift($prepared_attachment_parts, $this->_prep_attachments($attachments_related, $this->_rel_boundary)); + $last_boundary = $this->_rel_boundary; + } if ($this->_get_protocol() === 'mail') { $this->_header_str .= $hdr; } + if (strlen(body) > 0) $body .= $this->newline.$this->newline; $body .= $this->_get_mime_message().$this->newline.$this->newline - .'--'.$this->_atc_boundary.$this->newline + .'--'.$last_boundary.$this->newline .'Content-Type: multipart/alternative; boundary="'.$this->_alt_boundary.'"'.$this->newline.$this->newline .'--'.$this->_alt_boundary.$this->newline @@ -1432,27 +1457,12 @@ class CI_Email { .$this->_prep_quoted_printable($this->_body).$this->newline.$this->newline .'--'.$this->_alt_boundary.'--'.$this->newline.$this->newline; - break; - } - - $attachment = array(); - for ($i = 0, $c = count($this->_attachments), $z = 0; $i < $c; $i++) - { - $filename = $this->_attachments[$i]['name'][0]; - $basename = ($this->_attachments[$i]['name'][1] === NULL) - ? basename($filename) : $this->_attachments[$i]['name'][1]; - - $attachment[$z++] = '--'.$this->_atc_boundary.$this->newline - .'Content-type: '.$this->_attachments[$i]['type'].'; ' - .'name="'.$basename.'"'.$this->newline - .'Content-Disposition: '.$this->_attachments[$i]['disposition'].';'.$this->newline - .'Content-Transfer-Encoding: base64'.$this->newline - .(empty($this->_attachments[$i]['cid']) ? '' : 'Content-ID: <'.$this->_attachments[$i]['cid'].'>'.$this->newline); + $attachment_prepared = implode($this->newline.$this->newline, $prepared_attachment_parts); - $attachment[$z++] = $this->_attachments[$i]['content']; + break; } - $body .= implode($this->newline, $attachment).$this->newline.'--'.$this->_atc_boundary.'--'; + $body .= $attachment_prepared; $this->_finalbody = ($this->_get_protocol() === 'mail') ? $body : $hdr.$this->newline.$this->newline.$body; @@ -1462,6 +1472,63 @@ class CI_Email { // -------------------------------------------------------------------- + /** + * Returns attachments mapped by multipart type + * + * @return array + */ + protected function _attachments_indexed_by_multipart() + { + foreach ($this->_attachments as $attachment) + { + $multipart = $attachment['multipart']; + if (!isset($attachments_indexed[$multipart])) + { + $attachments_indexed[$multipart] = array(); + } + array_push($attachments_indexed[$multipart], $attachment); + } + + return $attachments_indexed; + } + + // -------------------------------------------------------------------- + + /** + * Prepares attachment string + * + * @param array $attachments + * @param string $boundary Multipart boundary string + * @return string + */ + protected function _prep_attachments($attachments, $boundary) + { + if (!isset($attachments) || count($attachments) === 0) return ''; + + $attachment_parts = array(); + foreach ($attachments as $attachment) + { + $filename = $attachment['name'][0]; + $basename = ($attachment['name'][1] === NULL) + ? basename($filename) : $attachment['name'][1]; + + array_push( + $attachment_parts, + '--'.$boundary.$this->newline + .'Content-type: '.$attachment['type'].'; ' + .'name="'.$basename.'"'.$this->newline + .'Content-Disposition: '.$attachment['disposition'].';'.$this->newline + .'Content-Transfer-Encoding: base64'.$this->newline + .(empty($attachment['cid']) ? '' : 'Content-ID: <'.$attachment['cid'].'>'.$this->newline), + $attachment['content'] + ); + } + + return implode($this->newline, $attachment_parts).$this->newline.'--'.$boundary.'--'; + } + + // -------------------------------------------------------------------- + /** * Prep Quoted Printable * -- cgit v1.2.3-24-g4f1b From 832fd00b10f2fb236e0bf5b770d3298e6fedee64 Mon Sep 17 00:00:00 2001 From: Robert Angyal Date: Wed, 20 Apr 2016 05:20:15 +0200 Subject: #4583 Fix code style issues Signed-off-by: Robert Angyal --- system/libraries/Email.php | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index ef9b58b61..cbb48f525 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -767,7 +767,7 @@ class CI_Email { 'disposition' => empty($disposition) ? 'attachment' : $disposition, // Can also be 'inline' Not sure if it matters 'type' => $mime, 'content' => chunk_split(base64_encode($file_content)), - 'multipart' => 'mixed' + 'multipart' => 'mixed' ); return $this; @@ -1413,6 +1413,7 @@ class CI_Email { $attachments_related = $attachments_indexed_by_multipart['related']; $attachments_mixed = $attachments_indexed_by_multipart['mixed']; $prepared_attachment_parts = array(); + $last_boundary = NULL; if (isset($attachments_mixed) && count($attachments_mixed) > 0) { @@ -1425,7 +1426,8 @@ class CI_Email { if (isset($attachments_related) && count($attachments_related) > 0) { $target_container =& $hdr; - if (isset($last_boundary)) { + if (isset($last_boundary)) + { $target_container =& $body; $target_container .= '--' . $last_boundary . $this->newline; } @@ -1440,7 +1442,10 @@ class CI_Email { $this->_header_str .= $hdr; } - if (strlen(body) > 0) $body .= $this->newline.$this->newline; + if (strlen(body) > 0) + { + $body .= $this->newline.$this->newline; + } $body .= $this->_get_mime_message().$this->newline.$this->newline .'--'.$last_boundary.$this->newline @@ -1475,7 +1480,7 @@ class CI_Email { /** * Returns attachments mapped by multipart type * - * @return array + * @return array */ protected function _attachments_indexed_by_multipart() { @@ -1497,13 +1502,16 @@ class CI_Email { /** * Prepares attachment string * - * @param array $attachments - * @param string $boundary Multipart boundary string - * @return string + * @param array $attachments + * @param string $boundary Multipart boundary string + * @return string */ protected function _prep_attachments($attachments, $boundary) { - if (!isset($attachments) || count($attachments) === 0) return ''; + if (!isset($attachments) OR count($attachments) === 0) + { + return ''; + } $attachment_parts = array(); foreach ($attachments as $attachment) -- cgit v1.2.3-24-g4f1b From 57d2140687c74abd7b5a4bb4b859015eb703d565 Mon Sep 17 00:00:00 2001 From: rochefort Date: Thu, 28 Apr 2016 02:41:17 +0900 Subject: Fix a type of parameter in url_title [ci skip] --- user_guide_src/source/helpers/url_helper.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/helpers/url_helper.rst b/user_guide_src/source/helpers/url_helper.rst index 64deae240..6fb0dd942 100644 --- a/user_guide_src/source/helpers/url_helper.rst +++ b/user_guide_src/source/helpers/url_helper.rst @@ -277,7 +277,7 @@ Available Functions :param string $str: Input string :param string $separator: Word separator - :param string $lowercase: Whether to transform the output string to lower-case + :param bool $lowercase: Whether to transform the output string to lower-case :returns: URL-formatted string :rtype: string @@ -370,4 +370,4 @@ Available Functions will *automatically* be selected when the page is currently accessed via POST and HTTP/1.1 is used. - .. important:: This function will terminate script execution. \ No newline at end of file + .. important:: This function will terminate script execution. -- cgit v1.2.3-24-g4f1b From ed458fbdb36f8d8d7bd7d818dbb2983485e86b3c Mon Sep 17 00:00:00 2001 From: Robert Angyal Date: Thu, 28 Apr 2016 10:26:56 +0200 Subject: #4583 Refactor according to the suggestions commented on Pull Request Signed-off-by: Robert Angyal --- system/libraries/Email.php | 68 ++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 38 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index cbb48f525..e35c48ec4 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1406,34 +1406,34 @@ class CI_Email { $attachment_prepared = $this->_prep_attachments($this->_attachments, $this->_atc_boundary); - break; + break; case 'html-attach' : $attachments_indexed_by_multipart = $this->_attachments_indexed_by_multipart(); - $attachments_related = $attachments_indexed_by_multipart['related']; - $attachments_mixed = $attachments_indexed_by_multipart['mixed']; $prepared_attachment_parts = array(); $last_boundary = NULL; - if (isset($attachments_mixed) && count($attachments_mixed) > 0) + if ( ! empty($attachments_indexed_by_multipart['mixed'])) { $hdr .= 'Content-Type: multipart/mixed; boundary="'.$this->_atc_boundary.'"'; - array_push($prepared_attachment_parts, $this->_prep_attachments($attachments_mixed, $this->_atc_boundary)); + $prepared_attachment_parts[] = $this->_prep_attachments($attachments_indexed_by_multipart['mixed'], $this->_atc_boundary); $last_boundary = $this->_atc_boundary; } - if (isset($attachments_related) && count($attachments_related) > 0) + if ( ! empty($attachments_indexed_by_multipart['related'])) { - $target_container =& $hdr; + $rel_boundary_header = 'Content-Type: multipart/related; boundary="'.$this->_rel_boundary.'"'; if (isset($last_boundary)) { - $target_container =& $body; - $target_container .= '--' . $last_boundary . $this->newline; + $body .= '--' . $last_boundary . $this->newline . $rel_boundary_header; + } + else + { + $hdr .= $rel_boundary_header; } - $target_container .= 'Content-Type: multipart/related; boundary="'.$this->_rel_boundary.'"'; - array_unshift($prepared_attachment_parts, $this->_prep_attachments($attachments_related, $this->_rel_boundary)); + array_unshift($prepared_attachment_parts, $this->_prep_attachments($attachments_indexed_by_multipart['related'], $this->_rel_boundary)); $last_boundary = $this->_rel_boundary; } @@ -1442,10 +1442,7 @@ class CI_Email { $this->_header_str .= $hdr; } - if (strlen(body) > 0) - { - $body .= $this->newline.$this->newline; - } + strlen($body) && $body .= $this->newline.$this->newline; $body .= $this->_get_mime_message().$this->newline.$this->newline .'--'.$last_boundary.$this->newline @@ -1464,7 +1461,7 @@ class CI_Email { $attachment_prepared = implode($this->newline.$this->newline, $prepared_attachment_parts); - break; + break; } $body .= $attachment_prepared; @@ -1487,11 +1484,8 @@ class CI_Email { foreach ($this->_attachments as $attachment) { $multipart = $attachment['multipart']; - if (!isset($attachments_indexed[$multipart])) - { - $attachments_indexed[$multipart] = array(); - } - array_push($attachments_indexed[$multipart], $attachment); + isset($attachments_indexed[$multipart]) OR $attachments_indexed[$multipart] = array(); + $attachments_indexed[$multipart][] = $attachment; } return $attachments_indexed; @@ -1508,31 +1502,29 @@ class CI_Email { */ protected function _prep_attachments($attachments, $boundary) { - if (!isset($attachments) OR count($attachments) === 0) + if (empty($attachments)) { return ''; } - $attachment_parts = array(); - foreach ($attachments as $attachment) + $attachment = array(); + for ($i = 0, $c = count($attachments), $z = 0; $i < $c; $i++) { - $filename = $attachment['name'][0]; - $basename = ($attachment['name'][1] === NULL) - ? basename($filename) : $attachment['name'][1]; + $filename = $attachments[$i]['name'][0]; + $basename = ($attachments[$i]['name'][1] === NULL) + ? basename($filename) : $attachments[$i]['name'][1]; + + $attachment[$z++] = '--'.$boundary.$this->newline + .'Content-type: '.$attachments[$i]['type'].'; ' + .'name="'.$basename.'"'.$this->newline + .'Content-Disposition: '.$attachments[$i]['disposition'].';'.$this->newline + .'Content-Transfer-Encoding: base64'.$this->newline + .(empty($attachments[$i]['cid']) ? '' : 'Content-ID: <'.$attachments[$i]['cid'].'>'.$this->newline); - array_push( - $attachment_parts, - '--'.$boundary.$this->newline - .'Content-type: '.$attachment['type'].'; ' - .'name="'.$basename.'"'.$this->newline - .'Content-Disposition: '.$attachment['disposition'].';'.$this->newline - .'Content-Transfer-Encoding: base64'.$this->newline - .(empty($attachment['cid']) ? '' : 'Content-ID: <'.$attachment['cid'].'>'.$this->newline), - $attachment['content'] - ); + $attachment[$z++] = $attachments[$i]['content']; } - return implode($this->newline, $attachment_parts).$this->newline.'--'.$boundary.'--'; + return implode($this->newline, $attachment).$this->newline.'--'.$boundary.'--'; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 5277583e7336675d02665ff77359b41e782853ce Mon Sep 17 00:00:00 2001 From: Robert Angyal Date: Wed, 4 May 2016 16:33:25 +0200 Subject: #4583 Refactor according to the suggestions commented on Pull Request Signed-off-by: Robert Angyal --- system/libraries/Email.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index e35c48ec4..4fd1107c5 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1404,20 +1404,17 @@ class CI_Email { .$this->newline .$this->_body.$this->newline.$this->newline; - $attachment_prepared = $this->_prep_attachments($this->_attachments, $this->_atc_boundary); + $body .= $this->_prep_attachments($this->_attachments, $this->_atc_boundary); break; case 'html-attach' : $attachments_indexed_by_multipart = $this->_attachments_indexed_by_multipart(); - $prepared_attachment_parts = array(); $last_boundary = NULL; if ( ! empty($attachments_indexed_by_multipart['mixed'])) { $hdr .= 'Content-Type: multipart/mixed; boundary="'.$this->_atc_boundary.'"'; - - $prepared_attachment_parts[] = $this->_prep_attachments($attachments_indexed_by_multipart['mixed'], $this->_atc_boundary); $last_boundary = $this->_atc_boundary; } @@ -1426,14 +1423,12 @@ class CI_Email { $rel_boundary_header = 'Content-Type: multipart/related; boundary="'.$this->_rel_boundary.'"'; if (isset($last_boundary)) { - $body .= '--' . $last_boundary . $this->newline . $rel_boundary_header; + $body .= '--'.$last_boundary.$this->newline.$rel_boundary_header; } else { $hdr .= $rel_boundary_header; } - - array_unshift($prepared_attachment_parts, $this->_prep_attachments($attachments_indexed_by_multipart['related'], $this->_rel_boundary)); $last_boundary = $this->_rel_boundary; } @@ -1459,12 +1454,15 @@ class CI_Email { .$this->_prep_quoted_printable($this->_body).$this->newline.$this->newline .'--'.$this->_alt_boundary.'--'.$this->newline.$this->newline; - $attachment_prepared = implode($this->newline.$this->newline, $prepared_attachment_parts); + ( ! empty($attachments_indexed_by_multipart['related'])) && $body .= $this->newline.$this->newline + .$this->_prep_attachments($attachments_indexed_by_multipart['related'], $this->_rel_boundary); + + ( ! empty($attachments_indexed_by_multipart['mixed'])) && $body .= $this->newline.$this->newline + .$this->_prep_attachments($attachments_indexed_by_multipart['mixed'], $this->_atc_boundary); break; } - $body .= $attachment_prepared; $this->_finalbody = ($this->_get_protocol() === 'mail') ? $body : $hdr.$this->newline.$this->newline.$body; -- cgit v1.2.3-24-g4f1b From fd024c6fce2197b13520c1c53a5faa9f2704bdd2 Mon Sep 17 00:00:00 2001 From: kadoppe Date: Fri, 6 May 2016 17:25:18 +0900 Subject: Remove unnecessary backslash from user guide. Signed-off-by: kadoppe --- user_guide_src/source/tutorial/create_news_items.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/tutorial/create_news_items.rst b/user_guide_src/source/tutorial/create_news_items.rst index e10eebd3b..cde52fde8 100644 --- a/user_guide_src/source/tutorial/create_news_items.rst +++ b/user_guide_src/source/tutorial/create_news_items.rst @@ -76,7 +76,7 @@ validation <../libraries/form_validation>` library to do this. The code above adds a lot of functionality. The first few lines load the form helper and the form validation library. After that, rules for the -form validation are set. The ``set\_rules()`` method takes three arguments; +form validation are set. The ``set_rules()`` method takes three arguments; 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. -- cgit v1.2.3-24-g4f1b From a380c69a71bcf2362e8cebe707994cc519a93bfd Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 9 May 2016 12:12:45 +0300 Subject: Stop testing 3.1.0-dev on PHP 5.2, 5.3 --- .travis.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5a7eb11b9..1e0ee65db 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ language: php php: - - 5.2 - - 5.3.3 - 5.4 - 5.5 - 5.6 @@ -21,7 +19,7 @@ env: sudo: false before_script: - - sh -c "if [ '$TRAVIS_PHP_VERSION' = '5.2' ]; then pear channel-discover pear.bovigo.org && pear install bovigo/vfsStream-beta; else composer install --dev --no-progress; fi" + - sh -c "composer install --dev --no-progress" - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS ci_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'create database ci_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'mysql' ] || [ '$DB' = 'mysqli' ] || [ '$DB' = 'pdo/mysql' ]; then mysql -e 'create database IF NOT EXISTS ci_test;'; fi" @@ -30,7 +28,6 @@ script: phpunit -d zend.enable_gc=0 -d date.timezone=UTC --coverage-text --confi matrix: allow_failures: - - php: 5.2 - php: hhvm exclude: - php: hhvm @@ -39,10 +36,6 @@ matrix: env: DB=pdo/pgsql - php: 7 env: DB=mysql - - php: 5.2 - env: DB=sqlite - - php: 5.2 - env: DB=pdo/sqlite branches: only: -- cgit v1.2.3-24-g4f1b From 22f1545d986391e71682eba37ef60e56f3f8ca77 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Mon, 9 May 2016 13:07:38 -0700 Subject: Add favicon to user guide source (it was missing). This was mentioned in a tweet. The user guide currently has a configuraiton setting with a favicon link, but it referenced a non-existant file. Signed-off-by:Master Yoda --- .../_themes/sphinx_rtd_theme/static/images/ci-icon.ico | Bin 0 -> 1150 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 user_guide_src/source/_themes/sphinx_rtd_theme/static/images/ci-icon.ico diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/images/ci-icon.ico b/user_guide_src/source/_themes/sphinx_rtd_theme/static/images/ci-icon.ico new file mode 100644 index 000000000..c4246f8bf Binary files /dev/null and b/user_guide_src/source/_themes/sphinx_rtd_theme/static/images/ci-icon.ico differ -- cgit v1.2.3-24-g4f1b From 4426e1d3bc627cc73d2454cba4bf9426c7dd0ce4 Mon Sep 17 00:00:00 2001 From: rochefort Date: Wed, 11 May 2016 02:52:22 +0900 Subject: Fix docs [ci skip] - Fix missing parenthesis of function - Fix incorrect place of a sentence - Fix a missing doc link --- user_guide_src/source/helpers/typography_helper.rst | 4 ++-- user_guide_src/source/helpers/url_helper.rst | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/user_guide_src/source/helpers/typography_helper.rst b/user_guide_src/source/helpers/typography_helper.rst index 7eb4fceec..89730b03d 100644 --- a/user_guide_src/source/helpers/typography_helper.rst +++ b/user_guide_src/source/helpers/typography_helper.rst @@ -35,7 +35,7 @@ The following functions are available: Formats text so that it is semantically and typographically correct HTML. - This function is an alias for ``CI_Typography::auto_typography``. + This function is an alias for ``CI_Typography::auto_typography()``. For more info, please see the :doc:`Typography Library <../libraries/typography>` documentation. @@ -45,7 +45,7 @@ The following functions are available: .. note:: Typographic formatting can be processor intensive, particularly if you have a lot of content being formatted. If you choose to use this - function you may want to consider `caching <../general/caching>` your + function you may want to consider :doc:`caching <../general/caching>` your pages. diff --git a/user_guide_src/source/helpers/url_helper.rst b/user_guide_src/source/helpers/url_helper.rst index 6fb0dd942..435a21df4 100644 --- a/user_guide_src/source/helpers/url_helper.rst +++ b/user_guide_src/source/helpers/url_helper.rst @@ -18,11 +18,11 @@ This helper is loaded using the following code:: $this->load->helper('url'); -The following functions are available: - Available Functions =================== +The following functions are available: + .. php:function:: site_url([$uri = ''[, $protocol = NULL]]) :param string $uri: URI string @@ -360,7 +360,7 @@ Available Functions is outputted to the browser since it utilizes server headers. .. note:: For very fine grained control over headers, you should use the - `Output Library ` ``set_header()`` method. + :doc:`Output Library ` ``set_header()`` method. .. note:: To IIS users: if you hide the `Server` HTTP header, the *auto* method won't detect IIS, in that case it is advised you explicitly -- cgit v1.2.3-24-g4f1b From b3bac2497aaacb702921dfe89c5f43969257ff53 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Thu, 19 May 2016 01:12:33 -0700 Subject: Fix typo in inflector helper writeup. Reported by email from Jessie Rubi Signed-off-by:Master Yoda --- user_guide_src/source/helpers/inflector_helper.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/helpers/inflector_helper.rst b/user_guide_src/source/helpers/inflector_helper.rst index ed1e2b30f..17dab57bf 100644 --- a/user_guide_src/source/helpers/inflector_helper.rst +++ b/user_guide_src/source/helpers/inflector_helper.rst @@ -38,7 +38,7 @@ The following functions are available: .. php:function:: plural($str) :param string $str: Input string - :returns: A plular word + :returns: A plural word :rtype: string Changes a singular word to plural. Example:: -- cgit v1.2.3-24-g4f1b From cadcef85a218595b5999442d669086bdb5628947 Mon Sep 17 00:00:00 2001 From: Kasim Tan Date: Thu, 19 May 2016 12:06:07 -0700 Subject: Fixed PHPDoc parameter name and type discrepancies --- system/core/Loader.php | 2 +- system/core/Log.php | 2 +- system/core/Output.php | 2 +- system/core/compat/standard.php | 2 +- system/helpers/form_helper.php | 2 +- system/libraries/Cache/drivers/Cache_apc.php | 2 +- system/libraries/Session/Session.php | 2 +- system/libraries/Upload.php | 2 +- tests/mocks/database/drivers/mysql.php | 1 - tests/mocks/database/drivers/mysqli.php | 1 - tests/mocks/database/drivers/pdo.php | 1 - tests/mocks/database/drivers/postgre.php | 1 - tests/mocks/database/drivers/sqlite.php | 1 - 13 files changed, 8 insertions(+), 13 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index c742ae71a..d2c350816 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -1106,7 +1106,7 @@ class CI_Loader { * @used-by CI_Loader::_ci_load_library() * @uses CI_Loader::_ci_init_library() * - * @param string $library Library name to load + * @param string $library_name Library name to load * @param string $file_path Path to the library filename, relative to libraries/ * @param mixed $params Optional parameters to pass to the class constructor * @param string $object_name Optional object name to assign to diff --git a/system/core/Log.php b/system/core/Log.php index 1abdaa00e..986121526 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -237,7 +237,7 @@ class CI_Log { * * @param string $level The error level * @param string $date Formatted date string - * @param string $msg The log message + * @param string $message The log message * @return string Formatted log line with a new line character '\n' at the end */ protected function _format_line($level, $date, $message) diff --git a/system/core/Output.php b/system/core/Output.php index 6e0b4e724..98db212a0 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -285,7 +285,7 @@ class CI_Output { /** * Get Header * - * @param string $header_name + * @param string $header * @return string */ public function get_header($header) diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php index 47d47aeff..c54cab951 100644 --- a/system/core/compat/standard.php +++ b/system/core/compat/standard.php @@ -62,7 +62,7 @@ if ( ! function_exists('array_column')) * array_column() * * @link http://php.net/array_column - * @param string $array + * @param array $array * @param mixed $column_key * @param mixed $index_key * @return array diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index 3e1039525..dfb9ae2d2 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -568,7 +568,7 @@ if ( ! function_exists('form_label')) * * @param string The text to appear onscreen * @param string The id the label applies to - * @param string Additional attributes + * @param array Additional attributes * @return string */ function form_label($label_text = '', $id = '', $attributes = array()) diff --git a/system/libraries/Cache/drivers/Cache_apc.php b/system/libraries/Cache/drivers/Cache_apc.php index 07ea8f474..fb8df03a7 100644 --- a/system/libraries/Cache/drivers/Cache_apc.php +++ b/system/libraries/Cache/drivers/Cache_apc.php @@ -97,7 +97,7 @@ class CI_Cache_apc extends CI_Driver { * * @param string $id Cache ID * @param mixed $data Data to store - * @param int $ttol Length of time (in seconds) to cache the data + * @param int $ttl Length of time (in seconds) to cache the data * @param bool $raw Whether to store the raw value * @return bool TRUE on success, FALSE on failure */ diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index c9d2e8adc..dde84a775 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -729,7 +729,7 @@ class CI_Session { * * Legacy CI_Session compatibility method * - * @param mixed $data Session data key(s) + * @param mixed $key Session data key(s) * @return void */ public function unset_userdata($key) diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index f2418378b..fa365058c 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -286,7 +286,7 @@ class CI_Upload { /** * Constructor * - * @param array $props + * @param array $config * @return void */ public function __construct($config = array()) diff --git a/tests/mocks/database/drivers/mysql.php b/tests/mocks/database/drivers/mysql.php index e0c1fb06c..b7718ebaf 100644 --- a/tests/mocks/database/drivers/mysql.php +++ b/tests/mocks/database/drivers/mysql.php @@ -5,7 +5,6 @@ class Mock_Database_Drivers_Mysql extends Mock_Database_DB_Driver { /** * Instantiate the database driver * - * @param string DB Driver class name * @param array DB configuration to set * @return void */ diff --git a/tests/mocks/database/drivers/mysqli.php b/tests/mocks/database/drivers/mysqli.php index 73c35b609..f747aad46 100644 --- a/tests/mocks/database/drivers/mysqli.php +++ b/tests/mocks/database/drivers/mysqli.php @@ -5,7 +5,6 @@ class Mock_Database_Drivers_Mysqli extends Mock_Database_DB_Driver { /** * Instantiate the database driver * - * @param string DB Driver class name * @param array DB configuration to set * @return void */ diff --git a/tests/mocks/database/drivers/pdo.php b/tests/mocks/database/drivers/pdo.php index 17768eed7..af1958aea 100644 --- a/tests/mocks/database/drivers/pdo.php +++ b/tests/mocks/database/drivers/pdo.php @@ -5,7 +5,6 @@ class Mock_Database_Drivers_PDO extends Mock_Database_DB_Driver { /** * Instantiate the database driver * - * @param string DB Driver class name * @param array DB configuration to set * @return void */ diff --git a/tests/mocks/database/drivers/postgre.php b/tests/mocks/database/drivers/postgre.php index 5a45115fa..8c91e54a9 100644 --- a/tests/mocks/database/drivers/postgre.php +++ b/tests/mocks/database/drivers/postgre.php @@ -5,7 +5,6 @@ class Mock_Database_Drivers_Postgre extends Mock_Database_DB_Driver { /** * Instantiate the database driver * - * @param string DB Driver class name * @param array DB configuration to set * @return void */ diff --git a/tests/mocks/database/drivers/sqlite.php b/tests/mocks/database/drivers/sqlite.php index 512467520..b2aec28e6 100644 --- a/tests/mocks/database/drivers/sqlite.php +++ b/tests/mocks/database/drivers/sqlite.php @@ -5,7 +5,6 @@ class Mock_Database_Drivers_Sqlite extends Mock_Database_DB_Driver { /** * Instantiate the database driver * - * @param string DB Driver class name * @param array DB configuration to set * @return void */ -- cgit v1.2.3-24-g4f1b From e1b9495b7b1b55c8dfd6b602e35b6d5c269c0a90 Mon Sep 17 00:00:00 2001 From: Kasim Tan Date: Fri, 20 May 2016 07:16:14 -0700 Subject: Removed an extra space char --- system/helpers/form_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index dfb9ae2d2..8825ecc2c 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -568,7 +568,7 @@ if ( ! function_exists('form_label')) * * @param string The text to appear onscreen * @param string The id the label applies to - * @param array Additional attributes + * @param array Additional attributes * @return string */ function form_label($label_text = '', $id = '', $attributes = array()) -- cgit v1.2.3-24-g4f1b From 21a41ba37b9248291939cf4c801ac0f27982668e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 25 May 2016 15:27:39 +0300 Subject: [ci skip] Refactor changes from PR #4585 Related: #4583 --- system/libraries/Email.php | 165 +++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 95 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 4fd1107c5..21b62fea0 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -253,27 +253,6 @@ class CI_Email { */ protected $_finalbody = ''; - /** - * multipart/alternative boundary - * - * @var string - */ - protected $_alt_boundary = ''; - - /** - * Attachment boundary - * - * @var string - */ - protected $_atc_boundary = ''; - - /** - * Related Attachment boundary - * - * @var string - */ - protected $_rel_boundary = ''; - /** * Final headers to send * @@ -933,20 +912,6 @@ class CI_Email { // -------------------------------------------------------------------- - /** - * Set Message Boundary - * - * @return void - */ - protected function _set_boundaries() - { - $this->_alt_boundary = 'B_ALT_'.uniqid(''); // multipart/alternative - $this->_atc_boundary = 'B_ATC_'.uniqid(''); // attachment boundary - $this->_rel_boundary = 'B_REL_'.uniqid(''); // related attachment boundary - } - - // -------------------------------------------------------------------- - /** * Get the Message ID * @@ -1014,9 +979,9 @@ class CI_Email { { if ($this->mailtype === 'html') { - return (count($this->_attachments) === 0) ? 'html' : 'html-attach'; + return empty($this->_attachments) ? 'html' : 'html-attach'; } - elseif ($this->mailtype === 'text' && count($this->_attachments) > 0) + elseif ($this->mailtype === 'text' && ! empty($this->_attachments)) { return 'plain-attach'; } @@ -1322,7 +1287,6 @@ class CI_Email { $this->_body = $this->word_wrap($this->_body); } - $this->_set_boundaries(); $this->_write_headers(); $hdr = ($this->_get_protocol() === 'mail') ? $this->newline : ''; @@ -1330,7 +1294,7 @@ class CI_Email { switch ($this->_get_content_type()) { - case 'plain' : + case 'plain': $hdr .= 'Content-Type: text/plain; charset='.$this->charset.$this->newline .'Content-Transfer-Encoding: '.$this->_get_encoding(); @@ -1347,7 +1311,7 @@ class CI_Email { return; - case 'html' : + case 'html': if ($this->send_multipart === FALSE) { @@ -1356,14 +1320,16 @@ class CI_Email { } else { - $hdr .= 'Content-Type: multipart/alternative; boundary="'.$this->_alt_boundary.'"'; + $boundary = uniqid('B_ALT_'); + $hdr .= 'Content-Type: multipart/alternative; boundary="'.$boundary.'"'; $body .= $this->_get_mime_message().$this->newline.$this->newline - .'--'.$this->_alt_boundary.$this->newline + .'--'.$boundary.$this->newline .'Content-Type: text/plain; charset='.$this->charset.$this->newline .'Content-Transfer-Encoding: '.$this->_get_encoding().$this->newline.$this->newline - .$this->_get_alt_message().$this->newline.$this->newline.'--'.$this->_alt_boundary.$this->newline + .$this->_get_alt_message().$this->newline.$this->newline + .'--'.$boundary.$this->newline .'Content-Type: text/html; charset='.$this->charset.$this->newline .'Content-Transfer-Encoding: quoted-printable'.$this->newline.$this->newline; @@ -1382,14 +1348,15 @@ class CI_Email { if ($this->send_multipart !== FALSE) { - $this->_finalbody .= '--'.$this->_alt_boundary.'--'; + $this->_finalbody .= '--'.$boundary.'--'; } return; - case 'plain-attach' : + case 'plain-attach': - $hdr .= 'Content-Type: multipart/mixed; boundary="'.$this->_atc_boundary.'"'; + $boundary = uniqid('B_ATC_'); + $hdr .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'; if ($this->_get_protocol() === 'mail') { @@ -1398,29 +1365,32 @@ class CI_Email { $body .= $this->_get_mime_message().$this->newline .$this->newline - .'--'.$this->_atc_boundary.$this->newline + .'--'.$boundary.$this->newline .'Content-Type: text/plain; charset='.$this->charset.$this->newline .'Content-Transfer-Encoding: '.$this->_get_encoding().$this->newline .$this->newline .$this->_body.$this->newline.$this->newline; - $body .= $this->_prep_attachments($this->_attachments, $this->_atc_boundary); + $this->_append_attachments($body, $boundary); break; - case 'html-attach' : + case 'html-attach': - $attachments_indexed_by_multipart = $this->_attachments_indexed_by_multipart(); + $alt_boundary = uniqid('B_ALT_'); $last_boundary = NULL; - if ( ! empty($attachments_indexed_by_multipart['mixed'])) + if ($this->_attachments_have_multipart('mixed')) { - $hdr .= 'Content-Type: multipart/mixed; boundary="'.$this->_atc_boundary.'"'; - $last_boundary = $this->_atc_boundary; + $atc_boundary = uniqid('B_ATC_'); + $hdr .= 'Content-Type: multipart/mixed; boundary="'.$atc_boundary.'"'; + $last_boundary = $atc_boundary; } - if ( ! empty($attachments_indexed_by_multipart['related'])) + if ($this->_attachments_have_multipart('related')) { - $rel_boundary_header = 'Content-Type: multipart/related; boundary="'.$this->_rel_boundary.'"'; + $rel_boundary = uniqid('B_REL_'); + $rel_boundary_header = 'Content-Type: multipart/related; boundary="'.$rel_boundary.'"'; + if (isset($last_boundary)) { $body .= '--'.$last_boundary.$this->newline.$rel_boundary_header; @@ -1429,7 +1399,8 @@ class CI_Email { { $hdr .= $rel_boundary_header; } - $last_boundary = $this->_rel_boundary; + + $last_boundary = $rel_boundary; } if ($this->_get_protocol() === 'mail') @@ -1441,24 +1412,32 @@ class CI_Email { $body .= $this->_get_mime_message().$this->newline.$this->newline .'--'.$last_boundary.$this->newline - .'Content-Type: multipart/alternative; boundary="'.$this->_alt_boundary.'"'.$this->newline.$this->newline - .'--'.$this->_alt_boundary.$this->newline + .'Content-Type: multipart/alternative; boundary="'.$alt_boundary.'"'.$this->newline.$this->newline + .'--'.$alt_boundary.$this->newline .'Content-Type: text/plain; charset='.$this->charset.$this->newline .'Content-Transfer-Encoding: '.$this->_get_encoding().$this->newline.$this->newline - .$this->_get_alt_message().$this->newline.$this->newline.'--'.$this->_alt_boundary.$this->newline + .$this->_get_alt_message().$this->newline.$this->newline + .'--'.$alt_boundary.$this->newline .'Content-Type: text/html; charset='.$this->charset.$this->newline .'Content-Transfer-Encoding: quoted-printable'.$this->newline.$this->newline .$this->_prep_quoted_printable($this->_body).$this->newline.$this->newline - .'--'.$this->_alt_boundary.'--'.$this->newline.$this->newline; + .'--'.$alt_boundary.'--'.$this->newline.$this->newline; - ( ! empty($attachments_indexed_by_multipart['related'])) && $body .= $this->newline.$this->newline - .$this->_prep_attachments($attachments_indexed_by_multipart['related'], $this->_rel_boundary); + // multipart/mixed attachments + if ( ! empty($atc_boundary)) + { + $body .= $this->newline.$this->newline; + $this->_append_attachments($body, $atc_boundary, 'mixed'); + } - ( ! empty($attachments_indexed_by_multipart['mixed'])) && $body .= $this->newline.$this->newline - .$this->_prep_attachments($attachments_indexed_by_multipart['mixed'], $this->_atc_boundary); + if ( ! empty($rel_boundary)) + { + $body .= $this->newline.$this->newline; + $this->_append_attachments($body, $rel_boundary, 'related'); + } break; } @@ -1472,21 +1451,17 @@ class CI_Email { // -------------------------------------------------------------------- - /** - * Returns attachments mapped by multipart type - * - * @return array - */ - protected function _attachments_indexed_by_multipart() + protected function _attachments_have_multipart($type) { - foreach ($this->_attachments as $attachment) + foreach ($this->_attachments as &$attachment) { - $multipart = $attachment['multipart']; - isset($attachments_indexed[$multipart]) OR $attachments_indexed[$multipart] = array(); - $attachments_indexed[$multipart][] = $attachment; + if ($attachment[$i]['multipart'] === $type) + { + return TRUE; + } } - return $attachments_indexed; + return FALSE; } // -------------------------------------------------------------------- @@ -1494,35 +1469,35 @@ class CI_Email { /** * Prepares attachment string * - * @param array $attachments - * @param string $boundary Multipart boundary string + * @param string $body Message body to append to + * @param string $boundary Multipart boundary + * @param string $multipart When provided, only attachments of this type will be processed * @return string */ - protected function _prep_attachments($attachments, $boundary) + protected function _append_attachments(&$body, $boundary, $multipart = null) { - if (empty($attachments)) + for ($i = 0, $c = count($this->_attachments); $i < $c; $i++) { - return ''; - } + if (isset($multipart) && $this->_attachments[$i]['multipart'] !== $multipart) + { + continue; + } - $attachment = array(); - for ($i = 0, $c = count($attachments), $z = 0; $i < $c; $i++) - { - $filename = $attachments[$i]['name'][0]; - $basename = ($attachments[$i]['name'][1] === NULL) - ? basename($filename) : $attachments[$i]['name'][1]; + $name = isset($this->_attachments[$i]['name'][1]) + ? $this->_attachments[$i]['name'][1] + : basename($this->_attachments[$i]['name'][0]); - $attachment[$z++] = '--'.$boundary.$this->newline - .'Content-type: '.$attachments[$i]['type'].'; ' - .'name="'.$basename.'"'.$this->newline - .'Content-Disposition: '.$attachments[$i]['disposition'].';'.$this->newline + $body .= '--'.$boundary.$this->newline + .'Content-Type: '.$this->_attachments[$i]['type'].'; name="'.$name.'"'.$this->newline + .'Content-Disposition: '.$this->_attachments[$i]['disposition'].';'.$this->newline .'Content-Transfer-Encoding: base64'.$this->newline - .(empty($attachments[$i]['cid']) ? '' : 'Content-ID: <'.$attachments[$i]['cid'].'>'.$this->newline); - - $attachment[$z++] = $attachments[$i]['content']; + .(empty($this->_attachments[$i]['cid']) ? '' : 'Content-ID: <'.$this->_attachments[$i]['cid'].'>'.$this->newline.$this->newline) + .$this->_attachments[$i]['content'].$this->newline; } - return implode($this->newline, $attachment).$this->newline.'--'.$boundary.'--'; + // $name won't be set if no attachments were appended, + // and therefore a boundary wouldn't be necessary + empty($name) OR $body .= '--'.$boundary.'--'; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From df70014e4be5b7d45c123adecd194b457ffb971b Mon Sep 17 00:00:00 2001 From: el-ma Date: Wed, 25 May 2016 18:03:28 +0300 Subject: added "Alexa Crawler" --- application/config/user_agents.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/config/user_agents.php b/application/config/user_agents.php index 721ec08d3..f520df9bd 100644 --- a/application/config/user_agents.php +++ b/application/config/user_agents.php @@ -208,5 +208,6 @@ $robots = array( 'CRAZYWEBCRAWLER' => 'Crazy Webcrawler', 'adsbot-google' => 'AdsBot Google', 'feedfetcher-google' => 'Feedfetcher Google', - 'curious george' => 'Curious George' + 'curious george' => 'Curious George', + 'ia_archiver' => 'Alexa Crawler' ); -- cgit v1.2.3-24-g4f1b From 5bdcdd1f6c263ecdccabeb20f313215fb8532b88 Mon Sep 17 00:00:00 2001 From: el-ma Date: Thu, 26 May 2016 09:34:16 +0300 Subject: Update robots in config/user_agents.php Added Majestic-12 and Uptimebot --- application/config/user_agents.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/application/config/user_agents.php b/application/config/user_agents.php index f520df9bd..1359bbea9 100644 --- a/application/config/user_agents.php +++ b/application/config/user_agents.php @@ -209,5 +209,7 @@ $robots = array( 'adsbot-google' => 'AdsBot Google', 'feedfetcher-google' => 'Feedfetcher Google', 'curious george' => 'Curious George', - 'ia_archiver' => 'Alexa Crawler' + 'ia_archiver' => 'Alexa Crawler', + 'MJ12bot' => 'Majestic-12', + 'Uptimebot' => 'Uptimebot' ); -- cgit v1.2.3-24-g4f1b From e341601efed83a2c9cdca72de30de43a7ae12e1d Mon Sep 17 00:00:00 2001 From: Robert Angyal Date: Sat, 4 Jun 2016 12:12:28 +0200 Subject: Update Email.php --- system/libraries/Email.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 21b62fea0..0a55e1841 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1426,17 +1426,17 @@ class CI_Email { .$this->_prep_quoted_printable($this->_body).$this->newline.$this->newline .'--'.$alt_boundary.'--'.$this->newline.$this->newline; - // multipart/mixed attachments - if ( ! empty($atc_boundary)) + if ( ! empty($rel_boundary)) { $body .= $this->newline.$this->newline; - $this->_append_attachments($body, $atc_boundary, 'mixed'); + $this->_append_attachments($body, $rel_boundary, 'related'); } - if ( ! empty($rel_boundary)) + // multipart/mixed attachments + if ( ! empty($atc_boundary)) { $body .= $this->newline.$this->newline; - $this->_append_attachments($body, $rel_boundary, 'related'); + $this->_append_attachments($body, $atc_boundary, 'mixed'); } break; @@ -1455,7 +1455,7 @@ class CI_Email { { foreach ($this->_attachments as &$attachment) { - if ($attachment[$i]['multipart'] === $type) + if ($attachment['multipart'] === $type) { return TRUE; } -- cgit v1.2.3-24-g4f1b From e947ff5e84e46cef404c7403e0d94b206c1a6404 Mon Sep 17 00:00:00 2001 From: kenjis Date: Sun, 26 Jun 2016 20:49:07 +0900 Subject: Fix oci8_forge * Oracle does not have `create table if exists` * Oracle has only NUMBER for integer Signed-off-by: Kenji Suzuki --- system/database/drivers/oci8/oci8_forge.php | 37 ++++++++++++++++++++++ .../drivers/pdo/subdrivers/pdo_oci_forge.php | 35 ++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 1ca559a32..989c7a8b7 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -53,6 +53,13 @@ class CI_DB_oci8_forge extends CI_DB_forge { */ protected $_create_database = FALSE; + /** + * CREATE TABLE IF statement + * + * @var string + */ + protected $_create_table_if = FALSE; + /** * DROP DATABASE statement * @@ -146,4 +153,34 @@ class CI_DB_oci8_forge extends CI_DB_forge { // Not supported - sequences and triggers must be used instead } + // -------------------------------------------------------------------- + + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'INT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'BIGINT': + $attributes['TYPE'] = 'NUMBER'; + return; + default: return; + } + } + } diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index d0b7be8f2..f7b7f8f5a 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -53,6 +53,13 @@ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge { */ protected $_create_database = FALSE; + /** + * CREATE TABLE IF statement + * + * @var string + */ + protected $_create_table_if = FALSE; + /** * DROP DATABASE statement * @@ -146,4 +153,32 @@ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge { // Not supported - sequences and triggers must be used instead } + /** + * Field attribute TYPE + * + * Performs a data type mapping between different databases. + * + * @param array &$attributes + * @return void + */ + protected function _attr_type(&$attributes) + { + switch (strtoupper($attributes['TYPE'])) + { + case 'TINYINT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'MEDIUMINT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'INT': + $attributes['TYPE'] = 'NUMBER'; + return; + case 'BIGINT': + $attributes['TYPE'] = 'NUMBER'; + return; + default: return; + } + } + } -- cgit v1.2.3-24-g4f1b From 4b933ad9d24daf67e28d804b95a231a707afede3 Mon Sep 17 00:00:00 2001 From: kenjis Date: Tue, 28 Jun 2016 11:20:35 +0900 Subject: Remove duplicated $_create_table_if Signed-off-by: Kenji Suzuki --- system/database/drivers/pdo/subdrivers/pdo_oci_forge.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index f7b7f8f5a..94a52ffc8 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -67,13 +67,6 @@ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge { */ protected $_drop_database = FALSE; - /** - * CREATE TABLE IF statement - * - * @var string - */ - protected $_create_table_if = 'CREATE TABLE IF NOT EXISTS'; - /** * UNSIGNED support * -- cgit v1.2.3-24-g4f1b From 87f7634117c34a7667b1eb13c39bf8e53bdb1b87 Mon Sep 17 00:00:00 2001 From: chestnutprog Date: Wed, 6 Jul 2016 21:13:22 +0800 Subject: Update Upload.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 特殊文件名可能会引起bug --- system/libraries/Upload.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index fa365058c..7b94a230c 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -601,7 +601,7 @@ class CI_Upload { 'file_type' => $this->file_type, 'file_path' => $this->upload_path, 'full_path' => $this->upload_path.$this->file_name, - 'raw_name' => str_replace($this->file_ext, '', $this->file_name), + 'raw_name' => substr($this->file_name, 0, strlen($this->file_name) - strlen($this->file_ext)), 'orig_name' => $this->orig_name, 'client_name' => $this->client_name, 'file_ext' => $this->file_ext, -- cgit v1.2.3-24-g4f1b From 64d9d1ec12be9f02459a5e5c8a9124fc97686529 Mon Sep 17 00:00:00 2001 From: nopesled Date: Thu, 7 Jul 2016 17:40:47 +0100 Subject: Update path_helper.php Protect against RFI via php:// wrapper --- system/helpers/path_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/path_helper.php b/system/helpers/path_helper.php index 838ece9e9..f3757affb 100644 --- a/system/helpers/path_helper.php +++ b/system/helpers/path_helper.php @@ -61,7 +61,7 @@ if ( ! function_exists('set_realpath')) function set_realpath($path, $check_existance = FALSE) { // Security check to make sure the path is NOT a URL. No remote file inclusion! - if (preg_match('#^(http:\/\/|https:\/\/|www\.|ftp)#i', $path) OR filter_var($path, FILTER_VALIDATE_IP) === $path ) + if (preg_match('#^(http:\/\/|https:\/\/|www\.|ftp|php)#i', $path) OR filter_var($path, FILTER_VALIDATE_IP) === $path ) { show_error('The path you submitted must be a local server path, not a URL'); } -- cgit v1.2.3-24-g4f1b From 85eaa0bff12574b8a1c08b68942ff070e6bb341c Mon Sep 17 00:00:00 2001 From: nopesled Date: Thu, 7 Jul 2016 17:48:22 +0100 Subject: Update path_helper.php --- system/helpers/path_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/path_helper.php b/system/helpers/path_helper.php index f3757affb..18e175093 100644 --- a/system/helpers/path_helper.php +++ b/system/helpers/path_helper.php @@ -61,7 +61,7 @@ if ( ! function_exists('set_realpath')) function set_realpath($path, $check_existance = FALSE) { // Security check to make sure the path is NOT a URL. No remote file inclusion! - if (preg_match('#^(http:\/\/|https:\/\/|www\.|ftp|php)#i', $path) OR filter_var($path, FILTER_VALIDATE_IP) === $path ) + if (preg_match('#^(http:\/\/|https:\/\/|www\.|ftp|php:\/\/)#i', $path) OR filter_var($path, FILTER_VALIDATE_IP) === $path ) { show_error('The path you submitted must be a local server path, not a URL'); } -- cgit v1.2.3-24-g4f1b From a1b0c7e3e5e7c63defbb58bae77b50370df30524 Mon Sep 17 00:00:00 2001 From: Claudio Galdiolo Date: Thu, 7 Jul 2016 15:32:12 -0400 Subject: recommend PHP >= 5.6 PHP 5.5 end of life is July 10, 2016 --- readme.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.rst b/readme.rst index 84ecc67f9..7a376322d 100644 --- a/readme.rst +++ b/readme.rst @@ -29,7 +29,7 @@ guide change log Date: Mon, 11 Jul 2016 18:01:54 +0800 Subject: Use negative length for speeding up. Signed-off-by: tianhe1986 --- system/libraries/Upload.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 7b94a230c..056f6de1e 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -601,7 +601,7 @@ class CI_Upload { 'file_type' => $this->file_type, 'file_path' => $this->upload_path, 'full_path' => $this->upload_path.$this->file_name, - 'raw_name' => substr($this->file_name, 0, strlen($this->file_name) - strlen($this->file_ext)), + 'raw_name' => substr($this->file_name, 0, -strlen($this->file_ext)), 'orig_name' => $this->orig_name, 'client_name' => $this->client_name, 'file_ext' => $this->file_ext, -- cgit v1.2.3-24-g4f1b From e12fcec770d7bc03f746c291e96cc75b51475f74 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 19 Jul 2016 13:37:40 +0300 Subject: [ci skip] Fix an undefined index for 'timeout' in Redis session driver http://forum.codeigniter.com/thread-64219.html --- system/libraries/Session/drivers/Session_redis_driver.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index ad14cbfdc..d3a265958 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -99,8 +99,9 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle elseif (preg_match('#(?:tcp://)?([^:?]+)(?:\:(\d+))?(?\?.+)?#', $this->_config['save_path'], $matches)) { $save_path = array( - 'host' => $matches[1], - 'port' => empty($matches[2]) ? NULL : $matches[2] + 'host' => $matches[1], + 'port' => empty($matches[2]) ? NULL : $matches[2], + 'timeout' => NULL // We always pass this to Redis::connect(), so it needs to exist ); } else -- cgit v1.2.3-24-g4f1b From ac86263d83eea14f346e358cf7666d6ad21f0dfc Mon Sep 17 00:00:00 2001 From: Harrison Emmanuel Date: Thu, 21 Jul 2016 01:39:55 +0100 Subject: Fixed typos Changed umark_flash() and umark_temp() to unmark_flash() and unmark_temp() to match with their respective methods in the Session class. --- user_guide_src/source/libraries/sessions.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/libraries/sessions.rst b/user_guide_src/source/libraries/sessions.rst index 9c9761bbf..082828c4e 100644 --- a/user_guide_src/source/libraries/sessions.rst +++ b/user_guide_src/source/libraries/sessions.rst @@ -906,7 +906,7 @@ Class Reference Gets a list of all ``$_SESSION`` that have been marked as "flashdata". - .. php:method:: umark_flash($key) + .. php:method:: unmark_flash($key) :param mixed $key: Key to be un-marked as flashdata, or an array of multiple keys :rtype: void @@ -971,7 +971,7 @@ Class Reference Gets a list of all ``$_SESSION`` that have been marked as "tempdata". - .. php:method:: umark_temp($key) + .. php:method:: unmark_temp($key) :param mixed $key: Key to be un-marked as tempdata, or an array of multiple keys :rtype: void -- cgit v1.2.3-24-g4f1b From 1dbe93713f138ce24f971b18ac49f6cc627be1ea Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Sat, 23 Jul 2016 00:19:00 +0800 Subject: Call strtolower before comparing $_SERVER['HTTP_X_FORWARDED_PROTO']. Signed-off-by: tianhe1986 --- system/core/Common.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Common.php b/system/core/Common.php index b87ce4d62..85e18e406 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -355,7 +355,7 @@ if ( ! function_exists('is_https')) { return TRUE; } - elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') + elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) === 'https') { return TRUE; } -- cgit v1.2.3-24-g4f1b From 5afba5a8c444d608712174665288aa10237e8b27 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Sat, 23 Jul 2016 01:02:01 +0800 Subject: Replace url_encoded invisible characters case-insensitively. Signed-off-by: tianhe1986 --- system/core/Common.php | 4 ++-- tests/codeigniter/core/Common_test.php | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/system/core/Common.php b/system/core/Common.php index b87ce4d62..e0d011db7 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -716,8 +716,8 @@ if ( ! function_exists('remove_invisible_characters')) // carriage return (dec 13) and horizontal tab (dec 09) if ($url_encoded) { - $non_displayables[] = '/%0[0-8bcef]/'; // url encoded 00-08, 11, 12, 14, 15 - $non_displayables[] = '/%1[0-9a-f]/'; // url encoded 16-31 + $non_displayables[] = '/%0[0-8bcef]/i'; // url encoded 00-08, 11, 12, 14, 15 + $non_displayables[] = '/%1[0-9a-f]/i'; // url encoded 16-31 } $non_displayables[] = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S'; // 00-08, 11, 12, 14-31, 127 diff --git a/tests/codeigniter/core/Common_test.php b/tests/codeigniter/core/Common_test.php index 81a185eaf..ca19e5de0 100644 --- a/tests/codeigniter/core/Common_test.php +++ b/tests/codeigniter/core/Common_test.php @@ -54,4 +54,16 @@ class Common_test extends CI_TestCase { ); } + // ------------------------------------------------------------------------ + + public function test_remove_invisible_characters() + { + $raw_string = 'Here is a string containing invisible'.chr(0x08).' text %0e.'; + $removed_string = 'Here is a string containing invisible text %0e.'; + $this->assertEquals($removed_string, remove_invisible_characters($raw_string, FALSE)); + + $raw_string = 'Here is a string %0econtaining url_encoded invisible%1F text.'; + $removed_string = 'Here is a string containing url_encoded invisible text.'; + $this->assertEquals($removed_string, remove_invisible_characters($raw_string)); + } } \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 12117be8293eff1a56b575ccc2e5d11c68c8cfcf Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 26 Jul 2016 21:19:58 +0300 Subject: Fix Travis builds --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4680d2ac6..22c3b6e18 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,10 +19,7 @@ env: sudo: false before_script: -<<<<<<< HEAD - sh -c "composer install --dev --no-progress" -======= ->>>>>>> 3.1-stable - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS ci_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'create database ci_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'mysql' ] || [ '$DB' = 'mysqli' ] || [ '$DB' = 'pdo/mysql' ]; then mysql -e 'create database IF NOT EXISTS ci_test;'; fi" -- cgit v1.2.3-24-g4f1b From 4a0ed97e26101bb5346972d2486668e1b5dfa561 Mon Sep 17 00:00:00 2001 From: Masterklavi Date: Sun, 31 Jul 2016 03:25:56 +0500 Subject: Changed the return value of CI_DB_result::_fetch_object(..) to object --- system/database/DB_result.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_result.php b/system/database/DB_result.php index d9d1fccc7..4e2429376 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -660,7 +660,7 @@ class CI_DB_result { */ protected function _fetch_object($class_name = 'stdClass') { - return array(); + return new $class_name(); } } -- cgit v1.2.3-24-g4f1b From de4686ab2cb4d8de9995eeba62a12f632c2e3324 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 9 Aug 2016 19:07:47 +0800 Subject: CI_Unit_test: Fix name of visible test items. Signed-off-by: tianhe1986 --- system/libraries/Unit_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Unit_test.php b/system/libraries/Unit_test.php index 3ac6af78e..ea78e0d98 100644 --- a/system/libraries/Unit_test.php +++ b/system/libraries/Unit_test.php @@ -291,7 +291,7 @@ class CI_Unit_test { { continue; } - elseif (in_array($key, array('test_name', 'test_datatype', 'test_res_datatype', 'result'), TRUE)) + elseif (in_array($key, array('test_name', 'test_datatype', 'res_datatype', 'result'), TRUE)) { if (FALSE !== ($line = $CI->lang->line(strtolower('ut_'.$val), FALSE))) { -- cgit v1.2.3-24-g4f1b From a40418b794843f9ab37c30a909f3118a5c1c63af Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 9 Aug 2016 19:25:07 +0800 Subject: CI_Unit_test: Do not replace "is_double" with "is_float". Signed-off-by: tianhe1986 --- system/libraries/Unit_test.php | 1 - 1 file changed, 1 deletion(-) diff --git a/system/libraries/Unit_test.php b/system/libraries/Unit_test.php index 3ac6af78e..eee0723a1 100644 --- a/system/libraries/Unit_test.php +++ b/system/libraries/Unit_test.php @@ -154,7 +154,6 @@ class CI_Unit_test { if (in_array($expected, array('is_object', 'is_string', 'is_bool', 'is_true', 'is_false', 'is_int', 'is_numeric', 'is_float', 'is_double', 'is_array', 'is_null', 'is_resource'), TRUE)) { - $expected = str_replace('is_double', 'is_float', $expected); $result = $expected($test); $extype = str_replace(array('true', 'false'), 'bool', str_replace('is_', '', $expected)); } -- cgit v1.2.3-24-g4f1b From 4e239a3913d161f560de9e20a3ef291ebf1c16fb Mon Sep 17 00:00:00 2001 From: Vivek Dinesh Date: Tue, 9 Aug 2016 22:34:42 +0530 Subject: URI schemes are not case sensitive Signed-off-by: Vivek Dinesh --- system/libraries/Form_validation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 04445f5b7..d5f67d1da 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1200,7 +1200,7 @@ class CI_Form_validation { { return FALSE; } - elseif ( ! in_array($matches[1], array('http', 'https'), TRUE)) + elseif ( ! in_array(strtolower($matches[1]), array('http', 'https'), TRUE)) { return FALSE; } -- cgit v1.2.3-24-g4f1b From fba242cf6bc99833c21fc3600fdff2691244e243 Mon Sep 17 00:00:00 2001 From: Vivek Dinesh Date: Tue, 9 Aug 2016 22:43:52 +0530 Subject: URI schemes are not case sensitive Signed-off-by: Vivek Dinesh --- system/libraries/Trackback.php | 2 +- system/libraries/Xmlrpc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Trackback.php b/system/libraries/Trackback.php index a9b256464..848f5b3c9 100644 --- a/system/libraries/Trackback.php +++ b/system/libraries/Trackback.php @@ -370,7 +370,7 @@ class CI_Trackback { { $url = trim($url); - if (strpos($url, 'http') !== 0) + if (strpos(strtolower($url), 'http') !== 0) { $url = 'http://'.$url; } diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index f965858e2..b01691ac2 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -352,7 +352,7 @@ class CI_Xmlrpc { */ public function server($url, $port = 80, $proxy = FALSE, $proxy_port = 8080) { - if (strpos($url, 'http') !== 0) + if (strpos(strtolower($url), 'http') !== 0) { $url = 'http://'.$url; } -- cgit v1.2.3-24-g4f1b From 656fd7eef9624c3c07918b2d573d9ccb6f971c57 Mon Sep 17 00:00:00 2001 From: Vivek Dinesh Date: Wed, 10 Aug 2016 17:36:49 +0530 Subject: Better usage Based on GitHub discussion. Signed-off-by: Vivek Dinesh --- system/libraries/Trackback.php | 2 +- system/libraries/Xmlrpc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Trackback.php b/system/libraries/Trackback.php index 848f5b3c9..7222c00c2 100644 --- a/system/libraries/Trackback.php +++ b/system/libraries/Trackback.php @@ -370,7 +370,7 @@ class CI_Trackback { { $url = trim($url); - if (strpos(strtolower($url), 'http') !== 0) + if (stripos($url, 'http') !== 0) { $url = 'http://'.$url; } diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index b01691ac2..181a104d0 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -352,7 +352,7 @@ class CI_Xmlrpc { */ public function server($url, $port = 80, $proxy = FALSE, $proxy_port = 8080) { - if (strpos(strtolower($url), 'http') !== 0) + if (stripos($url, 'http') !== 0) { $url = 'http://'.$url; } -- cgit v1.2.3-24-g4f1b From e1f76634b6c658680c2ea869dc1bcc38828c7da0 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 11 Aug 2016 12:40:47 +0800 Subject: Cache_file: use is_file() for checking instead of file_exists(). Signed-off-by: tianhe1986 --- system/libraries/Cache/drivers/Cache_file.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index e1ce16a5a..f579eaae4 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -120,7 +120,7 @@ class CI_Cache_file extends CI_Driver { */ public function delete($id) { - return file_exists($this->_cache_path.$id) ? unlink($this->_cache_path.$id) : FALSE; + return is_file($this->_cache_path.$id) ? unlink($this->_cache_path.$id) : FALSE; } // ------------------------------------------------------------------------ @@ -216,7 +216,7 @@ class CI_Cache_file extends CI_Driver { */ public function get_metadata($id) { - if ( ! file_exists($this->_cache_path.$id)) + if ( ! is_file($this->_cache_path.$id)) { return FALSE; } -- cgit v1.2.3-24-g4f1b From 4c8a0eb32c2aa94eb621171a89084f1388e3c4c5 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 11 Aug 2016 12:54:15 +0800 Subject: Cache_file: use $data['time'] for calculating expired time. Signed-off-by: tianhe1986 --- system/libraries/Cache/drivers/Cache_file.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index e1ce16a5a..c46de2f95 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -233,7 +233,7 @@ class CI_Cache_file extends CI_Driver { } return array( - 'expire' => $mtime + $data['ttl'], + 'expire' => $data['time'] + $data['ttl'], 'mtime' => $mtime ); } -- cgit v1.2.3-24-g4f1b From 87c50228998440b86f1ee4233ea8c6aacb0a8a3c Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 11 Aug 2016 20:03:34 +0800 Subject: Checking for $data['time']. Signed-off-by: tianhe1986 --- system/libraries/Cache/drivers/Cache_file.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index c46de2f95..e5614f8bd 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -227,7 +227,7 @@ class CI_Cache_file extends CI_Driver { { $mtime = filemtime($this->_cache_path.$id); - if ( ! isset($data['ttl'])) + if ( ! isset($data['ttl']) OR ! isset($data['time'])) { return FALSE; } -- cgit v1.2.3-24-g4f1b From b6ed3d102dc7c8e2a591405e56aa780d64d385d6 Mon Sep 17 00:00:00 2001 From: Vivek Dinesh Date: Thu, 11 Aug 2016 17:40:45 +0530 Subject: URI schemes are not case-sensitive Signed-off-by: Vivek Dinesh --- system/helpers/url_helper.php | 2 +- system/libraries/Form_validation.php | 4 ++-- system/libraries/Javascript.php | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index fd7b5e116..82b9e02af 100644 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -443,7 +443,7 @@ if ( ! function_exists('prep_url')) */ function prep_url($str = '') { - if ($str === 'http://' OR $str === '') + if (strtolower($str) === 'http://' OR $str === '') { return ''; } diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 61f0298fd..fa28a6207 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1523,12 +1523,12 @@ class CI_Form_validation { */ public function prep_url($str = '') { - if ($str === 'http://' OR $str === '') + if (strtolower($str) === 'http://' OR $str === '') { return ''; } - if (strpos($str, 'http://') !== 0 && strpos($str, 'https://') !== 0) + if (stripos($str, 'http://') !== 0 && stripos($str, 'https://') !== 0) { return 'http://'.$str; } diff --git a/system/libraries/Javascript.php b/system/libraries/Javascript.php index dcf933779..2ddab38ee 100644 --- a/system/libraries/Javascript.php +++ b/system/libraries/Javascript.php @@ -650,11 +650,11 @@ class CI_Javascript { $this->_javascript_location = $this->CI->config->item('javascript_location'); } - if ($relative === TRUE OR strpos($external_file, 'http://') === 0 OR strpos($external_file, 'https://') === 0) + if ($relative === TRUE OR stripos($external_file, 'http://') === 0 OR stripos($external_file, 'https://') === 0) { $str = $this->_open_script($external_file); } - elseif (strpos($this->_javascript_location, 'http://') !== FALSE) + elseif (stripos($this->_javascript_location, 'http://') !== FALSE) { $str = $this->_open_script($this->_javascript_location.$external_file); } -- cgit v1.2.3-24-g4f1b From ae31a918a3c0eff331f3ae2f03afca25158e93ff Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 11 Aug 2016 20:13:06 +0800 Subject: Using "! isset($a, $b, ……)" instead of "! isset($a) OR ! isset($b) OR ……" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: tianhe1986 --- system/libraries/Cache/drivers/Cache_file.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index e5614f8bd..554f10b95 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -227,7 +227,7 @@ class CI_Cache_file extends CI_Driver { { $mtime = filemtime($this->_cache_path.$id); - if ( ! isset($data['ttl']) OR ! isset($data['time'])) + if ( ! isset($data['ttl'], $data['time'])) { return FALSE; } -- cgit v1.2.3-24-g4f1b From 669cc5f881970ec3cc19b57f4da0382c7d8f5542 Mon Sep 17 00:00:00 2001 From: Vivek Dinesh Date: Thu, 11 Aug 2016 18:21:11 +0530 Subject: Removed useless checks Based on GitHub discussion. Signed-off-by: Vivek Dinesh --- system/helpers/url_helper.php | 2 +- system/libraries/Form_validation.php | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index 82b9e02af..8a5a75c44 100644 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -443,7 +443,7 @@ if ( ! function_exists('prep_url')) */ function prep_url($str = '') { - if (strtolower($str) === 'http://' OR $str === '') + if ($str === '') { return ''; } diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index fa28a6207..86a569ced 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1523,12 +1523,7 @@ class CI_Form_validation { */ public function prep_url($str = '') { - if (strtolower($str) === 'http://' OR $str === '') - { - return ''; - } - - if (stripos($str, 'http://') !== 0 && stripos($str, 'https://') !== 0) + if ($str !== '' && stripos($str, 'http://') !== 0 && stripos($str, 'https://') !== 0) { return 'http://'.$str; } -- cgit v1.2.3-24-g4f1b From a309badf3a73f427af030e790e5080347da67372 Mon Sep 17 00:00:00 2001 From: Kristaps V Date: Fri, 12 Aug 2016 17:55:36 +0300 Subject: Fix custom user agent not working Signed-off-by: Kristaps V --- system/libraries/Email.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 50d0cd04e..426731135 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1206,6 +1206,7 @@ class CI_Email { */ protected function _build_headers() { + $this->set_header('User-Agent', $this->useragent); $this->set_header('X-Sender', $this->clean_email($this->_headers['From'])); $this->set_header('X-Mailer', $this->useragent); $this->set_header('X-Priority', $this->_priorities[$this->priority]); -- cgit v1.2.3-24-g4f1b From abd7e295e65a27ae431641a7bbcbdc9b1fddedf5 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Fri, 19 Aug 2016 14:31:52 +0800 Subject: Common: Adding E_PARSE in error judgment. Signed-off-by: tianhe1986 --- system/core/Common.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Common.php b/system/core/Common.php index d66649f59..2c7651943 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -598,7 +598,7 @@ if ( ! function_exists('_error_handler')) */ function _error_handler($severity, $message, $filepath, $line) { - $is_error = (((E_ERROR | E_COMPILE_ERROR | E_CORE_ERROR | E_USER_ERROR) & $severity) === $severity); + $is_error = (((E_ERROR | E_PARSE | E_COMPILE_ERROR | E_CORE_ERROR | E_USER_ERROR) & $severity) === $severity); // When an error occurred, set the status header to '500 Internal Server Error' // to indicate to the client something went wrong. -- cgit v1.2.3-24-g4f1b From b52ae04ae36b8d02b04b275cf34a73bf39bd5dff Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 19 Aug 2016 19:26:27 +0300 Subject: Travis builds on PHP 7.1 (beta) --- .travis.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 22c3b6e18..334cb614f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,8 @@ php: - 5.4 - 5.5 - 5.6 - - 7 + - 7.0 + - 7.1 - hhvm env: @@ -29,12 +30,15 @@ script: phpunit -d zend.enable_gc=0 -d date.timezone=UTC --coverage-text --confi matrix: allow_failures: - php: hhvm + - php: 7.1 exclude: - php: hhvm env: DB=pgsql - php: hhvm env: DB=pdo/pgsql - - php: 7 + - php: 7.0 + env: DB=mysql + - php: 7.1 env: DB=mysql branches: -- cgit v1.2.3-24-g4f1b From 50e87ec848f27bb5e40093ade2b67dc104679fb9 Mon Sep 17 00:00:00 2001 From: Igor Ostapchuk Date: Sun, 21 Aug 2016 16:28:28 +0300 Subject: return fix --- system/libraries/Email.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 50d0cd04e..6a7e2b3a7 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1202,7 +1202,7 @@ class CI_Email { /** * Build final headers * - * @return string + * @return void */ protected function _build_headers() { @@ -2046,7 +2046,7 @@ class CI_Email { * * @param string * @param string - * @return string + * @return bool */ protected function _send_command($cmd, $data = '') { -- cgit v1.2.3-24-g4f1b From aed367157d396c8320e278d74227664e0af43d51 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Mon, 22 Aug 2016 19:04:27 +0800 Subject: Standard: filtering "resource" type in hex2bin() Signed-off-by: tianhe1986 --- system/core/compat/standard.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php index c839c9bc9..6b7caa485 100644 --- a/system/core/compat/standard.php +++ b/system/core/compat/standard.php @@ -153,7 +153,7 @@ if ( ! function_exists('hex2bin')) */ function hex2bin($data) { - if (in_array($type = gettype($data), array('array', 'double', 'object'), TRUE)) + if (in_array($type = gettype($data), array('array', 'double', 'object', 'resource'), TRUE)) { if ($type === 'object' && method_exists($data, '__toString')) { -- cgit v1.2.3-24-g4f1b From 24ad2dd11ed66bafe3a8a9224b310d7e4b005446 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 23 Aug 2016 17:44:21 +0800 Subject: Hash: processing algorithm name case-insensitively in hash_pbkdf2(): Signed-off-by: tianhe1986 --- system/core/compat/hash.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/core/compat/hash.php b/system/core/compat/hash.php index 6854e4c26..6d4a0c19a 100644 --- a/system/core/compat/hash.php +++ b/system/core/compat/hash.php @@ -119,6 +119,7 @@ if ( ! function_exists('hash_pbkdf2')) */ function hash_pbkdf2($algo, $password, $salt, $iterations, $length = 0, $raw_output = FALSE) { + $algo = strtolower($algo); if ( ! in_array($algo, hash_algos(), TRUE)) { trigger_error('hash_pbkdf2(): Unknown hashing algorithm: '.$algo, E_USER_WARNING); -- cgit v1.2.3-24-g4f1b From 1de09516123b4ca1caeef667d58261105d854ffe Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 23 Aug 2016 18:21:35 +0800 Subject: Move strtolower() inside the is_array() check, Signed-off-by: tianhe1986 --- system/core/compat/hash.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/system/core/compat/hash.php b/system/core/compat/hash.php index 6d4a0c19a..d567d0f80 100644 --- a/system/core/compat/hash.php +++ b/system/core/compat/hash.php @@ -119,8 +119,7 @@ if ( ! function_exists('hash_pbkdf2')) */ function hash_pbkdf2($algo, $password, $salt, $iterations, $length = 0, $raw_output = FALSE) { - $algo = strtolower($algo); - if ( ! in_array($algo, hash_algos(), TRUE)) + if ( ! in_array(strtolower($algo), hash_algos(), TRUE)) { trigger_error('hash_pbkdf2(): Unknown hashing algorithm: '.$algo, E_USER_WARNING); return FALSE; -- cgit v1.2.3-24-g4f1b From 27210ea42f3aea0d2e52b2738181f3fb1170775e Mon Sep 17 00:00:00 2001 From: Antônio Date: Fri, 26 Aug 2016 17:00:23 -0300 Subject: fix typo --- system/core/Security.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Security.php b/system/core/Security.php index a29070095..3a5da4fde 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -230,7 +230,7 @@ class CI_Security { $this->csrf_show_error(); } - // We kill this since we're done and we don't want to polute the _POST array + // We kill this since we're done and we don't want to pollute the _POST array unset($_POST[$this->_csrf_token_name]); // Regenerate on every submission? -- cgit v1.2.3-24-g4f1b From 19d033c5e32b0ab61041381c76b34f972513e525 Mon Sep 17 00:00:00 2001 From: "Éderson T. Szlachta" Date: Mon, 29 Aug 2016 19:04:34 -0300 Subject: OpenOffice mime-types According to IANA media types : http://www.iana.org/assignments/media-types/media-types.xhtml --- application/config/mimes.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index 8bac87251..017653335 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -163,5 +163,21 @@ return array( 'vcf' => 'text/x-vcard', 'srt' => array('text/srt', 'text/plain'), 'vtt' => array('text/vtt', 'text/plain'), - 'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon') + 'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon'), + 'odc' => 'application/vnd.oasis.opendocument.chart', + 'otc' => 'application/vnd.oasis.opendocument.chart-template', + 'odf' => 'application/vnd.oasis.opendocument.formula', + 'otf' => 'application/vnd.oasis.opendocument.formula-template', + 'odg' => 'application/vnd.oasis.opendocument.graphics', + 'otg' => 'application/vnd.oasis.opendocument.graphics-template', + 'odi' => 'application/vnd.oasis.opendocument.image', + 'oti' => 'application/vnd.oasis.opendocument.image-template', + 'odp' => 'application/vnd.oasis.opendocument.presentation', + 'otp' => 'application/vnd.oasis.opendocument.presentation-template', + 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', + 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', + 'odt' => 'application/vnd.oasis.opendocument.text', + 'odm' => 'application/vnd.oasis.opendocument.text-master', + 'ott' => 'application/vnd.oasis.opendocument.text-template', + 'oth' => 'application/vnd.oasis.opendocument.text-web' ); -- cgit v1.2.3-24-g4f1b From 9dc8cacf71ed228452da451b2cf216a4fa6c1cd1 Mon Sep 17 00:00:00 2001 From: intekhab Date: Fri, 9 Sep 2016 15:53:40 +0530 Subject: supplied flag to turn off mysqli SSL verification if ssl_verify passed as false --- system/database/drivers/mysqli/mysqli_driver.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index c26f975c4..2dc2a9710 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -184,6 +184,7 @@ class CI_DB_mysqli_driver extends CI_DB { elseif (defined('MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT')) { $this->_mysqli->options(MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT, TRUE); + $client_flags |= MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT; } } -- cgit v1.2.3-24-g4f1b From 24bd981e2fdbb22064f3d89c81367f69f9e52f6a Mon Sep 17 00:00:00 2001 From: intekhab Date: Fri, 9 Sep 2016 17:45:02 +0530 Subject: Removed mysqli options function for ssl certificate verification false --- system/database/drivers/mysqli/mysqli_driver.php | 1 - 1 file changed, 1 deletion(-) diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index 2dc2a9710..cf931a351 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -183,7 +183,6 @@ class CI_DB_mysqli_driver extends CI_DB { // https://bugs.php.net/bug.php?id=68344 elseif (defined('MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT')) { - $this->_mysqli->options(MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT, TRUE); $client_flags |= MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT; } } -- cgit v1.2.3-24-g4f1b From c771ea6e0dd663e95ccbb9792a5dc82f0eb67939 Mon Sep 17 00:00:00 2001 From: Hex Date: Mon, 12 Sep 2016 14:30:56 +0800 Subject: Fix small doc problem. --- user_guide_src/source/installation/upgrade_210.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/installation/upgrade_210.rst b/user_guide_src/source/installation/upgrade_210.rst index 866dcf4ae..421435452 100644 --- a/user_guide_src/source/installation/upgrade_210.rst +++ b/user_guide_src/source/installation/upgrade_210.rst @@ -17,10 +17,10 @@ Step 2: Replace config/mimes.php ================================ This config file has been updated to contain more user agent types, -please copy it to _application/config/mimes.php*. +please copy it to *application/config/mimes.php*. Step 3: Update your user guide ============================== Please also replace your local copy of the user guide with the new -version. \ No newline at end of file +version. -- cgit v1.2.3-24-g4f1b From fd8d3987226bcde81db0682eee9c9acca0beb9a1 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 25 Sep 2016 19:52:58 +0300 Subject: - captcha helper uses now filemtime to get file timestamp - captcha generated files are a sha1 of current timestamp and word - changed the usage of microtime to time, as this is a more realistic approach Signed-off-by: George Petculescu --- system/helpers/captcha_helper.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 3c1e006f8..c2a1dcfbd 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -105,12 +105,13 @@ if ( ! function_exists('create_captcha')) // Remove old images // ----------------------------------- - $now = microtime(TRUE); + $now = time(); $current_dir = @opendir($img_path); while ($filename = @readdir($current_dir)) { - if (substr($filename, -4) === '.jpg' && (str_replace('.jpg', '', $filename) + $expiration) < $now) + if (in_array(substr($filename, -4), array('.jpg', '.png')) + && (filemtime($img_path.$filename) + $expiration) < $now) { @unlink($img_path.$filename); } @@ -319,12 +320,12 @@ if ( ! function_exists('create_captcha')) if (function_exists('imagejpeg')) { - $img_filename = $now.'.jpg'; + $img_filename = sha1($now.$word).'.jpg'; imagejpeg($im, $img_path.$img_filename); } elseif (function_exists('imagepng')) { - $img_filename = $now.'.png'; + $img_filename = sha1($now.$word).'.png'; imagepng($im, $img_path.$img_filename); } else -- cgit v1.2.3-24-g4f1b From 8d684c23364f2fd28700e0a5ae2e90dd7fab61fe Mon Sep 17 00:00:00 2001 From: Edwin Smulders Date: Tue, 27 Sep 2016 11:02:39 +0200 Subject: Remove inline styles from hidden form input This change fixes console errors when using a CSP header that disables inline styles. --- system/helpers/form_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index 8825ecc2c..aa7379f77 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -100,7 +100,7 @@ if ( ! function_exists('form_open')) { foreach ($hidden as $name => $value) { - $form .= ''."\n"; + $form .= ''."\n"; } } -- cgit v1.2.3-24-g4f1b From 7ed227b9075498e307c91a3ae0345755f935a520 Mon Sep 17 00:00:00 2001 From: logach Date: Tue, 27 Sep 2016 15:56:22 +0300 Subject: Add database index by default Select database if exists --- system/libraries/Cache/drivers/Cache_redis.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index ec4432437..2d1ead452 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -58,7 +58,8 @@ class CI_Cache_redis extends CI_Driver 'host' => '127.0.0.1', 'password' => NULL, 'port' => 6379, - 'timeout' => 0 + 'timeout' => 0, + 'database' => 0 ); /** @@ -113,6 +114,11 @@ class CI_Cache_redis extends CI_Driver { log_message('error', 'Cache: Redis authentication failed.'); } + + if (isset($config['database']) && $config['database'] > 0 && ! $this->_redis->select($config['database'])) + { + log_message('error', 'Cache: Redis select database failed.'); + } } catch (RedisException $e) { -- cgit v1.2.3-24-g4f1b From 49ef8402ffed15fd7d6cbf18f0dd5b04352344dd Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 27 Sep 2016 16:36:37 +0300 Subject: [ci skip] Add changelog entry for PR #4821 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 35dc76476..484e6a13b 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -18,6 +18,7 @@ Release Date: Not Released - :doc:`Cache Library ` changes include: - Added UNIX socket connection support to the 'memcached' driver. + - Added 'database' configuration option to the 'redis' driver, allowing to auto-select another database. - Changed the 'memcached' driver to ignore configurations that don't specify a hostname. - Removed the *socket_type* configuration setting from the 'redis' driver. - Changed data serialization logic in 'redis' driver for better performance. -- cgit v1.2.3-24-g4f1b From 6ed047335d216a74162aab488002239235dfe95e Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Tue, 27 Sep 2016 20:07:58 +0300 Subject: - revert --- system/helpers/captcha_helper.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index c2a1dcfbd..3c1e006f8 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -105,13 +105,12 @@ if ( ! function_exists('create_captcha')) // Remove old images // ----------------------------------- - $now = time(); + $now = microtime(TRUE); $current_dir = @opendir($img_path); while ($filename = @readdir($current_dir)) { - if (in_array(substr($filename, -4), array('.jpg', '.png')) - && (filemtime($img_path.$filename) + $expiration) < $now) + if (substr($filename, -4) === '.jpg' && (str_replace('.jpg', '', $filename) + $expiration) < $now) { @unlink($img_path.$filename); } @@ -320,12 +319,12 @@ if ( ! function_exists('create_captcha')) if (function_exists('imagejpeg')) { - $img_filename = sha1($now.$word).'.jpg'; + $img_filename = $now.'.jpg'; imagejpeg($im, $img_path.$img_filename); } elseif (function_exists('imagepng')) { - $img_filename = sha1($now.$word).'.png'; + $img_filename = $now.'.png'; imagepng($im, $img_path.$img_filename); } else -- cgit v1.2.3-24-g4f1b From 89eb04b5f09f4d7fb2d319e417bc188f0ed915d0 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Tue, 27 Sep 2016 20:25:43 +0300 Subject: - captcha helper will now look for .png files too when deleting old files --- system/helpers/captcha_helper.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 3c1e006f8..f6c42b4f7 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -110,7 +110,8 @@ if ( ! function_exists('create_captcha')) $current_dir = @opendir($img_path); while ($filename = @readdir($current_dir)) { - if (substr($filename, -4) === '.jpg' && (str_replace('.jpg', '', $filename) + $expiration) < $now) + if (in_array(substr($filename, -4), array('.jpg', '.png')) + && (str_replace(array('.jpg', '.png'), '', $filename) + $expiration) < $now) { @unlink($img_path.$filename); } -- cgit v1.2.3-24-g4f1b From f394b9e0a764d47532363cae8f3e491718fcf8fa Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Tue, 27 Sep 2016 20:28:24 +0300 Subject: - fixed identation --- system/helpers/captcha_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index f6c42b4f7..f2ff4dccf 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -111,7 +111,7 @@ if ( ! function_exists('create_captcha')) while ($filename = @readdir($current_dir)) { if (in_array(substr($filename, -4), array('.jpg', '.png')) - && (str_replace(array('.jpg', '.png'), '', $filename) + $expiration) < $now) + && (str_replace(array('.jpg', '.png'), '', $filename) + $expiration) < $now) { @unlink($img_path.$filename); } -- cgit v1.2.3-24-g4f1b From e36664c07896a9a9ef69daad5dc9f880ea08e5c4 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Thu, 29 Sep 2016 00:01:59 +0300 Subject: - download helper uses better file buffering when the content of a local file is output'd --- system/helpers/download_helper.php | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index a6463dfd7..3701e0b8b 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -121,11 +121,6 @@ if ( ! function_exists('force_download')) $filename = implode('.', $x); } - if ($data === NULL && ($fp = @fopen($filepath, 'rb')) === FALSE) - { - return; - } - // Clean output buffer if (ob_get_level() !== 0 && @ob_end_clean() === FALSE) { @@ -146,13 +141,12 @@ if ( ! function_exists('force_download')) exit($data); } - // Flush 1MB chunks of data - while ( ! feof($fp) && ($data = fread($fp, 1048576)) !== FALSE) - { - echo $data; - } + // Flush the file + if (@readfile($filepath) === FALSE) + { + return; + } - fclose($fp); exit; } } -- cgit v1.2.3-24-g4f1b From bdf21c4e4cae0c232661f783c2f7070a03a7a912 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Thu, 29 Sep 2016 00:26:46 +0300 Subject: - reverting changes, wrong branch selected. --- system/helpers/download_helper.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 3701e0b8b..a6463dfd7 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -121,6 +121,11 @@ if ( ! function_exists('force_download')) $filename = implode('.', $x); } + if ($data === NULL && ($fp = @fopen($filepath, 'rb')) === FALSE) + { + return; + } + // Clean output buffer if (ob_get_level() !== 0 && @ob_end_clean() === FALSE) { @@ -141,12 +146,13 @@ if ( ! function_exists('force_download')) exit($data); } - // Flush the file - if (@readfile($filepath) === FALSE) - { - return; - } + // Flush 1MB chunks of data + while ( ! feof($fp) && ($data = fread($fp, 1048576)) !== FALSE) + { + echo $data; + } + fclose($fp); exit; } } -- cgit v1.2.3-24-g4f1b From 826b6196b748c2c1ccca0dbb5703fd50c600afa5 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Fri, 30 Sep 2016 21:34:44 +0300 Subject: - download helper uses better file buffering when the content of a local file is output'd --- system/helpers/download_helper.php | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index a6463dfd7..7f5c2397a 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -121,11 +121,6 @@ if ( ! function_exists('force_download')) $filename = implode('.', $x); } - if ($data === NULL && ($fp = @fopen($filepath, 'rb')) === FALSE) - { - return; - } - // Clean output buffer if (ob_get_level() !== 0 && @ob_end_clean() === FALSE) { @@ -146,13 +141,12 @@ if ( ! function_exists('force_download')) exit($data); } - // Flush 1MB chunks of data - while ( ! feof($fp) && ($data = fread($fp, 1048576)) !== FALSE) + // Flush the file + if (@readfile($filepath) === FALSE) { - echo $data; + return; } - fclose($fp); exit; } } -- cgit v1.2.3-24-g4f1b From 8800fedd37be6fe4267ed7635fc536ff91a94c62 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sat, 1 Oct 2016 10:10:04 +0300 Subject: - small fix for HTML Table library: caption is not clearing properly and method chaining has been fixed for set_caption method. --- system/libraries/Table.php | 2 ++ user_guide_src/source/libraries/table.rst | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 3bce294d8..37a639d1d 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -277,6 +277,7 @@ class CI_Table { public function set_caption($caption) { $this->caption = $caption; + return $this; } // -------------------------------------------------------------------- @@ -426,6 +427,7 @@ class CI_Table { $this->rows = array(); $this->heading = array(); $this->auto_heading = TRUE; + $this->caption = NULL; return $this; } diff --git a/user_guide_src/source/libraries/table.rst b/user_guide_src/source/libraries/table.rst index 91ae1ae8d..fb6fefadb 100644 --- a/user_guide_src/source/libraries/table.rst +++ b/user_guide_src/source/libraries/table.rst @@ -275,11 +275,12 @@ Class Reference :returns: CI_Table instance (method chaining) :rtype: CI_Table - Lets you clear the table heading and row data. If you need to show multiple tables with different data you should to call this method + Lets you clear the table heading, row data, and the caption. If you need to show multiple tables with different data you should to call this method after each table has been generated to clear the previous table information. Example:: $this->load->library('table'); + $this->table->set_caption('Preferences'); $this->table->set_heading('Name', 'Color', 'Size'); $this->table->add_row('Fred', 'Blue', 'Small'); $this->table->add_row('Mary', 'Red', 'Large'); @@ -289,6 +290,7 @@ Class Reference $this->table->clear(); + $this->table->set_caption('Shipping'); $this->table->set_heading('Name', 'Day', 'Delivery'); $this->table->add_row('Fred', 'Wednesday', 'Express'); $this->table->add_row('Mary', 'Monday', 'Air'); -- cgit v1.2.3-24-g4f1b From 4cf8d4d4b2e4a5cb09b65a8ab4f6f4c2f59b4b1e Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sat, 1 Oct 2016 10:11:33 +0300 Subject: - fixed codingstyle --- system/libraries/Table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 37a639d1d..08e530800 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -427,7 +427,7 @@ class CI_Table { $this->rows = array(); $this->heading = array(); $this->auto_heading = TRUE; - $this->caption = NULL; + $this->caption = NULL; return $this; } -- cgit v1.2.3-24-g4f1b From e67855fffea9496e2aaf8bdd1bdcc9a891986186 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sat, 1 Oct 2016 10:13:08 +0300 Subject: - fixed codingstyle (2) ... --- system/libraries/Table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 08e530800..2f1b3b414 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -277,7 +277,7 @@ class CI_Table { public function set_caption($caption) { $this->caption = $caption; - return $this; + return $this; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From bc838a9b08d6dae677ba036c2f640358843b14b2 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Fri, 7 Oct 2016 17:56:31 +0300 Subject: - fixed small typo --- user_guide_src/source/libraries/table.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/table.rst b/user_guide_src/source/libraries/table.rst index fb6fefadb..3cd120f95 100644 --- a/user_guide_src/source/libraries/table.rst +++ b/user_guide_src/source/libraries/table.rst @@ -275,7 +275,7 @@ Class Reference :returns: CI_Table instance (method chaining) :rtype: CI_Table - Lets you clear the table heading, row data, and the caption. If you need to show multiple tables with different data you should to call this method + Lets you clear the table heading, row data and the caption. If you need to show multiple tables with different data you should to call this method after each table has been generated to clear the previous table information. Example:: $this->load->library('table'); -- cgit v1.2.3-24-g4f1b From 7e302394b21ea16b2dce9c42d4431a180c4a58aa Mon Sep 17 00:00:00 2001 From: René de Kat Date: Mon, 10 Oct 2016 14:46:23 +0100 Subject: Updated list of words that aren't countable Updated list of words that are the same in plural and singular form in English. --- system/helpers/inflector_helper.php | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index c064d8de4..6dc3b5030 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -238,8 +238,37 @@ if ( ! function_exists('is_countable')) return ! in_array( strtolower($word), array( - 'equipment', 'information', 'rice', 'money', - 'species', 'series', 'fish', 'meta' + 'audio', + 'bison', + 'chassis', + 'compensation', + 'coreopsis', + 'data', + 'deer', + 'education', + 'emoji', + 'equipment', + 'fish', + 'furniture', + 'gold', + 'information', + 'knowledge', + 'love', + 'rain', + 'money', + 'moose', + 'nutrition', + 'offspring', + 'plankton', + 'pokemon', + 'police', + 'rice', + 'series', + 'sheep', + 'species', + 'swine', + 'traffic', + 'wheat', ) ); } -- cgit v1.2.3-24-g4f1b From 6b33b232aa21f4db38ead696321287768751cfd1 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 10 Oct 2016 19:25:25 +0300 Subject: - revert: set_caption method chaining will be fixed lately. --- system/libraries/Table.php | 1 - 1 file changed, 1 deletion(-) diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 2f1b3b414..c9851813a 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -277,7 +277,6 @@ class CI_Table { public function set_caption($caption) { $this->caption = $caption; - return $this; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From af88d57cf07e54f996d84da1926f252e963fa49b Mon Sep 17 00:00:00 2001 From: ihatehandles Date: Wed, 12 Oct 2016 05:25:24 +0200 Subject: Fixed typos --- user_guide_src/source/general/cli.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/user_guide_src/source/general/cli.rst b/user_guide_src/source/general/cli.rst index b45be1aa8..764a6b835 100644 --- a/user_guide_src/source/general/cli.rst +++ b/user_guide_src/source/general/cli.rst @@ -47,11 +47,11 @@ in it:: Then save the file to your *application/controllers/* folder. -Now normally you would visit the your site using a URL similar to this:: +Now normally you would visit the site using a URL similar to this:: example.com/index.php/tools/message/to -Instead, we are going to open Terminal in Mac/Linux or go to Run > "cmd" +Instead, we are going to open the terminal in Mac/Linux or go to Run > "cmd" in Windows and navigate to our CodeIgniter project. .. code-block:: bash @@ -75,4 +75,4 @@ That's it! That, in a nutshell, is all there is to know about controllers on the command line. Remember that this is just a normal controller, so routing -and ``_remap()`` works fine. \ No newline at end of file +and ``_remap()`` works fine. -- cgit v1.2.3-24-g4f1b From 2e57058329d6b8a76db8d6f04ff7467ff204a637 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Tue, 18 Oct 2016 14:06:22 -0700 Subject: Fix xmlrpc timeout, #4843 Signed-off-by:Master Yoda --- system/libraries/Xmlrpc.php | 5 ++--- user_guide_src/source/libraries/xmlrpc.rst | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 181a104d0..4be926f0e 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -734,6 +734,8 @@ class XML_RPC_Client extends CI_Xmlrpc .'User-Agent: '.$this->xmlrpcName.$r .'Content-Length: '.strlen($msg->payload).$r.$r .$msg->payload; + + stream_set_timeout($fp,$this->timeout); // set timeout for subsequent operations for ($written = $timestamp = 0, $length = strlen($op); $written < $length; $written += $result) { @@ -753,9 +755,6 @@ class XML_RPC_Client extends CI_Xmlrpc $result = FALSE; break; } - - usleep(250000); - continue; } else { diff --git a/user_guide_src/source/libraries/xmlrpc.rst b/user_guide_src/source/libraries/xmlrpc.rst index 4d7ed66d5..04be8d52d 100644 --- a/user_guide_src/source/libraries/xmlrpc.rst +++ b/user_guide_src/source/libraries/xmlrpc.rst @@ -490,6 +490,10 @@ Class Reference $this->xmlrpc->timeout(6); + This timeout period will be used both for an initial connection to + the remote server, as well as for getting a response from it. + Make sure you set the timeout before calling `send_request`. + .. php:method:: method($function) :param string $function: Method name -- cgit v1.2.3-24-g4f1b From d933c9eb04752496124ef4a5f5df6ffbaf0a1d87 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Thu, 20 Oct 2016 00:52:50 +0300 Subject: added ordinal_format() to Number helper; added to docs the info. --- system/helpers/number_helper.php | 29 +++++++++++++++++++++++++ user_guide_src/source/helpers/number_helper.rst | 17 ++++++++++++++- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index e7810c706..8e77c91ab 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -92,3 +92,32 @@ if ( ! function_exists('byte_format')) return number_format($num, $precision).' '.$unit; } } + +// ------------------------------------------------------------------------ + +if ( ! function_exists('ordinal_format')) +{ + /** + * Returns the English ordinal numeral for a given number + * + * @param int $number + * @return string + */ + function ordinal_format($number) + { + if ( ! is_int($number) OR $number < 1) + { + return FALSE; + } + + $ends = array('th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th'); + if ((($number % 100) >= 11) && (($number % 100) <= 13)) + { + return $number.'th'; + } + else + { + return $number.$ends[$number % 10]; + } + } +} diff --git a/user_guide_src/source/helpers/number_helper.rst b/user_guide_src/source/helpers/number_helper.rst index 9d5e98cfb..20acdec18 100644 --- a/user_guide_src/source/helpers/number_helper.rst +++ b/user_guide_src/source/helpers/number_helper.rst @@ -49,4 +49,19 @@ The following functions are available: echo byte_format(45678, 2); // Returns 44.61 KB .. note:: The text generated by this function is found in the following - language file: *language//number_lang.php* \ No newline at end of file + language file: *language//number_lang.php* + +.. php:function:: ordinal_format($number) + + :param int $number: Non-negative natural number to be converted + :returns: Ordinal numeral for given number or FALSE on failure + :rtype: string + + Returns the ordinal numeral (1st, 2nd, 3rd etc.) for a + non-negative natural number. If the input is not a natural number + greater than 0, the function will return boolean FALSE. Examples:: + + echo ordinal_format(1); // Returns 1st + echo ordinal_format(3); // Returns 3rd + echo ordinal_format(21); // Returns 21st + echo ordinal_format(102); // Returns 102nd -- cgit v1.2.3-24-g4f1b From 85e6be1fea7970b39971dc3bd12587d4f032c65a Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Thu, 20 Oct 2016 01:02:17 +0300 Subject: - fixed method chaining for set_caption in Table helper. --- system/libraries/Table.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 3bce294d8..f2fa434d9 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -277,6 +277,7 @@ class CI_Table { public function set_caption($caption) { $this->caption = $caption; + return $this; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 433ebc5814cda44a93664812f28e030f61732564 Mon Sep 17 00:00:00 2001 From: gxgpet Date: Thu, 20 Oct 2016 11:54:19 +0300 Subject: Accepting strings too, 0 allowed. --- system/helpers/number_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index 8e77c91ab..d7b96c322 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -105,7 +105,7 @@ if ( ! function_exists('ordinal_format')) */ function ordinal_format($number) { - if ( ! is_int($number) OR $number < 1) + if ( ! is_numeric($number) OR $number < 0) { return FALSE; } -- cgit v1.2.3-24-g4f1b From 4b2b27199025d3c5a6f9b1eee19340c45ec7f2a2 Mon Sep 17 00:00:00 2001 From: gxgpet Date: Thu, 20 Oct 2016 11:56:03 +0300 Subject: - fixed docs --- user_guide_src/source/helpers/number_helper.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/user_guide_src/source/helpers/number_helper.rst b/user_guide_src/source/helpers/number_helper.rst index 20acdec18..47f616690 100644 --- a/user_guide_src/source/helpers/number_helper.rst +++ b/user_guide_src/source/helpers/number_helper.rst @@ -53,13 +53,13 @@ The following functions are available: .. php:function:: ordinal_format($number) - :param int $number: Non-negative natural number to be converted + :param int $number: natural number to be converted :returns: Ordinal numeral for given number or FALSE on failure :rtype: string - Returns the ordinal numeral (1st, 2nd, 3rd etc.) for a - non-negative natural number. If the input is not a natural number - greater than 0, the function will return boolean FALSE. Examples:: + Returns the ordinal numeral (0th, 1st, 2nd, 3rd etc.) for a + natural number. If the input is not a natural number, the + function will return boolean FALSE. Examples:: echo ordinal_format(1); // Returns 1st echo ordinal_format(3); // Returns 3rd -- cgit v1.2.3-24-g4f1b From 020ede13e33e6c91d27ee2468ad26e98fe711100 Mon Sep 17 00:00:00 2001 From: "Instructor, Computer Systems Technology" Date: Thu, 20 Oct 2016 01:57:38 -0700 Subject: Update Xmlrpc.php Fix style --- system/libraries/Xmlrpc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 4be926f0e..5435bde8d 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -735,7 +735,7 @@ class XML_RPC_Client extends CI_Xmlrpc .'Content-Length: '.strlen($msg->payload).$r.$r .$msg->payload; - stream_set_timeout($fp,$this->timeout); // set timeout for subsequent operations + stream_set_timeout($fp, $this->timeout); // set timeout for subsequent operations for ($written = $timestamp = 0, $length = strlen($op); $written < $length; $written += $result) { -- cgit v1.2.3-24-g4f1b From d958ee1590e6d4e1cfc6030ff735e0be5a8685ca Mon Sep 17 00:00:00 2001 From: "Instructor, Computer Systems Technology" Date: Thu, 20 Oct 2016 01:58:33 -0700 Subject: Update xmlrpc.rst Fix markdown notation --- user_guide_src/source/libraries/xmlrpc.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/libraries/xmlrpc.rst b/user_guide_src/source/libraries/xmlrpc.rst index 04be8d52d..4460bb53e 100644 --- a/user_guide_src/source/libraries/xmlrpc.rst +++ b/user_guide_src/source/libraries/xmlrpc.rst @@ -492,7 +492,7 @@ Class Reference This timeout period will be used both for an initial connection to the remote server, as well as for getting a response from it. - Make sure you set the timeout before calling `send_request`. + Make sure you set the timeout before calling ``send_request``. .. php:method:: method($function) @@ -579,4 +579,4 @@ Class Reference 'struct' ); - return $this->xmlrpc->send_response($response); \ No newline at end of file + return $this->xmlrpc->send_response($response); -- cgit v1.2.3-24-g4f1b From 7534aa85c2c8a4359f6df0a6f421fb15ca981877 Mon Sep 17 00:00:00 2001 From: gxgpet Date: Thu, 20 Oct 2016 12:19:48 +0300 Subject: small refactorisations --- system/helpers/number_helper.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index d7b96c322..e94a5ffbc 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -110,14 +110,24 @@ if ( ! function_exists('ordinal_format')) return FALSE; } - $ends = array('th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th'); + $last_digit = array( + 0 => 'th', + 1 => 'st', + 2 => 'nd', + 3 => 'rd', + 4 => 'th', + 5 => 'th', + 6 => 'th', + 7 => 'th', + 8 => 'th', + 9 => 'th'); if ((($number % 100) >= 11) && (($number % 100) <= 13)) { return $number.'th'; } else { - return $number.$ends[$number % 10]; + return $number.$last_digit[$number % 10]; } } } -- cgit v1.2.3-24-g4f1b From 1ff88001bead0ff4187a5b121d9d36a25a45c313 Mon Sep 17 00:00:00 2001 From: gxgpet Date: Thu, 20 Oct 2016 12:21:05 +0300 Subject: fixed floating for ordinal_format() --- system/helpers/number_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index e94a5ffbc..af8b70f86 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -105,7 +105,7 @@ if ( ! function_exists('ordinal_format')) */ function ordinal_format($number) { - if ( ! is_numeric($number) OR $number < 0) + if ( ! ctype_digit((string) $number) OR $number < 0) { return FALSE; } -- cgit v1.2.3-24-g4f1b From 7de46d4d99017b42ba172cebff8998163ee6295f Mon Sep 17 00:00:00 2001 From: gxgpet Date: Thu, 20 Oct 2016 12:31:44 +0300 Subject: fixed coding style + removal of extra paranthesis --- system/helpers/number_helper.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index af8b70f86..20e262e66 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -120,8 +120,9 @@ if ( ! function_exists('ordinal_format')) 6 => 'th', 7 => 'th', 8 => 'th', - 9 => 'th'); - if ((($number % 100) >= 11) && (($number % 100) <= 13)) + 9 => 'th' + ); + if (($number % 100) >= 11 && ($number % 100) <= 13) { return $number.'th'; } -- cgit v1.2.3-24-g4f1b From 2bd99a68fc253bd7dfad94aa0575b4dcbeec89d9 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 20 Oct 2016 11:56:20 +0300 Subject: [ci skip] Polish changes and add a changelog entry for PR #4855 --- system/libraries/Xmlrpc.php | 2 +- user_guide_src/source/changelog.rst | 11 +++++++++++ user_guide_src/source/libraries/xmlrpc.rst | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 5435bde8d..7186646da 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -734,7 +734,7 @@ class XML_RPC_Client extends CI_Xmlrpc .'User-Agent: '.$this->xmlrpcName.$r .'Content-Length: '.strlen($msg->payload).$r.$r .$msg->payload; - + stream_set_timeout($fp, $this->timeout); // set timeout for subsequent operations for ($written = $timestamp = 0, $length = strlen($op); $written < $length; $written += $result) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 484e6a13b..3e7749f5b 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -59,6 +59,17 @@ Bug fixes for 3.1.1 - Fixed a bug (#4759) - :doc:`Form Validation `, :doc:`Trackback ` and `XML-RPC ` libraries treated URI schemes in a case-sensitive manner. - Fixed a bug (#4762) - :doc:`Cache Library ` 'file' driver method ``get_metadata()`` checked TTL time against ``mtime`` instead of the cache item's creation time. - Fixed a bug where :doc:`File Uploading Library ` generated error messages on PHP 7.1. +- Fixed a bug (#4780) - :doc:`compatibility function ` ``hex2bin()`` didn't reject inputs of type "resource". +- Fixed a bug (#4787) - :doc:`Form Validation Library ` method ``valid_email()`` triggered ``E_WARNING`` when input emails have empty domain names. +- Fixed a bug (#4805) - :doc:`Database ` driver 'mysqli' didn't use the ``MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT`` flag properly. +- Fixed a bug (#4808) - :doc:`Database ` method ``is_write_type()`` only looked at the first line of a queries using ``RETURNING`` with the 'postgre', 'pdo/pgsql', 'odbc' and 'pdo/odbc' drivers. +- Fixed a bug where :doc:`Query Builder ` method ``insert_batch()`` tried to execute an unsupported SQL query with the 'ibase' and 'pdo/firebird' drivers. +- Fixed a bug (#4809) - :doc:`Database ` driver 'pdo/mysql' didn't turn off ``AUTOCOMMIT`` when starting a transaction. +- Fixed a bug (#4822) - :doc:`CAPTCHA Helper ` didn't clear expired PNG images. +- Fixed a bug (#4823) - :doc:`Session Library ` 'files' driver could enter an infinite loop if ``mbstring.func_override`` is enabled. +- Fixed a bug (#4851) - :doc:`Database Forge ` didn't quote schema names passed to its ``create_database()`` method. +- Fixed a bug (#4863) - :doc:`HTML Table Library ` method ``set_caption()`` was missing method chaining support. +- Fixed a bug (#4843) - :doc:`XML-RPC Library ` client class didn't set a read/write socket timeout. Version 3.1.0 ============= diff --git a/user_guide_src/source/libraries/xmlrpc.rst b/user_guide_src/source/libraries/xmlrpc.rst index 4460bb53e..2fe07c49d 100644 --- a/user_guide_src/source/libraries/xmlrpc.rst +++ b/user_guide_src/source/libraries/xmlrpc.rst @@ -492,7 +492,7 @@ Class Reference This timeout period will be used both for an initial connection to the remote server, as well as for getting a response from it. - Make sure you set the timeout before calling ``send_request``. + Make sure you set the timeout before calling ``send_request()``. .. php:method:: method($function) -- cgit v1.2.3-24-g4f1b From 34fe402ea28e928865ec15242e8f20f760b7a334 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 20 Oct 2016 12:36:06 +0300 Subject: [ci skip] Document FV set_rules() fourth parameter --- user_guide_src/source/libraries/form_validation.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 5b9a74273..7792369b2 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -1027,11 +1027,12 @@ Class Reference .. php:class:: CI_Form_validation - .. php:method:: set_rules($field[, $label = ''[, $rules = '']]) + .. php:method:: set_rules($field[, $label = ''[, $rules = ''[, $errors = array()]]]) :param string $field: Field name :param string $label: Field label :param mixed $rules: Validation rules, as a string list separated by a pipe "|", or as an array or rules + :param array $errors: A list of custom error messages :returns: CI_Form_validation instance (method chaining) :rtype: CI_Form_validation -- cgit v1.2.3-24-g4f1b From 5d05372f4f59d27fdd93249d813970fcf181a4af Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 20 Oct 2016 13:40:57 +0300 Subject: FV: throw BadMethodCallException when set_rules() called without --- system/libraries/Form_validation.php | 6 +++++- tests/codeigniter/libraries/Form_validation_test.php | 6 ++++++ user_guide_src/source/changelog.rst | 4 ++++ user_guide_src/source/libraries/form_validation.rst | 3 ++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 86a569ced..4380dd276 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -164,7 +164,7 @@ class CI_Form_validation { * @param array $errors * @return CI_Form_validation */ - public function set_rules($field, $label = '', $rules = array(), $errors = array()) + public function set_rules($field, $label = null, $rules = null, $errors = array()) { // No reason to set rules if we have no POST data // or a validation array has not been specified @@ -197,6 +197,10 @@ class CI_Form_validation { return $this; } + elseif ( ! isset($rules)) + { + throw new BadMethodCallException('Form_validation: set_rules() called without a $rules parameter'); + } // No fields or no rules? Nothing to do... if ( ! is_string($field) OR $field === '' OR empty($rules)) diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index 0815300e6..5f4bb9316 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -435,6 +435,12 @@ class Form_validation_test extends CI_TestCase { $this->assertFalse($form_validation->run('fail')); } + public function test_set_rules_exception() + { + $this->setExpectedException('BadMethodCallException'); + $this->form_validation->set_rules('foo', 'bar'); + } + public function test_has_rule() { $this->form_validation->reset_validation(); diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 3e7749f5b..4bff51a93 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -23,6 +23,10 @@ Release Date: Not Released - Removed the *socket_type* configuration setting from the 'redis' driver. - Changed data serialization logic in 'redis' driver for better performance. + - :doc:`Form Validation Library ` changes include: + + - Changed method ``set_rules()`` to throw a ``BadMethodCallException`` when its first parameter is not an array and the ``$rules`` one is unused. + - Database - Changed method ``initialize()`` to return void and instead throw a ``RuntimeException`` in case of failure. diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 7792369b2..b503b9be0 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -1027,13 +1027,14 @@ Class Reference .. php:class:: CI_Form_validation - .. php:method:: set_rules($field[, $label = ''[, $rules = ''[, $errors = array()]]]) + .. php:method:: set_rules($field[, $label = null[, $rules = null[, $errors = array()]]]) :param string $field: Field name :param string $label: Field label :param mixed $rules: Validation rules, as a string list separated by a pipe "|", or as an array or rules :param array $errors: A list of custom error messages :returns: CI_Form_validation instance (method chaining) + :throws: BadMethodCallException If $field is not an array and $rules was not used :rtype: CI_Form_validation Permits you to set validation rules, as described in the tutorial -- cgit v1.2.3-24-g4f1b From 11954d2521475f6964bfa9c65dcd2f3e53a65af5 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Thu, 20 Oct 2016 20:53:11 +0300 Subject: moved ordinal_format() helper function from Number helper to Inflector helper --- system/helpers/inflector_helper.php | 40 +++++++++++++++++++++ system/helpers/number_helper.php | 42 +--------------------- user_guide_src/source/helpers/inflector_helper.rst | 17 ++++++++- user_guide_src/source/helpers/number_helper.rst | 17 +-------- 4 files changed, 58 insertions(+), 58 deletions(-) diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index 6dc3b5030..c71516564 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -273,3 +273,43 @@ if ( ! function_exists('is_countable')) ); } } + +// ------------------------------------------------------------------------ + +if ( ! function_exists('ordinal_format')) +{ + /** + * Returns the English ordinal numeral for a given number + * + * @param int $number + * @return string + */ + function ordinal_format($number) + { + if ( ! ctype_digit((string) $number) OR $number < 0) + { + return FALSE; + } + + $last_digit = array( + 0 => 'th', + 1 => 'st', + 2 => 'nd', + 3 => 'rd', + 4 => 'th', + 5 => 'th', + 6 => 'th', + 7 => 'th', + 8 => 'th', + 9 => 'th' + ); + if (($number % 100) >= 11 && ($number % 100) <= 13) + { + return $number.'th'; + } + else + { + return $number.$last_digit[$number % 10]; + } + } +} \ No newline at end of file diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index 20e262e66..219124cb5 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -91,44 +91,4 @@ if ( ! function_exists('byte_format')) return number_format($num, $precision).' '.$unit; } -} - -// ------------------------------------------------------------------------ - -if ( ! function_exists('ordinal_format')) -{ - /** - * Returns the English ordinal numeral for a given number - * - * @param int $number - * @return string - */ - function ordinal_format($number) - { - if ( ! ctype_digit((string) $number) OR $number < 0) - { - return FALSE; - } - - $last_digit = array( - 0 => 'th', - 1 => 'st', - 2 => 'nd', - 3 => 'rd', - 4 => 'th', - 5 => 'th', - 6 => 'th', - 7 => 'th', - 8 => 'th', - 9 => 'th' - ); - if (($number % 100) >= 11 && ($number % 100) <= 13) - { - return $number.'th'; - } - else - { - return $number.$last_digit[$number % 10]; - } - } -} +} \ No newline at end of file diff --git a/user_guide_src/source/helpers/inflector_helper.rst b/user_guide_src/source/helpers/inflector_helper.rst index df0c568c0..8a6ca7a92 100644 --- a/user_guide_src/source/helpers/inflector_helper.rst +++ b/user_guide_src/source/helpers/inflector_helper.rst @@ -93,4 +93,19 @@ The following functions are available: Checks if the given word has a plural version. Example:: - is_countable('equipment'); // Returns FALSE \ No newline at end of file + is_countable('equipment'); // Returns FALSE + +.. php:function:: ordinal_format($number) + + :param int $number: natural number to be converted + :returns: Ordinal numeral for given number or FALSE on failure + :rtype: string + + Returns the ordinal numeral (0th, 1st, 2nd, 3rd etc.) for a + natural number. If the input is not a natural number, the + function will return boolean FALSE. Examples:: + + echo ordinal_format(1); // Returns 1st + echo ordinal_format(3); // Returns 3rd + echo ordinal_format(21); // Returns 21st + echo ordinal_format(102); // Returns 102nd diff --git a/user_guide_src/source/helpers/number_helper.rst b/user_guide_src/source/helpers/number_helper.rst index 47f616690..9d5e98cfb 100644 --- a/user_guide_src/source/helpers/number_helper.rst +++ b/user_guide_src/source/helpers/number_helper.rst @@ -49,19 +49,4 @@ The following functions are available: echo byte_format(45678, 2); // Returns 44.61 KB .. note:: The text generated by this function is found in the following - language file: *language//number_lang.php* - -.. php:function:: ordinal_format($number) - - :param int $number: natural number to be converted - :returns: Ordinal numeral for given number or FALSE on failure - :rtype: string - - Returns the ordinal numeral (0th, 1st, 2nd, 3rd etc.) for a - natural number. If the input is not a natural number, the - function will return boolean FALSE. Examples:: - - echo ordinal_format(1); // Returns 1st - echo ordinal_format(3); // Returns 3rd - echo ordinal_format(21); // Returns 21st - echo ordinal_format(102); // Returns 102nd + language file: *language//number_lang.php* \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 4fe5e99f437fe79cc40cebd08277eb319d8a6095 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Thu, 20 Oct 2016 20:58:10 +0300 Subject: fixed unnecessary file termination for Number helper --- system/helpers/number_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index 219124cb5..e7810c706 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -91,4 +91,4 @@ if ( ! function_exists('byte_format')) return number_format($num, $precision).' '.$unit; } -} \ No newline at end of file +} -- cgit v1.2.3-24-g4f1b From 03a1eac3b7bed8ed6df59109364a3eebe3f1cceb Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Thu, 20 Oct 2016 21:03:38 +0300 Subject: ordinal_format will accept only non-negative natural numbers and return original value on failure + docs update regarding this. --- system/helpers/inflector_helper.php | 4 ++-- user_guide_src/source/helpers/inflector_helper.rst | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index c71516564..04e178aec 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -286,9 +286,9 @@ if ( ! function_exists('ordinal_format')) */ function ordinal_format($number) { - if ( ! ctype_digit((string) $number) OR $number < 0) + if ( ! ctype_digit((string) $number) OR $number < 1) { - return FALSE; + return $number; } $last_digit = array( diff --git a/user_guide_src/source/helpers/inflector_helper.rst b/user_guide_src/source/helpers/inflector_helper.rst index 8a6ca7a92..76cce6f4d 100644 --- a/user_guide_src/source/helpers/inflector_helper.rst +++ b/user_guide_src/source/helpers/inflector_helper.rst @@ -97,15 +97,16 @@ The following functions are available: .. php:function:: ordinal_format($number) - :param int $number: natural number to be converted - :returns: Ordinal numeral for given number or FALSE on failure + :param int $number: non-negative natural number to be converted + :returns: Ordinal numeral for given number or original value on failure :rtype: string - Returns the ordinal numeral (0th, 1st, 2nd, 3rd etc.) for a - natural number. If the input is not a natural number, the - function will return boolean FALSE. Examples:: + Returns the ordinal numeral (1st, 2nd, 3rd etc.) for a + non-negative natural number. If the input is not a natural number + greater than 0, the function will return the original value. Examples:: echo ordinal_format(1); // Returns 1st echo ordinal_format(3); // Returns 3rd echo ordinal_format(21); // Returns 21st echo ordinal_format(102); // Returns 102nd + echo ordinal_format(-5); // Invalid input, will return -5 -- cgit v1.2.3-24-g4f1b From 25dc0937dd27c6d3c9f4d4483a857c218d6a9dad Mon Sep 17 00:00:00 2001 From: gxgpet Date: Fri, 21 Oct 2016 17:44:03 +0300 Subject: fixed small coding style issues --- system/helpers/inflector_helper.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index 04e178aec..83bf28098 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -303,13 +303,12 @@ if ( ! function_exists('ordinal_format')) 8 => 'th', 9 => 'th' ); + if (($number % 100) >= 11 && ($number % 100) <= 13) { return $number.'th'; } - else - { - return $number.$last_digit[$number % 10]; - } + + return $number.$last_digit[$number % 10]; } -} \ No newline at end of file +} -- cgit v1.2.3-24-g4f1b From e7e70c3532f06ac008cfc038791fcb46d4a551ed Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 21 Oct 2016 18:06:26 +0300 Subject: [ci skip] Add changelog entry for PR #4862 --- system/helpers/inflector_helper.php | 6 +++--- user_guide_src/source/changelog.rst | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index 83bf28098..f14f57c54 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -268,7 +268,7 @@ if ( ! function_exists('is_countable')) 'species', 'swine', 'traffic', - 'wheat', + 'wheat' ) ); } @@ -303,12 +303,12 @@ if ( ! function_exists('ordinal_format')) 8 => 'th', 9 => 'th' ); - + if (($number % 100) >= 11 && ($number % 100) <= 13) { return $number.'th'; } - + return $number.$last_digit[$number % 10]; } } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 4bff51a93..f60387cd5 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -35,6 +35,7 @@ Release Date: Not Released - Helpers + - Added new function :php:func:`ordinal_format()` to :doc:`Inflector Helper `. - Updated :doc:`HTML Helper ` function :php:func:`meta()` with support for "charset" and "property" properties. - Changed :doc:`HTML Helper ` function :php:func:`doctype()` default document type to HTML 5. -- cgit v1.2.3-24-g4f1b From 75b812f85b266dbe77518e56a4ad754a0d09eaff Mon Sep 17 00:00:00 2001 From: Hex Date: Mon, 24 Oct 2016 14:21:44 +0800 Subject: Fix small doc problem. --- user_guide_src/source/general/compatibility_functions.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/general/compatibility_functions.rst b/user_guide_src/source/general/compatibility_functions.rst index 936f2a24b..584968663 100644 --- a/user_guide_src/source/general/compatibility_functions.rst +++ b/user_guide_src/source/general/compatibility_functions.rst @@ -10,7 +10,7 @@ Being custom implementations, these functions will also have some set of dependencies on their own, but are still useful if your PHP setup doesn't offer them natively. -.. note:: Much like the `common functions `, the +.. note:: Much like the :doc:`common functions `, the compatibility functions are always available, as long as their dependencies are met. -- cgit v1.2.3-24-g4f1b From c274a8fc7f8f0a012e8c535eab976af01d6e106b Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Fri, 28 Oct 2016 18:43:30 +0800 Subject: Match both single and double quote in compile_binds(). Signed-off-by: tianhe1986 --- system/database/DB_driver.php | 2 +- system/database/drivers/odbc/odbc_driver.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 43e8eeac6..465d8db7b 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -938,7 +938,7 @@ abstract class CI_DB_driver { $ml = strlen($this->bind_marker); // Make sure not to replace a chunk inside a string that happens to match the bind marker - if ($c = preg_match_all("/'[^']*'/i", $sql, $matches)) + if ($c = preg_match_all("/(['\"])[^\\1]*\\1/i", $sql, $matches)) { $c = preg_match_all('/'.preg_quote($this->bind_marker, '/').'/i', str_replace($matches[0], diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php index 63df2963d..3a893ace4 100644 --- a/system/database/drivers/odbc/odbc_driver.php +++ b/system/database/drivers/odbc/odbc_driver.php @@ -172,7 +172,7 @@ class CI_DB_odbc_driver extends CI_DB_driver { $ml = strlen($this->bind_marker); // Make sure not to replace a chunk inside a string that happens to match the bind marker - if ($c = preg_match_all("/'[^']*'/i", $sql, $matches)) + if ($c = preg_match_all("/(['\"])[^\\1]*\\1/i", $sql, $matches)) { $c = preg_match_all('/'.preg_quote($this->bind_marker, '/').'/i', str_replace($matches[0], -- cgit v1.2.3-24-g4f1b From eef5951ae313c2c4080e94b8c1aa743a6d6c93b7 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Fri, 28 Oct 2016 18:48:35 +0800 Subject: Match single quote in is_write_type(). Signed-off-by: tianhe1986 --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 465d8db7b..a9a3f29e5 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -982,7 +982,7 @@ abstract class CI_DB_driver { */ public function is_write_type($sql) { - return (bool) preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX)\s/i', $sql); + return (bool) preg_match('/^\s*["\']?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX)\s/i', $sql); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From df34b547c97ba1ce1ddb819495d299cb845a87de Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 28 Oct 2016 14:47:20 +0300 Subject: [ci skip] Add changelog entry for & polish doc changes from PR #4826 --- user_guide_src/source/changelog.rst | 4 ++++ user_guide_src/source/libraries/table.rst | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index f60387cd5..518569097 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -27,6 +27,10 @@ Release Date: Not Released - Changed method ``set_rules()`` to throw a ``BadMethodCallException`` when its first parameter is not an array and the ``$rules`` one is unused. + - :doc:`HTML Table Library ` changes include: + + - Changed method ``clear()`` to also reset captions. + - Database - Changed method ``initialize()`` to return void and instead throw a ``RuntimeException`` in case of failure. diff --git a/user_guide_src/source/libraries/table.rst b/user_guide_src/source/libraries/table.rst index 3cd120f95..06dfe59de 100644 --- a/user_guide_src/source/libraries/table.rst +++ b/user_guide_src/source/libraries/table.rst @@ -275,8 +275,12 @@ Class Reference :returns: CI_Table instance (method chaining) :rtype: CI_Table - Lets you clear the table heading, row data and the caption. If you need to show multiple tables with different data you should to call this method - after each table has been generated to clear the previous table information. Example:: + Lets you clear the table heading, row data and caption. If + you need to show multiple tables with different data you + should to call this method after each table has been + generated to clear the previous table information. + + Example :: $this->load->library('table'); -- cgit v1.2.3-24-g4f1b From e791c2dd5112594d423342ceb29d6586acdffba3 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Sat, 29 Oct 2016 01:47:23 +0800 Subject: Revert "Match single quote in is_write_type()." This reverts commit eef5951ae313c2c4080e94b8c1aa743a6d6c93b7. Signed-off-by: tianhe1986 --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index a9a3f29e5..465d8db7b 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -982,7 +982,7 @@ abstract class CI_DB_driver { */ public function is_write_type($sql) { - return (bool) preg_match('/^\s*["\']?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX)\s/i', $sql); + return (bool) preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX)\s/i', $sql); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From c867754cbb2260efeaa25ff9c339989807e8c713 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 31 Oct 2016 01:38:18 +0200 Subject: download helper should be able to offer a download by reading a local file and also a custom destination filename. --- system/helpers/download_helper.php | 28 +++++++++++++++++------ user_guide_src/source/helpers/download_helper.rst | 14 +++++++++--- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index a6463dfd7..289ea199a 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -56,7 +56,7 @@ if ( ! function_exists('force_download')) * * Generates headers that force a download to happen * - * @param string filename + * @param mixed filename (or an array of local file path => destination filename) * @param mixed the data to be downloaded * @param bool whether to try and send the actual file MIME type * @return void @@ -69,14 +69,28 @@ if ( ! function_exists('force_download')) } elseif ($data === NULL) { - if ( ! @is_file($filename) OR ($filesize = @filesize($filename)) === FALSE) + // Is $filename an array as ['local source path' => 'destination filename']? + if(is_array($filename)) { - return; - } + $filepath = key($filename); + $filename = current($filename); - $filepath = $filename; - $filename = explode('/', str_replace(DIRECTORY_SEPARATOR, '/', $filename)); - $filename = end($filename); + if ( ! @is_file($filepath) OR ($filesize = @filesize($filepath)) === FALSE) + { + return; + } + } + else + { + if ( ! @is_file($filename) OR ($filesize = @filesize($filename)) === FALSE) + { + return; + } + + $filepath = $filename; + $filename = explode('/', str_replace(DIRECTORY_SEPARATOR, '/', $filename)); + $filename = end($filename); + } } else { diff --git a/user_guide_src/source/helpers/download_helper.rst b/user_guide_src/source/helpers/download_helper.rst index 1a4065073..83182a256 100644 --- a/user_guide_src/source/helpers/download_helper.rst +++ b/user_guide_src/source/helpers/download_helper.rst @@ -26,7 +26,7 @@ The following functions are available: .. php:function:: force_download([$filename = ''[, $data = ''[, $set_mime = FALSE]]]) - :param string $filename: Filename + :param mixed $filename: Filename :param mixed $data: File contents :param bool $set_mime: Whether to try to send the actual MIME type :rtype: void @@ -37,7 +37,9 @@ The following functions are available: file data. If you set the second parameter to NULL and ``$filename`` is an existing, readable - file path, then its content will be read instead. + file path, then its content will be read instead. You may also set ``$filename`` + as an array containing a single entry, the key being the existing, readable file path + and the value as the downloading file name. If you set the third parameter to boolean TRUE, then the actual file MIME type (based on the filename extension) will be sent, so that if your browser has a @@ -53,4 +55,10 @@ The following functions are available: do the following:: // Contents of photo.jpg will be automatically read - force_download('/path/to/photo.jpg', NULL); \ No newline at end of file + force_download('/path/to/photo.jpg', NULL); + + If you want to download an existing file from your server, but change the name + of the actual file sent to browser, you will need this:: + + // Contents of photo.jpg will be automatically read and sent as my-photo.jpg + force_download(array('/path/to/photo.jpg' => 'my-photo.jpg'), NULL); \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 214a537e4df19f3885943604c1b8a49c3f64993d Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 31 Oct 2016 01:42:41 +0200 Subject: single entry restriction if $filename is an array --- system/helpers/download_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 289ea199a..a1d149f91 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -70,7 +70,7 @@ if ( ! function_exists('force_download')) elseif ($data === NULL) { // Is $filename an array as ['local source path' => 'destination filename']? - if(is_array($filename)) + if(is_array($filename) && count($filename) === 1) { $filepath = key($filename); $filename = current($filename); -- cgit v1.2.3-24-g4f1b From 17e662951c25ae2c83328508e90b9a0b99d49603 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Mon, 31 Oct 2016 18:56:59 +0800 Subject: Fix compile_binds: do not use back references inside a character class. Signed-off-by: tianhe1986 --- system/database/DB_driver.php | 2 +- system/database/drivers/odbc/odbc_driver.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 064d4070e..c142a1354 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -938,7 +938,7 @@ abstract class CI_DB_driver { $ml = strlen($this->bind_marker); // Make sure not to replace a chunk inside a string that happens to match the bind marker - if ($c = preg_match_all("/(['\"])[^\\1]*\\1/i", $sql, $matches)) + if ($c = preg_match_all("/'[^']*'|\"[^\"]*\"/i", $sql, $matches)) { $c = preg_match_all('/'.preg_quote($this->bind_marker, '/').'/i', str_replace($matches[0], diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php index b5512fd76..82efa498c 100644 --- a/system/database/drivers/odbc/odbc_driver.php +++ b/system/database/drivers/odbc/odbc_driver.php @@ -172,7 +172,7 @@ class CI_DB_odbc_driver extends CI_DB_driver { $ml = strlen($this->bind_marker); // Make sure not to replace a chunk inside a string that happens to match the bind marker - if ($c = preg_match_all("/(['\"])[^\\1]*\\1/i", $sql, $matches)) + if ($c = preg_match_all("/'[^']*'|\"[^\"]*\"/i", $sql, $matches)) { $c = preg_match_all('/'.preg_quote($this->bind_marker, '/').'/i', str_replace($matches[0], -- cgit v1.2.3-24-g4f1b From c953c128649e06bb1a3594e56459cf14bdb6e048 Mon Sep 17 00:00:00 2001 From: George PETCULESCU Date: Mon, 31 Oct 2016 14:06:48 +0200 Subject: fixed coding style --- system/helpers/download_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index a1d149f91..32ee773bb 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -70,7 +70,7 @@ if ( ! function_exists('force_download')) elseif ($data === NULL) { // Is $filename an array as ['local source path' => 'destination filename']? - if(is_array($filename) && count($filename) === 1) + if(is_array($filename) && count($filename)) { $filepath = key($filename); $filename = current($filename); -- cgit v1.2.3-24-g4f1b From b907c8ad41dfb4a9394b3a73182f0abf7fe14f94 Mon Sep 17 00:00:00 2001 From: George PETCULESCU Date: Mon, 31 Oct 2016 14:08:36 +0200 Subject: fixed coding style (2) --- system/helpers/download_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 32ee773bb..9158272ef 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -70,7 +70,7 @@ if ( ! function_exists('force_download')) elseif ($data === NULL) { // Is $filename an array as ['local source path' => 'destination filename']? - if(is_array($filename) && count($filename)) + if(is_array($filename) && count($filename) == 1) { $filepath = key($filename); $filename = current($filename); -- cgit v1.2.3-24-g4f1b From 5d1c2123fdc575d70e9db38ce30b34d4b291469c Mon Sep 17 00:00:00 2001 From: George PETCULESCU Date: Mon, 31 Oct 2016 14:16:35 +0200 Subject: refactorised Docs (parts) of Download helper. --- user_guide_src/source/helpers/download_helper.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/user_guide_src/source/helpers/download_helper.rst b/user_guide_src/source/helpers/download_helper.rst index 83182a256..e11d92a14 100644 --- a/user_guide_src/source/helpers/download_helper.rst +++ b/user_guide_src/source/helpers/download_helper.rst @@ -38,9 +38,10 @@ The following functions are available: If you set the second parameter to NULL and ``$filename`` is an existing, readable file path, then its content will be read instead. You may also set ``$filename`` - as an array containing a single entry, the key being the existing, readable file path - and the value as the downloading file name. - + as an associative array with a single element, where the key of that element would be + the local file you are trying to read and where the value is the name of the downloadable + file that will be sent to browser. An example of this is provided below. + If you set the third parameter to boolean TRUE, then the actual file MIME type (based on the filename extension) will be sent, so that if your browser has a handler for that type - it can use it. -- cgit v1.2.3-24-g4f1b From 627b050e89ea3e9794e7ad03c28aeb770417357a Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Tue, 1 Nov 2016 08:16:47 +0200 Subject: if download helper receives a numeric array now it won't work --- system/helpers/download_helper.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 9158272ef..4bab69005 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -75,6 +75,11 @@ if ( ! function_exists('force_download')) $filepath = key($filename); $filename = current($filename); + if(is_int($filepath)) + { + return; + } + if ( ! @is_file($filepath) OR ($filesize = @filesize($filepath)) === FALSE) { return; -- cgit v1.2.3-24-g4f1b From 54a1138a864a9d2d3ce7ef6d4b9d22df86440bb5 Mon Sep 17 00:00:00 2001 From: gxgpet Date: Tue, 1 Nov 2016 10:44:32 +0200 Subject: Fixed coding style (this time for real) --- system/helpers/download_helper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 4bab69005..eb714c1ff 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -70,12 +70,12 @@ if ( ! function_exists('force_download')) elseif ($data === NULL) { // Is $filename an array as ['local source path' => 'destination filename']? - if(is_array($filename) && count($filename) == 1) + if (is_array($filename) && count($filename) == 1) { $filepath = key($filename); $filename = current($filename); - if(is_int($filepath)) + if (is_int($filepath)) { return; } -- cgit v1.2.3-24-g4f1b From b18492be397373de452999f34a200cc24fb751ed Mon Sep 17 00:00:00 2001 From: George PETCULESCU Date: Tue, 1 Nov 2016 11:19:24 +0200 Subject: added tests for ordinal_format() helper function (Inflector helper) --- tests/codeigniter/helpers/inflector_helper_test.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/codeigniter/helpers/inflector_helper_test.php b/tests/codeigniter/helpers/inflector_helper_test.php index 81ce5e394..a5bb80532 100644 --- a/tests/codeigniter/helpers/inflector_helper_test.php +++ b/tests/codeigniter/helpers/inflector_helper_test.php @@ -93,4 +93,23 @@ class Inflector_helper_test extends CI_TestCase { } } + // -------------------------------------------------------------------- + + public function test_ordinal_format() + { + $strs = array( + 1 => '1st', + 2 => '2nd', + 4 => '4th', + 11 => '1th', + 12 => '12th', + 13 => '13th', + 'something else' => 'something else', + ); + + foreach ($strs as $str => $expect) + { + $this->assertEquals($expect, ordinal_format($str)); + } + } } \ No newline at end of file -- cgit v1.2.3-24-g4f1b From b2c3a0063d02edfec79ab9aa5619c9f40cdd21d0 Mon Sep 17 00:00:00 2001 From: George PETCULESCU Date: Tue, 1 Nov 2016 11:22:38 +0200 Subject: small typo --- tests/codeigniter/helpers/inflector_helper_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/codeigniter/helpers/inflector_helper_test.php b/tests/codeigniter/helpers/inflector_helper_test.php index a5bb80532..4a1e64fae 100644 --- a/tests/codeigniter/helpers/inflector_helper_test.php +++ b/tests/codeigniter/helpers/inflector_helper_test.php @@ -101,7 +101,7 @@ class Inflector_helper_test extends CI_TestCase { 1 => '1st', 2 => '2nd', 4 => '4th', - 11 => '1th', + 11 => '11th', 12 => '12th', 13 => '13th', 'something else' => 'something else', -- cgit v1.2.3-24-g4f1b From 3e86cc27d531e15c7d7dc7c606f87e1694272f92 Mon Sep 17 00:00:00 2001 From: George PETCULESCU Date: Tue, 1 Nov 2016 14:02:46 +0200 Subject: fixed when $filename is an array with a different count than 1. --- system/helpers/download_helper.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index eb714c1ff..43c3924a3 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -70,8 +70,13 @@ if ( ! function_exists('force_download')) elseif ($data === NULL) { // Is $filename an array as ['local source path' => 'destination filename']? - if (is_array($filename) && count($filename) == 1) + if (is_array($filename)) { + if (count($filename) != 1) + { + return; + } + $filepath = key($filename); $filename = current($filename); -- cgit v1.2.3-24-g4f1b From 49407be71a80d67151a296be25fff2468c68ab55 Mon Sep 17 00:00:00 2001 From: George PETCULESCU Date: Tue, 1 Nov 2016 16:10:59 +0200 Subject: strict comparison of 1. --- system/helpers/download_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 43c3924a3..9619c61b1 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -72,7 +72,7 @@ if ( ! function_exists('force_download')) // Is $filename an array as ['local source path' => 'destination filename']? if (is_array($filename)) { - if (count($filename) != 1) + if (count($filename) !== 1) { return; } -- cgit v1.2.3-24-g4f1b From 8d11232616fdf984ff8b9bb295693bdea91d7d8e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 1 Nov 2016 16:14:35 +0200 Subject: [ci skip] Add changelog entry for PR #4891 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 618dd604a..9c3058ce5 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -40,6 +40,7 @@ Release Date: Not Released - Helpers - Added new function :php:func:`ordinal_format()` to :doc:`Inflector Helper `. + - Updated :doc:`Download Helper ` :php:func:`force_download()` to allow existing files to be renamed for download. - Updated :doc:`HTML Helper ` function :php:func:`meta()` with support for "charset" and "property" properties. - Changed :doc:`HTML Helper ` function :php:func:`doctype()` default document type to HTML 5. -- cgit v1.2.3-24-g4f1b From 21b7a2a2d00bd5645b2ca1afcfa4098e207292a4 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 22 Nov 2016 13:23:33 +0200 Subject: Add support for CURRENT_TIMESTAMP (and similar) defaults to date/time fields in DB Forge As requested in #4852 --- system/database/DB_forge.php | 36 ++++++++++++++++++++++++------------ user_guide_src/source/changelog.rst | 6 +++++- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index ed6f4b672..fe81d0510 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -894,21 +894,33 @@ abstract class CI_DB_forge { return; } - if (array_key_exists('DEFAULT', $attributes)) + if ( ! array_key_exists('DEFAULT', $attributes)) { - if ($attributes['DEFAULT'] === NULL) - { - $field['default'] = empty($this->_null) ? '' : $this->_default.$this->_null; + return; + } - // Override the NULL attribute if that's our default - $attributes['NULL'] = TRUE; - $field['null'] = empty($this->_null) ? '' : ' '.$this->_null; - } - else - { - $field['default'] = $this->_default.$this->db->escape($attributes['DEFAULT']); - } + if ($attributes['DEFAULT'] === NULL) + { + $field['default'] = empty($this->_null) ? '' : $this->_default.$this->_null; + + // Override the NULL attribute if that's our default + $attributes['NULL'] = TRUE; + $field['null'] = empty($this->_null) ? '' : ' '.$this->_null; + return; } + + // White-list CURRENT_TIMESTAMP & similar (e.g. Oracle has stuff like SYSTIMESTAMP) defaults for date/time fields + if ( + isset($attributes['TYPE']) + && (stripos($attributes['TYPE'], 'time') !== FALSE || stripos($attributes['TYPE'], 'date') !== FALSE) + && (stripos($attributes['DEFAULT'], 'time') !== FALSE || stripos($attributes['DEFAULT'], 'date') !== FALSE) + ) + { + $field['default'] = $this->_default.$attributes['DEFAULT']; + return; + } + + $field['default'] = $this->_default.$this->db->escape($attributes['DEFAULT']); } // -------------------------------------------------------------------- diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 9c3058ce5..692d06833 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -31,12 +31,16 @@ Release Date: Not Released - Changed method ``clear()`` to also reset captions. -- Database +- :doc:`Database ` - Changed method ``initialize()`` to return void and instead throw a ``RuntimeException`` in case of failure. - Changed method ``db_connect()`` to always set the connection character set (if supported by the driver) and to fail if it can't. - Removed method ``db_set_charset()`` and the ability to change a connection character set at runtime. + - :doc:`Database Forge `: + + - Added support for declaring date/time type fields default values as ``CURRENT_TIMESTAMP`` and similar. + - Helpers - Added new function :php:func:`ordinal_format()` to :doc:`Inflector Helper `. -- cgit v1.2.3-24-g4f1b From efd856edce0b952c8a7a62ec953ae1baee77ff34 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 23 Nov 2016 12:37:23 +0200 Subject: [ci skip] Styling change after 21b7a2a2d00bd5645b2ca1afcfa4098e207292a4 --- system/database/DB_forge.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index fe81d0510..9add5cab7 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -912,8 +912,8 @@ abstract class CI_DB_forge { // White-list CURRENT_TIMESTAMP & similar (e.g. Oracle has stuff like SYSTIMESTAMP) defaults for date/time fields if ( isset($attributes['TYPE']) - && (stripos($attributes['TYPE'], 'time') !== FALSE || stripos($attributes['TYPE'], 'date') !== FALSE) - && (stripos($attributes['DEFAULT'], 'time') !== FALSE || stripos($attributes['DEFAULT'], 'date') !== FALSE) + && (stripos($attributes['TYPE'], 'time') !== FALSE OR stripos($attributes['TYPE'], 'date') !== FALSE) + && (stripos($attributes['DEFAULT'], 'time') !== FALSE OR stripos($attributes['DEFAULT'], 'date') !== FALSE) ) { $field['default'] = $this->_default.$attributes['DEFAULT']; -- cgit v1.2.3-24-g4f1b From d76431db46e04d650c1c538493021cdf336d1301 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 14:23:40 +0200 Subject: Switch CI_Email::$validate to On by default Relevant: #4844 --- system/libraries/Email.php | 2 +- user_guide_src/source/changelog.rst | 4 ++++ user_guide_src/source/installation/upgrade_320.rst | 14 ++++++++++++++ user_guide_src/source/libraries/email.rst | 4 ++-- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 162cc7777..90a68f129 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -161,7 +161,7 @@ class CI_Email { * * @var bool */ - public $validate = FALSE; + public $validate = TRUE; /** * X-Priority header value. diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index d63f15f67..8a40c8d80 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -31,6 +31,10 @@ Release Date: Not Released - Changed method ``clear()`` to also reset captions. + - :doc:`Email Library ` changes include: + + - Changed the default value of the **validate** option to ``TRUE``. + - :doc:`Database ` - Changed method ``initialize()`` to return void and instead throw a ``RuntimeException`` in case of failure. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 942a8a3b5..352f85f71 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -98,6 +98,20 @@ value (previously, it just set the host to the default '127.0.0.1'). Therefore, if you've added a configuration that only sets e.g. a ``port``, you will now have to explicitly set the ``host`` to '127.0.0.1' as well. +Step 6: Check usage of the Email library +======================================== + +The :doc:`Email Library <../libraries/email>` will now by default check the +validity of all e-mail addresses passed to it. This check used to be Off by +default, and required explicitly setting the **validate** option to ``TRUE`` +in order to enable it. + +Naturally, a validity check should not result in any problems, but this is +technically a backwards-compability break and you should check that +everything works fine. +If something indeed goes wrong with that, please report it as a bug to us, +and you can disable the **validate** option to revert to the old behavior. + Step 5: Check usage of doctype() HTML helper ============================================ diff --git a/user_guide_src/source/libraries/email.rst b/user_guide_src/source/libraries/email.rst index 0b38737f1..253d85c71 100644 --- a/user_guide_src/source/libraries/email.rst +++ b/user_guide_src/source/libraries/email.rst @@ -108,7 +108,7 @@ Preference Default Value Options Descript page. Make sure you don't have any relative links or relative image paths otherwise they will not work. **charset** ``$config['charset']`` Character set (utf-8, iso-8859-1, etc.). -**validate** FALSE TRUE or FALSE (boolean) Whether to validate the email address. +**validate** TRUE TRUE or FALSE (boolean) Whether to validate the email address. **priority** 3 1, 2, 3, 4, 5 Email Priority. 1 = highest. 5 = lowest. 3 = normal. **crlf** \\n "\\r\\n" or "\\n" or "\\r" Newline character. (Use "\\r\\n" to comply with RFC 822). **newline** \\n "\\r\\n" or "\\n" or "\\r" Newline character. (Use "\\r\\n" to comply with RFC 822). @@ -402,4 +402,4 @@ Class Reference // Will only print the email headers, excluding the message subject and body $this->email->print_debugger(array('headers')); - .. note:: By default, all of the raw data will be printed. \ No newline at end of file + .. note:: By default, all of the raw data will be printed. -- cgit v1.2.3-24-g4f1b From efaf5aa28ddded9f9e43cfd0afa91fda09c4ff2f Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 14:27:32 +0200 Subject: Remove a function_exists('escapeshellarg') check from CI_Upload This didn't originally exist, but was changed due to #1494. We no longer tolerate such broken environments --- system/libraries/Upload.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 778ed6892..490421af9 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -1259,9 +1259,7 @@ class CI_Upload { */ if (DIRECTORY_SEPARATOR !== '\\') { - $cmd = function_exists('escapeshellarg') - ? 'file --brief --mime '.escapeshellarg($file['tmp_name']).' 2>&1' - : 'file --brief --mime '.$file['tmp_name'].' 2>&1'; + $cmd = 'file --brief --mime '.escapeshellarg($file['tmp_name']).' 2>&1'; if (function_usable('exec')) { -- cgit v1.2.3-24-g4f1b From 57c98d820b38493eee5b3ba71cf5b6952b25ae06 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 14:33:56 +0200 Subject: Fix steps numbering in 3.2.0 upgrade instructions Broken in d76431db46e04d650c1c538493021cdf336d1301 --- user_guide_src/source/installation/upgrade_320.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 352f85f71..86eba701c 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -98,7 +98,7 @@ value (previously, it just set the host to the default '127.0.0.1'). Therefore, if you've added a configuration that only sets e.g. a ``port``, you will now have to explicitly set the ``host`` to '127.0.0.1' as well. -Step 6: Check usage of the Email library +Step 5: Check usage of the Email library ======================================== The :doc:`Email Library <../libraries/email>` will now by default check the @@ -112,7 +112,7 @@ everything works fine. If something indeed goes wrong with that, please report it as a bug to us, and you can disable the **validate** option to revert to the old behavior. -Step 5: Check usage of doctype() HTML helper +Step 6: Check usage of doctype() HTML helper ============================================ The :doc:`HTML Helper <../helpers/html_helper>` function -- cgit v1.2.3-24-g4f1b From 9687441bc9b77514e847a5e3c56cf7e051f14be4 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 14:36:44 +0200 Subject: Remove previously deprecated CI_Input::is_cli_request() --- system/core/Input.php | 15 --------------- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/installation/upgrade_320.rst | 8 ++++++++ user_guide_src/source/libraries/input.rst | 19 ------------------- 4 files changed, 9 insertions(+), 34 deletions(-) diff --git a/system/core/Input.php b/system/core/Input.php index cbb185a8d..2e38e4501 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -840,21 +840,6 @@ class CI_Input { // -------------------------------------------------------------------- - /** - * Is CLI request? - * - * Test to see if a request was made from the command line. - * - * @deprecated 3.0.0 Use is_cli() instead - * @return bool - */ - public function is_cli_request() - { - return is_cli(); - } - - // -------------------------------------------------------------------- - /** * Get Request Method * diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 8a40c8d80..035255166 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -10,6 +10,7 @@ Release Date: Not Released - Core - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. + - Removed previously deprecated method ``is_cli_request()`` from the :doc:`Input Library ` (use :php:func:`is_cli()` instead). - Libraries diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 86eba701c..469aa3429 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -124,3 +124,11 @@ Nothing should be really broken by this change, but if your application relies on the default value, you should double-check it and either explicitly set the desired format, or adapt your front-end to use proper HTML 5 formatting. + +Step 7: Remove usage of previously deprecated functionalities +============================================================= + +The following is a list of functionalities deprecated in CodeIgniter +version 3.0.0, that have been removed in 3.2.0: + +- ``CI_Input::is_cli_request()`` (use :php:func:`is_cli()` instead) diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index d9c6c2dd1..899070ef4 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -440,25 +440,6 @@ Class Reference Checks to see if the HTTP_X_REQUESTED_WITH server header has been set, and returns boolean TRUE if it is or FALSE if not. - .. php:method:: is_cli_request() - - :returns: TRUE if it is a CLI request, FALSE if not - :rtype: bool - - Checks to see if the application was run from the command-line - interface. - - .. note:: This method checks both the PHP SAPI name currently in use - and if the ``STDIN`` constant is defined, which is usually a - failsafe way to see if PHP is being run via the command line. - - :: - - $this->input->is_cli_request() - - .. note:: This method is DEPRECATED and is now just an alias for the - :func:`is_cli()` function. - .. php:method:: method([$upper = FALSE]) :param bool $upper: Whether to return the request method name in upper or lower case -- cgit v1.2.3-24-g4f1b From dd2dcde50355c85466991caa9630a66a46626e46 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 14:45:07 +0200 Subject: Remove previously deprecated fetch_*() methods from CI_Router --- system/core/Router.php | 43 ---------------------- user_guide_src/source/changelog.rst | 3 +- user_guide_src/source/installation/upgrade_320.rst | 3 ++ 3 files changed, 5 insertions(+), 44 deletions(-) diff --git a/system/core/Router.php b/system/core/Router.php index 045d36687..42d0e2952 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -438,19 +438,6 @@ class CI_Router { // -------------------------------------------------------------------- - /** - * Fetch the current class - * - * @deprecated 3.0.0 Read the 'class' property instead - * @return string - */ - public function fetch_class() - { - return $this->class; - } - - // -------------------------------------------------------------------- - /** * Set method name * @@ -464,19 +451,6 @@ class CI_Router { // -------------------------------------------------------------------- - /** - * Fetch the current method - * - * @deprecated 3.0.0 Read the 'method' property instead - * @return string - */ - public function fetch_method() - { - return $this->method; - } - - // -------------------------------------------------------------------- - /** * Set directory name * @@ -495,21 +469,4 @@ class CI_Router { $this->directory .= str_replace('.', '', trim($dir, '/')).'/'; } } - - // -------------------------------------------------------------------- - - /** - * Fetch directory - * - * Feches the sub-directory (if any) that contains the requested - * controller class. - * - * @deprecated 3.0.0 Read the 'directory' property instead - * @return string - */ - public function fetch_directory() - { - return $this->directory; - } - } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 035255166..3d6d3e392 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -10,7 +10,8 @@ Release Date: Not Released - Core - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. - - Removed previously deprecated method ``is_cli_request()`` from the :doc:`Input Library ` (use :php:func:`is_cli()` instead). + - Removed previously deprecated :doc:`Input Library ` method ``is_cli_request()`` (use :php:func:`is_cli()` instead). + - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Libraries diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 469aa3429..02c78d373 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -132,3 +132,6 @@ The following is a list of functionalities deprecated in CodeIgniter version 3.0.0, that have been removed in 3.2.0: - ``CI_Input::is_cli_request()`` (use :php:func:`is_cli()` instead) +- ``CI_Router::fetch_directory()`` (use ``CI_Router::$directory instead) +- ``CI_Router::fetch_class()`` (use ``CI_Router::$class`` instead) +- ``CI_Router::fetch_method()`` (use ``CI_Router::$method`` instead) -- cgit v1.2.3-24-g4f1b From edbbc7dfc01ce05a1c37629df0e1b4c8d00c435f Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 14:49:08 +0200 Subject: Remove previously deprecated CI_Config::system_url() --- system/core/Config.php | 14 -------------- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/installation/upgrade_320.rst | 1 + user_guide_src/source/libraries/config.rst | 11 ----------- 4 files changed, 2 insertions(+), 25 deletions(-) diff --git a/system/core/Config.php b/system/core/Config.php index e74751639..6704a0a7e 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -350,20 +350,6 @@ class CI_Config { // -------------------------------------------------------------------- - /** - * System URL - * - * @deprecated 3.0.0 Encourages insecure practices - * @return string - */ - public function system_url() - { - $x = explode('/', preg_replace('|/*(.+?)/*$|', '\\1', BASEPATH)); - return $this->slash_item('base_url').end($x).'/'; - } - - // -------------------------------------------------------------------- - /** * Set a config file item * diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 3d6d3e392..3adf4d6e6 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -12,6 +12,7 @@ Release Date: Not Released - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. - Removed previously deprecated :doc:`Input Library ` method ``is_cli_request()`` (use :php:func:`is_cli()` instead). - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). + - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). - Libraries diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 02c78d373..b8e990e3c 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -135,3 +135,4 @@ version 3.0.0, that have been removed in 3.2.0: - ``CI_Router::fetch_directory()`` (use ``CI_Router::$directory instead) - ``CI_Router::fetch_class()`` (use ``CI_Router::$class`` instead) - ``CI_Router::fetch_method()`` (use ``CI_Router::$method`` instead) +- ``CI_Config::system_url()`` (encourages insecure practices) diff --git a/user_guide_src/source/libraries/config.rst b/user_guide_src/source/libraries/config.rst index a45cacdf5..7398329c3 100644 --- a/user_guide_src/source/libraries/config.rst +++ b/user_guide_src/source/libraries/config.rst @@ -239,14 +239,3 @@ Class Reference This method is normally accessed via the corresponding functions in the :doc:`URL Helper `. - - .. php:method:: system_url() - - :returns: URL pointing at your CI system/ directory - :rtype: string - - This method retrieves the URL to your CodeIgniter system/ directory. - - .. note:: This method is DEPRECATED because it encourages usage of - insecure coding practices. Your *system/* directory shouldn't - be publicly accessible. \ No newline at end of file -- cgit v1.2.3-24-g4f1b From b226bccb2f748e252b75595c497ab4b3accfe21e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:00:02 +0200 Subject: Remove previously deprecated Email Helper --- system/helpers/email_helper.php | 84 ---------------------- user_guide_src/source/changelog.rst | 6 +- user_guide_src/source/helpers/email_helper.rst | 75 ------------------- user_guide_src/source/installation/upgrade_300.rst | 9 ++- user_guide_src/source/installation/upgrade_320.rst | 5 ++ 5 files changed, 12 insertions(+), 167 deletions(-) delete mode 100644 system/helpers/email_helper.php delete mode 100644 user_guide_src/source/helpers/email_helper.rst diff --git a/system/helpers/email_helper.php b/system/helpers/email_helper.php deleted file mode 100644 index 35944fc7b..000000000 --- a/system/helpers/email_helper.php +++ /dev/null @@ -1,84 +0,0 @@ -` method ``is_cli_request()`` (use :php:func:`is_cli()` instead). - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). + - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - Libraries @@ -588,7 +589,7 @@ Release Date: March 30, 2015 - :doc:`Directory Helper ` :php:func:`directory_map()` will now append ``DIRECTORY_SEPARATOR`` to directory names in the returned array. - :doc:`Array Helper ` :php:func:`element()` and :php:func:`elements()` now return NULL instead of FALSE when the required elements don't exist. - :doc:`Language Helper ` :php:func:`lang()` now accepts an optional list of additional HTML attributes. - - Deprecated the :doc:`Email Helper ` as its ``valid_email()``, ``send_email()`` functions are now only aliases for PHP native functions ``filter_var()`` and ``mail()`` respectively. + - Deprecated the *Email Helper* as its ``valid_email()``, ``send_email()`` functions are now only aliases for PHP native functions ``filter_var()`` and ``mail()`` respectively. - Database @@ -2764,8 +2765,7 @@ Release Date: January 30, 2008 helper. <./helpers/html_helper>` - Added img() to the :doc:`HTML helper. <./helpers/html_helper>` - Added ability to :doc:`"extend" Helpers <./general/helpers>`. - - Added an :doc:`email helper <./helpers/email_helper>` into core - helpers. + - Added an *Email Helper* into core helpers. - Added strip_quotes() function to :doc:`string helper <./helpers/string_helper>`. - Added reduce_multiples() function to :doc:`string diff --git a/user_guide_src/source/helpers/email_helper.rst b/user_guide_src/source/helpers/email_helper.rst deleted file mode 100644 index 1ee97d902..000000000 --- a/user_guide_src/source/helpers/email_helper.rst +++ /dev/null @@ -1,75 +0,0 @@ -############ -Email Helper -############ - -The Email Helper provides some assistive functions for working with -Email. For a more robust email solution, see CodeIgniter's :doc:`Email -Class <../libraries/email>`. - -.. important:: The Email helper is DEPRECATED and is currently - only kept for backwards compatibility. - -.. contents:: - :local: - -.. raw:: html - -
- -Loading this Helper -=================== - -This helper is loaded using the following code:: - - $this->load->helper('email'); - -Available Functions -=================== - -The following functions are available: - - -.. php:function:: valid_email($email) - - :param string $email: E-mail address - :returns: TRUE if a valid email is supplied, FALSE otherwise - :rtype: bool - - Checks if the input is a correctly formatted e-mail address. Note that is - doesn't actually prove that the address will be able recieve mail, but - simply that it is a validly formed address. - - Example:: - - if (valid_email('email@somesite.com')) - { - echo 'email is valid'; - } - else - { - echo 'email is not valid'; - } - - .. note:: All that this function does is to use PHP's native ``filter_var()``:: - - (bool) filter_var($email, FILTER_VALIDATE_EMAIL); - -.. php:function:: send_email($recipient, $subject, $message) - - :param string $recipient: E-mail address - :param string $subject: Mail subject - :param string $message: Message body - :returns: TRUE if the mail was successfully sent, FALSE in case of an error - :rtype: bool - - Sends an email using PHP's native `mail() `_ - function. - - .. note:: All that this function does is to use PHP's native ``mail`` - - :: - - mail($recipient, $subject, $message); - - For a more robust email solution, see CodeIgniter's :doc:`Email Library - <../libraries/email>`. \ No newline at end of file diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index 0fc211f89..9d0d0dc1e 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -655,14 +655,13 @@ Please use :php:func:`html_escape()` instead. Email helper functions ====================== -:doc:`Email Helper <../helpers/email_helper>` only has two functions +The *Email Helper* only has two functions: - - :php:func:`valid_email()` - - :php:func:`send_email()` + - ``valid_email()`` + - ``send_email()`` Both of them are now aliases for PHP's native ``filter_var()`` and ``mail()`` functions, respectively. -Therefore the :doc:`Email Helper <../helpers/email_helper>` altogether is being deprecated and -is scheduled for removal in CodeIgniter 3.1+. +Therefore, the *Email Helper* altogether is being deprecated and is scheduled for removal in CodeIgniter 3.1+. .. note:: These functions are still available, but you're strongly encouraged to remove their usage sooner rather than later. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index b8e990e3c..51b2a3693 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -136,3 +136,8 @@ version 3.0.0, that have been removed in 3.2.0: - ``CI_Router::fetch_class()`` (use ``CI_Router::$class`` instead) - ``CI_Router::fetch_method()`` (use ``CI_Router::$method`` instead) - ``CI_Config::system_url()`` (encourages insecure practices) + +- The entire *Email Helper*, which only had two functions: + + - ``valid_email()`` (use ``filter_var($email, FILTER_VALIDATE_EMAIL)`` instead) + - ``send_email()`` (use ``mail()`` instead) -- cgit v1.2.3-24-g4f1b From bd3b4d158110634ec54d026f2852a649711edefc Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:07:19 +0200 Subject: Remove tests broken by the func removals from last few commits --- tests/codeigniter/core/Config_test.php | 9 +-------- tests/codeigniter/helpers/email_helper_test.php | 24 ------------------------ 2 files changed, 1 insertion(+), 32 deletions(-) delete mode 100644 tests/codeigniter/helpers/email_helper_test.php diff --git a/tests/codeigniter/core/Config_test.php b/tests/codeigniter/core/Config_test.php index b5c9e849d..5201d46dc 100644 --- a/tests/codeigniter/core/Config_test.php +++ b/tests/codeigniter/core/Config_test.php @@ -152,13 +152,6 @@ class Config_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_system_url() - { - $this->assertEquals($this->cfg['base_url'].'system/', $this->config->system_url()); - } - - // -------------------------------------------------------------------- - public function test_load() { // Test regular load @@ -237,4 +230,4 @@ class Config_test extends CI_TestCase { $this->assertNull($this->config->load($file)); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/helpers/email_helper_test.php b/tests/codeigniter/helpers/email_helper_test.php deleted file mode 100644 index 529e96910..000000000 --- a/tests/codeigniter/helpers/email_helper_test.php +++ /dev/null @@ -1,24 +0,0 @@ -helper('email'); - } - - public function test_valid_email() - { - $this->assertEquals(FALSE, valid_email('test')); - $this->assertEquals(FALSE, valid_email('test@test@test.com')); - $this->assertEquals(TRUE, valid_email('test@test.com')); - $this->assertEquals(TRUE, valid_email('my.test@test.com')); - $this->assertEquals(TRUE, valid_email('my.test@subdomain.test.com')); - } - - public function test_send_mail() - { - $this->markTestSkipped("Can't test"); - } - -} \ No newline at end of file -- cgit v1.2.3-24-g4f1b From ecc9a5f2102d8221f9783fd77d8a4b7bb03a3e4a Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:08:11 +0200 Subject: Remove previously deprecated Date Helper function standard_date() --- system/helpers/date_helper.php | 40 --------- tests/codeigniter/helpers/date_helper_test.php | 100 --------------------- user_guide_src/source/changelog.rst | 6 +- user_guide_src/source/helpers/date_helper.rst | 39 -------- user_guide_src/source/installation/upgrade_320.rst | 2 + 5 files changed, 5 insertions(+), 182 deletions(-) diff --git a/system/helpers/date_helper.php b/system/helpers/date_helper.php index 0606a4562..1f8e319ca 100644 --- a/system/helpers/date_helper.php +++ b/system/helpers/date_helper.php @@ -122,46 +122,6 @@ if ( ! function_exists('mdate')) // ------------------------------------------------------------------------ -if ( ! function_exists('standard_date')) -{ - /** - * Standard Date - * - * Returns a date formatted according to the submitted standard. - * - * As of PHP 5.2, the DateTime extension provides constants that - * serve for the exact same purpose and are used with date(). - * - * @todo Remove in version 3.1+. - * @deprecated 3.0.0 Use PHP's native date() instead. - * @link http://www.php.net/manual/en/class.datetime.php#datetime.constants.types - * - * @example date(DATE_RFC822, now()); // default - * @example date(DATE_W3C, $time); // a different format and time - * - * @param string $fmt = 'DATE_RFC822' the chosen format - * @param int $time = NULL Unix timestamp - * @return string - */ - function standard_date($fmt = 'DATE_RFC822', $time = NULL) - { - if (empty($time)) - { - $time = now(); - } - - // Procedural style pre-defined constants from the DateTime extension - if (strpos($fmt, 'DATE_') !== 0 OR defined($fmt) === FALSE) - { - return FALSE; - } - - return date(constant($fmt), $time); - } -} - -// ------------------------------------------------------------------------ - if ( ! function_exists('timespan')) { /** diff --git a/tests/codeigniter/helpers/date_helper_test.php b/tests/codeigniter/helpers/date_helper_test.php index 8a3502280..00139de5c 100644 --- a/tests/codeigniter/helpers/date_helper_test.php +++ b/tests/codeigniter/helpers/date_helper_test.php @@ -73,106 +73,6 @@ class Date_helper_test extends CI_TestCase { // ------------------------------------------------------------------------ - public function test_standard_date_rfc822() - { - $this->assertEquals( - date(DATE_RFC822, $this->time), - standard_date('DATE_RFC822', $this->time) - ); - } - - // ------------------------------------------------------------------------ - - public function test_standard_date_atom() - { - $this->assertEquals( - date(DATE_ATOM, $this->time), - standard_date('DATE_ATOM', $this->time) - ); - } - - // ------------------------------------------------------------------------ - - public function test_standard_date_cookie() - { - $this->assertEquals( - date(DATE_COOKIE, $this->time), - standard_date('DATE_COOKIE', $this->time) - ); - } - - // ------------------------------------------------------------------------ - - public function test_standard_date_iso8601() - { - $this->assertEquals( - date(DATE_ISO8601, $this->time), - standard_date('DATE_ISO8601', $this->time) - ); - } - - // ------------------------------------------------------------------------ - - public function test_standard_date_rfc850() - { - $this->assertEquals( - date(DATE_RFC850, $this->time), - standard_date('DATE_RFC850', $this->time) - ); - } - - // ------------------------------------------------------------------------ - - public function test_standard_date_rfc1036() - { - $this->assertEquals( - date(DATE_RFC1036, $this->time), - standard_date('DATE_RFC1036', $this->time) - ); - } - - // ------------------------------------------------------------------------ - - public function test_standard_date_rfc1123() - { - $this->assertEquals( - date(DATE_RFC1123, $this->time), - standard_date('DATE_RFC1123', $this->time) - ); - } - - // ------------------------------------------------------------------------ - - public function test_standard_date_rfc2822() - { - $this->assertEquals( - date(DATE_RFC2822, $this->time), - standard_date('DATE_RFC2822', $this->time) - ); - } - - // ------------------------------------------------------------------------ - - public function test_standard_date_rss() - { - $this->assertEquals( - date(DATE_RSS, $this->time), - standard_date('DATE_RSS', $this->time) - ); - } - - // ------------------------------------------------------------------------ - - public function test_standard_date_w3c() - { - $this->assertEquals( - date(DATE_W3C, $this->time), - standard_date('DATE_W3C', $this->time) - ); - } - - // ------------------------------------------------------------------------ - public function test_timespan() { $this->ci_vfs_clone('system/language/english/date_lang.php'); diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index d109c3b46..62c1ef0e1 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -13,6 +13,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Input Library ` method ``is_cli_request()`` (use :php:func:`is_cli()` instead). - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). + - Removed previously deprecated :doc:`Date Helper ` function ``standard_date()`` (use PHP's native ``date()`` instead). - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - Libraries @@ -1115,7 +1116,7 @@ Bug fixes for 3.0 - Fixed a bug (#79) - :doc:`Form Validation Library ` didn't properly validate array fields that use associative keys or have custom indexes. - Fixed a bug (#427) - :doc:`Form Validation Library ` method ``strip_image_tags()`` was an alias to a non-existent method. - Fixed a bug (#1545) - :doc:`Query Builder ` method ``limit()`` wasn't executed properly under Oracle. -- Fixed a bug (#1551) - :doc:`Date Helper ` function :php:func:`standard_date()` didn't properly format *W3C* and *ATOM* standard dates. +- Fixed a bug (#1551) - :doc:`Date Helper ` function ``standard_date()`` didn't properly format *W3C* and *ATOM* standard dates. - Fixed a bug where :doc:`Query Builder ` method ``join()`` escaped literal values as if they were fields. - Fixed a bug (#135) - PHP Error logging was impossible without the errors being displayed. - Fixed a bug (#1613) - :doc:`Form Helper ` functions :php:func:`form_multiselect()`, :php:func:`form_dropdown()` didn't properly handle empty array option groups. @@ -3096,8 +3097,7 @@ Release Date: October 30, 2006 - Added :doc:`Download Helper <./helpers/download_helper>`. - Added :doc:`simple_query() <./database/queries>` function to the database classes -- Added :doc:`standard_date() <./helpers/date_helper>` function to - the Date Helper. +- Added ``standard_date()`` function function to the :doc:`Date Helper `. - Added :doc:`$query->free_result() <./database/results>` to database class. - Added :doc:`$query->list_fields() <./database/metadata>` function to diff --git a/user_guide_src/source/helpers/date_helper.rst b/user_guide_src/source/helpers/date_helper.rst index 600a07574..909528855 100644 --- a/user_guide_src/source/helpers/date_helper.rst +++ b/user_guide_src/source/helpers/date_helper.rst @@ -67,45 +67,6 @@ The following functions are available: If a timestamp is not included in the second parameter the current time will be used. -.. php:function:: standard_date([$fmt = 'DATE_RFC822'[, $time = NULL]]) - - :param string $fmt: Date format - :param int $time: UNIX timestamp - :returns: Formatted date or FALSE on invalid format - :rtype: string - - Lets you generate a date string in one of several standardized formats. - - Example:: - - $format = 'DATE_RFC822'; - $time = time(); - echo standard_date($format, $time); - - .. note:: This function is DEPRECATED. Use the native ``date()`` combined with - `DateTime's format constants - `_ - instead:: - - echo date(DATE_RFC822, time()); - - **Supported formats:** - - =============== ======================= ====================================== - Constant Description Example - =============== ======================= ====================================== - DATE_ATOM Atom 2005-08-15T16:13:03+0000 - DATE_COOKIE HTTP Cookies Sun, 14 Aug 2005 16:13:03 UTC - DATE_ISO8601 ISO-8601 2005-08-14T16:13:03+00:00 - DATE_RFC822 RFC 822 Sun, 14 Aug 05 16:13:03 UTC - DATE_RFC850 RFC 850 Sunday, 14-Aug-05 16:13:03 UTC - DATE_RFC1036 RFC 1036 Sunday, 14-Aug-05 16:13:03 UTC - DATE_RFC1123 RFC 1123 Sun, 14 Aug 2005 16:13:03 UTC - DATE_RFC2822 RFC 2822 Sun, 14 Aug 2005 16:13:03 +0000 - DATE_RSS RSS Sun, 14 Aug 2005 16:13:03 UTC - DATE_W3C W3C 2005-08-14T16:13:03+0000 - =============== ======================= ====================================== - .. php:function:: local_to_gmt([$time = '']) :param int $time: UNIX timestamp diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 51b2a3693..d6602e825 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -137,6 +137,8 @@ version 3.0.0, that have been removed in 3.2.0: - ``CI_Router::fetch_method()`` (use ``CI_Router::$method`` instead) - ``CI_Config::system_url()`` (encourages insecure practices) +- ``standard_date()`` :doc:`Date Helper <../helpers/date_helper>` function (use ``date()`` instead) + - The entire *Email Helper*, which only had two functions: - ``valid_email()`` (use ``filter_var($email, FILTER_VALIDATE_EMAIL)`` instead) -- cgit v1.2.3-24-g4f1b From 0c84ef9a33d18d758e36447fd18a240a458ae2bc Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:12:35 +0200 Subject: Remove previously deprecated Security Helper function do_hash() --- system/helpers/security_helper.php | 24 ------------------- tests/codeigniter/helpers/security_helper_test.php | 26 +-------------------- user_guide_src/source/changelog.rst | 9 ++++---- user_guide_src/source/helpers/security_helper.rst | 27 +--------------------- user_guide_src/source/installation/upgrade_320.rst | 1 + 5 files changed, 8 insertions(+), 79 deletions(-) diff --git a/system/helpers/security_helper.php b/system/helpers/security_helper.php index 4eb63883d..048f06b68 100644 --- a/system/helpers/security_helper.php +++ b/system/helpers/security_helper.php @@ -80,30 +80,6 @@ if ( ! function_exists('sanitize_filename')) } } -// -------------------------------------------------------------------- - -if ( ! function_exists('do_hash')) -{ - /** - * Hash encode a string - * - * @todo Remove in version 3.1+. - * @deprecated 3.0.0 Use PHP's native hash() instead. - * @param string $str - * @param string $type = 'sha1' - * @return string - */ - function do_hash($str, $type = 'sha1') - { - if ( ! in_array(strtolower($type), hash_algos())) - { - $type = 'md5'; - } - - return hash($type, $str); - } -} - // ------------------------------------------------------------------------ if ( ! function_exists('strip_image_tags')) diff --git a/tests/codeigniter/helpers/security_helper_test.php b/tests/codeigniter/helpers/security_helper_test.php index effd3ec02..ab05d57ba 100644 --- a/tests/codeigniter/helpers/security_helper_test.php +++ b/tests/codeigniter/helpers/security_helper_test.php @@ -25,30 +25,6 @@ class Security_helper_tests extends CI_TestCase { $this->assertEquals('foo', sanitize_filename($filename)); } - function test_do_hash() - { - $md5 = md5('foo'); - $sha1 = sha1('foo'); - - $algos = hash_algos(); - $algo_results = array(); - foreach ($algos as $k => $v) - { - $algo_results[$v] = hash($v, 'foo'); - } - - $this->assertEquals($sha1, do_hash('foo')); - $this->assertEquals($sha1, do_hash('foo', 'sha1')); - $this->assertEquals($md5, do_hash('foo', 'md5')); - $this->assertEquals($md5, do_hash('foo', 'foobar')); - - // Test each algorithm available to PHP - foreach ($algo_results as $algo => $result) - { - $this->assertEquals($result, do_hash('foo', $algo)); - } - } - function test_strip_image_tags() { $this->assertEquals('http://example.com/spacer.gif', strip_image_tags('http://example.com/spacer.gif')); @@ -61,4 +37,4 @@ class Security_helper_tests extends CI_TestCase { $this->assertEquals('<? echo $foo; ?>', encode_php_tags('')); } -} \ No newline at end of file +} diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 62c1ef0e1..ba11fe1c8 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -14,6 +14,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). - Removed previously deprecated :doc:`Date Helper ` function ``standard_date()`` (use PHP's native ``date()`` instead). + - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - Libraries @@ -551,7 +552,7 @@ Release Date: March 30, 2015 - :doc:`Security Helper ` changes include: - - :php:func:`do_hash()` now uses PHP's native ``hash()`` function (supporting more algorithms) and is deprecated. + - ``do_hash()`` now uses PHP's native ``hash()`` function (supporting more algorithms) and is deprecated. - :php:func:`strip_image_tags()` is now an alias for the same method in the :doc:`Security Library `. - :doc:`Smiley Helper ` changes include: @@ -1580,8 +1581,8 @@ Hg Tag: v2.0.2 - Helpers - - Removed the previously deprecated dohash() from the :doc:`Security - helper <./helpers/security_helper>`; use do_hash() instead. + - Removed the previously deprecated ``dohash()`` from the :doc:`Security + helper <./helpers/security_helper>`; use ``do_hash()`` instead. - Changed the 'plural' function so that it doesn't ruin the captalization of your string. It also take into consideration acronyms which are all caps. @@ -1823,7 +1824,7 @@ Hg Tag: v2.0.0 helper <./helpers/text_helper>`. - Added accept-charset to the list of inserted attributes of form_open() in the :doc:`Form Helper `. - - Deprecated the dohash() function in favour of do_hash() for + - Deprecated the ``dohash()`` function in favour of ``do_hash()`` for naming consistency. - Non-backwards compatible change made to get_dir_file_info() in the :doc:`File Helper `. No longer recurses diff --git a/user_guide_src/source/helpers/security_helper.rst b/user_guide_src/source/helpers/security_helper.rst index 103880cf9..e981bc6b6 100644 --- a/user_guide_src/source/helpers/security_helper.rst +++ b/user_guide_src/source/helpers/security_helper.rst @@ -48,31 +48,6 @@ The following functions are available: For more info, please see the :doc:`Security Library <../libraries/security>` documentation. - -.. php:function:: do_hash($str[, $type = 'sha1']) - - :param string $str: Input - :param string $type: Algorithm - :returns: Hex-formatted hash - :rtype: string - - Permits you to create one way hashes suitable for encrypting - passwords. Will use SHA1 by default. - - See `hash_algos() `_ - for a full list of supported algorithms. - - Examples:: - - $str = do_hash($str); // SHA1 - $str = do_hash($str, 'md5'); // MD5 - - .. note:: This function was formerly named ``dohash()``, which has been - removed in favor of ``do_hash()``. - - .. note:: This function is DEPRECATED. Use the native ``hash()`` instead. - - .. php:function:: strip_image_tags($str) :param string $str: Input string @@ -103,4 +78,4 @@ The following functions are available: Example:: - $string = encode_php_tags($string); \ No newline at end of file + $string = encode_php_tags($string); diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index d6602e825..080a02895 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -138,6 +138,7 @@ version 3.0.0, that have been removed in 3.2.0: - ``CI_Config::system_url()`` (encourages insecure practices) - ``standard_date()`` :doc:`Date Helper <../helpers/date_helper>` function (use ``date()`` instead) +- ``do_hash()`` :doc:`Security Helper <../helpers/security_helper>` function (use ``hash()`` instead) - The entire *Email Helper*, which only had two functions: -- cgit v1.2.3-24-g4f1b From 5e47aa3d87b44627bd79850536bfacd8d39a92a6 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:18:46 +0200 Subject: Remove previously deprecated HTML helper functions br(), nbs() --- system/helpers/html_helper.php | 34 ------------------ tests/codeigniter/helpers/html_helper_test.php | 16 +-------- user_guide_src/source/changelog.rst | 3 +- user_guide_src/source/helpers/html_helper.rst | 40 ---------------------- user_guide_src/source/installation/upgrade_320.rst | 2 ++ 5 files changed, 5 insertions(+), 90 deletions(-) diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 696f0eee2..22ef39c2e 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -389,37 +389,3 @@ if ( ! function_exists('meta')) return $str; } } - -// ------------------------------------------------------------------------ - -if ( ! function_exists('br')) -{ - /** - * Generates HTML BR tags based on number supplied - * - * @deprecated 3.0.0 Use str_repeat() instead - * @param int $count Number of times to repeat the tag - * @return string - */ - function br($count = 1) - { - return str_repeat('
', $count); - } -} - -// ------------------------------------------------------------------------ - -if ( ! function_exists('nbs')) -{ - /** - * Generates non-breaking space entities based on number supplied - * - * @deprecated 3.0.0 Use str_repeat() instead - * @param int - * @return string - */ - function nbs($num = 1) - { - return str_repeat(' ', $num); - } -} diff --git a/tests/codeigniter/helpers/html_helper_test.php b/tests/codeigniter/helpers/html_helper_test.php index 029f3f4cd..5565e011b 100644 --- a/tests/codeigniter/helpers/html_helper_test.php +++ b/tests/codeigniter/helpers/html_helper_test.php @@ -9,13 +9,6 @@ class Html_helper_test extends CI_TestCase { // ------------------------------------------------------------------------ - public function test_br() - { - $this->assertEquals('

', br(2)); - } - - // ------------------------------------------------------------------------ - public function test_heading() { $this->assertEquals('

foobar

', heading('foobar')); @@ -72,13 +65,6 @@ EOH; // ------------------------------------------------------------------------ - public function test_NBS() - { - $this->assertEquals('   ', nbs(3)); - } - - // ------------------------------------------------------------------------ - public function test_meta() { $this->assertEquals( @@ -101,4 +87,4 @@ EOH; meta(array('name' => 'foo', 'type' => 'charset')) ); } -} \ No newline at end of file +} diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index ba11fe1c8..33f25db51 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -15,6 +15,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). - Removed previously deprecated :doc:`Date Helper ` function ``standard_date()`` (use PHP's native ``date()`` instead). - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). + - Removed previously deprecated :doc:`HTML Helper ` functions ``br()`` and ``nbs()`` (use PHP's native ``str_repeat()`` with ``'
'`` and ``' '`` respectively). - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - Libraries @@ -3501,7 +3502,7 @@ Release Date: March 10, 2006 - Fixed a pagination problem in the scaffolding. - Fixed a bug in the mysql class "where" function. - Fixed a regex problem in some code that trimmed duplicate slashes. -- Fixed a bug in the br() function in the HTML helper +- Fixed a bug in the ``br()`` function in the HTML helper - Fixed a syntax mistake in the form_dropdown function in the Form Helper. - Removed the "style" attributes form the form helpers. diff --git a/user_guide_src/source/helpers/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst index b4e56fdca..734b4465c 100644 --- a/user_guide_src/source/helpers/html_helper.rst +++ b/user_guide_src/source/helpers/html_helper.rst @@ -371,43 +371,3 @@ The following functions are available: XHTML+RDFa 1.0 xhtml-rdfa-1 XHTML+RDFa 1.1 xhtml-rdfa-2 =============================== =================== ================================================================================================================================================== - -.. php:function:: br([$count = 1]) - - :param int $count: Number of times to repeat the tag - :returns: HTML line break tag - :rtype: string - - Generates line break tags (
) based on the number you submit. - Example:: - - echo br(3); - - The above would produce: - - .. code-block:: html - -


- - .. note:: This function is DEPRECATED. Use the native ``str_repeat()`` - in combination with ``
`` instead. - -.. php:function:: nbs([$num = 1]) - - :param int $num: Number of space entities to produce - :returns: A sequence of non-breaking space HTML entities - :rtype: string - - Generates non-breaking spaces ( ) based on the number you submit. - Example:: - - echo nbs(3); - - The above would produce: - - .. code-block:: html - -     - - .. note:: This function is DEPRECATED. Use the native ``str_repeat()`` - in combination with `` `` instead. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 080a02895..a357e20ef 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -139,6 +139,8 @@ version 3.0.0, that have been removed in 3.2.0: - ``standard_date()`` :doc:`Date Helper <../helpers/date_helper>` function (use ``date()`` instead) - ``do_hash()`` :doc:`Security Helper <../helpers/security_helper>` function (use ``hash()`` instead) +- ``br()`` :doc:`HTML Helper <../helpers/html_helper>` function (use ``str_repeat()`` with ``'
'`` instead) +- ``nbs()`` :doc:`HTML Helper <../helpers/html_helper>` function (use ``str_repeat()`` with ``' '`` instead) - The entire *Email Helper*, which only had two functions: -- cgit v1.2.3-24-g4f1b From 41091ba2fd3005d4a387ee17bfd7520475028627 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:25:25 +0200 Subject: Remove previously deprecates String Helper functions trim_slashes(), repeater() --- system/helpers/string_helper.php | 47 ---------------------- tests/codeigniter/helpers/string_helper_test.php | 32 +-------------- user_guide_src/source/changelog.rst | 5 ++- user_guide_src/source/helpers/string_helper.rst | 37 +---------------- user_guide_src/source/installation/upgrade_300.rst | 4 +- user_guide_src/source/installation/upgrade_320.rst | 2 + 6 files changed, 9 insertions(+), 118 deletions(-) diff --git a/system/helpers/string_helper.php b/system/helpers/string_helper.php index db531fa9a..62b1a18e0 100644 --- a/system/helpers/string_helper.php +++ b/system/helpers/string_helper.php @@ -49,33 +49,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); // ------------------------------------------------------------------------ -if ( ! function_exists('trim_slashes')) -{ - /** - * Trim Slashes - * - * Removes any leading/trailing slashes from a string: - * - * /this/that/theother/ - * - * becomes: - * - * this/that/theother - * - * @todo Remove in version 3.1+. - * @deprecated 3.0.0 This is just an alias for PHP's native trim() - * - * @param string - * @return string - */ - function trim_slashes($str) - { - return trim($str, '/'); - } -} - -// ------------------------------------------------------------------------ - if ( ! function_exists('strip_slashes')) { /** @@ -284,23 +257,3 @@ if ( ! function_exists('alternator')) return $args[($i++ % count($args))]; } } - -// ------------------------------------------------------------------------ - -if ( ! function_exists('repeater')) -{ - /** - * Repeater function - * - * @todo Remove in version 3.1+. - * @deprecated 3.0.0 This is just an alias for PHP's native str_repeat() - * - * @param string $data String to repeat - * @param int $num Number of repeats - * @return string - */ - function repeater($data, $num = 1) - { - return ($num > 0) ? str_repeat($data, $num) : ''; - } -} diff --git a/tests/codeigniter/helpers/string_helper_test.php b/tests/codeigniter/helpers/string_helper_test.php index 75701ec13..6de336b01 100644 --- a/tests/codeigniter/helpers/string_helper_test.php +++ b/tests/codeigniter/helpers/string_helper_test.php @@ -22,19 +22,6 @@ class String_helper_test extends CI_TestCase { $this->assertEquals($expected, strip_slashes($str)); } - public function test_trim_slashes() - { - $strs = array( - '//Slashes//\/' => 'Slashes//\\', - '/var/www/html/' => 'var/www/html' - ); - - foreach ($strs as $str => $expect) - { - $this->assertEquals($expect, trim_slashes($str)); - } - } - // -------------------------------------------------------------------- public function test_strip_quotes() @@ -108,23 +95,6 @@ class String_helper_test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_repeater() - { - $strs = array( - 'a' => 'aaaaaaaaaa', - ' ' => '          ', - '
' => '









' - - ); - - foreach ($strs as $str => $expect) - { - $this->assertEquals($expect, repeater($str, 10)); - } - } - - // -------------------------------------------------------------------- - public function test_random_string() { $this->assertEquals(16, strlen(random_string('alnum', 16))); @@ -145,4 +115,4 @@ class String_helper_test extends CI_TestCase { $this->assertEquals(124, increment_string('123', '')); } -} \ No newline at end of file +} diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 33f25db51..8be737b6f 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -16,6 +16,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Date Helper ` function ``standard_date()`` (use PHP's native ``date()`` instead). - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - Removed previously deprecated :doc:`HTML Helper ` functions ``br()`` and ``nbs()`` (use PHP's native ``str_repeat()`` with ``'
'`` and ``' '`` respectively). + - Removed previously deprecated :doc:`String Helper ` functions ``trim_slashes()`` and ``repeater()`` (use PHP's native ``trim()`` with ``'/'`` and ``str_repeat()`` respectively). - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - Libraries @@ -2969,7 +2970,7 @@ Release Date: July 12, 2007 - Fixed various doc typos. - Documented two functions from the :doc:`String helper <./helpers/string_helper>` that were missing from the - user guide: trim_slashes() and reduce_double_slashes(). + user guide: ``trim_slashes()`` and ``reduce_double_slashes()``. - Docs now validate to XHTML 1 transitional - Updated the XSS Filtering to take into account the IE expression() ability and improved certain deletions to prevent possible exploits @@ -3000,7 +3001,7 @@ Release Date: April 15, 2007 - Added array to string into the profiler - Code Igniter references updated to CodeIgniter - pMachine references updated to EllisLab -- Fixed a bug in the repeater function of :doc:`string +- Fixed a bug in the ``repeater()`` function of :doc:`string helper <./helpers/string_helper>`. - Fixed a bug in ODBC driver - Fixed a bug in result_array() that was returning an empty array when diff --git a/user_guide_src/source/helpers/string_helper.rst b/user_guide_src/source/helpers/string_helper.rst index 53052557e..d697d824b 100644 --- a/user_guide_src/source/helpers/string_helper.rst +++ b/user_guide_src/source/helpers/string_helper.rst @@ -27,7 +27,6 @@ Available Functions The following functions are available: - .. php:function:: random_string([$type = 'alnum'[, $len = 8]]) :param string $type: Randomization type @@ -102,24 +101,6 @@ The following functions are available: .. note:: To use multiple separate calls to this function simply call the function with no arguments to re-initialize. -.. php:function:: repeater($data[, $num = 1]) - - :param string $data: Input - :param int $num: Number of times to repeat - :returns: Repeated string - :rtype: string - - Generates repeating copies of the data you submit. Example:: - - $string = "\n"; - echo repeater($string, 30); - - The above would generate 30 newlines. - - .. note:: This function is DEPRECATED. Use the native ``str_repeat()`` - instead. - - .. php:function:: reduce_double_slashes($str) :param string $str: Input string @@ -134,7 +115,6 @@ The following functions are available: $string = "http://example.com//index.php"; echo reduce_double_slashes($string); // results in "http://example.com/index.php" - .. php:function:: strip_slashes($data) :param mixed $data: Input string or an array of strings @@ -163,21 +143,6 @@ The following functions are available: and handle string inputs. This however makes it just an alias for ``stripslashes()``. -.. php:function:: trim_slashes($str) - - :param string $str: Input string - :returns: Slash-trimmed string - :rtype: string - - Removes any leading/trailing slashes from a string. Example:: - - $string = "/this/that/theother/"; - echo trim_slashes($string); // results in this/that/theother - - .. note:: This function is DEPRECATED. Use the native ``trim()`` instead: - | - | trim($str, '/'); - .. php:function:: reduce_multiples($str[, $character = ''[, $trim = FALSE]]) :param string $str: Text to search in @@ -220,4 +185,4 @@ The following functions are available: Removes single and double quotes from a string. Example:: $string = "Joe's \"dinner\""; - $string = strip_quotes($string); //results in "Joes dinner" \ No newline at end of file + $string = strip_quotes($string); //results in "Joes dinner" diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index 9d0d0dc1e..c7c2b948a 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -624,7 +624,7 @@ CodeIgniter 3.1+. String helper repeater() ======================== -:doc:`String Helper <../helpers/string_helper>` function :php:func:`repeater()` is now just an alias for +:doc:`String Helper <../helpers/string_helper>` function ``repeater()`` is now just an alias for PHP's native ``str_repeat()`` function. It is deprecated and scheduled for removal in CodeIgniter 3.1+. .. note:: This function is still available, but you're strongly encouraged to remove its usage sooner @@ -633,7 +633,7 @@ PHP's native ``str_repeat()`` function. It is deprecated and scheduled for remov String helper trim_slashes() ============================ -:doc:`String Helper <../helpers/string_helper>` function :php:func:`trim_slashes()` is now just an alias +:doc:`String Helper <../helpers/string_helper>` function ``trim_slashes()`` is now just an alias for PHP's native ``trim()`` function (with a slash passed as its second argument). It is deprecated and scheduled for removal in CodeIgniter 3.1+. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index a357e20ef..8a559c268 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -141,6 +141,8 @@ version 3.0.0, that have been removed in 3.2.0: - ``do_hash()`` :doc:`Security Helper <../helpers/security_helper>` function (use ``hash()`` instead) - ``br()`` :doc:`HTML Helper <../helpers/html_helper>` function (use ``str_repeat()`` with ``'
'`` instead) - ``nbs()`` :doc:`HTML Helper <../helpers/html_helper>` function (use ``str_repeat()`` with ``' '`` instead) +- ``trim_slashes()`` :doc:`String Helper <../helpers/string_helper>` function (use ``trim()`` with ``'/'`` instead) +- ``repeater()`` :doc:`String Helper <../helpers/string_helper>` function (use ``str_repeat()`` instead) - The entire *Email Helper*, which only had two functions: -- cgit v1.2.3-24-g4f1b From 172f949370bb1498789c7d897fdaa4073388ebd5 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:28:41 +0200 Subject: Remove previously deprecated File Helper function read_file() --- system/helpers/file_helper.php | 20 ---------------- tests/codeigniter/helpers/file_helper_test.php | 15 +----------- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/helpers/file_helper.rst | 28 +--------------------- user_guide_src/source/installation/upgrade_320.rst | 1 + 5 files changed, 4 insertions(+), 61 deletions(-) diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php index 3cb36a551..484bf3228 100644 --- a/system/helpers/file_helper.php +++ b/system/helpers/file_helper.php @@ -49,26 +49,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); // ------------------------------------------------------------------------ -if ( ! function_exists('read_file')) -{ - /** - * Read File - * - * Opens the file specified in the path and returns it as a string. - * - * @todo Remove in version 3.1+. - * @deprecated 3.0.0 It is now just an alias for PHP's native file_get_contents(). - * @param string $file Path to file - * @return string File contents - */ - function read_file($file) - { - return @file_get_contents($file); - } -} - -// ------------------------------------------------------------------------ - if ( ! function_exists('write_file')) { /** diff --git a/tests/codeigniter/helpers/file_helper_test.php b/tests/codeigniter/helpers/file_helper_test.php index c31817595..5ed8cb5c0 100644 --- a/tests/codeigniter/helpers/file_helper_test.php +++ b/tests/codeigniter/helpers/file_helper_test.php @@ -14,19 +14,6 @@ class File_helper_Test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_read_file() - { - $this->assertFalse(read_file('does_not_exist')); - - $content = 'Jack and Jill went up the mountain to fight a billy goat.'; - - $file = vfsStream::newFile('my_file.txt')->withContent($content)->at($this->_test_dir); - - $this->assertEquals($content, read_file(vfsStream::url('my_file.txt'))); - } - - // -------------------------------------------------------------------- - public function test_octal_permissions() { $content = 'Jack and Jill went up the mountain to fight a billy goat.'; @@ -144,4 +131,4 @@ class File_helper_Test extends CI_TestCase { $this->assertTrue(write_file(vfsStream::url('write.txt'), $content)); } -} \ No newline at end of file +} diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 8be737b6f..b6ef1db95 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -17,6 +17,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - Removed previously deprecated :doc:`HTML Helper ` functions ``br()`` and ``nbs()`` (use PHP's native ``str_repeat()`` with ``'
'`` and ``' '`` respectively). - Removed previously deprecated :doc:`String Helper ` functions ``trim_slashes()`` and ``repeater()`` (use PHP's native ``trim()`` with ``'/'`` and ``str_repeat()`` respectively). + - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - Libraries diff --git a/user_guide_src/source/helpers/file_helper.rst b/user_guide_src/source/helpers/file_helper.rst index 833cddea4..dcf3a2340 100644 --- a/user_guide_src/source/helpers/file_helper.rst +++ b/user_guide_src/source/helpers/file_helper.rst @@ -23,32 +23,6 @@ Available Functions The following functions are available: - -.. php:function:: read_file($file) - - :param string $file: File path - :returns: File contents or FALSE on failure - :rtype: string - - Returns the data contained in the file specified in the path. - - Example:: - - $string = read_file('./path/to/file.php'); - - The path can be a relative or full server path. Returns FALSE (boolean) on failure. - - .. note:: The path is relative to your main site index.php file, NOT your - controller or view files. CodeIgniter uses a front controller so paths - are always relative to the main site index. - - .. note:: This function is DEPRECATED. Use the native ``file_get_contents()`` - instead. - - .. important:: If your server is running an **open_basedir** restriction this - function might not work if you are trying to access a file above the - calling script. - .. php:function:: write_file($path, $data[, $mode = 'wb']) :param string $path: File path @@ -199,4 +173,4 @@ The following functions are available: :: - echo octal_permissions(fileperms('./index.php')); // 644 \ No newline at end of file + echo octal_permissions(fileperms('./index.php')); // 644 diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 8a559c268..5cf2acd3b 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -143,6 +143,7 @@ version 3.0.0, that have been removed in 3.2.0: - ``nbs()`` :doc:`HTML Helper <../helpers/html_helper>` function (use ``str_repeat()`` with ``' '`` instead) - ``trim_slashes()`` :doc:`String Helper <../helpers/string_helper>` function (use ``trim()`` with ``'/'`` instead) - ``repeater()`` :doc:`String Helper <../helpers/string_helper>` function (use ``str_repeat()`` instead) +- ``read_file()`` :doc:`File Helper <../helpers/file_helper>` function (use ``file_get_contents()`` instead) - The entire *Email Helper*, which only had two functions: -- cgit v1.2.3-24-g4f1b From 37c4cc599698da0634d620665491fc27e9a36beb Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:33:42 +0200 Subject: Remove previously deprecated Form Helper function form_prep() --- system/helpers/form_helper.php | 19 ------------------- tests/codeigniter/helpers/form_helper_test.php | 16 ---------------- user_guide_src/source/changelog.rst | 9 +++++---- user_guide_src/source/helpers/form_helper.rst | 17 ----------------- user_guide_src/source/installation/upgrade_300.rst | 4 ++-- user_guide_src/source/installation/upgrade_320.rst | 1 + 6 files changed, 8 insertions(+), 58 deletions(-) diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index aa7379f77..9756437ae 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -653,25 +653,6 @@ if ( ! function_exists('form_close')) // ------------------------------------------------------------------------ -if ( ! function_exists('form_prep')) -{ - /** - * Form Prep - * - * Formats text so that it can be safely placed in a form field in the event it has HTML tags. - * - * @deprecated 3.0.0 An alias for html_escape() - * @param string|string[] $str Value to escape - * @return string|string[] Escaped values - */ - function form_prep($str) - { - return html_escape($str, TRUE); - } -} - -// ------------------------------------------------------------------------ - if ( ! function_exists('set_value')) { /** diff --git a/tests/codeigniter/helpers/form_helper_test.php b/tests/codeigniter/helpers/form_helper_test.php index b5fe99b96..4ecfaa5f7 100644 --- a/tests/codeigniter/helpers/form_helper_test.php +++ b/tests/codeigniter/helpers/form_helper_test.php @@ -271,20 +271,4 @@ EOH; $this->assertEquals($expected, form_close('
')); } - - // ------------------------------------------------------------------------ - - public function test_form_prep() - { - $this->assertEquals( - 'Here is a string containing "quoted" text.', - form_prep('Here is a string containing "quoted" text.') - ); - - $this->assertEquals( - 'Here is a string containing a <tag>.', - form_prep('Here is a string containing a .', TRUE) - ); - } - } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index b6ef1db95..2dcb0b1af 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -18,6 +18,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`HTML Helper ` functions ``br()`` and ``nbs()`` (use PHP's native ``str_repeat()`` with ``'
'`` and ``' '`` respectively). - Removed previously deprecated :doc:`String Helper ` functions ``trim_slashes()`` and ``repeater()`` (use PHP's native ``trim()`` with ``'/'`` and ``str_repeat()`` respectively). - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). + - Removed previously deprecated :doc:`Form Helper ` function ``form_prep()`` (use :php:func:`html_escape()` instead). - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - Libraries @@ -550,7 +551,7 @@ Release Date: March 30, 2015 - :doc:`Form Helper ` changes include: - :php:func:`form_dropdown()` will now also take an array for unity with other form helpers. - - :php:func:`form_prep()` is now DEPRECATED and only acts as an alias for :doc:`common function ` :php:func:`html_escape()`. + - ``form_prep()`` is now DEPRECATED and only acts as an alias for :doc:`common function ` :php:func:`html_escape()`. - :php:func:`set_value()` will now also accept a third argument, allowing to turn off HTML escaping of the value. - :doc:`Security Helper ` changes include: @@ -1994,7 +1995,7 @@ Hg Tag: v1.7.2 - Modified form_hidden() in the :doc:`Form helper ` to accept multi-dimensional arrays. - - Modified form_prep() in the :doc:`Form + - Modified ``form_prep()`` in the :doc:`Form helper ` to keep track of prepped fields to avoid multiple prep/mutation from subsequent calls which can occur when using Form Validation and form helper functions to @@ -2053,7 +2054,7 @@ Bug fixes for 1.7.2 - Fixed a case sensitive string replacement in xss_clean() - Fixed a bug in form_textarea() where form data was not prepped correctly. -- Fixed a bug in form_prep() causing it to not preserve entities in +- Fixed a bug in ``form_prep()`` causing it to not preserve entities in the user's original input when called back into a form element - Fixed a bug in _protect_identifiers() where the swap prefix ($swap_pre) was not being observed. @@ -3142,7 +3143,7 @@ Release Date: October 30, 2006 - Fixed a bug in the validation class. - Fixed a bug in the typography helper that was incorrectly wrapping block level elements in paragraph tags. -- Fixed a problem in the form_prep() function that was double encoding +- Fixed a problem in the ``form_prep()`` function that was double encoding entities. - Fixed a bug that affects some versions of PHP when output buffering is nested. diff --git a/user_guide_src/source/helpers/form_helper.rst b/user_guide_src/source/helpers/form_helper.rst index bc30a0e98..cf52cd523 100644 --- a/user_guide_src/source/helpers/form_helper.rst +++ b/user_guide_src/source/helpers/form_helper.rst @@ -724,20 +724,3 @@ The following functions are available: The "password" field doesn't match the "repeat_password" field! */ - -.. php:function:: form_prep($str) - - :param string $str: Value to escape - :returns: Escaped value - :rtype: string - - Allows you to safely use HTML and characters such as quotes within form - elements without breaking out of the form. - - .. note:: If you use any of the form helper functions listed in this page the form - values will be prepped automatically, so there is no need to call this - function. Use it only if you are creating your own form elements. - - .. note:: This function is DEPRECATED and is just an alias for - :doc:`common function <../general/common_functions>` - :func:`html_escape()` - please use that instead. diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index c7c2b948a..35f5621cd 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -643,8 +643,8 @@ scheduled for removal in CodeIgniter 3.1+. Form helper form_prep() ======================= -:doc:`Form Helper <../helpers/form_helper>` function :php:func:`form_prep()` -is now just an alias for :doc:`common function ` +:doc:`Form Helper <../helpers/form_helper>` function ``form_prep()`` is now +just an alias for :doc:`common function ` :func:`html_escape()`. It is deprecated and will be removed in the future. Please use :php:func:`html_escape()` instead. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 5cf2acd3b..6107d084b 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -144,6 +144,7 @@ version 3.0.0, that have been removed in 3.2.0: - ``trim_slashes()`` :doc:`String Helper <../helpers/string_helper>` function (use ``trim()`` with ``'/'`` instead) - ``repeater()`` :doc:`String Helper <../helpers/string_helper>` function (use ``str_repeat()`` instead) - ``read_file()`` :doc:`File Helper <../helpers/file_helper>` function (use ``file_get_contents()`` instead) +- ``form_prep()`` :doc:`Form Helper <../helpers/form_helper>` function (use :php:func:`html_escape()` instead) - The entire *Email Helper*, which only had two functions: -- cgit v1.2.3-24-g4f1b From fe58c1c633cdfc11efc22a4d9bd888fab4a2a15c Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:40:01 +0200 Subject: Remove previously deprecated Javascript Library --- system/libraries/Javascript.php | 856 ---------------- system/libraries/Javascript/Jquery.php | 1076 -------------------- system/libraries/Javascript/index.html | 11 - user_guide_src/source/changelog.rst | 1 + user_guide_src/source/installation/upgrade_300.rst | 4 +- user_guide_src/source/installation/upgrade_320.rst | 2 + user_guide_src/source/libraries/javascript.rst | 322 ------ 7 files changed, 5 insertions(+), 2267 deletions(-) delete mode 100644 system/libraries/Javascript.php delete mode 100644 system/libraries/Javascript/Jquery.php delete mode 100644 system/libraries/Javascript/index.html delete mode 100644 user_guide_src/source/libraries/javascript.rst diff --git a/system/libraries/Javascript.php b/system/libraries/Javascript.php deleted file mode 100644 index 2ddab38ee..000000000 --- a/system/libraries/Javascript.php +++ /dev/null @@ -1,856 +0,0 @@ - 'jquery', 'autoload' => TRUE); - - foreach ($defaults as $key => $val) - { - if (isset($params[$key]) && $params[$key] !== '') - { - $defaults[$key] = $params[$key]; - } - } - - extract($defaults); - - $this->CI =& get_instance(); - - // load the requested js library - $this->CI->load->library('Javascript/'.$js_library_driver, array('autoload' => $autoload)); - // make js to refer to current library - $this->js =& $this->CI->$js_library_driver; - - log_message('info', 'Javascript Class Initialized and loaded. Driver used: '.$js_library_driver); - } - - // -------------------------------------------------------------------- - // Event Code - // -------------------------------------------------------------------- - - /** - * Blur - * - * Outputs a javascript library blur event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function blur($element = 'this', $js = '') - { - return $this->js->_blur($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Change - * - * Outputs a javascript library change event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function change($element = 'this', $js = '') - { - return $this->js->_change($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Click - * - * Outputs a javascript library click event - * - * @param string The element to attach the event to - * @param string The code to execute - * @param bool whether or not to return false - * @return string - */ - public function click($element = 'this', $js = '', $ret_false = TRUE) - { - return $this->js->_click($element, $js, $ret_false); - } - - // -------------------------------------------------------------------- - - /** - * Double Click - * - * Outputs a javascript library dblclick event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function dblclick($element = 'this', $js = '') - { - return $this->js->_dblclick($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Error - * - * Outputs a javascript library error event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function error($element = 'this', $js = '') - { - return $this->js->_error($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Focus - * - * Outputs a javascript library focus event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function focus($element = 'this', $js = '') - { - return $this->js->_focus($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Hover - * - * Outputs a javascript library hover event - * - * @param string - element - * @param string - Javascript code for mouse over - * @param string - Javascript code for mouse out - * @return string - */ - public function hover($element = 'this', $over = '', $out = '') - { - return $this->js->_hover($element, $over, $out); - } - - // -------------------------------------------------------------------- - - /** - * Keydown - * - * Outputs a javascript library keydown event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function keydown($element = 'this', $js = '') - { - return $this->js->_keydown($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Keyup - * - * Outputs a javascript library keydown event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function keyup($element = 'this', $js = '') - { - return $this->js->_keyup($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Load - * - * Outputs a javascript library load event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function load($element = 'this', $js = '') - { - return $this->js->_load($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Mousedown - * - * Outputs a javascript library mousedown event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function mousedown($element = 'this', $js = '') - { - return $this->js->_mousedown($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Mouse Out - * - * Outputs a javascript library mouseout event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function mouseout($element = 'this', $js = '') - { - return $this->js->_mouseout($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Mouse Over - * - * Outputs a javascript library mouseover event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function mouseover($element = 'this', $js = '') - { - return $this->js->_mouseover($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Mouseup - * - * Outputs a javascript library mouseup event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function mouseup($element = 'this', $js = '') - { - return $this->js->_mouseup($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Output - * - * Outputs the called javascript to the screen - * - * @param string The code to output - * @return string - */ - public function output($js) - { - return $this->js->_output($js); - } - - // -------------------------------------------------------------------- - - /** - * Ready - * - * Outputs a javascript library mouseup event - * - * @param string $js Code to execute - * @return string - */ - public function ready($js) - { - return $this->js->_document_ready($js); - } - - // -------------------------------------------------------------------- - - /** - * Resize - * - * Outputs a javascript library resize event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function resize($element = 'this', $js = '') - { - return $this->js->_resize($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Scroll - * - * Outputs a javascript library scroll event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function scroll($element = 'this', $js = '') - { - return $this->js->_scroll($element, $js); - } - - // -------------------------------------------------------------------- - - /** - * Unload - * - * Outputs a javascript library unload event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - public function unload($element = 'this', $js = '') - { - return $this->js->_unload($element, $js); - } - - // -------------------------------------------------------------------- - // Effects - // -------------------------------------------------------------------- - - /** - * Add Class - * - * Outputs a javascript library addClass event - * - * @param string - element - * @param string - Class to add - * @return string - */ - public function addClass($element = 'this', $class = '') - { - return $this->js->_addClass($element, $class); - } - - // -------------------------------------------------------------------- - - /** - * Animate - * - * Outputs a javascript library animate event - * - * @param string $element = 'this' - * @param array $params = array() - * @param mixed $speed 'slow', 'normal', 'fast', or time in milliseconds - * @param string $extra - * @return string - */ - public function animate($element = 'this', $params = array(), $speed = '', $extra = '') - { - return $this->js->_animate($element, $params, $speed, $extra); - } - - // -------------------------------------------------------------------- - - /** - * Fade In - * - * Outputs a javascript library hide event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - public function fadeIn($element = 'this', $speed = '', $callback = '') - { - return $this->js->_fadeIn($element, $speed, $callback); - } - - // -------------------------------------------------------------------- - - /** - * Fade Out - * - * Outputs a javascript library hide event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - public function fadeOut($element = 'this', $speed = '', $callback = '') - { - return $this->js->_fadeOut($element, $speed, $callback); - } - // -------------------------------------------------------------------- - - /** - * Slide Up - * - * Outputs a javascript library slideUp event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - public function slideUp($element = 'this', $speed = '', $callback = '') - { - return $this->js->_slideUp($element, $speed, $callback); - - } - - // -------------------------------------------------------------------- - - /** - * Remove Class - * - * Outputs a javascript library removeClass event - * - * @param string - element - * @param string - Class to add - * @return string - */ - public function removeClass($element = 'this', $class = '') - { - return $this->js->_removeClass($element, $class); - } - - // -------------------------------------------------------------------- - - /** - * Slide Down - * - * Outputs a javascript library slideDown event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - public function slideDown($element = 'this', $speed = '', $callback = '') - { - return $this->js->_slideDown($element, $speed, $callback); - } - - // -------------------------------------------------------------------- - - /** - * Slide Toggle - * - * Outputs a javascript library slideToggle event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - public function slideToggle($element = 'this', $speed = '', $callback = '') - { - return $this->js->_slideToggle($element, $speed, $callback); - - } - - // -------------------------------------------------------------------- - - /** - * Hide - * - * Outputs a javascript library hide action - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - public function hide($element = 'this', $speed = '', $callback = '') - { - return $this->js->_hide($element, $speed, $callback); - } - - // -------------------------------------------------------------------- - - /** - * Toggle - * - * Outputs a javascript library toggle event - * - * @param string - element - * @return string - */ - public function toggle($element = 'this') - { - return $this->js->_toggle($element); - - } - - // -------------------------------------------------------------------- - - /** - * Toggle Class - * - * Outputs a javascript library toggle class event - * - * @param string $element = 'this' - * @param string $class = '' - * @return string - */ - public function toggleClass($element = 'this', $class = '') - { - return $this->js->_toggleClass($element, $class); - } - - // -------------------------------------------------------------------- - - /** - * Show - * - * Outputs a javascript library show event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - public function show($element = 'this', $speed = '', $callback = '') - { - return $this->js->_show($element, $speed, $callback); - } - - // -------------------------------------------------------------------- - - /** - * Compile - * - * gather together all script needing to be output - * - * @param string $view_var - * @param bool $script_tags - * @return string - */ - public function compile($view_var = 'script_foot', $script_tags = TRUE) - { - $this->js->_compile($view_var, $script_tags); - } - - // -------------------------------------------------------------------- - - /** - * Clear Compile - * - * Clears any previous javascript collected for output - * - * @return void - */ - public function clear_compile() - { - $this->js->_clear_compile(); - } - - // -------------------------------------------------------------------- - - /** - * External - * - * Outputs a - * - * @param string - * @return string - */ - protected function _close_script($extra = "\n") - { - return ''.$extra; - } - - // -------------------------------------------------------------------- - // AJAX-Y STUFF - still a testbed - // -------------------------------------------------------------------- - - /** - * Update - * - * Outputs a javascript library slideDown event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - public function update($element = 'this', $speed = '', $callback = '') - { - return $this->js->_updater($element, $speed, $callback); - } - - // -------------------------------------------------------------------- - - /** - * Generate JSON - * - * Can be passed a database result or associative array and returns a JSON formatted string - * - * @param mixed result set or array - * @param bool match array types (defaults to objects) - * @return string a json formatted string - */ - public function generate_json($result = NULL, $match_array_type = FALSE) - { - // JSON data can optionally be passed to this function - // either as a database result object or an array, or a user supplied array - if ($result !== NULL) - { - if (is_object($result)) - { - $json_result = is_callable(array($result, 'result_array')) ? $result->result_array() : (array) $result; - } - elseif (is_array($result)) - { - $json_result = $result; - } - else - { - return $this->_prep_args($result); - } - } - else - { - return 'null'; - } - - $json = array(); - $_is_assoc = TRUE; - - if ( ! is_array($json_result) && empty($json_result)) - { - show_error('Generate JSON Failed - Illegal key, value pair.'); - } - elseif ($match_array_type) - { - $_is_assoc = $this->_is_associative_array($json_result); - } - - foreach ($json_result as $k => $v) - { - if ($_is_assoc) - { - $json[] = $this->_prep_args($k, TRUE).':'.$this->generate_json($v, $match_array_type); - } - else - { - $json[] = $this->generate_json($v, $match_array_type); - } - } - - $json = implode(',', $json); - - return $_is_assoc ? '{'.$json.'}' : '['.$json.']'; - - } - - // -------------------------------------------------------------------- - - /** - * Is associative array - * - * Checks for an associative array - * - * @param array - * @return bool - */ - protected function _is_associative_array($arr) - { - foreach (array_keys($arr) as $key => $val) - { - if ($key !== $val) - { - return TRUE; - } - } - - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Prep Args - * - * Ensures a standard json value and escapes values - * - * @param mixed $result - * @param bool $is_key = FALSE - * @return string - */ - protected function _prep_args($result, $is_key = FALSE) - { - if ($result === NULL) - { - return 'null'; - } - elseif (is_bool($result)) - { - return ($result === TRUE) ? 'true' : 'false'; - } - elseif (is_string($result) OR $is_key) - { - return '"'.str_replace(array('\\', "\t", "\n", "\r", '"', '/'), array('\\\\', '\\t', '\\n', "\\r", '\"', '\/'), $result).'"'; - } - elseif (is_scalar($result)) - { - return $result; - } - } - -} diff --git a/system/libraries/Javascript/Jquery.php b/system/libraries/Javascript/Jquery.php deleted file mode 100644 index 9df1be1c1..000000000 --- a/system/libraries/Javascript/Jquery.php +++ /dev/null @@ -1,1076 +0,0 @@ -CI =& get_instance(); - extract($params); - - if ($autoload === TRUE) - { - $this->script(); - } - - log_message('info', 'Jquery Class Initialized'); - } - - // -------------------------------------------------------------------- - // Event Code - // -------------------------------------------------------------------- - - /** - * Blur - * - * Outputs a jQuery blur event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _blur($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'blur'); - } - - // -------------------------------------------------------------------- - - /** - * Change - * - * Outputs a jQuery change event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _change($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'change'); - } - - // -------------------------------------------------------------------- - - /** - * Click - * - * Outputs a jQuery click event - * - * @param string The element to attach the event to - * @param string The code to execute - * @param bool whether or not to return false - * @return string - */ - protected function _click($element = 'this', $js = '', $ret_false = TRUE) - { - is_array($js) OR $js = array($js); - - if ($ret_false) - { - $js[] = 'return false;'; - } - - return $this->_add_event($element, $js, 'click'); - } - - // -------------------------------------------------------------------- - - /** - * Double Click - * - * Outputs a jQuery dblclick event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _dblclick($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'dblclick'); - } - - // -------------------------------------------------------------------- - - /** - * Error - * - * Outputs a jQuery error event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _error($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'error'); - } - - // -------------------------------------------------------------------- - - /** - * Focus - * - * Outputs a jQuery focus event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _focus($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'focus'); - } - - // -------------------------------------------------------------------- - - /** - * Hover - * - * Outputs a jQuery hover event - * - * @param string - element - * @param string - Javascript code for mouse over - * @param string - Javascript code for mouse out - * @return string - */ - protected function _hover($element = 'this', $over = '', $out = '') - { - $event = "\n\t$(".$this->_prep_element($element).").hover(\n\t\tfunction()\n\t\t{\n\t\t\t{$over}\n\t\t}, \n\t\tfunction()\n\t\t{\n\t\t\t{$out}\n\t\t});\n"; - - $this->jquery_code_for_compile[] = $event; - - return $event; - } - - // -------------------------------------------------------------------- - - /** - * Keydown - * - * Outputs a jQuery keydown event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _keydown($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'keydown'); - } - - // -------------------------------------------------------------------- - - /** - * Keyup - * - * Outputs a jQuery keydown event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _keyup($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'keyup'); - } - - // -------------------------------------------------------------------- - - /** - * Load - * - * Outputs a jQuery load event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _load($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'load'); - } - - // -------------------------------------------------------------------- - - /** - * Mousedown - * - * Outputs a jQuery mousedown event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _mousedown($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'mousedown'); - } - - // -------------------------------------------------------------------- - - /** - * Mouse Out - * - * Outputs a jQuery mouseout event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _mouseout($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'mouseout'); - } - - // -------------------------------------------------------------------- - - /** - * Mouse Over - * - * Outputs a jQuery mouseover event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _mouseover($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'mouseover'); - } - - // -------------------------------------------------------------------- - - /** - * Mouseup - * - * Outputs a jQuery mouseup event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _mouseup($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'mouseup'); - } - - // -------------------------------------------------------------------- - - /** - * Output - * - * Outputs script directly - * - * @param array $array_js = array() - * @return void - */ - protected function _output($array_js = array()) - { - if ( ! is_array($array_js)) - { - $array_js = array($array_js); - } - - foreach ($array_js as $js) - { - $this->jquery_code_for_compile[] = "\t".$js."\n"; - } - } - - // -------------------------------------------------------------------- - - /** - * Resize - * - * Outputs a jQuery resize event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _resize($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'resize'); - } - - // -------------------------------------------------------------------- - - /** - * Scroll - * - * Outputs a jQuery scroll event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _scroll($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'scroll'); - } - - // -------------------------------------------------------------------- - - /** - * Unload - * - * Outputs a jQuery unload event - * - * @param string The element to attach the event to - * @param string The code to execute - * @return string - */ - protected function _unload($element = 'this', $js = '') - { - return $this->_add_event($element, $js, 'unload'); - } - - // -------------------------------------------------------------------- - // Effects - // -------------------------------------------------------------------- - - /** - * Add Class - * - * Outputs a jQuery addClass event - * - * @param string $element - * @param string $class - * @return string - */ - protected function _addClass($element = 'this', $class = '') - { - $element = $this->_prep_element($element); - return '$('.$element.').addClass("'.$class.'");'; - } - - // -------------------------------------------------------------------- - - /** - * Animate - * - * Outputs a jQuery animate event - * - * @param string $element - * @param array $params - * @param string $speed 'slow', 'normal', 'fast', or time in milliseconds - * @param string $extra - * @return string - */ - protected function _animate($element = 'this', $params = array(), $speed = '', $extra = '') - { - $element = $this->_prep_element($element); - $speed = $this->_validate_speed($speed); - - $animations = "\t\t\t"; - - foreach ($params as $param => $value) - { - $animations .= $param.": '".$value."', "; - } - - $animations = substr($animations, 0, -2); // remove the last ", " - - if ($speed !== '') - { - $speed = ', '.$speed; - } - - if ($extra !== '') - { - $extra = ', '.$extra; - } - - return "$({$element}).animate({\n$animations\n\t\t}".$speed.$extra.');'; - } - - // -------------------------------------------------------------------- - - /** - * Fade In - * - * Outputs a jQuery hide event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - protected function _fadeIn($element = 'this', $speed = '', $callback = '') - { - $element = $this->_prep_element($element); - $speed = $this->_validate_speed($speed); - - if ($callback !== '') - { - $callback = ", function(){\n{$callback}\n}"; - } - - return "$({$element}).fadeIn({$speed}{$callback});"; - } - - // -------------------------------------------------------------------- - - /** - * Fade Out - * - * Outputs a jQuery hide event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - protected function _fadeOut($element = 'this', $speed = '', $callback = '') - { - $element = $this->_prep_element($element); - $speed = $this->_validate_speed($speed); - - if ($callback !== '') - { - $callback = ", function(){\n{$callback}\n}"; - } - - return '$('.$element.').fadeOut('.$speed.$callback.');'; - } - - // -------------------------------------------------------------------- - - /** - * Hide - * - * Outputs a jQuery hide action - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - protected function _hide($element = 'this', $speed = '', $callback = '') - { - $element = $this->_prep_element($element); - $speed = $this->_validate_speed($speed); - - if ($callback !== '') - { - $callback = ", function(){\n{$callback}\n}"; - } - - return "$({$element}).hide({$speed}{$callback});"; - } - - // -------------------------------------------------------------------- - - /** - * Remove Class - * - * Outputs a jQuery remove class event - * - * @param string $element - * @param string $class - * @return string - */ - protected function _removeClass($element = 'this', $class = '') - { - $element = $this->_prep_element($element); - return '$('.$element.').removeClass("'.$class.'");'; - } - - // -------------------------------------------------------------------- - - /** - * Slide Up - * - * Outputs a jQuery slideUp event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - protected function _slideUp($element = 'this', $speed = '', $callback = '') - { - $element = $this->_prep_element($element); - $speed = $this->_validate_speed($speed); - - if ($callback !== '') - { - $callback = ", function(){\n{$callback}\n}"; - } - - return '$('.$element.').slideUp('.$speed.$callback.');'; - } - - // -------------------------------------------------------------------- - - /** - * Slide Down - * - * Outputs a jQuery slideDown event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - protected function _slideDown($element = 'this', $speed = '', $callback = '') - { - $element = $this->_prep_element($element); - $speed = $this->_validate_speed($speed); - - if ($callback !== '') - { - $callback = ", function(){\n{$callback}\n}"; - } - - return '$('.$element.').slideDown('.$speed.$callback.');'; - } - - // -------------------------------------------------------------------- - - /** - * Slide Toggle - * - * Outputs a jQuery slideToggle event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - protected function _slideToggle($element = 'this', $speed = '', $callback = '') - { - $element = $this->_prep_element($element); - $speed = $this->_validate_speed($speed); - - if ($callback !== '') - { - $callback = ", function(){\n{$callback}\n}"; - } - - return '$('.$element.').slideToggle('.$speed.$callback.');'; - } - - // -------------------------------------------------------------------- - - /** - * Toggle - * - * Outputs a jQuery toggle event - * - * @param string - element - * @return string - */ - protected function _toggle($element = 'this') - { - $element = $this->_prep_element($element); - return '$('.$element.').toggle();'; - } - - // -------------------------------------------------------------------- - - /** - * Toggle Class - * - * Outputs a jQuery toggle class event - * - * @param string $element - * @param string $class - * @return string - */ - protected function _toggleClass($element = 'this', $class = '') - { - $element = $this->_prep_element($element); - return '$('.$element.').toggleClass("'.$class.'");'; - } - - // -------------------------------------------------------------------- - - /** - * Show - * - * Outputs a jQuery show event - * - * @param string - element - * @param string - One of 'slow', 'normal', 'fast', or time in milliseconds - * @param string - Javascript callback function - * @return string - */ - protected function _show($element = 'this', $speed = '', $callback = '') - { - $element = $this->_prep_element($element); - $speed = $this->_validate_speed($speed); - - if ($callback !== '') - { - $callback = ", function(){\n{$callback}\n}"; - } - - return '$('.$element.').show('.$speed.$callback.');'; - } - - // -------------------------------------------------------------------- - - /** - * Updater - * - * An Ajax call that populates the designated DOM node with - * returned content - * - * @param string The element to attach the event to - * @param string the controller to run the call against - * @param string optional parameters - * @return string - */ - - protected function _updater($container = 'this', $controller = '', $options = '') - { - $container = $this->_prep_element($container); - $controller = (strpos('://', $controller) === FALSE) ? $controller : $this->CI->config->site_url($controller); - - // ajaxStart and ajaxStop are better choices here... but this is a stop gap - if ($this->CI->config->item('javascript_ajax_img') === '') - { - $loading_notifier = 'Loading...'; - } - else - { - $loading_notifier = 'Loading'; - } - - $updater = '$('.$container.").empty();\n" // anything that was in... get it out - ."\t\t$(".$container.').prepend("'.$loading_notifier."\");\n"; // to replace with an image - - $request_options = ''; - if ($options !== '') - { - $request_options .= ', {' - .(is_array($options) ? "'".implode("', '", $options)."'" : "'".str_replace(':', "':'", $options)."'") - .'}'; - } - - return $updater."\t\t$($container).load('$controller'$request_options);"; - } - - // -------------------------------------------------------------------- - // Pre-written handy stuff - // -------------------------------------------------------------------- - - /** - * Zebra tables - * - * @param string $class - * @param string $odd - * @param string $hover - * @return string - */ - protected function _zebraTables($class = '', $odd = 'odd', $hover = '') - { - $class = ($class !== '') ? '.'.$class : ''; - $zebra = "\t\$(\"table{$class} tbody tr:nth-child(even)\").addClass(\"{$odd}\");"; - - $this->jquery_code_for_compile[] = $zebra; - - if ($hover !== '') - { - $hover = $this->hover("table{$class} tbody tr", "$(this).addClass('hover');", "$(this).removeClass('hover');"); - } - - return $zebra; - } - - // -------------------------------------------------------------------- - // Plugins - // -------------------------------------------------------------------- - - /** - * Corner Plugin - * - * @link http://www.malsup.com/jquery/corner/ - * @param string $element - * @param string $corner_style - * @return string - */ - public function corner($element = '', $corner_style = '') - { - // may want to make this configurable down the road - $corner_location = '/plugins/jquery.corner.js'; - - if ($corner_style !== '') - { - $corner_style = '"'.$corner_style.'"'; - } - - return '$('.$this->_prep_element($element).').corner('.$corner_style.');'; - } - - // -------------------------------------------------------------------- - - /** - * Modal window - * - * Load a thickbox modal window - * - * @param string $src - * @param bool $relative - * @return void - */ - public function modal($src, $relative = FALSE) - { - $this->jquery_code_for_load[] = $this->external($src, $relative); - } - - // -------------------------------------------------------------------- - - /** - * Effect - * - * Load an Effect library - * - * @param string $src - * @param bool $relative - * @return void - */ - public function effect($src, $relative = FALSE) - { - $this->jquery_code_for_load[] = $this->external($src, $relative); - } - - // -------------------------------------------------------------------- - - /** - * Plugin - * - * Load a plugin library - * - * @param string $src - * @param bool $relative - * @return void - */ - public function plugin($src, $relative = FALSE) - { - $this->jquery_code_for_load[] = $this->external($src, $relative); - } - - // -------------------------------------------------------------------- - - /** - * UI - * - * Load a user interface library - * - * @param string $src - * @param bool $relative - * @return void - */ - public function ui($src, $relative = FALSE) - { - $this->jquery_code_for_load[] = $this->external($src, $relative); - } - - // -------------------------------------------------------------------- - - /** - * Sortable - * - * Creates a jQuery sortable - * - * @param string $element - * @param array $options - * @return string - */ - public function sortable($element, $options = array()) - { - if (count($options) > 0) - { - $sort_options = array(); - foreach ($options as $k=>$v) - { - $sort_options[] = "\n\t\t".$k.': '.$v; - } - $sort_options = implode(',', $sort_options); - } - else - { - $sort_options = ''; - } - - return '$('.$this->_prep_element($element).').sortable({'.$sort_options."\n\t});"; - } - - // -------------------------------------------------------------------- - - /** - * Table Sorter Plugin - * - * @param string table name - * @param string plugin location - * @return string - */ - public function tablesorter($table = '', $options = '') - { - $this->jquery_code_for_compile[] = "\t$(".$this->_prep_element($table).').tablesorter('.$options.");\n"; - } - - // -------------------------------------------------------------------- - // Class functions - // -------------------------------------------------------------------- - - /** - * Add Event - * - * Constructs the syntax for an event, and adds to into the array for compilation - * - * @param string The element to attach the event to - * @param string The code to execute - * @param string The event to pass - * @return string - */ - protected function _add_event($element, $js, $event) - { - if (is_array($js)) - { - $js = implode("\n\t\t", $js); - } - - $event = "\n\t$(".$this->_prep_element($element).').'.$event."(function(){\n\t\t{$js}\n\t});\n"; - $this->jquery_code_for_compile[] = $event; - return $event; - } - - // -------------------------------------------------------------------- - - /** - * Compile - * - * As events are specified, they are stored in an array - * This function compiles them all for output on a page - * - * @param string $view_var - * @param bool $script_tags - * @return void - */ - protected function _compile($view_var = 'script_foot', $script_tags = TRUE) - { - // External references - $external_scripts = implode('', $this->jquery_code_for_load); - $this->CI->load->vars(array('library_src' => $external_scripts)); - - if (count($this->jquery_code_for_compile) === 0) - { - // no inline references, let's just return - return; - } - - // Inline references - $script = '$(document).ready(function() {'."\n" - .implode('', $this->jquery_code_for_compile) - .'});'; - - $output = ($script_tags === FALSE) ? $script : $this->inline($script); - - $this->CI->load->vars(array($view_var => $output)); - } - - // -------------------------------------------------------------------- - - /** - * Clear Compile - * - * Clears the array of script events collected for output - * - * @return void - */ - protected function _clear_compile() - { - $this->jquery_code_for_compile = array(); - } - - // -------------------------------------------------------------------- - - /** - * Document Ready - * - * A wrapper for writing document.ready() - * - * @param array $js - * @return void - */ - protected function _document_ready($js) - { - is_array($js) OR $js = array($js); - - foreach ($js as $script) - { - $this->jquery_code_for_compile[] = $script; - } - } - - // -------------------------------------------------------------------- - - /** - * Script Tag - * - * Outputs the script tag that loads the jquery.js file into an HTML document - * - * @param string $library_src - * @param bool $relative - * @return string - */ - public function script($library_src = '', $relative = FALSE) - { - $library_src = $this->external($library_src, $relative); - $this->jquery_code_for_load[] = $library_src; - return $library_src; - } - - // -------------------------------------------------------------------- - - /** - * Prep Element - * - * Puts HTML element in quotes for use in jQuery code - * unless the supplied element is the Javascript 'this' - * object, in which case no quotes are added - * - * @param string - * @return string - */ - protected function _prep_element($element) - { - if ($element !== 'this') - { - $element = '"'.$element.'"'; - } - - return $element; - } - - // -------------------------------------------------------------------- - - /** - * Validate Speed - * - * Ensures the speed parameter is valid for jQuery - * - * @param string - * @return string - */ - protected function _validate_speed($speed) - { - if (in_array($speed, array('slow', 'normal', 'fast'))) - { - return '"'.$speed.'"'; - } - elseif (preg_match('/[^0-9]/', $speed)) - { - return ''; - } - - return $speed; - } - -} diff --git a/system/libraries/Javascript/index.html b/system/libraries/Javascript/index.html deleted file mode 100644 index b702fbc39..000000000 --- a/system/libraries/Javascript/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - 403 Forbidden - - - -

Directory access is forbidden.

- - - diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 2dcb0b1af..f6d39cbfe 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -20,6 +20,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - Removed previously deprecated :doc:`Form Helper ` function ``form_prep()`` (use :php:func:`html_escape()` instead). - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). + - Removed previously deprecated *Javascript Library* (it was always experimental in the first place). - Libraries diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index 35f5621cd..f00a69512 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -844,8 +844,8 @@ CodeIgniter 3.1+. The Javascript library ====================== -The :doc:`Javascript Library <../libraries/javascript>` has always had an -'experimental' status and was never really useful, nor a proper solution. +The *Javascript Library* has always had an 'experimental' status and was +never really useful, nor a proper solution. It is now deprecated and scheduled for removal in CodeIgniter 3.1+. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 6107d084b..2bc4e53d3 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -146,6 +146,8 @@ version 3.0.0, that have been removed in 3.2.0: - ``read_file()`` :doc:`File Helper <../helpers/file_helper>` function (use ``file_get_contents()`` instead) - ``form_prep()`` :doc:`Form Helper <../helpers/form_helper>` function (use :php:func:`html_escape()` instead) +- The entire *Javascript Library* (it was always experimental in the first place) + - The entire *Email Helper*, which only had two functions: - ``valid_email()`` (use ``filter_var($email, FILTER_VALIDATE_EMAIL)`` instead) diff --git a/user_guide_src/source/libraries/javascript.rst b/user_guide_src/source/libraries/javascript.rst deleted file mode 100644 index e91b9ad78..000000000 --- a/user_guide_src/source/libraries/javascript.rst +++ /dev/null @@ -1,322 +0,0 @@ -################ -Javascript Class -################ - -CodeIgniter provides a library to help you with certain common functions -that you may want to use with Javascript. Please note that CodeIgniter -does not require the jQuery library to run, and that any scripting -library will work equally well. The jQuery library is simply presented -as a convenience if you choose to use it. - -.. important:: This library is DEPRECATED and should not be used. It has always - been with an 'experimental' status and is now no longer supported. - Currently only kept for backwards compatibility. - -.. contents:: - :local: - -.. raw:: html - -
- -************************** -Using the Javascript Class -************************** - -Initializing the Class -====================== - -To initialize the Javascript class manually in your controller -constructor, use the ``$this->load->library()`` method. Currently, -the only available library is jQuery, which will automatically be -loaded like this:: - - $this->load->library('javascript'); - -The Javascript class also accepts parameters: - -- js_library_driver (string) *default: 'jquery'* -- autoload (bool) *default: TRUE* - -You may override the defaults by sending an associative array:: - - $this->load->library( - 'javascript', - array( - 'js_library_driver' => 'scripto', - 'autoload' => FALSE - ) - ); - -Again, presently only 'jquery' is available. You may wish to set -autoload to FALSE, though, if you do not want the jQuery library to -automatically include a script tag for the main jQuery script file. This -is useful if you are loading it from a location outside of CodeIgniter, -or already have the script tag in your markup. - -Once loaded, the jQuery library object will be available using: - - $this->javascript - -Setup and Configuration -======================= - -Set these variables in your view --------------------------------- - -As a Javascript library, your files must be available to your -application. - -As Javascript is a client side language, the library must be able to -write content into your final output. This generally means a view. -You'll need to include the following variables in the ```` -sections of your output. - -:: - - - - - -``$library_src``, is where the actual library file will be loaded, as -well as any subsequent plugin script calls; $script_head is where -specific events, functions and other commands will be rendered. - -Set the path to the librarys with config items ----------------------------------------------- - -There are some configuration items in Javascript library. These can -either be set in *application/config.php*, within its own -*config/javascript.php* file, or within any controller usings the -``set_item()`` function. - -An image to be used as an "ajax loader", or progress indicator. Without -one, the simple text message of "loading" will appear when Ajax calls -need to be made. - -:: - - $config['javascript_location'] = 'http://localhost/codeigniter/themes/js/jquery/'; - $config['javascript_ajax_img'] = 'images/ajax-loader.gif'; - -If you keep your files in the same directories they were downloaded -from, then you need not set this configuration items. - -The jQuery Class -================ - -To initialize the jQuery class manually in your controller constructor, -use the ``$this->load->library()`` method:: - - $this->load->library('javascript/jquery'); - -You may send an optional parameter to determine whether or not a script -tag for the main jQuery file will be automatically included when loading -the library. It will be created by default. To prevent this, load the -library as follows:: - - $this->load->library('javascript/jquery', FALSE); - -Once loaded, the jQuery library object will be available using: - - $this->jquery - -jQuery Events -============= - -Events are set using the following syntax. -:: - - $this->jquery->event('element_path', code_to_run()); - -In the above example: - -- "event" is any of blur, change, click, dblclick, error, focus, hover, - keydown, keyup, load, mousedown, mouseup, mouseover, mouseup, resize, - scroll, or unload. -- "element_path" is any valid `jQuery selector - `_. Due to jQuery's unique - selector syntax, this is usually an element id, or CSS selector. For - example "#notice_area" would effect ``
``, and - "#content a.notice" would effect all anchors with a class of "notice" - in the div with id "content". -- "``code_to_run()``" is script your write yourself, or an action such as - an effect from the jQuery library below. - -Effects -======= - -The query library supports a powerful -`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'); - - -hide() / show() ---------------- - -Each of this functions will affect the visibility of an item on your -page. hide() will set an item invisible, show() will reveal it. - -:: - - $this->jquery->hide(target, optional speed, optional extra information); - $this->jquery->show(target, optional speed, optional extra information); - - -- "target" will be any valid jQuery selector or selectors. -- "speed" is optional, and is set to either slow, normal, fast, or - alternatively a number of milliseconds. -- "extra information" is optional, and could include a callback, or - other additional information. - -toggle() --------- - -toggle() will change the visibility of an item to the opposite of its -current state, hiding visible elements, and revealing hidden ones. - -:: - - $this->jquery->toggle(target); - - -- "target" will be any valid jQuery selector or selectors. - -animate() ---------- - -:: - - $this->jquery->animate(target, parameters, optional speed, optional extra information); - - -- "target" will be any valid jQuery selector or selectors. -- "parameters" in jQuery would generally include a series of CSS - properties that you wish to change. -- "speed" is optional, and is set to either slow, normal, fast, or - alternatively a number of milliseconds. -- "extra information" is optional, and could include a callback, or - other additional information. - -For a full summary, see -`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. - -:: - - $params = array( - 'height' => 80, - 'width' => '50%', - 'marginLeft' => 125 - ); - $this->jquery->click('#trigger', $this->jquery->animate('#note', $params, 'normal')); - -fadeIn() / fadeOut() --------------------- - -:: - - $this->jquery->fadeIn(target, optional speed, optional extra information); - $this->jquery->fadeOut(target, optional speed, optional extra information); - - -- "target" will be any valid jQuery selector or selectors. -- "speed" is optional, and is set to either slow, normal, fast, or - alternatively a number of milliseconds. -- "extra information" is optional, and could include a callback, or - other additional information. - -toggleClass() -------------- - -This function will add or remove a CSS class to its target. - -:: - - $this->jquery->toggleClass(target, class) - - -- "target" will be any valid jQuery selector or selectors. -- "class" is any CSS classname. Note that this class must be defined - and available in a CSS that is already loaded. - -fadeIn() / fadeOut() --------------------- - -These effects cause an element(s) to disappear or reappear over time. - -:: - - $this->jquery->fadeIn(target, optional speed, optional extra information); - $this->jquery->fadeOut(target, optional speed, optional extra information); - - -- "target" will be any valid jQuery selector or selectors. -- "speed" is optional, and is set to either slow, normal, fast, or - alternatively a number of milliseconds. -- "extra information" is optional, and could include a callback, or - other additional information. - -slideUp() / slideDown() / slideToggle() ---------------------------------------- - -These effects cause an element(s) to slide. - -:: - - $this->jquery->slideUp(target, optional speed, optional extra information); - $this->jquery->slideDown(target, optional speed, optional extra information); - $this->jquery->slideToggle(target, optional speed, optional extra information); - - -- "target" will be any valid jQuery selector or selectors. -- "speed" is optional, and is set to either slow, normal, fast, or - alternatively a number of milliseconds. -- "extra information" is optional, and could include a callback, or - other additional information. - -Plugins -======= - -Some select jQuery plugins are made available using this library. - -corner() --------- - -Used to add distinct corners to page elements. For full details see -`http://malsup.com/jquery/corner/ `_ - -:: - - $this->jquery->corner(target, corner_style); - - -- "target" will be any valid jQuery selector or selectors. -- "corner_style" is optional, and can be set to any valid style such - as round, sharp, bevel, bite, dog, etc. Individual corners can be set - by following the style with a space and using "tl" (top left), "tr" - (top right), "bl" (bottom left), or "br" (bottom right). - -:: - - $this->jquery->corner("#note", "cool tl br"); - - -tablesorter() -------------- - -description to come - -modal() -------- - -description to come - -calendar() ----------- - -description to come \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 9b5a84dfb0c8a4ba078beb516373e7bb7d8d3ed7 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:45:41 +0200 Subject: Remove previously deprecated FV Library method/rule prep_for_form() --- system/libraries/Form_validation.php | 32 ---------------------- .../codeigniter/libraries/Form_validation_test.php | 14 ---------- user_guide_src/source/changelog.rst | 3 +- user_guide_src/source/installation/upgrade_320.rst | 3 +- .../source/libraries/form_validation.rst | 1 - 5 files changed, 4 insertions(+), 49 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 384caf000..c2bc22f95 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1487,38 +1487,6 @@ class CI_Form_validation { // -------------------------------------------------------------------- - /** - * Prep data for form - * - * This function allows HTML to be safely shown in a form. - * Special characters are converted. - * - * @deprecated 3.0.6 Not used anywhere within the framework and pretty much useless - * @param mixed $data Input data - * @return mixed - */ - public function prep_for_form($data) - { - if ($this->_safe_form_data === FALSE OR empty($data)) - { - return $data; - } - - if (is_array($data)) - { - foreach ($data as $key => $val) - { - $data[$key] = $this->prep_for_form($val); - } - - return $data; - } - - return str_replace(array("'", '"', '<', '>'), array(''', '"', '<', '>'), stripslashes($data)); - } - - // -------------------------------------------------------------------- - /** * Prep URL * diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index 5f4bb9316..4be080f90 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -579,20 +579,6 @@ class Form_validation_test extends CI_TestCase { $this->assertFalse($this->form_validation->regex_match('bar', $regex)); } - public function test_prep_for_form() - { - $this->form_validation->reset_validation(); - $error_msg_unprepped = ''; - $error_msg_prepped = '<error ='foobar'">'; - $this->form_validation->set_rules('foo', 'label', 'required', array('required' => $error_msg_unprepped)); - $_POST = array('foo' => ''); - $this->form_validation->run(); - $error_arr = $this->form_validation->error_array(); - - $this->assertEquals('', $this->form_validation->prep_for_form('')); - $this->assertEquals(array('foo' => $error_msg_prepped), $this->form_validation->prep_for_form($error_arr)); - } - public function test_prep_url() { $this->assertEquals('', $this->form_validation->prep_url('')); diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index f6d39cbfe..a61ad164b 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -13,6 +13,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Input Library ` method ``is_cli_request()`` (use :php:func:`is_cli()` instead). - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). + - Removed previously deprecated :doc:`Form Validation Library ` method ``prep_for_form()`` / rule *prep_for_form*. - Removed previously deprecated :doc:`Date Helper ` function ``standard_date()`` (use PHP's native ``date()`` instead). - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - Removed previously deprecated :doc:`HTML Helper ` functions ``br()`` and ``nbs()`` (use PHP's native ``str_repeat()`` with ``'
'`` and ``' '`` respectively). @@ -2748,7 +2749,7 @@ Release Date: January 30, 2008 class. <./libraries/sessions>` - Removed 'last_visit' from the Session class. - Added a language entry for valid_ip validation error. - - Modified prep_for_form() in the Validation class to accept + - Modified ``prep_for_form()`` in the Validation class to accept arrays, adding support for POST array validation (via callbacks only) - Added an "integer" rule into the Validation library. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 2bc4e53d3..4e4a73b67 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -129,13 +129,14 @@ Step 7: Remove usage of previously deprecated functionalities ============================================================= The following is a list of functionalities deprecated in CodeIgniter -version 3.0.0, that have been removed in 3.2.0: +version 3.0.x, that have been removed in 3.2.0: - ``CI_Input::is_cli_request()`` (use :php:func:`is_cli()` instead) - ``CI_Router::fetch_directory()`` (use ``CI_Router::$directory instead) - ``CI_Router::fetch_class()`` (use ``CI_Router::$class`` instead) - ``CI_Router::fetch_method()`` (use ``CI_Router::$method`` instead) - ``CI_Config::system_url()`` (encourages insecure practices) +- ``CI_Form_validation::prep_for_form()`` (the *prep_for_form* rule) - ``standard_date()`` :doc:`Date Helper <../helpers/date_helper>` function (use ``date()`` instead) - ``do_hash()`` :doc:`Security Helper <../helpers/security_helper>` function (use ``hash()`` instead) diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index b503b9be0..915ce876f 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -1009,7 +1009,6 @@ to use: ==================== ========= ============================================================================================================== Name Parameter Description ==================== ========= ============================================================================================================== -**prep_for_form** No DEPRECATED: Converts special characters so that HTML data can be shown in a form field without breaking it. **prep_url** No Adds "\http://" to URLs if missing. **strip_image_tags** No Strips the HTML from image tags leaving the raw URL. **encode_php_tags** No Converts PHP tags to entities. -- cgit v1.2.3-24-g4f1b From bed5e97d94154088b601fac02a24fa784c6d19b5 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 1 Dec 2016 15:48:00 +0200 Subject: [ci skip] Mark a historical docs note as written by EllisLab --- user_guide_src/source/libraries/image_lib.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/image_lib.rst b/user_guide_src/source/libraries/image_lib.rst index b25d2512f..442541bf6 100644 --- a/user_guide_src/source/libraries/image_lib.rst +++ b/user_guide_src/source/libraries/image_lib.rst @@ -408,7 +408,7 @@ Class Reference method is not very useful unless you intend to build such an interface. That's exactly what we did using for the photo gallery module in ExpressionEngine, the CMS we develop. We added a JavaScript UI that - lets the cropping area be selected. + lets the cropping area be selected. (from EllisLab) .. php:method:: rotate() -- cgit v1.2.3-24-g4f1b From 83424f9284815e816015a9e3f8326e410601c011 Mon Sep 17 00:00:00 2001 From: Ryan McAllen Date: Wed, 7 Dec 2016 18:22:31 -0500 Subject: Spelling: convinient -> convenient --- tests/mocks/autoloader.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/mocks/autoloader.php b/tests/mocks/autoloader.php index 33942768d..11825de2c 100644 --- a/tests/mocks/autoloader.php +++ b/tests/mocks/autoloader.php @@ -1,6 +1,6 @@ Date: Sat, 10 Dec 2016 08:15:12 +0100 Subject: `_random_keyword` must be array Signed-off-by: aquilax --- system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php index 62690139c..cb06c2a9d 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php @@ -66,7 +66,7 @@ class CI_DB_pdo_sqlite_driver extends CI_DB_pdo_driver { * * @var array */ - protected $_random_keyword = ' RANDOM()'; + protected $_random_keyword = array('RANDOM()', 'RANDOM()'); // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From d2e4ccfe3bba903227c3686b9390d8b9525b197d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 12 Dec 2016 15:15:39 +0200 Subject: Remove previously deprecated Smiley Helper --- application/config/smileys.php | 64 ------ system/helpers/smiley_helper.php | 255 --------------------- user_guide_src/source/changelog.rst | 9 +- user_guide_src/source/helpers/smiley_helper.rst | 169 -------------- user_guide_src/source/images/smile.gif | Bin 1156 -> 0 bytes user_guide_src/source/installation/upgrade_300.rst | 12 +- user_guide_src/source/installation/upgrade_320.rst | 4 +- 7 files changed, 14 insertions(+), 499 deletions(-) delete mode 100644 application/config/smileys.php delete mode 100644 system/helpers/smiley_helper.php delete mode 100644 user_guide_src/source/helpers/smiley_helper.rst delete mode 100644 user_guide_src/source/images/smile.gif diff --git a/application/config/smileys.php b/application/config/smileys.php deleted file mode 100644 index abf9a898d..000000000 --- a/application/config/smileys.php +++ /dev/null @@ -1,64 +0,0 @@ - array('grin.gif', '19', '19', 'grin'), - ':lol:' => array('lol.gif', '19', '19', 'LOL'), - ':cheese:' => array('cheese.gif', '19', '19', 'cheese'), - ':)' => array('smile.gif', '19', '19', 'smile'), - ';-)' => array('wink.gif', '19', '19', 'wink'), - ';)' => array('wink.gif', '19', '19', 'wink'), - ':smirk:' => array('smirk.gif', '19', '19', 'smirk'), - ':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'), - ':-S' => array('confused.gif', '19', '19', 'confused'), - ':wow:' => array('surprise.gif', '19', '19', 'surprised'), - ':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'), - ':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'), - '%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'), - ';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'), - ':P' => array('raspberry.gif', '19', '19', 'raspberry'), - ':blank:' => array('blank.gif', '19', '19', 'blank stare'), - ':long:' => array('longface.gif', '19', '19', 'long face'), - ':ohh:' => array('ohh.gif', '19', '19', 'ohh'), - ':grrr:' => array('grrr.gif', '19', '19', 'grrr'), - ':gulp:' => array('gulp.gif', '19', '19', 'gulp'), - '8-/' => array('ohoh.gif', '19', '19', 'oh oh'), - ':down:' => array('downer.gif', '19', '19', 'downer'), - ':red:' => array('embarrassed.gif', '19', '19', 'red face'), - ':sick:' => array('sick.gif', '19', '19', 'sick'), - ':shut:' => array('shuteye.gif', '19', '19', 'shut eye'), - ':-/' => array('hmm.gif', '19', '19', 'hmmm'), - '>:(' => array('mad.gif', '19', '19', 'mad'), - ':mad:' => array('mad.gif', '19', '19', 'mad'), - '>:-(' => array('angry.gif', '19', '19', 'angry'), - ':angry:' => array('angry.gif', '19', '19', 'angry'), - ':zip:' => array('zip.gif', '19', '19', 'zipper'), - ':kiss:' => array('kiss.gif', '19', '19', 'kiss'), - ':ahhh:' => array('shock.gif', '19', '19', 'shock'), - ':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'), - ':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'), - ':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'), - ':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'), - ':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'), - ':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'), - ':vampire:' => array('vampire.gif', '19', '19', 'vampire'), - ':snake:' => array('snake.gif', '19', '19', 'snake'), - ':exclaim:' => array('exclaim.gif', '19', '19', 'exclaim'), - ':question:' => array('question.gif', '19', '19', 'question') - -); diff --git a/system/helpers/smiley_helper.php b/system/helpers/smiley_helper.php deleted file mode 100644 index 688ca24c2..000000000 --- a/system/helpers/smiley_helper.php +++ /dev/null @@ -1,255 +0,0 @@ -field_id pairs - * @param string field_id if alias name was passed in - * @param bool - * @return array - */ - function smiley_js($alias = '', $field_id = '', $inline = TRUE) - { - static $do_setup = TRUE; - $r = ''; - - if ($alias !== '' && ! is_array($alias)) - { - $alias = array($alias => $field_id); - } - - if ($do_setup === TRUE) - { - $do_setup = FALSE; - $m = array(); - - if (is_array($alias)) - { - foreach ($alias as $name => $id) - { - $m[] = '"'.$name.'" : "'.$id.'"'; - } - } - - $m = '{'.implode(',', $m).'}'; - - $r .= << $id) - { - $r .= 'smiley_map["'.$name.'"] = "'.$id."\";\n"; - } - } - - return ($inline) - ? '' - : $r; - } -} - -// ------------------------------------------------------------------------ - -if ( ! function_exists('get_clickable_smileys')) -{ - /** - * Get Clickable Smileys - * - * Returns an array of image tag links that can be clicked to be inserted - * into a form field. - * - * @param string the URL to the folder containing the smiley images - * @param array - * @return array - */ - function get_clickable_smileys($image_url, $alias = '') - { - // For backward compatibility with js_insert_smiley - if (is_array($alias)) - { - $smileys = $alias; - } - elseif (FALSE === ($smileys = _get_smiley_array())) - { - return FALSE; - } - - // Add a trailing slash to the file path if needed - $image_url = rtrim($image_url, '/').'/'; - - $used = array(); - foreach ($smileys as $key => $val) - { - // Keep duplicates from being used, which can happen if the - // mapping array contains multiple identical replacements. For example: - // :-) and :) might be replaced with the same image so both smileys - // will be in the array. - if (isset($used[$smileys[$key][0]])) - { - continue; - } - - $link[] = ''.$smileys[$key][3].''; - $used[$smileys[$key][0]] = TRUE; - } - - return $link; - } -} - -// ------------------------------------------------------------------------ - -if ( ! function_exists('parse_smileys')) -{ - /** - * Parse Smileys - * - * Takes a string as input and swaps any contained smileys for the actual image - * - * @param string the text to be parsed - * @param string the URL to the folder containing the smiley images - * @param array - * @return string - */ - function parse_smileys($str = '', $image_url = '', $smileys = NULL) - { - if ($image_url === '' OR ( ! is_array($smileys) && FALSE === ($smileys = _get_smiley_array()))) - { - return $str; - } - - // Add a trailing slash to the file path if needed - $image_url = rtrim($image_url, '/').'/'; - - foreach ($smileys as $key => $val) - { - $str = str_replace($key, ''.$smileys[$key][3].'', $str); - } - - return $str; - } -} - -// ------------------------------------------------------------------------ - -if ( ! function_exists('_get_smiley_array')) -{ - /** - * Get Smiley Array - * - * Fetches the config/smiley.php file - * - * @return mixed - */ - function _get_smiley_array() - { - static $_smileys; - - if ( ! is_array($_smileys)) - { - if (file_exists(APPPATH.'config/smileys.php')) - { - include(APPPATH.'config/smileys.php'); - } - - if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/smileys.php')) - { - include(APPPATH.'config/'.ENVIRONMENT.'/smileys.php'); - } - - if (empty($smileys) OR ! is_array($smileys)) - { - $_smileys = array(); - return FALSE; - } - - $_smileys = $smileys; - } - - return $_smileys; - } -} diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index a61ad164b..4d0b4cf4d 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -21,6 +21,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - Removed previously deprecated :doc:`Form Helper ` function ``form_prep()`` (use :php:func:`html_escape()` instead). - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). + - Removed previously deprecated *Smiley Helper*. - Removed previously deprecated *Javascript Library* (it was always experimental in the first place). - Libraries @@ -561,7 +562,7 @@ Release Date: March 30, 2015 - ``do_hash()`` now uses PHP's native ``hash()`` function (supporting more algorithms) and is deprecated. - :php:func:`strip_image_tags()` is now an alias for the same method in the :doc:`Security Library `. - - :doc:`Smiley Helper ` changes include: + - *Smiley Helper* changes include: - Deprecated the whole helper as too specific for CodeIgniter. - Removed previously deprecated function ``js_insert_smiley()``. @@ -1850,7 +1851,7 @@ Hg Tag: v2.0.0 string already has a scheme. - Modified get_file_info in the file helper, changing filectime() to filemtime() for dates. - - Modified smiley_js() to add optional third parameter to return + - Modified ``smiley_js()`` to add optional third parameter to return only the javascript with no script tags. - The img() function of the :doc:`HTML helper <./helpers/html_helper>` will now generate an empty @@ -2005,7 +2006,7 @@ Hg Tag: v1.7.2 - Modified directory_map() in the :doc:`Directory helper ` to allow the inclusion of hidden files, and to return FALSE on failure to read directory. - - Modified the :doc:`Smiley helper ` to work + - Modified the *Smiley helper* to work with multiple fields and insert the smiley at the last known cursor position. @@ -3112,7 +3113,7 @@ Release Date: October 30, 2006 - Added :doc:`$this->db->platform() <./database/helpers>` function - Added new :doc:`File Helper <./helpers/file_helper>`: get_filenames() -- Added new helper: :doc:`Smiley Helper <./helpers/smiley_helper>` +- Added new helper: *Smiley Helper* - Added support for
    and
      lists in the :doc:`HTML Helper <./helpers/html_helper>` - Added the ability to rewrite :doc:`short diff --git a/user_guide_src/source/helpers/smiley_helper.rst b/user_guide_src/source/helpers/smiley_helper.rst deleted file mode 100644 index 3e7669942..000000000 --- a/user_guide_src/source/helpers/smiley_helper.rst +++ /dev/null @@ -1,169 +0,0 @@ -############# -Smiley Helper -############# - -The Smiley Helper file contains functions that let you manage smileys -(emoticons). - -.. important:: The Smiley helper is DEPRECATED and should not be used. - It is currently only kept for backwards compatibility. - -.. contents:: - :local: - -.. raw:: html - -
      - -Loading this Helper -=================== - -This helper is loaded using the following code:: - - $this->load->helper('smiley'); - -Overview -======== - -The Smiley helper has a renderer that takes plain text smileys, like -:-) and turns them into a image representation, like |smile!| - -It also lets you display a set of smiley images that when clicked will -be inserted into a form field. For example, if you have a blog that -allows user commenting you can show the smileys next to the comment -form. Your users can click a desired smiley and with the help of some -JavaScript it will be placed into the form field. - -Clickable Smileys Tutorial -========================== - -Here is an example demonstrating how you might create a set of clickable -smileys next to a form field. This example requires that you first -download and install the smiley images, then create a controller and the -View as described. - -.. important:: Before you begin, please `download the smiley images - `_ - 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` - -The Controller --------------- - -In your **application/controllers/** directory, create a file called -Smileys.php and place the code below in it. - -.. important:: Change the URL in the :php:func:`get_clickable_smileys()` - function below so that it points to your smiley folder. - -You'll notice that in addition to the smiley helper, we are also using -the :doc:`Table Class <../libraries/table>`:: - - load->helper('smiley'); - $this->load->library('table'); - - $image_array = get_clickable_smileys('http://example.com/images/smileys/', 'comments'); - $col_array = $this->table->make_columns($image_array, 8); - - $data['smiley_table'] = $this->table->generate($col_array); - $this->load->view('smiley_view', $data); - } - - } - -In your **application/views/** directory, create a file called **smiley_view.php** -and place this code in it:: - - - - Smileys - - - -
      - -
      -

      Click to insert a smiley!

      - - When you have created the above controller and view, load it by visiting http://www.example.com/index.php/smileys/ - - - -Field Aliases -------------- - -When making changes to a view it can be inconvenient to have the field -id in the controller. To work around this, you can give your smiley -links a generic name that will be tied to a specific id in your view. - -:: - - $image_array = get_smiley_links("http://example.com/images/smileys/", "comment_textarea_alias"); - -To map the alias to the field id, pass them both into the -:func:`smiley_js()` function:: - - $image_array = smiley_js("comment_textarea_alias", "comments"); - -Available Functions -=================== - -.. php:function:: get_clickable_smileys($image_url[, $alias = ''[, $smileys = NULL]]) - - :param string $image_url: URL path to the smileys directory - :param string $alias: Field alias - :returns: An array of ready to use smileys - :rtype: array - - Returns an array containing your smiley images wrapped in a clickable - link. You must supply the URL to your smiley folder and a field id or - field alias. - - Example:: - - $image_array = get_clickable_smileys('http://example.com/images/smileys/', 'comment'); - -.. php:function:: smiley_js([$alias = ''[, $field_id = ''[, $inline = TRUE]]]) - - :param string $alias: Field alias - :param string $field_id: Field ID - :param bool $inline: Whether we're inserting an inline smiley - :returns: Smiley-enabling JavaScript code - :rtype: string - - Generates the JavaScript that allows the images to be clicked and - inserted into a form field. If you supplied an alias instead of an id - when generating your smiley links, you need to pass the alias and - corresponding form id into the function. This function is designed to be - placed into the area of your web page. - - Example:: - - - -.. php:function:: parse_smileys([$str = ''[, $image_url = ''[, $smileys = NULL]]]) - - :param string $str: Text containing smiley codes - :param string $image_url: URL path to the smileys directory - :param array $smileys: An array of smileys - :returns: Parsed smileys - :rtype: string - - Takes a string of text as input and replaces any contained plain text - smileys into the image equivalent. The first parameter must contain your - string, the second must contain the URL to your smiley folder - - Example:: - - $str = 'Here are some smileys: :-) ;-)'; - $str = parse_smileys($str, 'http://example.com/images/smileys/'); - echo $str; - -.. |smile!| image:: ../images/smile.gif \ No newline at end of file diff --git a/user_guide_src/source/images/smile.gif b/user_guide_src/source/images/smile.gif deleted file mode 100644 index bf0922504..000000000 Binary files a/user_guide_src/source/images/smile.gif and /dev/null differ diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index f00a69512..54f635cc0 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -532,9 +532,9 @@ the ``EXT`` constant has been removed. Use just '.php' instead. Smiley helper ============= -The :doc:`Smiley Helper <../helpers/smiley_helper>` is a legacy feature from EllisLab's -ExpressionEngine product. However, it is too specific for a general purpose framework like -CodeIgniter and as such it is now deprecated. +The *Smiley Helper* is a legacy feature from EllisLab's ExpressionEngine product. +However, it is too specific for a general purpose framework like CodeIgniter +and as such it is now deprecated. Also, the previously deprecated ``js_insert_smiley()`` (since version 1.7.2) is now removed. @@ -559,9 +559,9 @@ implemented cryptographic functions. The Cart library ================ -The :doc:`Cart Library <../libraries/cart>`, similarly to the :doc:`Smiley Helper -<../helpers/smiley_helper>` is too specific for CodeIgniter. It is now deprecated -and scheduled for removal in CodeIgniter 3.1+. +The :doc:`Cart Library <../libraries/cart>`, similarly to the *Smiley Helper* +is too specific for CodeIgniter. It is now deprecated and scheduled for +removal in CodeIgniter 3.1+. .. note:: The library is still available, but you're strongly encouraged to remove its usage sooner rather than later. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 4e4a73b67..597e1ecf2 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -132,7 +132,7 @@ The following is a list of functionalities deprecated in CodeIgniter version 3.0.x, that have been removed in 3.2.0: - ``CI_Input::is_cli_request()`` (use :php:func:`is_cli()` instead) -- ``CI_Router::fetch_directory()`` (use ``CI_Router::$directory instead) +- ``CI_Router::fetch_directory()`` (use ``CI_Router::$directory`` instead) - ``CI_Router::fetch_class()`` (use ``CI_Router::$class`` instead) - ``CI_Router::fetch_method()`` (use ``CI_Router::$method`` instead) - ``CI_Config::system_url()`` (encourages insecure practices) @@ -153,3 +153,5 @@ version 3.0.x, that have been removed in 3.2.0: - ``valid_email()`` (use ``filter_var($email, FILTER_VALIDATE_EMAIL)`` instead) - ``send_email()`` (use ``mail()`` instead) + +- The entire *Smiley Helper* (an archived version is available on GitHub: `bcit-ci/ci3-smiley-helper `_) -- cgit v1.2.3-24-g4f1b From 9be93ba78585e8256e25b3c4f43eed500d49d8e2 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 12 Dec 2016 15:27:13 +0200 Subject: Remove previously deprecated Cart Library --- system/libraries/Cart.php | 567 --------------------- tests/mocks/autoloader.php | 1 - user_guide_src/source/changelog.rst | 23 +- user_guide_src/source/installation/upgrade_300.rst | 10 +- user_guide_src/source/installation/upgrade_320.rst | 1 + user_guide_src/source/libraries/cart.rst | 398 --------------- 6 files changed, 17 insertions(+), 983 deletions(-) delete mode 100644 system/libraries/Cart.php delete mode 100644 user_guide_src/source/libraries/cart.rst diff --git a/system/libraries/Cart.php b/system/libraries/Cart.php deleted file mode 100644 index 44d87e0bf..000000000 --- a/system/libraries/Cart.php +++ /dev/null @@ -1,567 +0,0 @@ -CI =& get_instance(); - - // Are any config settings being passed manually? If so, set them - $config = is_array($params) ? $params : array(); - - // Load the Sessions class - $this->CI->load->driver('session', $config); - - // Grab the shopping cart array from the session table - $this->_cart_contents = $this->CI->session->userdata('cart_contents'); - if ($this->_cart_contents === NULL) - { - // No cart exists so we'll set some base values - $this->_cart_contents = array('cart_total' => 0, 'total_items' => 0); - } - - log_message('info', 'Cart Class Initialized'); - } - - // -------------------------------------------------------------------- - - /** - * Insert items into the cart and save it to the session table - * - * @param array - * @return bool - */ - public function insert($items = array()) - { - // Was any cart data passed? No? Bah... - if ( ! is_array($items) OR count($items) === 0) - { - log_message('error', 'The insert method must be passed an array containing data.'); - return FALSE; - } - - // You can either insert a single product using a one-dimensional array, - // or multiple products using a multi-dimensional one. The way we - // determine the array type is by looking for a required array key named "id" - // at the top level. If it's not found, we will assume it's a multi-dimensional array. - - $save_cart = FALSE; - if (isset($items['id'])) - { - if (($rowid = $this->_insert($items))) - { - $save_cart = TRUE; - } - } - else - { - foreach ($items as $val) - { - if (is_array($val) && isset($val['id'])) - { - if ($this->_insert($val)) - { - $save_cart = TRUE; - } - } - } - } - - // Save the cart data if the insert was successful - if ($save_cart === TRUE) - { - $this->_save_cart(); - return isset($rowid) ? $rowid : TRUE; - } - - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Insert - * - * @param array - * @return bool - */ - protected function _insert($items = array()) - { - // Was any cart data passed? No? Bah... - if ( ! is_array($items) OR count($items) === 0) - { - log_message('error', 'The insert method must be passed an array containing data.'); - return FALSE; - } - - // -------------------------------------------------------------------- - - // Does the $items array contain an id, quantity, price, and name? These are required - if ( ! isset($items['id'], $items['qty'], $items['price'], $items['name'])) - { - log_message('error', 'The cart array must contain a product ID, quantity, price, and name.'); - return FALSE; - } - - // -------------------------------------------------------------------- - - // Prep the quantity. It can only be a number. Duh... also trim any leading zeros - $items['qty'] = (float) $items['qty']; - - // If the quantity is zero or blank there's nothing for us to do - if ($items['qty'] == 0) - { - return FALSE; - } - - // -------------------------------------------------------------------- - - // Validate the product ID. It can only be alpha-numeric, dashes, underscores or periods - // Not totally sure we should impose this rule, but it seems prudent to standardize IDs. - // Note: These can be user-specified by setting the $this->product_id_rules variable. - if ( ! preg_match('/^['.$this->product_id_rules.']+$/i', $items['id'])) - { - log_message('error', 'Invalid product ID. The product ID can only contain alpha-numeric characters, dashes, and underscores'); - return FALSE; - } - - // -------------------------------------------------------------------- - - // Validate the product name. It can only be alpha-numeric, dashes, underscores, colons or periods. - // Note: These can be user-specified by setting the $this->product_name_rules variable. - if ($this->product_name_safe && ! preg_match('/^['.$this->product_name_rules.']+$/i'.(UTF8_ENABLED ? 'u' : ''), $items['name'])) - { - log_message('error', 'An invalid name was submitted as the product name: '.$items['name'].' The name can only contain alpha-numeric characters, dashes, underscores, colons, and spaces'); - return FALSE; - } - - // -------------------------------------------------------------------- - - // Prep the price. Remove leading zeros and anything that isn't a number or decimal point. - $items['price'] = (float) $items['price']; - - // We now need to create a unique identifier for the item being inserted into the cart. - // Every time something is added to the cart it is stored in the master cart array. - // Each row in the cart array, however, must have a unique index that identifies not only - // a particular product, but makes it possible to store identical products with different options. - // For example, what if someone buys two identical t-shirts (same product ID), but in - // different sizes? The product ID (and other attributes, like the name) will be identical for - // both sizes because it's the same shirt. The only difference will be the size. - // Internally, we need to treat identical submissions, but with different options, as a unique product. - // Our solution is to convert the options array to a string and MD5 it along with the product ID. - // This becomes the unique "row ID" - if (isset($items['options']) && count($items['options']) > 0) - { - $rowid = md5($items['id'].serialize($items['options'])); - } - else - { - // No options were submitted so we simply MD5 the product ID. - // Technically, we don't need to MD5 the ID in this case, but it makes - // sense to standardize the format of array indexes for both conditions - $rowid = md5($items['id']); - } - - // -------------------------------------------------------------------- - - // Now that we have our unique "row ID", we'll add our cart items to the master array - // grab quantity if it's already there and add it on - $old_quantity = isset($this->_cart_contents[$rowid]['qty']) ? (int) $this->_cart_contents[$rowid]['qty'] : 0; - - // Re-create the entry, just to make sure our index contains only the data from this submission - $items['rowid'] = $rowid; - $items['qty'] += $old_quantity; - $this->_cart_contents[$rowid] = $items; - - return $rowid; - } - - // -------------------------------------------------------------------- - - /** - * Update the cart - * - * This function permits the quantity of a given item to be changed. - * Typically it is called from the "view cart" page if a user makes - * changes to the quantity before checkout. That array must contain the - * product ID and quantity for each item. - * - * @param array - * @return bool - */ - public function update($items = array()) - { - // Was any cart data passed? - if ( ! is_array($items) OR count($items) === 0) - { - return FALSE; - } - - // You can either update a single product using a one-dimensional array, - // or multiple products using a multi-dimensional one. The way we - // determine the array type is by looking for a required array key named "rowid". - // If it's not found we assume it's a multi-dimensional array - $save_cart = FALSE; - if (isset($items['rowid'])) - { - if ($this->_update($items) === TRUE) - { - $save_cart = TRUE; - } - } - else - { - foreach ($items as $val) - { - if (is_array($val) && isset($val['rowid'])) - { - if ($this->_update($val) === TRUE) - { - $save_cart = TRUE; - } - } - } - } - - // Save the cart data if the insert was successful - if ($save_cart === TRUE) - { - $this->_save_cart(); - return TRUE; - } - - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Update the cart - * - * This function permits changing item properties. - * Typically it is called from the "view cart" page if a user makes - * changes to the quantity before checkout. That array must contain the - * rowid and quantity for each item. - * - * @param array - * @return bool - */ - protected function _update($items = array()) - { - // Without these array indexes there is nothing we can do - if ( ! isset($items['rowid'], $this->_cart_contents[$items['rowid']])) - { - return FALSE; - } - - // Prep the quantity - if (isset($items['qty'])) - { - $items['qty'] = (float) $items['qty']; - // Is the quantity zero? If so we will remove the item from the cart. - // If the quantity is greater than zero we are updating - if ($items['qty'] == 0) - { - unset($this->_cart_contents[$items['rowid']]); - return TRUE; - } - } - - // find updatable keys - $keys = array_intersect(array_keys($this->_cart_contents[$items['rowid']]), array_keys($items)); - // if a price was passed, make sure it contains valid data - if (isset($items['price'])) - { - $items['price'] = (float) $items['price']; - } - - // product id & name shouldn't be changed - foreach (array_diff($keys, array('id', 'name')) as $key) - { - $this->_cart_contents[$items['rowid']][$key] = $items[$key]; - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Save the cart array to the session DB - * - * @return bool - */ - protected function _save_cart() - { - // Let's add up the individual prices and set the cart sub-total - $this->_cart_contents['total_items'] = $this->_cart_contents['cart_total'] = 0; - foreach ($this->_cart_contents as $key => $val) - { - // We make sure the array contains the proper indexes - if ( ! is_array($val) OR ! isset($val['price'], $val['qty'])) - { - continue; - } - - $this->_cart_contents['cart_total'] += ($val['price'] * $val['qty']); - $this->_cart_contents['total_items'] += $val['qty']; - $this->_cart_contents[$key]['subtotal'] = ($this->_cart_contents[$key]['price'] * $this->_cart_contents[$key]['qty']); - } - - // Is our cart empty? If so we delete it from the session - if (count($this->_cart_contents) <= 2) - { - $this->CI->session->unset_userdata('cart_contents'); - - // Nothing more to do... coffee time! - return FALSE; - } - - // If we made it this far it means that our cart has data. - // Let's pass it to the Session class so it can be stored - $this->CI->session->set_userdata(array('cart_contents' => $this->_cart_contents)); - - // Woot! - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Cart Total - * - * @return int - */ - public function total() - { - return $this->_cart_contents['cart_total']; - } - - // -------------------------------------------------------------------- - - /** - * Remove Item - * - * Removes an item from the cart - * - * @param int - * @return bool - */ - public function remove($rowid) - { - // unset & save - unset($this->_cart_contents[$rowid]); - $this->_save_cart(); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Total Items - * - * Returns the total item count - * - * @return int - */ - public function total_items() - { - return $this->_cart_contents['total_items']; - } - - // -------------------------------------------------------------------- - - /** - * Cart Contents - * - * Returns the entire cart array - * - * @param bool - * @return array - */ - public function contents($newest_first = FALSE) - { - // do we want the newest first? - $cart = ($newest_first) ? array_reverse($this->_cart_contents) : $this->_cart_contents; - - // Remove these so they don't create a problem when showing the cart table - unset($cart['total_items']); - unset($cart['cart_total']); - - return $cart; - } - - // -------------------------------------------------------------------- - - /** - * Get cart item - * - * Returns the details of a specific item in the cart - * - * @param string $row_id - * @return array - */ - public function get_item($row_id) - { - return (in_array($row_id, array('total_items', 'cart_total'), TRUE) OR ! isset($this->_cart_contents[$row_id])) - ? FALSE - : $this->_cart_contents[$row_id]; - } - - // -------------------------------------------------------------------- - - /** - * Has options - * - * Returns TRUE if the rowid passed to this function correlates to an item - * that has options associated with it. - * - * @param string $row_id = '' - * @return bool - */ - public function has_options($row_id = '') - { - return (isset($this->_cart_contents[$row_id]['options']) && count($this->_cart_contents[$row_id]['options']) !== 0); - } - - // -------------------------------------------------------------------- - - /** - * Product options - * - * Returns the an array of options, for a particular product row ID - * - * @param string $row_id = '' - * @return array - */ - public function product_options($row_id = '') - { - return isset($this->_cart_contents[$row_id]['options']) ? $this->_cart_contents[$row_id]['options'] : array(); - } - - // -------------------------------------------------------------------- - - /** - * Format Number - * - * Returns the supplied number with commas and a decimal point. - * - * @param float - * @return string - */ - public function format_number($n = '') - { - return ($n === '') ? '' : number_format( (float) $n, 2, '.', ','); - } - - // -------------------------------------------------------------------- - - /** - * Destroy the cart - * - * Empties the cart and kills the session - * - * @return void - */ - public function destroy() - { - $this->_cart_contents = array('cart_total' => 0, 'total_items' => 0); - $this->CI->session->unset_userdata('cart_contents'); - } - -} diff --git a/tests/mocks/autoloader.php b/tests/mocks/autoloader.php index 11825de2c..a912327ca 100644 --- a/tests/mocks/autoloader.php +++ b/tests/mocks/autoloader.php @@ -33,7 +33,6 @@ function autoload($class) $ci_libraries = array( 'Calendar', - 'Cart', 'Driver_Library', 'Email', 'Encrypt', diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 4d0b4cf4d..6a0b827ae 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -22,6 +22,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Form Helper ` function ``form_prep()`` (use :php:func:`html_escape()` instead). - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - Removed previously deprecated *Smiley Helper*. + - Removed previously deprecated *Cart Library*. - Removed previously deprecated *Javascript Library* (it was always experimental in the first place). - Libraries @@ -773,7 +774,7 @@ Release Date: March 30, 2015 - Added support for templating via an array in addition to the encoded string. - Changed method ``get_total_days()`` to be an alias for :doc:`Date Helper ` :php:func:`days_in_month()`. - - :doc:`Cart Library ` changes include: + - *Cart Library* changes include: - Deprecated the library as too specific for CodeIgniter. - Added method ``remove()`` to remove a cart item, updating with quantity of 0 seemed like a hack but has remained to retain compatibility. @@ -1042,7 +1043,7 @@ Bug fixes for 3.0 - Fixed a bug where :doc:`Database Forge ` method ``create_table()`` with PostgreSQL database could lead to fetching the whole table. - Fixed a bug (#795) - :doc:`Form Helper ` :php:func:`form_open()` didn't add the default form *method* and *accept-charset* when an empty array is passed to it. - Fixed a bug (#797) - :doc:`Date Helper ` :php:func:`timespan()` was using incorrect seconds for year and month. -- Fixed a bug in :doc:`Cart Library ` method ``contents()`` where if called without a TRUE (or equal) parameter, it would fail due to a typo. +- Fixed a bug in *Cart Library* method ``contents()`` where if called without a TRUE (or equal) parameter, it would fail due to a typo. - Fixed a bug (#406) - SQLSRV DB driver not returning resource on ``db_pconnect()``. - Fixed a bug in :doc:`Image Manipulation Library ` method ``gd_loaded()`` where it was possible for the script execution to end or a PHP E_WARNING message to be emitted. - Fixed a bug in the :doc:`Pagination library ` where when use_page_numbers=TRUE previous link and page 1 link did not have the same url. @@ -1179,7 +1180,7 @@ Bug fixes for 3.0 - Fixed a bug (#2298) - :doc:`Database Results ` method ``next_row()`` kept returning the last row, allowing for infinite loops. - Fixed a bug (#2236, #2639) - :doc:`Form Helper ` functions :php:func:`set_value()`, :php:func:`set_select()`, :php:func:`set_radio()`, :php:func:`set_checkbox()` didn't parse array notation for keys if the rule was not present in the :doc:`Form Validation Library `. - Fixed a bug (#2353) - :doc:`Query Builder ` erroneously prefixed literal strings with **dbprefix**. -- Fixed a bug (#78) - :doc:`Cart Library ` didn't allow non-English letters in product names. +- Fixed a bug (#78) - *Cart Library* didn't allow non-English letters in product names. - Fixed a bug (#77) - :doc:`Database Class ` didn't properly handle the transaction "test mode" flag. - Fixed a bug (#2380) - :doc:`URI Routing ` method ``fetch_method()`` returned 'index' if the requested method name matches its controller name. - Fixed a bug (#2388) - :doc:`Email Library ` used to ignore attachment errors, resulting in broken emails being sent. @@ -1414,9 +1415,8 @@ Release Date: November 14, 2011 - Libraries - - Changed ``$this->cart->insert()`` in the :doc:`Cart - Library ` to return the Row ID if a single - item was inserted successfully. + - Changed ``$this->cart->insert()`` in the *Cart Library* + to return the Row ID if a single item was inserted successfully. - Added support to set an optional parameter in your callback rules of validation using the :doc:`Form Validation Library `. @@ -1524,9 +1524,8 @@ Release Date: August 20, 2011 string. See upgrade notes if using database sessions. - Added $this->db->set_dbprefix() to the :doc:`Database Driver `. - - Changed $this->cart->insert() in the :doc:`Cart - Library ` to return the Row ID if a single - item was inserted successfully. + - Changed ``$this->cart->insert()`` in the *Cart Library* + to return the Row ID if a single item was inserted successfully. - Added $this->load->get_var() to the :doc:`Loader library ` to retrieve global vars set with $this->load->view() and $this->load->vars(). @@ -1551,8 +1550,8 @@ Bug fixes for 2.0.3 properly escaped. - Fixed issue #199 - Attributes passed as string does not include a space between it and the opening tag. -- Fixed a bug where the method $this->cart->total_items() from :doc:`Cart - Library ` now returns the sum of the quantity +- Fixed a bug where the method ``$this->cart->total_items()`` from + *Cart Library* now returns the sum of the quantity of all items in the cart instead of your total count. - Fixed a bug where not setting 'null' when adding fields in db_forge for mysql and mysqli drivers would default to NULL instead of NOT @@ -1971,7 +1970,7 @@ Hg Tag: v1.7.2 - Libraries - - Added a new :doc:`Cart Class `. + - Added a new *Cart Class*. - Added the ability to pass $config['file_name'] for the :doc:`File Uploading Class ` and rename the uploaded file. diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index 54f635cc0..7b9082679 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -559,12 +559,12 @@ implemented cryptographic functions. The Cart library ================ -The :doc:`Cart Library <../libraries/cart>`, similarly to the *Smiley Helper* -is too specific for CodeIgniter. It is now deprecated and scheduled for -removal in CodeIgniter 3.1+. +The *Cart Library*, similarly to the *Smiley Helper* is too specific for +CodeIgniter. It is now deprecated and scheduled for removal in +CodeIgniter 3.1+. -.. note:: The library is still available, but you're strongly encouraged to remove its usage sooner - rather than later. +.. note:: The library is still available, but you're strongly encouraged to + remove its usage sooner rather than later. Database drivers 'mysql', 'sqlite', 'mssql', 'pdo/dblib' ======================================================== diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 597e1ecf2..b587470f2 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -147,6 +147,7 @@ version 3.0.x, that have been removed in 3.2.0: - ``read_file()`` :doc:`File Helper <../helpers/file_helper>` function (use ``file_get_contents()`` instead) - ``form_prep()`` :doc:`Form Helper <../helpers/form_helper>` function (use :php:func:`html_escape()` instead) +- The entire *Cart Library* (an archived version is available on GitHub: `bcit-ci/ci3-cart-library `_) - The entire *Javascript Library* (it was always experimental in the first place) - The entire *Email Helper*, which only had two functions: diff --git a/user_guide_src/source/libraries/cart.rst b/user_guide_src/source/libraries/cart.rst deleted file mode 100644 index be343320d..000000000 --- a/user_guide_src/source/libraries/cart.rst +++ /dev/null @@ -1,398 +0,0 @@ -################### -Shopping Cart Class -################### - -The Cart Class permits items to be added to a session that stays active -while a user is browsing your site. These items can be retrieved and -displayed in a standard "shopping cart" format, allowing the user to -update the quantity or remove items from the cart. - -.. important:: The Cart library is DEPRECATED and should not be used. - It is currently only kept for backwards compatibility. - -Please note that the Cart Class ONLY provides the core "cart" -functionality. It does not provide shipping, credit card authorization, -or other processing components. - -.. contents:: - :local: - -.. raw:: html - -
      - -******************** -Using the Cart Class -******************** - -Initializing the Shopping Cart Class -==================================== - -.. important:: The Cart class utilizes CodeIgniter's :doc:`Session - Class ` to save the cart information to a database, so - before using the Cart class you must set up a database table as - indicated in the :doc:`Session Documentation `, and set the - session preferences in your application/config/config.php file to - utilize a database. - -To initialize the Shopping Cart Class in your controller constructor, -use the ``$this->load->library()`` method:: - - $this->load->library('cart'); - -Once loaded, the Cart object will be available using:: - - $this->cart - -.. note:: The Cart Class will load and initialize the Session Class - automatically, so unless you are using sessions elsewhere in your - application, you do not need to load the Session class. - -Adding an Item to The Cart -========================== - -To add an item to the shopping cart, simply pass an array with the -product information to the ``$this->cart->insert()`` method, as shown -below:: - - $data = array( - 'id' => 'sku_123ABC', - 'qty' => 1, - 'price' => 39.95, - 'name' => 'T-Shirt', - 'options' => array('Size' => 'L', 'Color' => 'Red') - ); - - $this->cart->insert($data); - -.. important:: The first four array indexes above (id, qty, price, and - name) are **required**. If you omit any of them the data will not be - saved to the cart. The fifth index (options) is optional. It is intended - to be used in cases where your product has options associated with it. - Use an array for options, as shown above. - -The five reserved indexes are: - -- **id** - Each product in your store must have a unique identifier. - Typically this will be an "sku" or other such identifier. -- **qty** - The quantity being purchased. -- **price** - The price of the item. -- **name** - The name of the item. -- **options** - Any additional attributes that are needed to identify - the product. These must be passed via an array. - -In addition to the five indexes above, there are two reserved words: -rowid and subtotal. These are used internally by the Cart class, so -please do NOT use those words as index names when inserting data into -the cart. - -Your array may contain additional data. Anything you include in your -array will be stored in the session. However, it is best to standardize -your data among all your products in order to make displaying the -information in a table easier. - -:: - - $data = array( - 'id' => 'sku_123ABC', - 'qty' => 1, - 'price' => 39.95, - 'name' => 'T-Shirt', - 'coupon' => 'XMAS-50OFF' - ); - - $this->cart->insert($data); - -The ``insert()`` method will return the $rowid if you successfully insert a -single item. - -Adding Multiple Items to The Cart -================================= - -By using a multi-dimensional array, as shown below, it is possible to -add multiple products to the cart in one action. This is useful in cases -where you wish to allow people to select from among several items on the -same page. - -:: - - $data = array( - array( - 'id' => 'sku_123ABC', - 'qty' => 1, - 'price' => 39.95, - 'name' => 'T-Shirt', - 'options' => array('Size' => 'L', 'Color' => 'Red') - ), - array( - 'id' => 'sku_567ZYX', - 'qty' => 1, - 'price' => 9.95, - 'name' => 'Coffee Mug' - ), - array( - 'id' => 'sku_965QRS', - 'qty' => 1, - 'price' => 29.95, - 'name' => 'Shot Glass' - ) - ); - - $this->cart->insert($data); - -Displaying the Cart -=================== - -To display the cart you will create a :doc:`view -file
      ` with code similar to the one shown below. - -Please note that this example uses the :doc:`form -helper
      `. - -:: - - - - - - - - - - - - - - - cart->contents() as $items): ?> - - - - - - - - - - - - - - - - - - - - -
      QTYItem DescriptionItem PriceSub-Total
      $i.'[qty]', 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5')); ?> - - - cart->has_options($items['rowid']) == TRUE): ?> - -

      - cart->product_options($items['rowid']) as $option_name => $option_value): ?> - - :
      - - -

      - - - -
      cart->format_number($items['price']); ?>$cart->format_number($items['subtotal']); ?>
       Total$cart->format_number($this->cart->total()); ?>
      - -

      - -Updating The Cart -================= - -To update the information in your cart, you must pass an array -containing the Row ID and one or more pre-defined properties to the -``$this->cart->update()`` method. - -.. note:: If the quantity is set to zero, the item will be removed from - the cart. - -:: - - $data = array( - 'rowid' => 'b99ccdf16028f015540f341130b6d8ec', - 'qty' => 3 - ); - - $this->cart->update($data); - - // Or a multi-dimensional array - - $data = array( - array( - 'rowid' => 'b99ccdf16028f015540f341130b6d8ec', - 'qty' => 3 - ), - array( - 'rowid' => 'xw82g9q3r495893iajdh473990rikw23', - 'qty' => 4 - ), - array( - 'rowid' => 'fh4kdkkkaoe30njgoe92rkdkkobec333', - 'qty' => 2 - ) - ); - - $this->cart->update($data); - -You may also update any property you have previously defined when -inserting the item such as options, price or other custom fields. - -:: - - $data = array( - 'rowid' => 'b99ccdf16028f015540f341130b6d8ec', - 'qty' => 1, - 'price' => 49.95, - 'coupon' => NULL - ); - - $this->cart->update($data); - -What is a Row ID? -***************** - -The row ID is a unique identifier that is generated by the cart code -when an item is added to the cart. The reason a unique ID is created -is so that identical products with different options can be managed -by the cart. - -For example, let's say someone buys two identical t-shirts (same product -ID), but in different sizes. The product ID (and other attributes) will -be identical for both sizes because it's the same shirt. The only -difference will be the size. The cart must therefore have a means of -identifying this difference so that the two sizes of shirts can be -managed independently. It does so by creating a unique "row ID" based on -the product ID and any options associated with it. - -In nearly all cases, updating the cart will be something the user does -via the "view cart" page, so as a developer, it is unlikely that you -will ever have to concern yourself with the "row ID", other than making -sure your "view cart" page contains this information in a hidden form -field, and making sure it gets passed to the ``update()`` method when -the update form is submitted. Please examine the construction of the -"view cart" page above for more information. - - -*************** -Class Reference -*************** - -.. php:class:: CI_Cart - - .. attribute:: $product_id_rules = '\.a-z0-9_-' - - These are the regular expression rules that we use to validate the product - ID - alpha-numeric, dashes, underscores, or periods by default - - .. attribute:: $product_name_rules = '\w \-\.\:' - - These are the regular expression rules that we use to validate the product ID and product name - alpha-numeric, dashes, underscores, colons or periods by - default - - .. attribute:: $product_name_safe = TRUE - - Whether or not to only allow safe product names. Default TRUE. - - - .. php:method:: insert([$items = array()]) - - :param array $items: Items to insert into the cart - :returns: TRUE on success, FALSE on failure - :rtype: bool - - Insert items into the cart and save it to the session table. Returns TRUE - on success and FALSE on failure. - - - .. php:method:: update([$items = array()]) - - :param array $items: Items to update in the cart - :returns: TRUE on success, FALSE on failure - :rtype: bool - - This method permits changing the properties of a given item. - Typically it is called from the "view cart" page if a user makes changes - to the quantity before checkout. That array must contain the rowid - for each item. - - .. php:method:: remove($rowid) - - :param int $rowid: ID of the item to remove from the cart - :returns: TRUE on success, FALSE on failure - :rtype: bool - - Allows you to remove an item from the shopping cart by passing it the - ``$rowid``. - - .. php:method:: total() - - :returns: Total amount - :rtype: int - - Displays the total amount in the cart. - - - .. php:method:: total_items() - - :returns: Total amount of items in the cart - :rtype: int - - Displays the total number of items in the cart. - - - .. php:method:: contents([$newest_first = FALSE]) - - :param bool $newest_first: Whether to order the array with newest items first - :returns: An array of cart contents - :rtype: array - - Returns an array containing everything in the cart. You can sort the - order by which the array is returned by passing it TRUE where the contents - will be sorted from newest to oldest, otherwise it is sorted from oldest - to newest. - - .. php:method:: get_item($row_id) - - :param int $row_id: Row ID to retrieve - :returns: Array of item data - :rtype: array - - Returns an array containing data for the item matching the specified row - ID, or FALSE if no such item exists. - - .. php:method:: has_options($row_id = '') - - :param int $row_id: Row ID to inspect - :returns: TRUE if options exist, FALSE otherwise - :rtype: bool - - Returns TRUE (boolean) if a particular row in the cart contains options. - This method is designed to be used in a loop with ``contents()``, since - you must pass the rowid to this method, as shown in the Displaying - the Cart example above. - - .. php:method:: product_options([$row_id = '']) - - :param int $row_id: Row ID - :returns: Array of product options - :rtype: array - - Returns an array of options for a particular product. This method is - designed to be used in a loop with ``contents()``, since you - must pass the rowid to this method, as shown in the Displaying the - Cart example above. - - .. php:method:: destroy() - - :rtype: void - - Permits you to destroy the cart. This method will likely be called - when you are finished processing the customer's order. \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 56d1efc5b14d7bd5a92800ba9394bf9201d48b61 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 12:32:32 +0200 Subject: Move 'standardize_newlines' proc out of CI_Input::_clean_input_data() Preparation for CI_Input::_sanitize_globals() removal. Also, WTF?! I'm deprecating this functionality in 3.1.next. --- system/core/Input.php | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/system/core/Input.php b/system/core/Input.php index 2e38e4501..ec57cd448 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -66,15 +66,6 @@ class CI_Input { */ protected $_allow_get_array = TRUE; - /** - * Standardize new lines flag - * - * If set to TRUE, then newlines are standardized. - * - * @var bool - */ - protected $_standardize_newlines; - /** * Enable XSS flag * @@ -140,7 +131,6 @@ class CI_Input { $this->_allow_get_array = (config_item('allow_get_array') === TRUE); $this->_enable_xss = (config_item('global_xss_filtering') === TRUE); $this->_enable_csrf = (config_item('csrf_protection') === TRUE); - $this->_standardize_newlines = (bool) config_item('standardize_newlines'); $this->security =& load_class('Security', 'core'); @@ -159,6 +149,13 @@ class CI_Input { $this->security->csrf_verify(); } + if ( ! empty($_POST) && config_item('standardize_newlines') === TRUE) + { + array_walk_recursive($_POST, function(&$value) { + $value = preg_replace('/(?:\r\n|[\r\n])/', PHP_EOL, $value); + }); + } + log_message('info', 'Input Class Initialized'); } @@ -595,7 +592,6 @@ class CI_Input { * * - Unsets $_GET data, if query strings are not enabled * - Cleans POST, COOKIE and SERVER data - * - Standardizes newline characters to PHP_EOL * * @return void */ @@ -698,12 +694,6 @@ class CI_Input { // Remove control characters $str = remove_invisible_characters($str, FALSE); - // Standardize newlines if needed - if ($this->_standardize_newlines === TRUE) - { - return preg_replace('/(?:\r\n|[\r\n])/', PHP_EOL, $str); - } - return $str; } -- cgit v1.2.3-24-g4f1b From aecb9ff2b3dfb6e66f1e229fa5f6b7f7275fcd40 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 13:05:48 +0200 Subject: [ci skip] Fix a changelog entry typo --- user_guide_src/source/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 6adb5073a..7e2d4a9ca 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -107,7 +107,7 @@ Release Date: Oct 28, 2016 - General Changes - - Allowed PHP 4-style constructors (``Mathching_name::Matching_name()`` methods) to be used as routes, if there's a ``__construct()`` to override them. + - Allowed PHP 4-style constructors (``Matching_name::Matching_name()`` methods) to be used as routes, if there's a ``__construct()`` to override them. Bug fixes for 3.1.2 ------------------- -- cgit v1.2.3-24-g4f1b From 8e37b8560c75d3994e59f401be977dcf386bb210 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 13:13:05 +0200 Subject: Remove 'allow_get_array', 'standardize_newlines' config settings --- application/config/config.php | 28 ---------------------- system/core/Input.php | 23 +----------------- user_guide_src/source/changelog.rst | 2 ++ user_guide_src/source/installation/upgrade_320.rst | 7 ++++-- user_guide_src/source/libraries/input.rst | 4 ---- 5 files changed, 8 insertions(+), 56 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index c088e80c0..535f0f817 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -191,20 +191,6 @@ $config['controller_trigger'] = 'c'; $config['function_trigger'] = 'm'; $config['directory_trigger'] = 'd'; -/* -|-------------------------------------------------------------------------- -| Allow $_GET array -|-------------------------------------------------------------------------- -| -| By default CodeIgniter enables access to the $_GET array. If for some -| reason you would like to disable it, set 'allow_get_array' to FALSE. -| -| WARNING: This feature is DEPRECATED and currently available only -| for backwards compatibility purposes! -| -*/ -$config['allow_get_array'] = TRUE; - /* |-------------------------------------------------------------------------- | Error Logging Threshold @@ -410,20 +396,6 @@ $config['cookie_path'] = '/'; $config['cookie_secure'] = FALSE; $config['cookie_httponly'] = FALSE; -/* -|-------------------------------------------------------------------------- -| Standardize newlines -|-------------------------------------------------------------------------- -| -| Determines whether to standardize newline characters in input data, -| meaning to replace \r\n, \r, \n occurrences with the PHP_EOL value. -| -| WARNING: This feature is DEPRECATED and currently available only -| for backwards compatibility purposes! -| -*/ -$config['standardize_newlines'] = FALSE; - /* |-------------------------------------------------------------------------- | Global XSS Filtering diff --git a/system/core/Input.php b/system/core/Input.php index ec57cd448..a6be7b517 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -57,15 +57,6 @@ class CI_Input { */ protected $ip_address = FALSE; - /** - * Allow GET array flag - * - * If set to FALSE, then $_GET will be set to an empty array. - * - * @var bool - */ - protected $_allow_get_array = TRUE; - /** * Enable XSS flag * @@ -128,7 +119,6 @@ class CI_Input { */ public function __construct() { - $this->_allow_get_array = (config_item('allow_get_array') === TRUE); $this->_enable_xss = (config_item('global_xss_filtering') === TRUE); $this->_enable_csrf = (config_item('csrf_protection') === TRUE); @@ -149,13 +139,6 @@ class CI_Input { $this->security->csrf_verify(); } - if ( ! empty($_POST) && config_item('standardize_newlines') === TRUE) - { - array_walk_recursive($_POST, function(&$value) { - $value = preg_replace('/(?:\r\n|[\r\n])/', PHP_EOL, $value); - }); - } - log_message('info', 'Input Class Initialized'); } @@ -598,11 +581,7 @@ class CI_Input { protected function _sanitize_globals() { // Is $_GET data allowed? If not we'll set the $_GET to an empty array - if ($this->_allow_get_array === FALSE) - { - $_GET = array(); - } - elseif (is_array($_GET)) + if (is_array($_GET)) { foreach ($_GET as $key => $val) { diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 7e2d4a9ca..a0f91a148 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -10,6 +10,8 @@ Release Date: Not Released - Core - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. + - Removed previously deprecated ``$config['allow_get_array']``. + - Removed previously deprecated ``$config['standardize_newlines']``. - Removed previously deprecated :doc:`Input Library ` method ``is_cli_request()`` (use :php:func:`is_cli()` instead). - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index b587470f2..6501f40db 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -128,8 +128,11 @@ HTML 5 formatting. Step 7: Remove usage of previously deprecated functionalities ============================================================= -The following is a list of functionalities deprecated in CodeIgniter -version 3.0.x, that have been removed in 3.2.0: +The following is a list of functionalities deprecated in previous +CodeIgniter versions that have been removed in 3.2.0: + +- ``$config['allow_get_array']`` (use ``$_GET = array();`` instead) +- ``$config['standardize_newlines']`` - ``CI_Input::is_cli_request()`` (use :php:func:`is_cli()` instead) - ``CI_Router::fetch_directory()`` (use ``CI_Router::$directory`` instead) diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index 899070ef4..8b816a567 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -28,16 +28,12 @@ The security filtering method is called automatically when a new :doc:`controller <../general/controllers>` is invoked. It does the following: -- If ``$config['allow_get_array']`` is FALSE (default is TRUE), destroys - the global GET array. - Destroys all global variables in the event register_globals is turned on. - Filters the GET/POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters. - Provides XSS (Cross-site Scripting Hacks) filtering. This can be enabled globally, or upon request. -- Standardizes newline characters to ``PHP_EOL`` (\\n in UNIX-based OSes, - \\r\\n under Windows). This is configurable. XSS Filtering ============= -- cgit v1.2.3-24-g4f1b From 4e0c208f24b0755c47905e17b82854c538a0c530 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 13:23:06 +0200 Subject: Remove 'global_xss_filtering' config setting --- application/config/config.php | 14 ---------- system/core/Input.php | 32 ++++++--------------- system/helpers/cookie_helper.php | 3 +- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/helpers/cookie_helper.rst | 2 +- user_guide_src/source/libraries/input.rst | 37 ++++++------------------- 6 files changed, 20 insertions(+), 69 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index 535f0f817..d37af34b7 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -396,20 +396,6 @@ $config['cookie_path'] = '/'; $config['cookie_secure'] = FALSE; $config['cookie_httponly'] = FALSE; -/* -|-------------------------------------------------------------------------- -| Global XSS Filtering -|-------------------------------------------------------------------------- -| -| Determines whether the XSS filter is always active when GET, POST or -| COOKIE data is encountered -| -| WARNING: This feature is DEPRECATED and currently available only -| for backwards compatibility purposes! -| -*/ -$config['global_xss_filtering'] = FALSE; - /* |-------------------------------------------------------------------------- | Cross Site Request Forgery diff --git a/system/core/Input.php b/system/core/Input.php index a6be7b517..d4f79ee68 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -57,17 +57,6 @@ class CI_Input { */ protected $ip_address = FALSE; - /** - * Enable XSS flag - * - * Determines whether the XSS filter is always active when - * GET, POST or COOKIE data is encountered. - * Set automatically based on config setting. - * - * @var bool - */ - protected $_enable_xss = FALSE; - /** * Enable CSRF flag * @@ -119,7 +108,6 @@ class CI_Input { */ public function __construct() { - $this->_enable_xss = (config_item('global_xss_filtering') === TRUE); $this->_enable_csrf = (config_item('csrf_protection') === TRUE); $this->security =& load_class('Security', 'core'); @@ -154,10 +142,8 @@ class CI_Input { * @param bool $xss_clean Whether to apply XSS filtering * @return mixed */ - protected function _fetch_from_array(&$array, $index = NULL, $xss_clean = NULL) + protected function _fetch_from_array(&$array, $index = NULL, $xss_clean = FALSE) { - is_bool($xss_clean) OR $xss_clean = $this->_enable_xss; - // If $index is NULL, it means that the whole $array is requested isset($index) OR $index = array_keys($array); @@ -217,7 +203,7 @@ class CI_Input { * @param bool $xss_clean Whether to apply XSS filtering * @return mixed */ - public function get($index = NULL, $xss_clean = NULL) + public function get($index = NULL, $xss_clean = FALSE) { return $this->_fetch_from_array($_GET, $index, $xss_clean); } @@ -231,7 +217,7 @@ class CI_Input { * @param bool $xss_clean Whether to apply XSS filtering * @return mixed */ - public function post($index = NULL, $xss_clean = NULL) + public function post($index = NULL, $xss_clean = FALSE) { return $this->_fetch_from_array($_POST, $index, $xss_clean); } @@ -245,7 +231,7 @@ class CI_Input { * @param bool $xss_clean Whether to apply XSS filtering * @return mixed */ - public function post_get($index, $xss_clean = NULL) + public function post_get($index, $xss_clean = FALSE) { return isset($_POST[$index]) ? $this->post($index, $xss_clean) @@ -261,7 +247,7 @@ class CI_Input { * @param bool $xss_clean Whether to apply XSS filtering * @return mixed */ - public function get_post($index, $xss_clean = NULL) + public function get_post($index, $xss_clean = FALSE) { return isset($_GET[$index]) ? $this->get($index, $xss_clean) @@ -277,7 +263,7 @@ class CI_Input { * @param bool $xss_clean Whether to apply XSS filtering * @return mixed */ - public function cookie($index = NULL, $xss_clean = NULL) + public function cookie($index = NULL, $xss_clean = FALSE) { return $this->_fetch_from_array($_COOKIE, $index, $xss_clean); } @@ -291,7 +277,7 @@ class CI_Input { * @param bool $xss_clean Whether to apply XSS filtering * @return mixed */ - public function server($index, $xss_clean = NULL) + public function server($index, $xss_clean = FALSE) { return $this->_fetch_from_array($_SERVER, $index, $xss_clean); } @@ -307,7 +293,7 @@ class CI_Input { * @param bool $xss_clean Whether to apply XSS filtering * @return mixed */ - public function input_stream($index = NULL, $xss_clean = NULL) + public function input_stream($index = NULL, $xss_clean = FALSE) { // Prior to PHP 5.6, the input stream can only be read once, // so we'll need to check if we have already done that first. @@ -561,7 +547,7 @@ class CI_Input { * * @return string|null User Agent string or NULL if it doesn't exist */ - public function user_agent($xss_clean = NULL) + public function user_agent($xss_clean = FALSE) { return $this->_fetch_from_array($_SERVER, 'HTTP_USER_AGENT', $xss_clean); } diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php index ca4324495..f8943fde3 100644 --- a/system/helpers/cookie_helper.php +++ b/system/helpers/cookie_helper.php @@ -85,9 +85,8 @@ if ( ! function_exists('get_cookie')) * @param bool * @return mixed */ - function get_cookie($index, $xss_clean = NULL) + function get_cookie($index, $xss_clean = FALSE) { - is_bool($xss_clean) OR $xss_clean = (config_item('global_xss_filtering') === TRUE); $prefix = isset($_COOKIE[$index]) ? '' : config_item('cookie_prefix'); return get_instance()->input->cookie($prefix.$index, $xss_clean); } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index a0f91a148..1a1b0d537 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -12,6 +12,7 @@ Release Date: Not Released - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. - Removed previously deprecated ``$config['allow_get_array']``. - Removed previously deprecated ``$config['standardize_newlines']``. + - Removed previously deprecated ``$config['global_xss_filtering']``. - Removed previously deprecated :doc:`Input Library ` method ``is_cli_request()`` (use :php:func:`is_cli()` instead). - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). diff --git a/user_guide_src/source/helpers/cookie_helper.rst b/user_guide_src/source/helpers/cookie_helper.rst index c9d2f419c..71e40a33c 100644 --- a/user_guide_src/source/helpers/cookie_helper.rst +++ b/user_guide_src/source/helpers/cookie_helper.rst @@ -42,7 +42,7 @@ The following functions are available: a description of its use, as this function is an alias for ``CI_Input::set_cookie()``. -.. php:function:: get_cookie($index[, $xss_clean = NULL]) +.. php:function:: get_cookie($index[, $xss_clean = FALSE]) :param string $index: Cookie name :param bool $xss_clean: Whether to apply XSS filtering to the returned value diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index 8b816a567..1961e3e57 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -32,26 +32,6 @@ following: turned on. - Filters the GET/POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters. -- Provides XSS (Cross-site Scripting Hacks) filtering. This can be - enabled globally, or upon request. - -XSS Filtering -============= - -The Input class has the ability to filter input automatically to prevent -cross-site scripting attacks. If you want the filter to run -automatically every time it encounters POST or COOKIE data you can -enable it by opening your *application/config/config.php* file and setting -this:: - - $config['global_xss_filtering'] = TRUE; - -Please refer to the :doc:`Security class ` documentation for -information on using XSS Filtering in your application. - -.. important:: The 'global_xss_filtering' setting is DEPRECATED and kept - solely for backwards-compatibility purposes. XSS escaping should - be performed on *output*, not *input*! ******************* Accessing form data @@ -126,7 +106,7 @@ Class Reference The property can be read multiple times. - .. php:method:: post([$index = NULL[, $xss_clean = NULL]]) + .. php:method:: post([$index = NULL[, $xss_clean = FALSE]]) :param mixed $index: POST parameter name :param bool $xss_clean: Whether to apply XSS filtering @@ -143,7 +123,6 @@ Class Reference The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE - or by setting your ``$config['global_xss_filtering']`` to TRUE. :: $this->input->post('some_data', TRUE); @@ -169,7 +148,7 @@ Class Reference $this->input->post(array('field1', 'field2'), TRUE); - .. php:method:: get([$index = NULL[, $xss_clean = NULL]]) + .. php:method:: get([$index = NULL[, $xss_clean = FALSE]]) :param mixed $index: GET parameter name :param bool $xss_clean: Whether to apply XSS filtering @@ -202,7 +181,7 @@ Class Reference $this->input->get(array('field1', 'field2'), TRUE); - .. php:method:: post_get($index[, $xss_clean = NULL]) + .. php:method:: post_get($index[, $xss_clean = FALSE]) :param string $index: POST/GET parameter name :param bool $xss_clean: Whether to apply XSS filtering @@ -215,7 +194,7 @@ Class Reference $this->input->post_get('some_data', TRUE); - .. php:method:: get_post($index[, $xss_clean = NULL]) + .. php:method:: get_post($index[, $xss_clean = FALSE]) :param string $index: GET/POST parameter name :param bool $xss_clean: Whether to apply XSS filtering @@ -230,7 +209,7 @@ Class Reference .. note:: This method used to act EXACTLY like ``post_get()``, but it's behavior has changed in CodeIgniter 3.0. - .. php:method:: cookie([$index = NULL[, $xss_clean = NULL]]) + .. php:method:: cookie([$index = NULL[, $xss_clean = FALSE]]) :param mixed $index: COOKIE name :param bool $xss_clean: Whether to apply XSS filtering @@ -253,7 +232,7 @@ Class Reference function :php:func:`get_cookie()`, this method does NOT prepend your configured ``$config['cookie_prefix']`` value. - .. php:method:: server($index[, $xss_clean = NULL]) + .. php:method:: server($index[, $xss_clean = FALSE]) :param mixed $index: Value name :param bool $xss_clean: Whether to apply XSS filtering @@ -271,7 +250,7 @@ Class Reference $this->input->server(array('SERVER_PROTOCOL', 'REQUEST_URI')); - .. php:method:: input_stream([$index = NULL[, $xss_clean = NULL]]) + .. php:method:: input_stream([$index = NULL[, $xss_clean = FALSE]]) :param mixed $index: Key name :param bool $xss_clean: Whether to apply XSS filtering @@ -386,7 +365,7 @@ Class Reference Accepts an optional second string parameter of 'ipv4' or 'ipv6' to specify an IP format. The default checks for both formats. - .. php:method:: user_agent([$xss_clean = NULL]) + .. php:method:: user_agent([$xss_clean = FALSE]) :returns: User agent string or NULL if not set :param bool $xss_clean: Whether to apply XSS filtering -- cgit v1.2.3-24-g4f1b From ff773c059cb984920767dd6187c30a77e5bf78c9 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 13:45:45 +0200 Subject: Finally drop CI_Input::_sanitize_globals() Close #4101 --- system/core/Input.php | 168 +-------------------- tests/mocks/core/input.php | 19 +-- user_guide_src/source/installation/upgrade_320.rst | 18 +++ user_guide_src/source/libraries/input.rst | 28 +--- 4 files changed, 32 insertions(+), 201 deletions(-) diff --git a/system/core/Input.php b/system/core/Input.php index d4f79ee68..aefc3b7d8 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -93,8 +93,15 @@ class CI_Input { */ protected $_input_stream; + /** + * CI_Security instance + * + * Used for the optional $xss_filter parameter that most + * getter methods have here. + * + * @var CI_Security + */ protected $security; - protected $uni; // -------------------------------------------------------------------- @@ -112,15 +119,6 @@ class CI_Input { $this->security =& load_class('Security', 'core'); - // Do we need the UTF-8 class? - if (UTF8_ENABLED === TRUE) - { - $this->uni =& load_class('Utf8', 'core'); - } - - // Sanitize global arrays - $this->_sanitize_globals(); - // CSRF Protection check if ($this->_enable_csrf === TRUE && ! is_cli()) { @@ -554,156 +552,6 @@ class CI_Input { // -------------------------------------------------------------------- - /** - * Sanitize Globals - * - * Internal method serving for the following purposes: - * - * - Unsets $_GET data, if query strings are not enabled - * - Cleans POST, COOKIE and SERVER data - * - * @return void - */ - protected function _sanitize_globals() - { - // Is $_GET data allowed? If not we'll set the $_GET to an empty array - if (is_array($_GET)) - { - foreach ($_GET as $key => $val) - { - $_GET[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); - } - } - - // Clean $_POST Data - if (is_array($_POST)) - { - foreach ($_POST as $key => $val) - { - $_POST[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); - } - } - - // Clean $_COOKIE Data - if (is_array($_COOKIE)) - { - // Also get rid of specially treated cookies that might be set by a server - // or silly application, that are of no use to a CI application anyway - // but that when present will trip our 'Disallowed Key Characters' alarm - // http://www.ietf.org/rfc/rfc2109.txt - // note that the key names below are single quoted strings, and are not PHP variables - unset( - $_COOKIE['$Version'], - $_COOKIE['$Path'], - $_COOKIE['$Domain'] - ); - - foreach ($_COOKIE as $key => $val) - { - if (($cookie_key = $this->_clean_input_keys($key)) !== FALSE) - { - $_COOKIE[$cookie_key] = $this->_clean_input_data($val); - } - else - { - unset($_COOKIE[$key]); - } - } - } - - // Sanitize PHP_SELF - $_SERVER['PHP_SELF'] = strip_tags($_SERVER['PHP_SELF']); - - log_message('info', 'Global POST, GET and COOKIE data sanitized'); - } - - // -------------------------------------------------------------------- - - /** - * Clean Input Data - * - * Internal method that aids in escaping data and - * standardizing newline characters to PHP_EOL. - * - * @param string|string[] $str Input string(s) - * @return string - */ - protected function _clean_input_data($str) - { - if (is_array($str)) - { - $new_array = array(); - foreach (array_keys($str) as $key) - { - $new_array[$this->_clean_input_keys($key)] = $this->_clean_input_data($str[$key]); - } - return $new_array; - } - - /* We strip slashes if magic quotes is on to keep things consistent - - NOTE: In PHP 5.4 get_magic_quotes_gpc() will always return 0 and - it will probably not exist in future versions at all. - */ - if ( ! is_php('5.4') && get_magic_quotes_gpc()) - { - $str = stripslashes($str); - } - - // Clean UTF-8 if supported - if (UTF8_ENABLED === TRUE) - { - $str = $this->uni->clean_string($str); - } - - // Remove control characters - $str = remove_invisible_characters($str, FALSE); - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Clean Keys - * - * Internal method that helps to prevent malicious users - * from trying to exploit keys we make sure that keys are - * only named with alpha-numeric text and a few other items. - * - * @param string $str Input string - * @param bool $fatal Whether to terminate script exection - * or to return FALSE if an invalid - * key is encountered - * @return string|bool - */ - protected function _clean_input_keys($str, $fatal = TRUE) - { - if ( ! preg_match('/^[a-z0-9:_\/|-]+$/i', $str)) - { - if ($fatal === TRUE) - { - return FALSE; - } - else - { - set_status_header(503); - echo 'Disallowed Key Characters.'; - exit(7); // EXIT_USER_INPUT - } - } - - // Clean UTF-8 if supported - if (UTF8_ENABLED === TRUE) - { - return $this->uni->clean_string($str); - } - - return $str; - } - - // -------------------------------------------------------------------- - /** * Request Headers * diff --git a/tests/mocks/core/input.php b/tests/mocks/core/input.php index 40e27441f..4d217a252 100644 --- a/tests/mocks/core/input.php +++ b/tests/mocks/core/input.php @@ -11,16 +11,10 @@ class Mock_Core_Input extends CI_Input { */ public function __construct($security, $utf8) { - $this->_allow_get_array = (config_item('allow_get_array') === TRUE); - $this->_enable_xss = (config_item('global_xss_filtering') === TRUE); $this->_enable_csrf = (config_item('csrf_protection') === TRUE); // Assign Security and Utf8 classes $this->security = $security; - $this->uni = $utf8; - - // Sanitize global arrays - $this->_sanitize_globals(); } public function fetch_from_array($array, $index = '', $xss_clean = FALSE) @@ -28,16 +22,6 @@ class Mock_Core_Input extends CI_Input { return parent::_fetch_from_array($array, $index, $xss_clean); } - /** - * Lie about being a CLI request - * - * We take advantage of this in libraries/Session_test - */ - public function is_cli_request() - { - return FALSE; - } - public function __set($name, $value) { if ($name === 'ip_address') @@ -45,5 +29,4 @@ class Mock_Core_Input extends CI_Input { $this->ip_address = $value; } } - -} \ No newline at end of file +} diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 6501f40db..8434172e7 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -159,3 +159,21 @@ CodeIgniter versions that have been removed in 3.2.0: - ``send_email()`` (use ``mail()`` instead) - The entire *Smiley Helper* (an archived version is available on GitHub: `bcit-ci/ci3-smiley-helper `_) + +Step 8: Make sure you're validating all user inputs +=================================================== + +The :doc:`Input Library <../libraries/input>` used to (often +unconditionally) filter and/or sanitize user input in the ``$_GET``, +``$_POST`` and ``$_COOKIE`` superglobals. + +This was a legacy feature from older times, when things like +`register_globals `_ and +`magic_quotes_gpc `_ existed in +PHP. +It was a necessity back then, but this is no longer the case and reliance +on global filters is a bad practice, giving you a false sense of security. + +This functionality is now removed, and so if you've relied on it for +whatever reasons, you should double-check that you are properly validating +all user inputs in your application (as you always should do). diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index 1961e3e57..97460c2c5 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -2,10 +2,8 @@ Input Class ########### -The Input Class serves two purposes: - -#. It pre-processes global input data for security. -#. It provides some helper methods for fetching input data and pre-processing it. +The Input Class provides some helper methods for accessing input data +and pre-processing it. .. note:: This class is initialized automatically by the system so there is no need to do it manually. @@ -17,25 +15,9 @@ The Input Class serves two purposes:
      -*************** -Input Filtering -*************** - -Security Filtering -================== - -The security filtering method is called automatically when a new -:doc:`controller <../general/controllers>` is invoked. It does the -following: - -- Destroys all global variables in the event register_globals is - turned on. -- Filters the GET/POST/COOKIE array keys, permitting only alpha-numeric - (and a few other) characters. - -******************* -Accessing form data -******************* +******************** +Accessing input data +******************** Using POST, GET, COOKIE, or SERVER Data ======================================= -- cgit v1.2.3-24-g4f1b From a299f56629c764afd8909c90ca3bb36625e84109 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 14:09:27 +0200 Subject: Remove dead parameter from form_upload() Close #3558 --- system/helpers/form_helper.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index 9756437ae..496fc1055 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -244,11 +244,10 @@ if ( ! function_exists('form_upload')) * Identical to the input function but adds the "file" type * * @param mixed - * @param string * @param mixed * @return string */ - function form_upload($data = '', $value = '', $extra = '') + function form_upload($data = '', $extra = '') { $defaults = array('type' => 'file', 'name' => ''); is_array($data) OR $data = array('name' => $data); -- cgit v1.2.3-24-g4f1b From af2edc36bf5e19aeda3f408a0a4019b63ed2d849 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 14:10:15 +0200 Subject: [ci skip] Update changelog; add an entry & upgrade instructions for last commit --- user_guide_src/source/changelog.rst | 52 ++++++++++++++-------- user_guide_src/source/helpers/form_helper.rst | 3 +- user_guide_src/source/installation/upgrade_320.rst | 17 +++++++ 3 files changed, 52 insertions(+), 20 deletions(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 1a1b0d537..b0b239870 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -9,27 +9,21 @@ Release Date: Not Released - Core - - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. - - Removed previously deprecated ``$config['allow_get_array']``. - - Removed previously deprecated ``$config['standardize_newlines']``. - Removed previously deprecated ``$config['global_xss_filtering']``. - - Removed previously deprecated :doc:`Input Library ` method ``is_cli_request()`` (use :php:func:`is_cli()` instead). - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). - - Removed previously deprecated :doc:`Form Validation Library ` method ``prep_for_form()`` / rule *prep_for_form*. - - Removed previously deprecated :doc:`Date Helper ` function ``standard_date()`` (use PHP's native ``date()`` instead). - - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - - Removed previously deprecated :doc:`HTML Helper ` functions ``br()`` and ``nbs()`` (use PHP's native ``str_repeat()`` with ``'
      '`` and ``' '`` respectively). - - Removed previously deprecated :doc:`String Helper ` functions ``trim_slashes()`` and ``repeater()`` (use PHP's native ``trim()`` with ``'/'`` and ``str_repeat()`` respectively). - - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - - Removed previously deprecated :doc:`Form Helper ` function ``form_prep()`` (use :php:func:`html_escape()` instead). - - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - - Removed previously deprecated *Smiley Helper*. - - Removed previously deprecated *Cart Library*. - - Removed previously deprecated *Javascript Library* (it was always experimental in the first place). + - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. + + - :doc:`Input Library ` changes include: + + - Removed previously deprecated ``$config['allow_get_array']``. + - Removed previously deprecated ``$config['standardize_newlines']``. + - Removed previously deprecated method ``is_cli_request()`` (use :php:func:`is_cli()` instead). - Libraries + - Removed previously deprecated *Cart Library*. + - Removed previously deprecated *Javascript Library* (it was always experimental in the first place). - Added UNIX socket connection support to :doc:`Session Library ` 'redis' driver. - :doc:`Cache Library ` changes include: @@ -42,6 +36,7 @@ Release Date: Not Released - :doc:`Form Validation Library ` changes include: + - Removed previously deprecated method ``prep_for_form()`` / rule *prep_for_form*. - Changed method ``set_rules()`` to throw a ``BadMethodCallException`` when its first parameter is not an array and the ``$rules`` one is unused. - :doc:`HTML Table Library ` changes include: @@ -52,7 +47,7 @@ Release Date: Not Released - Changed the default value of the **validate** option to ``TRUE``. -- :doc:`Database ` +- :doc:`Database ` changes include: - Changed method ``initialize()`` to return void and instead throw a ``RuntimeException`` in case of failure. - Changed method ``db_connect()`` to always set the connection character set (if supported by the driver) and to fail if it can't. @@ -64,10 +59,31 @@ Release Date: Not Released - Helpers + - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). + - Removed previously deprecated *Smiley Helper*. + - Removed previously deprecated :doc:`Date Helper ` function ``standard_date()`` (use PHP's native ``date()`` instead). + - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). + - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - Added new function :php:func:`ordinal_format()` to :doc:`Inflector Helper `. - Updated :doc:`Download Helper ` :php:func:`force_download()` to allow existing files to be renamed for download. - - Updated :doc:`HTML Helper ` function :php:func:`meta()` with support for "charset" and "property" properties. - - Changed :doc:`HTML Helper ` function :php:func:`doctype()` default document type to HTML 5. + + - :doc:`String Helper ` changes include: + + - Removed previously deprecated function ``trim_slashes()`` (use PHP's native ``trim()`` with ``'/'`` instead). + - Removed previously deprecated function ``repeater()`` (use PHP's native ``str_repeat()`` instead). + + - :doc:`HTML Helper ` changes include: + + - Removed previously deprecated function ``br()`` (use PHP's native ``str_repeat()`` with ``'
      '`` instead). + - Removed previously deprecated function ``nbs()`` (use PHP's native ``str_repeat()`` with ``' '`` instead). + - Updated function :php:func:`meta()` with support for "charset" and "property" properties. + - Changed function :php:func:`doctype()` default document type to HTML 5. + + - :doc:`Form Helper ` changes include: + + - Removed previously deprecated function ``form_prep()`` (use :php:func:`html_escape()` instead). + - Removed the second (out of three) parameter from the :php:func:`form_upload()` function (it was never used). + Version 3.1.3 ============= diff --git a/user_guide_src/source/helpers/form_helper.rst b/user_guide_src/source/helpers/form_helper.rst index cf52cd523..97595c90b 100644 --- a/user_guide_src/source/helpers/form_helper.rst +++ b/user_guide_src/source/helpers/form_helper.rst @@ -243,10 +243,9 @@ The following functions are available: function above except that it uses the "password" input type. -.. php:function:: form_upload([$data = ''[, $value = ''[, $extra = '']]]) +.. php:function:: form_upload([$data = '', $extra = '']]) :param array $data: Field attributes data - :param string $value: Field value :param mixed $extra: Extra attributes to be added to the tag either as an array or a literal string :returns: An HTML file upload input field tag :rtype: string diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 8434172e7..0cf311028 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -125,6 +125,23 @@ relies on the default value, you should double-check it and either explicitly set the desired format, or adapt your front-end to use proper HTML 5 formatting. +Step 6: Check usage of form_upload() Form helper +================================================ + +The :doc:`Form Helper <../helpers/form_helper>` function +:php:func:`form_upload()` used to have 3 parameters, the second of which +(``$value``) was never used, as it doesn't make sense for an HTML ``input`` +tag of the "file" type. + +That dead parameter is now removed, and so if you've used the third one +(``$extra``), having code like this:: + + form_upload('name', 'irrelevant value', $extra); + +You should change it to:: + + form_upload('name', $extra); + Step 7: Remove usage of previously deprecated functionalities ============================================================= -- cgit v1.2.3-24-g4f1b From 6bbd097269aa0e4ec5308ce506f840e5e214b298 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 14:57:11 +0200 Subject: Don't allow failures with PHP 7.1 on Travis-CI --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 334cb614f..3d0691e50 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,7 +30,6 @@ script: phpunit -d zend.enable_gc=0 -d date.timezone=UTC --coverage-text --confi matrix: allow_failures: - php: hhvm - - php: 7.1 exclude: - php: hhvm env: DB=pgsql -- cgit v1.2.3-24-g4f1b From 88303fd3af7e1347fb2ceeb80a4a898980f98677 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 14:58:16 +0200 Subject: [ci skip] Require PHP 5.4.8 as the absolute minimum We stopped testing this branch on 5.3 long ago --- readme.rst | 2 +- user_guide_src/source/changelog.rst | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/readme.rst b/readme.rst index f5d737028..a2537b393 100644 --- a/readme.rst +++ b/readme.rst @@ -31,7 +31,7 @@ Server Requirements PHP version 5.6 or newer is recommended. -It should work on 5.3.7 as well, but we strongly advise you NOT to run +It should work on 5.4.8 as well, but we strongly advise you NOT to run such old versions of PHP, because of potential security and performance issues, as well as missing features. diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index b0b239870..84ed718cd 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -7,6 +7,10 @@ Version 3.2.0 Release Date: Not Released +- General Changes + + - Officially dropped any kind of support for anything under PHP 5.4.8. + - Core - Removed previously deprecated ``$config['global_xss_filtering']``. -- cgit v1.2.3-24-g4f1b From 26313bddee1fb67af10141671a47bbe703a025fd Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 15:15:03 +0200 Subject: [ci skip] More doc changes related to PHP 5.4.8 requirement --- user_guide_src/source/contributing/index.rst | 6 ++--- user_guide_src/source/general/common_functions.rst | 6 ++--- .../source/general/compatibility_functions.rst | 1 - user_guide_src/source/general/requirements.rst | 4 +-- user_guide_src/source/general/styleguide.rst | 4 +-- user_guide_src/source/installation/upgrade_320.rst | 29 +++++++++++++++------- 6 files changed, 30 insertions(+), 20 deletions(-) diff --git a/user_guide_src/source/contributing/index.rst b/user_guide_src/source/contributing/index.rst index be776ec1f..e102b8848 100644 --- a/user_guide_src/source/contributing/index.rst +++ b/user_guide_src/source/contributing/index.rst @@ -104,9 +104,9 @@ Compatibility ============= CodeIgniter recommends PHP 5.6 or newer to be used, but it should be -compatible with PHP 5.3.7 so all code supplied must stick to this -requirement. If PHP 5.4 (and above) functions or features are used then -there must be a fallback for PHP 5.3.7. +compatible with PHP 5.4.8 so all code supplied must stick to this +requirement. If PHP 5.5 (and above) functions or features are used then +there must be a fallback for PHP 5.4.8. Branching ========= diff --git a/user_guide_src/source/general/common_functions.rst b/user_guide_src/source/general/common_functions.rst index 6d6744cf7..602a6c763 100644 --- a/user_guide_src/source/general/common_functions.rst +++ b/user_guide_src/source/general/common_functions.rst @@ -24,9 +24,9 @@ loading any libraries or helpers. Example:: - if (is_php('5.3')) + if (is_php('5.5')) { - $str = quoted_printable_encode($str); + echo json_last_error_msg(); } Returns boolean TRUE if the installed version of PHP is equal to or @@ -185,4 +185,4 @@ loading any libraries or helpers. .. note:: This function was introduced because Suhosin terminated script execution, but this turned out to be a bug. A fix has been available for some time (version 0.9.34), but is - unfortunately not released yet. \ No newline at end of file + unfortunately not released yet. diff --git a/user_guide_src/source/general/compatibility_functions.rst b/user_guide_src/source/general/compatibility_functions.rst index 584968663..71559d0be 100644 --- a/user_guide_src/source/general/compatibility_functions.rst +++ b/user_guide_src/source/general/compatibility_functions.rst @@ -32,7 +32,6 @@ that is otherwise available only since PHP 5.5. Dependencies ============ -- PHP 5.3.7 - ``CRYPT_BLOWFISH`` support for ``crypt()`` Constants diff --git a/user_guide_src/source/general/requirements.rst b/user_guide_src/source/general/requirements.rst index f2729f3d5..2e24d6d03 100644 --- a/user_guide_src/source/general/requirements.rst +++ b/user_guide_src/source/general/requirements.rst @@ -4,7 +4,7 @@ Server Requirements `PHP `_ version 5.6 or newer is recommended. -It should work on 5.3.7 as well, but we strongly advise you NOT to run +It should work on 5.4.8 as well, but we strongly advise you NOT to run such old versions of PHP, because of potential security and performance issues, as well as missing features. @@ -18,4 +18,4 @@ Currently supported databases are: - SQLite via the *sqlite* (version 2), *sqlite3* (version 3) and *pdo* drivers - CUBRID via the *cubrid* and *pdo* drivers - Interbase/Firebird via the *ibase* and *pdo* drivers - - ODBC via the *odbc* and *pdo* drivers (you should know that ODBC is actually an abstraction layer) \ No newline at end of file + - ODBC via the *odbc* and *pdo* drivers (you should know that ODBC is actually an abstraction layer) diff --git a/user_guide_src/source/general/styleguide.rst b/user_guide_src/source/general/styleguide.rst index 9b4a84e14..5f25a5ae4 100644 --- a/user_guide_src/source/general/styleguide.rst +++ b/user_guide_src/source/general/styleguide.rst @@ -346,7 +346,7 @@ Compatibility ============= CodeIgniter recommends PHP 5.6 or newer to be used, but it should be -compatible with PHP 5.3.7. Your code must either be compatible with this +compatible with PHP 5.4.8. Your code must either be compatible with this requirement, provide a suitable fallback, or be an optional feature that dies quietly without affecting a user's application. @@ -633,4 +633,4 @@ Whenever appropriate, provide function argument defaults, which helps prevent PHP errors with mistaken calls and provides common fallback values which can save a few lines of code. Example:: - function foo($bar = '', $baz = FALSE) \ No newline at end of file + function foo($bar = '', $baz = FALSE) diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 0cf311028..a2772e10c 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -13,7 +13,18 @@ Replace all files and directories in your *system/* directory. .. note:: If you have any custom developed files in these directories, please make copies of them first. -Step 2: Change database connection handling +Step 2: Check your PHP version +============================== + +We recommend always running versions that are `currently supported +`_, which right now is at least PHP 5.6. + +PHP 5.3.x versions are now officially not supported by CodeIgniter, and while 5.4.8+ +may be at least runnable, we strongly discourage you from using any PHP versions below +the ones listed on the `PHP.net Supported Versions `_ +page. + +Step 3: Change database connection handling =========================================== "Loading" a database, whether by using the *config/autoload.php* settings @@ -58,7 +69,7 @@ That doesn't make sense and that's the reason why most database drivers don't support it at all. Thus, ``db_set_charset()`` is no longer necessary and is removed. -Step 3: Check logic related to URI parsing of CLI requests +Step 4: Check logic related to URI parsing of CLI requests ========================================================== When running a CodeIgniter application from the CLI, the @@ -71,7 +82,7 @@ this change was made) and therefore you shouldn't be affected by this, but if you've relied on them for some reason, you'd probably have to make some changes to your code. -Step 4: Check Cache Library configurations for Redis, Memcache(d) +Step 5: Check Cache Library configurations for Redis, Memcache(d) ================================================================= The new improvements for the 'redis' and 'memcached' drivers of the @@ -98,7 +109,7 @@ value (previously, it just set the host to the default '127.0.0.1'). Therefore, if you've added a configuration that only sets e.g. a ``port``, you will now have to explicitly set the ``host`` to '127.0.0.1' as well. -Step 5: Check usage of the Email library +Step 6: Check usage of the Email library ======================================== The :doc:`Email Library <../libraries/email>` will now by default check the @@ -112,7 +123,7 @@ everything works fine. If something indeed goes wrong with that, please report it as a bug to us, and you can disable the **validate** option to revert to the old behavior. -Step 6: Check usage of doctype() HTML helper +Step 7: Check usage of doctype() HTML helper ============================================ The :doc:`HTML Helper <../helpers/html_helper>` function @@ -125,7 +136,7 @@ relies on the default value, you should double-check it and either explicitly set the desired format, or adapt your front-end to use proper HTML 5 formatting. -Step 6: Check usage of form_upload() Form helper +Step 8: Check usage of form_upload() Form helper ================================================ The :doc:`Form Helper <../helpers/form_helper>` function @@ -142,7 +153,7 @@ You should change it to:: form_upload('name', $extra); -Step 7: Remove usage of previously deprecated functionalities +Step 9: Remove usage of previously deprecated functionalities ============================================================= The following is a list of functionalities deprecated in previous @@ -177,8 +188,8 @@ CodeIgniter versions that have been removed in 3.2.0: - The entire *Smiley Helper* (an archived version is available on GitHub: `bcit-ci/ci3-smiley-helper `_) -Step 8: Make sure you're validating all user inputs -=================================================== +Step 10: Make sure you're validating all user inputs +==================================================== The :doc:`Input Library <../libraries/input>` used to (often unconditionally) filter and/or sanitize user input in the ``$_GET``, -- cgit v1.2.3-24-g4f1b From 24c866628d0ce5463d7e8b4eba512fa9e7752dfd Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 16:14:13 +0200 Subject: Drop all PHP 5.3-related code --- application/config/config.php | 14 - application/config/database.php | 2 +- index.php | 9 +- system/core/CodeIgniter.php | 51 ---- system/core/Common.php | 7 +- system/core/Loader.php | 15 +- system/core/Log.php | 3 - system/core/Output.php | 3 - system/core/Security.php | 32 +- system/core/compat/hash.php | 2 - system/core/compat/password.php | 2 +- system/core/compat/standard.php | 48 --- system/database/drivers/postgre/postgre_driver.php | 2 +- system/database/drivers/sqlite/index.html | 11 - system/database/drivers/sqlite/sqlite_driver.php | 330 --------------------- system/database/drivers/sqlite/sqlite_forge.php | 205 ------------- system/database/drivers/sqlite/sqlite_result.php | 164 ---------- system/database/drivers/sqlite/sqlite_utility.php | 61 ---- system/libraries/Email.php | 36 +-- system/libraries/Encryption.php | 7 +- system/libraries/Session/Session.php | 21 +- .../libraries/Session/SessionHandlerInterface.php | 59 ---- system/libraries/Upload.php | 2 +- system/libraries/Xmlrpc.php | 4 +- system/libraries/Zip.php | 3 - tests/codeigniter/core/compat/standard_test.php | 32 -- user_guide_src/source/changelog.rst | 4 +- .../source/general/compatibility_functions.rst | 9 - user_guide_src/source/general/requirements.rst | 2 +- user_guide_src/source/installation/upgrade_320.rst | 3 + 30 files changed, 28 insertions(+), 1115 deletions(-) delete mode 100644 system/database/drivers/sqlite/index.html delete mode 100644 system/database/drivers/sqlite/sqlite_driver.php delete mode 100644 system/database/drivers/sqlite/sqlite_forge.php delete mode 100644 system/database/drivers/sqlite/sqlite_result.php delete mode 100644 system/database/drivers/sqlite/sqlite_utility.php delete mode 100644 system/libraries/Session/SessionHandlerInterface.php diff --git a/application/config/config.php b/application/config/config.php index d37af34b7..c6e1a7af5 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -452,20 +452,6 @@ $config['compress_output'] = FALSE; */ $config['time_reference'] = 'local'; -/* -|-------------------------------------------------------------------------- -| Rewrite PHP Short Tags -|-------------------------------------------------------------------------- -| -| If your PHP installation does not have short tag support enabled CI -| can rewrite the tags on-the-fly, enabling you to utilize that syntax -| in your view files. Options are TRUE or FALSE (boolean) -| -| Note: You need to have eval() enabled for this to work. -| -*/ -$config['rewrite_short_tags'] = FALSE; - /* |-------------------------------------------------------------------------- | Reverse Proxy IPs diff --git a/application/config/database.php b/application/config/database.php index bf9857fff..b4d8a6a3e 100644 --- a/application/config/database.php +++ b/application/config/database.php @@ -22,7 +22,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | ['dbdriver'] The database driver. e.g.: mysqli. | Currently supported: | cubrid, ibase, mssql, mysql, mysqli, oci8, -| odbc, pdo, postgre, sqlite, sqlite3, sqlsrv +| odbc, pdo, postgre, sqlite3, sqlsrv | ['dbprefix'] You can add an optional prefix, which will be added | to the table name when using the Query Builder class | ['pconnect'] TRUE/FALSE - Whether to use a persistent connection diff --git a/index.php b/index.php index d02b6bb38..8015672f3 100755 --- a/index.php +++ b/index.php @@ -73,14 +73,7 @@ switch (ENVIRONMENT) case 'testing': case 'production': ini_set('display_errors', 0); - if (version_compare(PHP_VERSION, '5.3', '>=')) - { - error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED); - } - else - { - error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE); - } + error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT & ~E_USER_NOTICE & ~E_USER_DEPRECATED); break; default: diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 97cac90ad..dfc90af2a 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -79,57 +79,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); */ require_once(BASEPATH.'core/Common.php'); - -/* - * ------------------------------------------------------ - * Security procedures - * ------------------------------------------------------ - */ - -if ( ! is_php('5.4')) -{ - ini_set('magic_quotes_runtime', 0); - - if ((bool) ini_get('register_globals')) - { - $_protected = array( - '_SERVER', - '_GET', - '_POST', - '_FILES', - '_REQUEST', - '_SESSION', - '_ENV', - '_COOKIE', - 'GLOBALS', - 'HTTP_RAW_POST_DATA', - 'system_path', - 'application_folder', - 'view_folder', - '_protected', - '_registered' - ); - - $_registered = ini_get('variables_order'); - foreach (array('E' => '_ENV', 'G' => '_GET', 'P' => '_POST', 'C' => '_COOKIE', 'S' => '_SERVER') as $key => $superglobal) - { - if (strpos($_registered, $key) === FALSE) - { - continue; - } - - foreach (array_keys($$superglobal) as $var) - { - if (isset($GLOBALS[$var]) && ! in_array($var, $_protected, TRUE)) - { - $GLOBALS[$var] = NULL; - } - } - } - } -} - - /* * ------------------------------------------------------ * Define a custom error handler so we can log PHP errors diff --git a/system/core/Common.php b/system/core/Common.php index 91c585f7d..48eb233c2 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -81,8 +81,7 @@ if ( ! function_exists('is_really_writable')) * Tests for file writability * * is_writable() returns TRUE on Windows servers when you really can't write to - * the file, based on the read-only attribute. is_writable() is also unreliable - * on Unix servers if safe_mode is on. + * the file, based on the read-only attribute. * * @link https://bugs.php.net/bug.php?id=54709 * @param string @@ -90,8 +89,8 @@ if ( ! function_exists('is_really_writable')) */ function is_really_writable($file) { - // If we're on a Unix server with safe_mode off we call is_writable - if (DIRECTORY_SEPARATOR === '/' && (is_php('5.4') OR ! ini_get('safe_mode'))) + // If we're on a UNIX-like server, just is_writable() + if (DIRECTORY_SEPARATOR === '/') { return is_writable($file); } diff --git a/system/core/Loader.php b/system/core/Loader.php index 1111481b7..b52296499 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -954,7 +954,7 @@ class CI_Loader { } extract($this->_ci_cached_vars); - /* + /** * Buffer the output * * We buffer the output for two reasons: @@ -967,18 +967,7 @@ class CI_Loader { */ ob_start(); - // If the PHP installation does not support short tags we'll - // do a little string replacement, changing the short tags - // to standard PHP echo statements. - if ( ! is_php('5.4') && ! ini_get('short_open_tag') && config_item('rewrite_short_tags') === TRUE) - { - echo eval('?>'.preg_replace('/;*\s*\?>/', '; ?>', str_replace('= 0 ? self::strlen($str) - $start : -$start); return mb_substr($str, $start, $length, '8bit'); } diff --git a/system/core/Output.php b/system/core/Output.php index 94a6340e7..febccdaef 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -836,9 +836,6 @@ class CI_Output { { if (self::$func_override) { - // mb_substr($str, $start, null, '8bit') returns an empty - // string on PHP 5.3 - isset($length) OR $length = ($start >= 0 ? self::strlen($str) - $start : -$start); return mb_substr($str, $start, $length, '8bit'); } diff --git a/system/core/Security.php b/system/core/Security.php index d0308c5f9..a80b52fd1 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -626,7 +626,7 @@ class CI_Security { if (is_readable('/dev/urandom') && ($fp = fopen('/dev/urandom', 'rb')) !== FALSE) { // Try not to waste entropy ... - is_php('5.4') && stream_set_chunk_size($fp, $length); + stream_set_chunk_size($fp, $length); $output = fread($fp, $length); fclose($fp); if ($output !== FALSE) @@ -671,26 +671,8 @@ class CI_Security { static $_entities; - isset($charset) OR $charset = $this->charset; - $flag = is_php('5.4') - ? ENT_COMPAT | ENT_HTML5 - : ENT_COMPAT; - - if ( ! isset($_entities)) - { - $_entities = array_map('strtolower', get_html_translation_table(HTML_ENTITIES, $flag, $charset)); - - // If we're not on PHP 5.4+, add the possibly dangerous HTML 5 - // entities to the array manually - if ($flag === ENT_COMPAT) - { - $_entities[':'] = ':'; - $_entities['('] = '('; - $_entities[')'] = ')'; - $_entities["\n"] = ' '; - $_entities["\t"] = ' '; - } - } + isset($charset) OR $charset = $this->charset; + isset($_entities) OR $_entities = array_map('strtolower', get_html_translation_table(HTML_ENTITIES, ENT_COMPAT | ENT_HTML5, $charset)); do { @@ -715,14 +697,9 @@ class CI_Security { // Decode numeric & UTF16 two byte entities $str = html_entity_decode( preg_replace('/(&#(?:x0*[0-9a-f]{2,5}(?![0-9a-f;])|(?:0*\d{2,4}(?![0-9;]))))/iS', '$1;', $str), - $flag, + ENT_COMPAT | ENT_HTML5, $charset ); - - if ($flag === ENT_COMPAT) - { - $str = str_replace(array_values($_entities), array_keys($_entities), $str); - } } while ($str_compare !== $str); return $str; @@ -1074,5 +1051,4 @@ class CI_Security { return $this->_csrf_hash; } - } diff --git a/system/core/compat/hash.php b/system/core/compat/hash.php index d567d0f80..5fec4cc67 100644 --- a/system/core/compat/hash.php +++ b/system/core/compat/hash.php @@ -203,8 +203,6 @@ if ( ! function_exists('hash_pbkdf2')) 'ripemd160' => 64, 'ripemd256' => 64, 'ripemd320' => 64, - 'salsa10' => 64, - 'salsa20' => 64, 'sha1' => 64, 'sha224' => 64, 'sha256' => 64, diff --git a/system/core/compat/password.php b/system/core/compat/password.php index 1b5219e7b..e58422557 100644 --- a/system/core/compat/password.php +++ b/system/core/compat/password.php @@ -141,7 +141,7 @@ if ( ! function_exists('password_hash')) } // Try not to waste entropy ... - is_php('5.4') && stream_set_chunk_size($fp, 16); + stream_set_chunk_size($fp, 16); $options['salt'] = ''; for ($read = 0; $read < 16; $read = ($func_override) ? mb_strlen($options['salt'], '8bit') : strlen($options['salt'])) diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php index 6b7caa485..ca5046e56 100644 --- a/system/core/compat/standard.php +++ b/system/core/compat/standard.php @@ -132,51 +132,3 @@ if ( ! function_exists('array_column')) return $result; } } - -// ------------------------------------------------------------------------ - -if (is_php('5.4')) -{ - return; -} - -// ------------------------------------------------------------------------ - -if ( ! function_exists('hex2bin')) -{ - /** - * hex2bin() - * - * @link http://php.net/hex2bin - * @param string $data - * @return string - */ - function hex2bin($data) - { - if (in_array($type = gettype($data), array('array', 'double', 'object', 'resource'), TRUE)) - { - if ($type === 'object' && method_exists($data, '__toString')) - { - $data = (string) $data; - } - else - { - trigger_error('hex2bin() expects parameter 1 to be string, '.$type.' given', E_USER_WARNING); - return NULL; - } - } - - if (strlen($data) % 2 !== 0) - { - trigger_error('Hexadecimal input string must have an even length', E_USER_WARNING); - return FALSE; - } - elseif ( ! preg_match('/^[0-9a-f]*$/i', $data)) - { - trigger_error('Input string must be hexadecimal string', E_USER_WARNING); - return FALSE; - } - - return pack('H*', $data); - } -} diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php index 5cc6a421c..9f794a12e 100644 --- a/system/database/drivers/postgre/postgre_driver.php +++ b/system/database/drivers/postgre/postgre_driver.php @@ -315,7 +315,7 @@ class CI_DB_postgre_driver extends CI_DB { */ public function escape($str) { - if (is_php('5.4.4') && (is_string($str) OR (is_object($str) && method_exists($str, '__toString')))) + if (is_string($str) OR (is_object($str) && method_exists($str, '__toString'))) { return pg_escape_literal($this->conn_id, $str); } diff --git a/system/database/drivers/sqlite/index.html b/system/database/drivers/sqlite/index.html deleted file mode 100644 index b702fbc39..000000000 --- a/system/database/drivers/sqlite/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - 403 Forbidden - - - -

      Directory access is forbidden.

      - - - diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php deleted file mode 100644 index 16b8c29c3..000000000 --- a/system/database/drivers/sqlite/sqlite_driver.php +++ /dev/null @@ -1,330 +0,0 @@ -database, 0666, $error) - : sqlite_open($this->database, 0666, $error); - - isset($error) && log_message('error', $error); - - return $conn_id; - } - - // -------------------------------------------------------------------- - - /** - * Database version number - * - * @return string - */ - public function version() - { - return isset($this->data_cache['version']) - ? $this->data_cache['version'] - : $this->data_cache['version'] = sqlite_libversion(); - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @param string $sql an SQL query - * @return resource - */ - protected function _execute($sql) - { - return $this->is_write_type($sql) - ? sqlite_exec($this->conn_id, $sql) - : sqlite_query($this->conn_id, $sql); - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @return bool - */ - protected function _trans_begin() - { - return $this->simple_query('BEGIN TRANSACTION'); - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @return bool - */ - protected function _trans_commit() - { - return $this->simple_query('COMMIT'); - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @return bool - */ - protected function _trans_rollback() - { - return $this->simple_query('ROLLBACK'); - } - - // -------------------------------------------------------------------- - - /** - * Platform-dependant string escape - * - * @param string - * @return string - */ - protected function _escape_str($str) - { - return sqlite_escape_string($str); - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @return int - */ - public function affected_rows() - { - return sqlite_changes($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * @return int - */ - public function insert_id() - { - return sqlite_last_insert_rowid($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * List table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @param bool $prefix_limit - * @return string - */ - protected function _list_tables($prefix_limit = FALSE) - { - $sql = "SELECT name FROM sqlite_master WHERE type='table'"; - - if ($prefix_limit !== FALSE && $this->dbprefix != '') - { - return $sql." AND 'name' LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Show column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @param string $table - * @return bool - */ - protected function _list_columns($table = '') - { - // Not supported - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Returns an object with field data - * - * @param string $table - * @return array - */ - public function field_data($table) - { - if (($query = $this->query('PRAGMA TABLE_INFO('.$this->protect_identifiers($table, TRUE, NULL, FALSE).')')) === FALSE) - { - return FALSE; - } - - $query = $query->result_array(); - if (empty($query)) - { - return FALSE; - } - - $retval = array(); - for ($i = 0, $c = count($query); $i < $c; $i++) - { - $retval[$i] = new stdClass(); - $retval[$i]->name = $query[$i]['name']; - $retval[$i]->type = $query[$i]['type']; - $retval[$i]->max_length = NULL; - $retval[$i]->default = $query[$i]['dflt_value']; - $retval[$i]->primary_key = isset($query[$i]['pk']) ? (int) $query[$i]['pk'] : 0; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Error - * - * Returns an array containing code and message of the last - * database error that has occured. - * - * @return array - */ - public function error() - { - $error = array('code' => sqlite_last_error($this->conn_id)); - $error['message'] = sqlite_error_string($error['code']); - return $error; - } - - // -------------------------------------------------------------------- - - /** - * Replace statement - * - * Generates a platform-specific replace string from the supplied data - * - * @param string $table Table name - * @param array $keys INSERT keys - * @param array $values INSERT values - * @return string - */ - protected function _replace($table, $keys, $values) - { - return 'INSERT OR '.parent::_replace($table, $keys, $values); - } - - // -------------------------------------------------------------------- - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * - * If the database does not support the TRUNCATE statement, - * then this function maps to 'DELETE FROM table' - * - * @param string $table - * @return string - */ - protected function _truncate($table) - { - return 'DELETE FROM '.$table; - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @return void - */ - protected function _close() - { - sqlite_close($this->conn_id); - } - -} diff --git a/system/database/drivers/sqlite/sqlite_forge.php b/system/database/drivers/sqlite/sqlite_forge.php deleted file mode 100644 index 3ad3477e4..000000000 --- a/system/database/drivers/sqlite/sqlite_forge.php +++ /dev/null @@ -1,205 +0,0 @@ -db->database) OR ! @unlink($this->db->database)) - { - return ($this->db->db_debug) ? $this->db->display_error('db_unable_to_drop') : FALSE; - } - elseif ( ! empty($this->db->data_cache['db_names'])) - { - $key = array_search(strtolower($this->db->database), array_map('strtolower', $this->db->data_cache['db_names']), TRUE); - if ($key !== FALSE) - { - unset($this->db->data_cache['db_names'][$key]); - } - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * ALTER TABLE - * - * @todo implement drop_column(), modify_column() - * @param string $alter_type ALTER type - * @param string $table Table name - * @param mixed $field Column definition - * @return string|string[] - */ - protected function _alter_table($alter_type, $table, $field) - { - if ($alter_type === 'DROP' OR $alter_type === 'CHANGE') - { - // drop_column(): - // BEGIN TRANSACTION; - // CREATE TEMPORARY TABLE t1_backup(a,b); - // INSERT INTO t1_backup SELECT a,b FROM t1; - // DROP TABLE t1; - // CREATE TABLE t1(a,b); - // INSERT INTO t1 SELECT a,b FROM t1_backup; - // DROP TABLE t1_backup; - // COMMIT; - - return FALSE; - } - - return parent::_alter_table($alter_type, $table, $field); - } - - // -------------------------------------------------------------------- - - /** - * Process column - * - * @param array $field - * @return string - */ - protected function _process_column($field) - { - return $this->db->escape_identifiers($field['name']) - .' '.$field['type'] - .$field['auto_increment'] - .$field['null'] - .$field['unique'] - .$field['default']; - } - - // -------------------------------------------------------------------- - - /** - * Field attribute TYPE - * - * Performs a data type mapping between different databases. - * - * @param array &$attributes - * @return void - */ - protected function _attr_type(&$attributes) - { - switch (strtoupper($attributes['TYPE'])) - { - case 'ENUM': - case 'SET': - $attributes['TYPE'] = 'TEXT'; - return; - default: return; - } - } - - // -------------------------------------------------------------------- - - /** - * Field attribute AUTO_INCREMENT - * - * @param array &$attributes - * @param array &$field - * @return void - */ - protected function _attr_auto_increment(&$attributes, &$field) - { - if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) - { - $field['type'] = 'INTEGER PRIMARY KEY'; - $field['default'] = ''; - $field['null'] = ''; - $field['unique'] = ''; - $field['auto_increment'] = ' AUTOINCREMENT'; - - $this->primary_keys = array(); - } - } - -} diff --git a/system/database/drivers/sqlite/sqlite_result.php b/system/database/drivers/sqlite/sqlite_result.php deleted file mode 100644 index d40b98aab..000000000 --- a/system/database/drivers/sqlite/sqlite_result.php +++ /dev/null @@ -1,164 +0,0 @@ -num_rows) - ? $this->num_rows - : $this->num_rows = @sqlite_num_rows($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @return int - */ - public function num_fields() - { - return @sqlite_num_fields($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @return array - */ - public function list_fields() - { - $field_names = array(); - for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) - { - $field_names[$i] = sqlite_field_name($this->result_id, $i); - } - - return $field_names; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @return array - */ - public function field_data() - { - $retval = array(); - for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) - { - $retval[$i] = new stdClass(); - $retval[$i]->name = sqlite_field_name($this->result_id, $i); - $retval[$i]->type = NULL; - $retval[$i]->max_length = NULL; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero. - * - * @param int $n - * @return bool - */ - public function data_seek($n = 0) - { - return sqlite_seek($this->result_id, $n); - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @return array - */ - protected function _fetch_assoc() - { - return sqlite_fetch_array($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @param string $class_name - * @return object - */ - protected function _fetch_object($class_name = 'stdClass') - { - return sqlite_fetch_object($this->result_id, $class_name); - } - -} diff --git a/system/database/drivers/sqlite/sqlite_utility.php b/system/database/drivers/sqlite/sqlite_utility.php deleted file mode 100644 index 59c46f9ef..000000000 --- a/system/database/drivers/sqlite/sqlite_utility.php +++ /dev/null @@ -1,61 +0,0 @@ -db->display_error('db_unsupported_feature'); - } - -} diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 90a68f129..1191e2350 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -225,13 +225,6 @@ class CI_Email { // -------------------------------------------------------------------- - /** - * Whether PHP is running in safe mode. Initialized by the class constructor. - * - * @var bool - */ - protected $_safe_mode = FALSE; - /** * Subject header * @@ -395,7 +388,6 @@ class CI_Email { { $this->charset = config_item('charset'); $this->initialize($config); - $this->_safe_mode = ( ! is_php('5.4') && ini_get('safe_mode')); isset(self::$func_override) OR self::$func_override = (extension_loaded('mbstring') && ini_get('mbstring.func_override')); @@ -676,18 +668,6 @@ class CI_Email { public function message($body) { $this->_body = rtrim(str_replace("\r", '', $body)); - - /* strip slashes only if magic quotes is ON - if we do it with magic quotes OFF, it strips real, user-inputted chars. - - NOTE: In PHP 5.4 get_magic_quotes_gpc() will always return 0 and - it will probably not exist in future versions at all. - */ - if ( ! is_php('5.4') && get_magic_quotes_gpc()) - { - $this->_body = stripslashes($this->_body); - } - return $this; } @@ -1854,16 +1834,9 @@ class CI_Email { $this->_recipients = implode(', ', $this->_recipients); } - if ($this->_safe_mode === TRUE) - { - return mail($this->_recipients, $this->_subject, $this->_finalbody, $this->_header_str); - } - else - { - // most documentation of sendmail using the "-f" flag lacks a space after it, however - // we've encountered servers that seem to require it to be in place. - return mail($this->_recipients, $this->_subject, $this->_finalbody, $this->_header_str, '-f '.$this->clean_email($this->_headers['Return-Path'])); - } + // most documentation of sendmail using the "-f" flag lacks a space after it, however + // we've encountered servers that seem to require it to be in place. + return mail($this->_recipients, $this->_subject, $this->_finalbody, $this->_header_str, '-f '.$this->clean_email($this->_headers['Return-Path'])); } // -------------------------------------------------------------------- @@ -2421,9 +2394,6 @@ class CI_Email { { if (self::$func_override) { - // mb_substr($str, $start, null, '8bit') returns an empty - // string on PHP 5.3 - isset($length) OR $length = ($start >= 0 ? self::strlen($str) - $start : -$start); return mb_substr($str, $start, $length, '8bit'); } diff --git a/system/libraries/Encryption.php b/system/libraries/Encryption.php index 545081b3b..c68ee2584 100644 --- a/system/libraries/Encryption.php +++ b/system/libraries/Encryption.php @@ -482,7 +482,7 @@ class CI_Encryption { $data, $params['handle'], $params['key'], - 1, // DO NOT TOUCH! + OPENSSL_RAW_DATA, $iv ); @@ -641,7 +641,7 @@ class CI_Encryption { $data, $params['handle'], $params['key'], - 1, // DO NOT TOUCH! + OPENSSL_RAW_DATA, $iv ); } @@ -930,9 +930,6 @@ class CI_Encryption { { if (self::$func_override) { - // mb_substr($str, $start, null, '8bit') returns an empty - // string on PHP 5.3 - isset($length) OR $length = ($start >= 0 ? self::strlen($str) - $start : -$start); return mb_substr($str, $start, $length, '8bit'); } diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index 01989d2d7..9d3bd7a2f 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -105,23 +105,7 @@ class CI_Session { $class = new $class($this->_config); if ($class instanceof SessionHandlerInterface) { - if (is_php('5.4')) - { - session_set_save_handler($class, TRUE); - } - else - { - session_set_save_handler( - array($class, 'open'), - array($class, 'close'), - array($class, 'read'), - array($class, 'write'), - array($class, 'destroy'), - array($class, 'gc') - ); - - register_shutdown_function('session_write_close'); - } + session_set_save_handler($class, TRUE); } else { @@ -190,9 +174,6 @@ class CI_Session { */ protected function _ci_load_classes($driver) { - // PHP 5.4 compatibility - interface_exists('SessionHandlerInterface', FALSE) OR require_once(BASEPATH.'libraries/Session/SessionHandlerInterface.php'); - $prefix = config_item('subclass_prefix'); if ( ! class_exists('CI_Session_driver', FALSE)) diff --git a/system/libraries/Session/SessionHandlerInterface.php b/system/libraries/Session/SessionHandlerInterface.php deleted file mode 100644 index b3533dd1e..000000000 --- a/system/libraries/Session/SessionHandlerInterface.php +++ /dev/null @@ -1,59 +0,0 @@ - 0) diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 7186646da..87f609e8d 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -836,9 +836,7 @@ class XML_RPC_Response { // error $this->errno = $code; - $this->errstr = htmlspecialchars($fstr, - (is_php('5.4') ? ENT_XML1 | ENT_NOQUOTES : ENT_NOQUOTES), - 'UTF-8'); + $this->errstr = htmlspecialchars($fstr, ENT_XML1 | ENT_NOQUOTES, 'UTF-8'); } elseif ( ! is_object($val)) { diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php index 25315c92e..82a43e9c9 100644 --- a/system/libraries/Zip.php +++ b/system/libraries/Zip.php @@ -519,9 +519,6 @@ class CI_Zip { { if (self::$func_override) { - // mb_substr($str, $start, null, '8bit') returns an empty - // string on PHP 5.3 - isset($length) OR $length = ($start >= 0 ? self::strlen($str) - $start : -$start); return mb_substr($str, $start, $length, '8bit'); } diff --git a/tests/codeigniter/core/compat/standard_test.php b/tests/codeigniter/core/compat/standard_test.php index a98460129..54424bb9b 100644 --- a/tests/codeigniter/core/compat/standard_test.php +++ b/tests/codeigniter/core/compat/standard_test.php @@ -10,11 +10,6 @@ class standard_test extends CI_TestCase { } $this->assertTrue(function_exists('array_column')); - - if ( ! is_php('5.4')) - { - $this->assertTrue(function_exists('hex2bin')); - } } // ------------------------------------------------------------------------ @@ -330,25 +325,6 @@ class standard_test extends CI_TestCase { array_column($input, 'b', 'a') ); } - - // ------------------------------------------------------------------------ - - /** - * hex2bin() tests - * - * @depends test_bootstrap - */ - public function test_hex2bin() - { - if (is_php('5.4')) - { - return $this->markTestSkipped('hex2bin() is already available on PHP 5.4'); - } - - $this->assertEquals("\x03\x04", hex2bin("0304")); - $this->assertEquals('', hex2bin('')); - $this->assertEquals("\x01\x02\x03", hex2bin(new FooHex())); - } } // ------------------------------------------------------------------------ @@ -368,11 +344,3 @@ class Bar { return 'first_name'; } } - -class FooHex { - - public function __toString() - { - return '010203'; - } -} diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 84ed718cd..74fb15798 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -13,6 +13,7 @@ Release Date: Not Released - Core + - Removed ``$config['rewrite_short_tags']`` (irrelevant on PHP 5.4+). - Removed previously deprecated ``$config['global_xss_filtering']``. - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). @@ -53,9 +54,10 @@ Release Date: Not Released - :doc:`Database ` changes include: + - Removed previously deprecated 'sqlite' driver (used for SQLite version 2; no longer shipped with PHP 5.4+). + - Removed method ``db_set_charset()`` and the ability to change a connection character set at runtime. - Changed method ``initialize()`` to return void and instead throw a ``RuntimeException`` in case of failure. - Changed method ``db_connect()`` to always set the connection character set (if supported by the driver) and to fail if it can't. - - Removed method ``db_set_charset()`` and the ability to change a connection character set at runtime. - :doc:`Database Forge `: diff --git a/user_guide_src/source/general/compatibility_functions.rst b/user_guide_src/source/general/compatibility_functions.rst index 71559d0be..522e43f60 100644 --- a/user_guide_src/source/general/compatibility_functions.rst +++ b/user_guide_src/source/general/compatibility_functions.rst @@ -220,12 +220,3 @@ Function reference For more information, please refer to the `PHP manual for array_column() `_. - -.. php:function:: hex2bin($data) - - :param array $data: Hexadecimal representation of data - :returns: Binary representation of the given data - :rtype: string - - For more information, please refer to the `PHP manual for hex2bin() - `_. diff --git a/user_guide_src/source/general/requirements.rst b/user_guide_src/source/general/requirements.rst index 2e24d6d03..982a6014f 100644 --- a/user_guide_src/source/general/requirements.rst +++ b/user_guide_src/source/general/requirements.rst @@ -15,7 +15,7 @@ Currently supported databases are: - Oracle via the *oci8* and *pdo* drivers - PostgreSQL via the *postgre* and *pdo* drivers - MS SQL via the *mssql*, *sqlsrv* (version 2005 and above only) and *pdo* drivers - - SQLite via the *sqlite* (version 2), *sqlite3* (version 3) and *pdo* drivers + - SQLite via the *sqlite3* and *pdo* drivers - CUBRID via the *cubrid* and *pdo* drivers - Interbase/Firebird via the *ibase* and *pdo* drivers - ODBC via the *odbc* and *pdo* drivers (you should know that ODBC is actually an abstraction layer) diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index a2772e10c..95d9aab4d 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -161,6 +161,9 @@ CodeIgniter versions that have been removed in 3.2.0: - ``$config['allow_get_array']`` (use ``$_GET = array();`` instead) - ``$config['standardize_newlines']`` +- ``$config['rewrite_short_tags']`` (no impact; irrelevant on PHP 5.4+) + +- 'sqlite' database driver (no longer shipped with PHP 5.4+; 'sqlite3' is still available) - ``CI_Input::is_cli_request()`` (use :php:func:`is_cli()` instead) - ``CI_Router::fetch_directory()`` (use ``CI_Router::$directory`` instead) -- cgit v1.2.3-24-g4f1b From dcd6f5153b7e7e6d798d5a77af65b7460f152e5c Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Dec 2016 18:14:35 +0200 Subject: Isolate CI_Security instantiation from CI_Input; improve tests --- system/core/CodeIgniter.php | 4 +- system/core/Input.php | 7 ++- system/core/Utf8.php | 10 ++-- tests/codeigniter/core/Input_test.php | 4 +- tests/codeigniter/core/URI_test.php | 9 ++++ tests/codeigniter/core/Utf8_test.php | 53 +++++++++++----------- tests/codeigniter/helpers/cookie_helper_test.php | 5 +- tests/codeigniter/helpers/text_helper_test.php | 23 ++++++---- tests/codeigniter/helpers/url_helper_test.php | 12 ++++- .../codeigniter/libraries/Form_validation_test.php | 4 +- tests/mocks/ci_testcase.php | 4 +- tests/mocks/core/input.php | 8 ++-- tests/mocks/core/utf8.php | 19 -------- 13 files changed, 79 insertions(+), 83 deletions(-) delete mode 100644 tests/mocks/core/utf8.php diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index dfc90af2a..410b9613b 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -243,7 +243,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * Instantiate the UTF-8 class * ------------------------------------------------------ */ - $UNI =& load_class('Utf8', 'core'); + $UNI =& load_class('Utf8', 'core', $charset); /* * ------------------------------------------------------ @@ -288,7 +288,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * Load the Input class and sanitize globals * ------------------------------------------------------ */ - $IN =& load_class('Input', 'core'); + $IN =& load_class('Input', 'core', $SEC); /* * ------------------------------------------------------ diff --git a/system/core/Input.php b/system/core/Input.php index aefc3b7d8..d881e253d 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -113,11 +113,10 @@ class CI_Input { * * @return void */ - public function __construct() + public function __construct(CI_Security &$security) { - $this->_enable_csrf = (config_item('csrf_protection') === TRUE); - - $this->security =& load_class('Security', 'core'); + $this->_enable_csrf = (config_item('csrf_protection') === TRUE); + $this->security = $security; // CSRF Protection check if ($this->_enable_csrf === TRUE && ! is_cli()) diff --git a/system/core/Utf8.php b/system/core/Utf8.php index 93c611675..042ca4316 100644 --- a/system/core/Utf8.php +++ b/system/core/Utf8.php @@ -57,13 +57,13 @@ class CI_Utf8 { * * @return void */ - public function __construct() + public function __construct($charset) { if ( - defined('PREG_BAD_UTF8_ERROR') // PCRE must support UTF-8 - && (ICONV_ENABLED === TRUE OR MB_ENABLED === TRUE) // iconv or mbstring must be installed - && strtoupper(config_item('charset')) === 'UTF-8' // Application charset must be UTF-8 - ) + defined('PREG_BAD_UTF8_ERROR') // PCRE must support UTF-8 + && (ICONV_ENABLED === TRUE OR MB_ENABLED === TRUE) // iconv or mbstring must be installed + && $charset === 'UTF-8' // Application charset must be UTF-8 + ) { define('UTF8_ENABLED', TRUE); log_message('info', 'UTF-8 Support Enabled'); diff --git a/tests/codeigniter/core/Input_test.php b/tests/codeigniter/core/Input_test.php index e1f4011b5..78b659691 100644 --- a/tests/codeigniter/core/Input_test.php +++ b/tests/codeigniter/core/Input_test.php @@ -15,9 +15,7 @@ class Input_test extends CI_TestCase { $security = new Mock_Core_Security(); $this->ci_set_config('charset', 'UTF-8'); - $utf8 = new Mock_Core_Utf8(); - - $this->input = new Mock_Core_Input($security, $utf8); + $this->input = new Mock_Core_Input($security); } // -------------------------------------------------------------------- diff --git a/tests/codeigniter/core/URI_test.php b/tests/codeigniter/core/URI_test.php index 42dff3639..f862c666e 100644 --- a/tests/codeigniter/core/URI_test.php +++ b/tests/codeigniter/core/URI_test.php @@ -119,8 +119,13 @@ class URI_test extends CI_TestCase { */ // -------------------------------------------------------------------- + /** + * @runInSeparateProcess + */ public function test_filter_uri_passing() { + define('UTF8_ENABLED', FALSE); + $this->uri->_set_permitted_uri_chars('a-z 0-9~%.:_\-'); $str = 'abc01239~%.:_-'; @@ -129,8 +134,12 @@ class URI_test extends CI_TestCase { // -------------------------------------------------------------------- + /** + * @runInSeparateProcess + */ public function test_filter_uri_throws_error() { + define('UTF8_ENABLED', FALSE); $this->setExpectedException('RuntimeException'); $this->uri->config->set_item('enable_query_strings', FALSE); diff --git a/tests/codeigniter/core/Utf8_test.php b/tests/codeigniter/core/Utf8_test.php index 7e6ffd930..f40bb9848 100644 --- a/tests/codeigniter/core/Utf8_test.php +++ b/tests/codeigniter/core/Utf8_test.php @@ -1,31 +1,27 @@ ci_set_config('charset', 'UTF-8'); - $this->utf8 = new Mock_Core_Utf8(); - $this->ci_instance_var('utf8', $this->utf8); + if ( ! defined('PREG_BAD_UTF8_ERROR') OR (ICONV_ENABLED === FALSE && MB_ENABLED === FALSE)) + { + return $this->markTestSkipped('PCRE_UTF8 and/or both ext/mbstring & ext/iconv are unavailable'); + } + + new CI_Utf8('UTF-8'); + $this->assertTrue(UTF8_ENABLED); } // -------------------------------------------------------------------- - /** - * __construct() test - * - * @covers CI_Utf8::__construct - */ - public function test___construct() + public function test__constructUTF8_DISABLED() { - if (defined('PREG_BAD_UTF8_ERROR') && (ICONV_ENABLED === TRUE OR MB_ENABLED === TRUE) && strtoupper(config_item('charset')) === 'UTF-8') - { - $this->assertTrue(UTF8_ENABLED); - } - else - { - $this->assertFalse(UTF8_ENABLED); - } + new CI_Utf8('WINDOWS-1251'); + $this->assertFalse(UTF8_ENABLED); } // -------------------------------------------------------------------- @@ -37,8 +33,9 @@ class Utf8_test extends CI_TestCase { */ public function test_is_ascii() { - $this->assertTrue($this->utf8->is_ascii('foo bar')); - $this->assertFalse($this->utf8->is_ascii('тест')); + $utf8 = new CI_Utf8('UTF-8'); + $this->assertTrue($utf8->is_ascii('foo bar')); + $this->assertFalse($utf8->is_ascii('тест')); } // -------------------------------------------------------------------- @@ -51,21 +48,22 @@ class Utf8_test extends CI_TestCase { */ public function test_clean_string() { - $this->assertEquals('foo bar', $this->utf8->clean_string('foo bar')); + $utf8 = new CI_Utf8('UTF-8'); + $this->assertEquals('foo bar', $utf8->clean_string('foo bar')); $illegal_utf8 = "\xc0тест"; if (MB_ENABLED) { - $this->assertEquals('тест', $this->utf8->clean_string($illegal_utf8)); + $this->assertEquals('тест', $utf8->clean_string($illegal_utf8)); } elseif (ICONV_ENABLED) { // This is a known issue, iconv doesn't always work with //IGNORE - $this->assertTrue(in_array($this->utf8->clean_string($illegal_utf8), array('тест', ''), TRUE)); + $this->assertTrue(in_array($utf8->clean_string($illegal_utf8), array('тест', ''), TRUE)); } else { - $this->assertEquals($illegal_utf8, $this->utf8->clean_string($illegal_utf8)); + $this->assertEquals($illegal_utf8, $utf8->clean_string($illegal_utf8)); } } @@ -78,14 +76,15 @@ class Utf8_test extends CI_TestCase { */ public function test_convert_to_utf8() { + $utf8 = new CI_Utf8('UTF-8'); if (MB_ENABLED OR ICONV_ENABLED) { - $this->assertEquals('тест', $this->utf8->convert_to_utf8('', 'WINDOWS-1251')); + $this->assertEquals('тест', $utf8->convert_to_utf8('', 'WINDOWS-1251')); } else { - $this->assertFalse($this->utf8->convert_to_utf8('', 'WINDOWS-1251')); + $this->assertFalse($utf8->convert_to_utf8('', 'WINDOWS-1251')); } } -} \ No newline at end of file +} diff --git a/tests/codeigniter/helpers/cookie_helper_test.php b/tests/codeigniter/helpers/cookie_helper_test.php index fba68f20f..1fbb57f67 100644 --- a/tests/codeigniter/helpers/cookie_helper_test.php +++ b/tests/codeigniter/helpers/cookie_helper_test.php @@ -29,9 +29,8 @@ class Cookie_helper_test extends CI_TestCase { $_COOKIE['foo'] = 'bar'; $security = new Mock_Core_Security(); - $utf8 = new Mock_Core_Utf8(); $input_cls = $this->ci_core_class('input'); - $this->ci_instance_var('input', new Mock_Core_Input($security, $utf8)); + $this->ci_instance_var('input', new Mock_Core_Input($security)); $this->assertEquals('bar', get_cookie('foo', FALSE)); $this->assertEquals('bar', get_cookie('foo', TRUE)); @@ -56,4 +55,4 @@ class Cookie_helper_test extends CI_TestCase { $this->markTestSkipped('Need to find a way to overcome a headers already set exception'); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/helpers/text_helper_test.php b/tests/codeigniter/helpers/text_helper_test.php index 7a7dc0a12..36465f203 100644 --- a/tests/codeigniter/helpers/text_helper_test.php +++ b/tests/codeigniter/helpers/text_helper_test.php @@ -2,21 +2,19 @@ class Text_helper_test extends CI_TestCase { - private $_long_string; - public function set_up() { $this->helper('text'); - - $this->_long_string = 'Once upon a time, a framework had no tests. It sad. So some nice people began to write tests. The more time that went on, the happier it became. Everyone was happy.'; } // ------------------------------------------------------------------------ public function test_word_limiter() { - $this->assertEquals('Once upon a time,…', word_limiter($this->_long_string, 4)); - $this->assertEquals('Once upon a time,…', word_limiter($this->_long_string, 4, '…')); + $long_string = 'Once upon a time, a framework had no tests. It sad. So some nice people began to write tests. The more time that went on, the happier it became. Everyone was happy.'; + + $this->assertEquals('Once upon a time,…', word_limiter($long_string, 4)); + $this->assertEquals('Once upon a time,…', word_limiter($long_string, 4, '…')); $this->assertEquals('', word_limiter('', 4)); } @@ -24,8 +22,10 @@ class Text_helper_test extends CI_TestCase { public function test_character_limiter() { - $this->assertEquals('Once upon a time, a…', character_limiter($this->_long_string, 20)); - $this->assertEquals('Once upon a time, a…', character_limiter($this->_long_string, 20, '…')); + $long_string = 'Once upon a time, a framework had no tests. It sad. So some nice people began to write tests. The more time that went on, the happier it became. Everyone was happy.'; + + $this->assertEquals('Once upon a time, a…', character_limiter($long_string, 20)); + $this->assertEquals('Once upon a time, a…', character_limiter($long_string, 20, '…')); $this->assertEquals('Short', character_limiter('Short', 20)); $this->assertEquals('Short', character_limiter('Short', 5)); } @@ -103,8 +103,13 @@ class Text_helper_test extends CI_TestCase { // ------------------------------------------------------------------------ + /** + * @runInSeparateProcess + */ public function test_highlight_phrase() { + define('UTF8_ENABLED', FALSE); + $strs = array( 'this is a phrase' => 'this is a phrase', 'this is another' => 'this is another', @@ -171,4 +176,4 @@ class Text_helper_test extends CI_TestCase { $this->assertEquals(strpos(word_wrap($string), "\n"), 73); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/helpers/url_helper_test.php b/tests/codeigniter/helpers/url_helper_test.php index 24823a634..c5b0f80b7 100644 --- a/tests/codeigniter/helpers/url_helper_test.php +++ b/tests/codeigniter/helpers/url_helper_test.php @@ -7,8 +7,13 @@ class Url_helper_test extends CI_TestCase { $this->helper('url'); } + /** + * @runInSeparateProcess + */ public function test_url_title() { + define('UTF8_ENABLED', FALSE); + $words = array( 'foo bar /' => 'foo-bar', '\ testing 12' => 'testing-12' @@ -22,8 +27,13 @@ class Url_helper_test extends CI_TestCase { // -------------------------------------------------------------------- + /** + * @runInSeparateProcess + */ public function test_url_title_extra_dashes() { + define('UTF8_ENABLED', FALSE); + $words = array( '_foo bar_' => 'foo_bar', '_What\'s wrong with CSS?_' => 'Whats_wrong_with_CSS' @@ -76,4 +86,4 @@ class Url_helper_test extends CI_TestCase { } } -} \ No newline at end of file +} diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index 4be080f90..5b7830dd8 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -13,10 +13,8 @@ class Form_validation_test extends CI_TestCase { // Same applies for lang $lang = $this->getMockBuilder('CI_Lang')->setMethods(array('load'))->getMock(); - $this->ci_set_config('charset', 'UTF-8'); - $utf8 = new Mock_Core_Utf8(); $security = new Mock_Core_Security(); - $input = new Mock_Core_Input($security, $utf8); + $input = new Mock_Core_Input($security); $this->ci_instance_var('lang', $lang); $this->ci_instance_var('load', $loader); diff --git a/tests/mocks/ci_testcase.php b/tests/mocks/ci_testcase.php index a2c37b92e..b320aab74 100644 --- a/tests/mocks/ci_testcase.php +++ b/tests/mocks/ci_testcase.php @@ -24,9 +24,9 @@ class CI_TestCase extends PHPUnit_Framework_TestCase { // -------------------------------------------------------------------- - public function __construct() + public function __construct($name = null, array $data = [], $dataName = '') { - parent::__construct(); + parent::__construct($name, $data, $dataName); $this->ci_instance = new stdClass(); } diff --git a/tests/mocks/core/input.php b/tests/mocks/core/input.php index 4d217a252..6f6a91365 100644 --- a/tests/mocks/core/input.php +++ b/tests/mocks/core/input.php @@ -9,12 +9,10 @@ class Mock_Core_Input extends CI_Input { * * @covers CI_Input::__construct() */ - public function __construct($security, $utf8) + public function __construct($security) { - $this->_enable_csrf = (config_item('csrf_protection') === TRUE); - - // Assign Security and Utf8 classes - $this->security = $security; + $this->_enable_csrf = (config_item('csrf_protection') === TRUE); + $this->security = $security; } public function fetch_from_array($array, $index = '', $xss_clean = FALSE) diff --git a/tests/mocks/core/utf8.php b/tests/mocks/core/utf8.php deleted file mode 100644 index 3a6282e1d..000000000 --- a/tests/mocks/core/utf8.php +++ /dev/null @@ -1,19 +0,0 @@ - Date: Wed, 14 Dec 2016 18:41:52 +0200 Subject: Move csrf_verify() call out of CI_Input --- system/core/CodeIgniter.php | 2 +- system/core/Input.php | 20 +---------- system/core/Security.php | 9 ++--- tests/codeigniter/core/Input_test.php | 40 ++++++++++++---------- tests/codeigniter/core/Security_test.php | 5 +-- tests/codeigniter/helpers/cookie_helper_test.php | 4 +-- tests/codeigniter/helpers/security_helper_test.php | 2 +- .../codeigniter/libraries/Form_validation_test.php | 4 +-- tests/codeigniter/libraries/Session_test.php | 5 +-- tests/codeigniter/libraries/Upload_test.php | 2 +- tests/mocks/core/input.php | 30 ---------------- 11 files changed, 41 insertions(+), 82 deletions(-) delete mode 100644 tests/mocks/core/input.php diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 410b9613b..977d1427d 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -281,7 +281,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * Load the security class for xss and csrf support * ----------------------------------------------------- */ - $SEC =& load_class('Security', 'core'); + $SEC =& load_class('Security', 'core', $charset); /* * ------------------------------------------------------ diff --git a/system/core/Input.php b/system/core/Input.php index d881e253d..ab60e45c3 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -57,16 +57,6 @@ class CI_Input { */ protected $ip_address = FALSE; - /** - * Enable CSRF flag - * - * Enables a CSRF cookie token to be set. - * Set automatically based on config setting. - * - * @var bool - */ - protected $_enable_csrf = FALSE; - /** * List of all HTTP request headers * @@ -115,15 +105,7 @@ class CI_Input { */ public function __construct(CI_Security &$security) { - $this->_enable_csrf = (config_item('csrf_protection') === TRUE); - $this->security = $security; - - // CSRF Protection check - if ($this->_enable_csrf === TRUE && ! is_cli()) - { - $this->security->csrf_verify(); - } - + $this->security = $security; log_message('info', 'Input Class Initialized'); } diff --git a/system/core/Security.php b/system/core/Security.php index a80b52fd1..fb0ca3d4e 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -167,10 +167,12 @@ class CI_Security { * * @return void */ - public function __construct() + public function __construct($charset) { + $this->charset = $charset; + // Is CSRF protection enabled? - if (config_item('csrf_protection')) + if (config_item('csrf_protection') && ! is_cli()) { // CSRF config foreach (array('csrf_expire', 'csrf_token_name', 'csrf_cookie_name') as $key) @@ -189,10 +191,9 @@ class CI_Security { // Set the CSRF hash $this->_csrf_set_hash(); + $this->csrf_verify(); } - $this->charset = strtoupper(config_item('charset')); - log_message('info', 'Security Class Initialized'); } diff --git a/tests/codeigniter/core/Input_test.php b/tests/codeigniter/core/Input_test.php index 78b659691..e068a84be 100644 --- a/tests/codeigniter/core/Input_test.php +++ b/tests/codeigniter/core/Input_test.php @@ -12,10 +12,8 @@ class Input_test extends CI_TestCase { $this->ci_set_config('global_xss_filtering', FALSE); $this->ci_set_config('csrf_protection', FALSE); - $security = new Mock_Core_Security(); - - $this->ci_set_config('charset', 'UTF-8'); - $this->input = new Mock_Core_Input($security); + $security = new Mock_Core_Security('UTF-8'); + $this->input = new CI_Input($security); } // -------------------------------------------------------------------- @@ -120,14 +118,17 @@ class Input_test extends CI_TestCase { public function test_fetch_from_array() { + $reflection = new ReflectionMethod($this->input, '_fetch_from_array'); + $reflection->setAccessible(TRUE); + $data = array( 'foo' => 'bar', 'harm' => 'Hello, i try to your site', ); - $foo = $this->input->fetch_from_array($data, 'foo'); - $harm = $this->input->fetch_from_array($data, 'harm'); - $harmless = $this->input->fetch_from_array($data, 'harm', TRUE); + $foo = $reflection->invokeArgs($this->input, [&$data, 'foo']); + $harm = $reflection->invokeArgs($this->input, [&$data, 'harm']); + $harmless = $reflection->invokeArgs($this->input, [&$data, 'harm', TRUE]); $this->assertEquals('bar', $foo); $this->assertEquals("Hello, i try to your site", $harm); @@ -215,57 +216,60 @@ class Input_test extends CI_TestCase { public function test_ip_address() { - $this->input->ip_address = '127.0.0.1'; + $reflection = new ReflectionProperty($this->input, 'ip_address'); + $reflection->setAccessible(TRUE); + + $reflection->setValue($this->input, '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; + $reflection->setValue($this->input, FALSE); $this->assertEquals('127.0.0.1', $this->input->ip_address()); // Invalid $_SERVER['REMOTE_ADDR'] = 'invalid_ip_address'; - $this->input->ip_address = FALSE; // reset cached value + $reflection->setValue($this->input, FALSE); // reset cached value $this->assertEquals('0.0.0.0', $this->input->ip_address()); $_SERVER['REMOTE_ADDR'] = '127.0.0.1'; // Proxy_ips tests - $this->input->ip_address = FALSE; + $reflection->setValue($this->input, 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; + $reflection->setValue($this->input, 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; + $reflection->setValue($this->input, 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; + $reflection->setValue($this->input, 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; + // IPv6 + $reflection->setValue($this->input, 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; + $reflection->setValue($this->input, FALSE); $this->ci_set_config('proxy_ips', '0::/32'); $_SERVER['HTTP_CLIENT_IP'] = '127.0.0.7'; $_SERVER['REMOTE_ADDR'] = '0000:0000:0000:0000:0000:0000:0000:0001'; $this->assertEquals('127.0.0.7', $this->input->ip_address()); - $this->input->ip_address = FALSE; + $reflection->setValue($this->input, FALSE); $_SERVER['REMOTE_ADDR'] = '127.0.0.1'; // back to reality } diff --git a/tests/codeigniter/core/Security_test.php b/tests/codeigniter/core/Security_test.php index cbf0285ec..2e1127f87 100644 --- a/tests/codeigniter/core/Security_test.php +++ b/tests/codeigniter/core/Security_test.php @@ -12,7 +12,8 @@ class Security_test extends CI_TestCase { $this->ci_set_config('csrf_token_name', 'ci_csrf_token'); $this->ci_set_config('csrf_cookie_name', 'ci_csrf_cookie'); - $this->security = new Mock_Core_Security(); + $_SERVER['REQUEST_METHOD'] = 'GET'; + $this->security = new Mock_Core_Security('UTF-8'); } // -------------------------------------------------------------------- @@ -341,7 +342,7 @@ class Security_test extends CI_TestCase { // leave csrf_cookie_name as blank to test _csrf_set_hash function $this->ci_set_config('csrf_cookie_name', ''); - $this->security = new Mock_Core_Security(); + $this->security = new Mock_Core_Security('UTF-8'); $this->assertNotEmpty($this->security->get_csrf_hash()); } diff --git a/tests/codeigniter/helpers/cookie_helper_test.php b/tests/codeigniter/helpers/cookie_helper_test.php index 1fbb57f67..e984be21c 100644 --- a/tests/codeigniter/helpers/cookie_helper_test.php +++ b/tests/codeigniter/helpers/cookie_helper_test.php @@ -28,9 +28,9 @@ class Cookie_helper_test extends CI_TestCase { { $_COOKIE['foo'] = 'bar'; - $security = new Mock_Core_Security(); + $security = new Mock_Core_Security('UTF-8'); $input_cls = $this->ci_core_class('input'); - $this->ci_instance_var('input', new Mock_Core_Input($security)); + $this->ci_instance_var('input', new CI_Input($security)); $this->assertEquals('bar', get_cookie('foo', FALSE)); $this->assertEquals('bar', get_cookie('foo', TRUE)); diff --git a/tests/codeigniter/helpers/security_helper_test.php b/tests/codeigniter/helpers/security_helper_test.php index ab05d57ba..d7e3f4734 100644 --- a/tests/codeigniter/helpers/security_helper_test.php +++ b/tests/codeigniter/helpers/security_helper_test.php @@ -6,7 +6,7 @@ class Security_helper_tests extends CI_TestCase { { $this->helper('security'); $obj = new stdClass; - $obj->security = new Mock_Core_Security(); + $obj->security = new Mock_Core_Security('UTF-8'); $this->ci_instance($obj); } diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index 5b7830dd8..edbe9da4a 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -13,8 +13,8 @@ class Form_validation_test extends CI_TestCase { // Same applies for lang $lang = $this->getMockBuilder('CI_Lang')->setMethods(array('load'))->getMock(); - $security = new Mock_Core_Security(); - $input = new Mock_Core_Input($security); + $security = new Mock_Core_Security('UTF-8'); + $input = new CI_Input($security); $this->ci_instance_var('lang', $lang); $this->ci_instance_var('load', $loader); diff --git a/tests/codeigniter/libraries/Session_test.php b/tests/codeigniter/libraries/Session_test.php index 76a4fcc98..840df076a 100644 --- a/tests/codeigniter/libraries/Session_test.php +++ b/tests/codeigniter/libraries/Session_test.php @@ -37,7 +37,8 @@ return; $ci = $this->ci_instance(); $ldr = $this->ci_core_class('load'); $ci->load = new $ldr(); - $ci->input = new Mock_Core_Input(NULL, NULL); + $security = new Mock_Core_Security('UTF-8'); + $ci->input = new CI_Input($security); // Make sure string helper is available $this->ci_vfs_clone('system/helpers/string_helper.php'); @@ -437,4 +438,4 @@ return; $this->assertNull($this->session->native->userdata($key)); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/libraries/Upload_test.php b/tests/codeigniter/libraries/Upload_test.php index 8bac597b3..74a7d2c22 100644 --- a/tests/codeigniter/libraries/Upload_test.php +++ b/tests/codeigniter/libraries/Upload_test.php @@ -6,7 +6,7 @@ class Upload_test extends CI_TestCase { { $ci = $this->ci_instance(); $ci->upload = new CI_Upload(); - $ci->security = new Mock_Core_Security(); + $ci->security = new Mock_Core_Security('UTF-8'); $ci->lang = $this->getMockBuilder('CI_Lang')->setMethods(array('load', 'line'))->getMock(); $ci->lang->expects($this->any())->method('line')->will($this->returnValue(FALSE)); $this->upload = $ci->upload; diff --git a/tests/mocks/core/input.php b/tests/mocks/core/input.php deleted file mode 100644 index 6f6a91365..000000000 --- a/tests/mocks/core/input.php +++ /dev/null @@ -1,30 +0,0 @@ -_enable_csrf = (config_item('csrf_protection') === TRUE); - $this->security = $security; - } - - public function fetch_from_array($array, $index = '', $xss_clean = FALSE) - { - return parent::_fetch_from_array($array, $index, $xss_clean); - } - - public function __set($name, $value) - { - if ($name === 'ip_address') - { - $this->ip_address = $value; - } - } -} -- cgit v1.2.3-24-g4f1b From 8d369209b9c1db8cf3fe06bba54441ca84a8d6e4 Mon Sep 17 00:00:00 2001 From: vlakoff Date: Thu, 15 Dec 2016 23:17:16 +0100 Subject: Small code simplification in character_limiter() --- system/helpers/text_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/text_helper.php b/system/helpers/text_helper.php index 4f9210f2d..e54ed04e1 100644 --- a/system/helpers/text_helper.php +++ b/system/helpers/text_helper.php @@ -102,7 +102,7 @@ if ( ! function_exists('character_limiter')) } // a bit complicated, but faster than preg_replace with \s+ - $str = preg_replace('/ {2,}/', ' ', str_replace(array("\r", "\n", "\t", "\x0B", "\x0C"), ' ', $str)); + $str = preg_replace('/ {2,}/', ' ', str_replace(array("\r", "\n", "\t", "\v", "\f"), ' ', $str)); if (mb_strlen($str) <= $n) { -- cgit v1.2.3-24-g4f1b From 468d16a24f2ecd07e922e158f541e9f6831636f2 Mon Sep 17 00:00:00 2001 From: Tomaz Lovrec Date: Fri, 16 Dec 2016 12:00:19 +0000 Subject: Remove needless constructor in model documentation PHP will execute the parent constructor regardless if a constructor method is defined in the child class or not. Defining an empty constructor just to call the parents constructor can be considered bad practice. --- user_guide_src/source/general/models.rst | 6 ------ 1 file changed, 6 deletions(-) diff --git a/user_guide_src/source/general/models.rst b/user_guide_src/source/general/models.rst index 1cfe736de..08e9f5b30 100644 --- a/user_guide_src/source/general/models.rst +++ b/user_guide_src/source/general/models.rst @@ -22,12 +22,6 @@ model class might look like:: public $content; public $date; - public function __construct() - { - // Call the CI_Model constructor - parent::__construct(); - } - public function get_last_ten_entries() { $query = $this->db->get('entries', 10); -- cgit v1.2.3-24-g4f1b From 1398b72b32e3fb9628be2e09ffe97bea88565868 Mon Sep 17 00:00:00 2001 From: Tomaz Lovrec Date: Fri, 16 Dec 2016 12:02:12 +0000 Subject: Add constructor comments to match controller docs Empty constructors are pointless and bad practice, but removing them from this part of the documentation makes it less readable, makes less of a point, and would be quite frankly weird. Added a comment that suggests that further user code should be put there, like it is in the controller documentation --- user_guide_src/source/general/core_classes.rst | 1 + user_guide_src/source/general/models.rst | 2 ++ 2 files changed, 3 insertions(+) diff --git a/user_guide_src/source/general/core_classes.rst b/user_guide_src/source/general/core_classes.rst index 07c0b00ba..79f73ef06 100644 --- a/user_guide_src/source/general/core_classes.rst +++ b/user_guide_src/source/general/core_classes.rst @@ -101,6 +101,7 @@ your new class in your application controller's constructors. public function __construct() { parent::__construct(); + // Your own constructor code } public function index() diff --git a/user_guide_src/source/general/models.rst b/user_guide_src/source/general/models.rst index 08e9f5b30..eb842e927 100644 --- a/user_guide_src/source/general/models.rst +++ b/user_guide_src/source/general/models.rst @@ -70,6 +70,7 @@ The basic prototype for a model class is this:: public function __construct() { parent::__construct(); + // Your own constructor code } } @@ -85,6 +86,7 @@ The file name must match the class name. For example, if this is your class:: public function __construct() { parent::__construct(); + // Your own constructor code } } -- cgit v1.2.3-24-g4f1b From 62adbbd6cb2bc56258817efbc8f201250de6b64d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 16 Dec 2016 15:48:14 +0200 Subject: [ci skip] Remove a function_exists() call from CI_Image_lib We use this function elsewhere without checking for existence; nobody has complained --- system/libraries/Image_lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 475649c46..884d0dcec 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -1194,7 +1194,7 @@ class CI_Image_lib { } // Build the finalized image - if ($wm_img_type === 3 && function_exists('imagealphablending')) + if ($wm_img_type === 3) { @imagealphablending($src_img, TRUE); } -- cgit v1.2.3-24-g4f1b From a927ae4ee86fb6727ac340e7b96aee6f82b5542b Mon Sep 17 00:00:00 2001 From: Alex Fang Date: Thu, 22 Dec 2016 12:49:45 +0800 Subject: Fix bug: DB_query_builder do not add parenthesis for cached group_by --- system/database/DB_query_builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index b88ec956a..6d165fc79 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1402,7 +1402,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $this->qb_orderby = NULL; } - $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby)) + $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR in_array('groupby', $this->qb_cache_exists)) ? $this->query($this->_count_string.$this->protect_identifiers('numrows')."\nFROM (\n".$this->_compile_select()."\n) CI_count_all_results") : $this->query($this->_compile_select($this->_count_string.$this->protect_identifiers('numrows'))); -- cgit v1.2.3-24-g4f1b From 8112b5341ec02d38e448e767ab95196df9a84a74 Mon Sep 17 00:00:00 2001 From: Alex Fang Date: Fri, 23 Dec 2016 10:38:11 +0800 Subject: 1. Updated last comit with comment for https://github.com/bcit-ci/CodeIgniter/pull/4955 --- system/database/DB_query_builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 6d165fc79..48c857125 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1402,7 +1402,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $this->qb_orderby = NULL; } - $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR in_array('groupby', $this->qb_cache_exists)) + $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby)) ? $this->query($this->_count_string.$this->protect_identifiers('numrows')."\nFROM (\n".$this->_compile_select()."\n) CI_count_all_results") : $this->query($this->_compile_select($this->_count_string.$this->protect_identifiers('numrows'))); -- cgit v1.2.3-24-g4f1b From fced25f5728ce81fe810216fcaa4ccec7523f6c9 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Sat, 31 Dec 2016 08:46:18 -0800 Subject: Update copyright data to 2017 --- .gitignore | 1 + index.php | 4 ++-- license.txt | 2 +- system/core/Benchmark.php | 4 ++-- system/core/CodeIgniter.php | 4 ++-- system/core/Common.php | 4 ++-- system/core/Config.php | 4 ++-- system/core/Controller.php | 4 ++-- system/core/Exceptions.php | 4 ++-- system/core/Hooks.php | 4 ++-- system/core/Input.php | 4 ++-- system/core/Lang.php | 4 ++-- system/core/Loader.php | 4 ++-- system/core/Log.php | 4 ++-- system/core/Model.php | 4 ++-- system/core/Output.php | 4 ++-- system/core/Router.php | 4 ++-- system/core/Security.php | 4 ++-- system/core/URI.php | 4 ++-- system/core/Utf8.php | 4 ++-- system/core/compat/hash.php | 4 ++-- system/core/compat/mbstring.php | 4 ++-- system/core/compat/password.php | 4 ++-- system/core/compat/standard.php | 4 ++-- system/database/DB.php | 4 ++-- system/database/DB_cache.php | 4 ++-- system/database/DB_driver.php | 4 ++-- system/database/DB_forge.php | 4 ++-- system/database/DB_query_builder.php | 4 ++-- system/database/DB_result.php | 4 ++-- system/database/DB_utility.php | 4 ++-- system/database/drivers/cubrid/cubrid_driver.php | 4 ++-- system/database/drivers/cubrid/cubrid_forge.php | 4 ++-- system/database/drivers/cubrid/cubrid_result.php | 4 ++-- system/database/drivers/cubrid/cubrid_utility.php | 4 ++-- system/database/drivers/ibase/ibase_driver.php | 4 ++-- system/database/drivers/ibase/ibase_forge.php | 4 ++-- system/database/drivers/ibase/ibase_result.php | 4 ++-- system/database/drivers/ibase/ibase_utility.php | 4 ++-- system/database/drivers/mssql/mssql_driver.php | 4 ++-- system/database/drivers/mssql/mssql_forge.php | 4 ++-- system/database/drivers/mssql/mssql_result.php | 4 ++-- system/database/drivers/mssql/mssql_utility.php | 4 ++-- system/database/drivers/mysql/mysql_driver.php | 4 ++-- system/database/drivers/mysql/mysql_forge.php | 4 ++-- system/database/drivers/mysql/mysql_result.php | 4 ++-- system/database/drivers/mysql/mysql_utility.php | 4 ++-- system/database/drivers/mysqli/mysqli_driver.php | 4 ++-- system/database/drivers/mysqli/mysqli_forge.php | 4 ++-- system/database/drivers/mysqli/mysqli_result.php | 4 ++-- system/database/drivers/mysqli/mysqli_utility.php | 4 ++-- system/database/drivers/oci8/oci8_driver.php | 4 ++-- system/database/drivers/oci8/oci8_forge.php | 4 ++-- system/database/drivers/oci8/oci8_result.php | 4 ++-- system/database/drivers/oci8/oci8_utility.php | 4 ++-- system/database/drivers/odbc/odbc_driver.php | 4 ++-- system/database/drivers/odbc/odbc_forge.php | 4 ++-- system/database/drivers/odbc/odbc_result.php | 4 ++-- system/database/drivers/odbc/odbc_utility.php | 4 ++-- system/database/drivers/pdo/pdo_driver.php | 4 ++-- system/database/drivers/pdo/pdo_forge.php | 4 ++-- system/database/drivers/pdo/pdo_result.php | 4 ++-- system/database/drivers/pdo/pdo_utility.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_4d_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_4d_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_informix_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_informix_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_oci_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_oci_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php | 4 ++-- system/database/drivers/postgre/postgre_driver.php | 4 ++-- system/database/drivers/postgre/postgre_forge.php | 4 ++-- system/database/drivers/postgre/postgre_result.php | 4 ++-- system/database/drivers/postgre/postgre_utility.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_driver.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_forge.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_result.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_utility.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_driver.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_forge.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_result.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_utility.php | 4 ++-- system/helpers/array_helper.php | 4 ++-- system/helpers/captcha_helper.php | 4 ++-- system/helpers/cookie_helper.php | 4 ++-- system/helpers/date_helper.php | 4 ++-- system/helpers/directory_helper.php | 4 ++-- system/helpers/download_helper.php | 4 ++-- system/helpers/file_helper.php | 4 ++-- system/helpers/form_helper.php | 4 ++-- system/helpers/html_helper.php | 4 ++-- system/helpers/inflector_helper.php | 4 ++-- system/helpers/language_helper.php | 4 ++-- system/helpers/number_helper.php | 4 ++-- system/helpers/path_helper.php | 4 ++-- system/helpers/security_helper.php | 4 ++-- system/helpers/string_helper.php | 4 ++-- system/helpers/text_helper.php | 4 ++-- system/helpers/typography_helper.php | 4 ++-- system/helpers/url_helper.php | 4 ++-- system/helpers/xml_helper.php | 4 ++-- system/language/english/calendar_lang.php | 4 ++-- system/language/english/date_lang.php | 4 ++-- system/language/english/db_lang.php | 4 ++-- system/language/english/email_lang.php | 4 ++-- system/language/english/form_validation_lang.php | 4 ++-- system/language/english/ftp_lang.php | 4 ++-- system/language/english/imglib_lang.php | 4 ++-- system/language/english/migration_lang.php | 4 ++-- system/language/english/number_lang.php | 4 ++-- system/language/english/pagination_lang.php | 4 ++-- system/language/english/profiler_lang.php | 4 ++-- system/language/english/unit_test_lang.php | 4 ++-- system/language/english/upload_lang.php | 4 ++-- system/libraries/Cache/Cache.php | 4 ++-- system/libraries/Cache/drivers/Cache_apc.php | 4 ++-- system/libraries/Cache/drivers/Cache_dummy.php | 4 ++-- system/libraries/Cache/drivers/Cache_file.php | 4 ++-- system/libraries/Cache/drivers/Cache_memcached.php | 4 ++-- system/libraries/Cache/drivers/Cache_redis.php | 4 ++-- system/libraries/Cache/drivers/Cache_wincache.php | 4 ++-- system/libraries/Calendar.php | 4 ++-- system/libraries/Driver.php | 4 ++-- system/libraries/Email.php | 4 ++-- system/libraries/Encrypt.php | 4 ++-- system/libraries/Encryption.php | 4 ++-- system/libraries/Form_validation.php | 4 ++-- system/libraries/Ftp.php | 4 ++-- system/libraries/Image_lib.php | 4 ++-- system/libraries/Migration.php | 4 ++-- system/libraries/Pagination.php | 4 ++-- system/libraries/Parser.php | 4 ++-- system/libraries/Profiler.php | 4 ++-- system/libraries/Session/Session.php | 4 ++-- system/libraries/Session/Session_driver.php | 4 ++-- system/libraries/Session/drivers/Session_database_driver.php | 4 ++-- system/libraries/Session/drivers/Session_files_driver.php | 4 ++-- system/libraries/Session/drivers/Session_memcached_driver.php | 4 ++-- system/libraries/Session/drivers/Session_redis_driver.php | 4 ++-- system/libraries/Table.php | 4 ++-- system/libraries/Trackback.php | 4 ++-- system/libraries/Typography.php | 4 ++-- system/libraries/Unit_test.php | 4 ++-- system/libraries/Upload.php | 4 ++-- system/libraries/User_agent.php | 4 ++-- system/libraries/Xmlrpc.php | 4 ++-- system/libraries/Xmlrpcs.php | 4 ++-- system/libraries/Zip.php | 4 ++-- user_guide_src/source/conf.py | 4 ++-- user_guide_src/source/license.rst | 2 +- 167 files changed, 331 insertions(+), 330 deletions(-) diff --git a/.gitignore b/.gitignore index 5982f9bad..97f1d3159 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ user_guide_src/cilexer/pycilexer.egg-info/* *.stTheme.cache *.sublime-workspace *.sublime-project +/tests/tests/ \ No newline at end of file diff --git a/index.php b/index.php index 8015672f3..b4e1fb146 100755 --- a/index.php +++ b/index.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/license.txt b/license.txt index 388eee337..934e126ff 100644 --- a/license.txt +++ b/license.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014 - 2016, British Columbia Institute of Technology +Copyright (c) 2014 - 2017, British Columbia Institute of Technology Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/system/core/Benchmark.php b/system/core/Benchmark.php index b1d74f78f..b3ac79c62 100644 --- a/system/core/Benchmark.php +++ b/system/core/Benchmark.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 977d1427d..8eed52eb7 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Common.php b/system/core/Common.php index 48eb233c2..d3ffaf0cd 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Config.php b/system/core/Config.php index 6704a0a7e..d7236df1f 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Controller.php b/system/core/Controller.php index 83b3df26c..59a916734 100644 --- a/system/core/Controller.php +++ b/system/core/Controller.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php index 4e10f2831..47d153f49 100644 --- a/system/core/Exceptions.php +++ b/system/core/Exceptions.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Hooks.php b/system/core/Hooks.php index 856795cba..f2d6f21ca 100644 --- a/system/core/Hooks.php +++ b/system/core/Hooks.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Input.php b/system/core/Input.php index ab60e45c3..a7918aefb 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Lang.php b/system/core/Lang.php index 1fcff078a..569b02368 100644 --- a/system/core/Lang.php +++ b/system/core/Lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Loader.php b/system/core/Loader.php index b52296499..987679550 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Log.php b/system/core/Log.php index 902162647..5be7baea8 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Model.php b/system/core/Model.php index 941881a9f..c809e7b84 100644 --- a/system/core/Model.php +++ b/system/core/Model.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Output.php b/system/core/Output.php index febccdaef..0887717d9 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Router.php b/system/core/Router.php index 42d0e2952..e92a8f540 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Security.php b/system/core/Security.php index fb0ca3d4e..0c187e72f 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/URI.php b/system/core/URI.php index 7f07bfe1e..275c07900 100644 --- a/system/core/URI.php +++ b/system/core/URI.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Utf8.php b/system/core/Utf8.php index 042ca4316..1aafbf3a3 100644 --- a/system/core/Utf8.php +++ b/system/core/Utf8.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/core/compat/hash.php b/system/core/compat/hash.php index 5fec4cc67..c0eab4909 100644 --- a/system/core/compat/hash.php +++ b/system/core/compat/hash.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/core/compat/mbstring.php b/system/core/compat/mbstring.php index 554d10040..f466e1c34 100644 --- a/system/core/compat/mbstring.php +++ b/system/core/compat/mbstring.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/core/compat/password.php b/system/core/compat/password.php index e58422557..84be66738 100644 --- a/system/core/compat/password.php +++ b/system/core/compat/password.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php index ca5046e56..6fd292a26 100644 --- a/system/core/compat/standard.php +++ b/system/core/compat/standard.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/DB.php b/system/database/DB.php index 37dfdd632..009035032 100644 --- a/system/database/DB.php +++ b/system/database/DB.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php index 8855cc1b1..b74c31924 100644 --- a/system/database/DB_cache.php +++ b/system/database/DB_cache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index c142a1354..d6e9a7df3 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index 9add5cab7..83b646d6e 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index b88ec956a..661f5fe69 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_result.php b/system/database/DB_result.php index 4e2429376..98d8876a7 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php index 49cd301df..944d45881 100644 --- a/system/database/DB_utility.php +++ b/system/database/DB_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php index 77f591ced..257925d88 100644 --- a/system/database/drivers/cubrid/cubrid_driver.php +++ b/system/database/drivers/cubrid/cubrid_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/cubrid/cubrid_forge.php b/system/database/drivers/cubrid/cubrid_forge.php index 46a3b2185..27bfc1466 100644 --- a/system/database/drivers/cubrid/cubrid_forge.php +++ b/system/database/drivers/cubrid/cubrid_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/cubrid/cubrid_result.php b/system/database/drivers/cubrid/cubrid_result.php index 9cccb2570..251b70a63 100644 --- a/system/database/drivers/cubrid/cubrid_result.php +++ b/system/database/drivers/cubrid/cubrid_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/cubrid/cubrid_utility.php b/system/database/drivers/cubrid/cubrid_utility.php index 942fa3b4e..555ae7a91 100644 --- a/system/database/drivers/cubrid/cubrid_utility.php +++ b/system/database/drivers/cubrid/cubrid_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/ibase/ibase_driver.php b/system/database/drivers/ibase/ibase_driver.php index 671a353bc..106d5efac 100644 --- a/system/database/drivers/ibase/ibase_driver.php +++ b/system/database/drivers/ibase/ibase_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/ibase/ibase_forge.php b/system/database/drivers/ibase/ibase_forge.php index b35cc3749..44bb24e68 100644 --- a/system/database/drivers/ibase/ibase_forge.php +++ b/system/database/drivers/ibase/ibase_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/ibase/ibase_result.php b/system/database/drivers/ibase/ibase_result.php index f3c21fcec..7d7dd79ac 100644 --- a/system/database/drivers/ibase/ibase_result.php +++ b/system/database/drivers/ibase/ibase_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/ibase/ibase_utility.php b/system/database/drivers/ibase/ibase_utility.php index 619ebad01..3c152101a 100644 --- a/system/database/drivers/ibase/ibase_utility.php +++ b/system/database/drivers/ibase/ibase_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php index 76f58564b..7709c37bb 100644 --- a/system/database/drivers/mssql/mssql_driver.php +++ b/system/database/drivers/mssql/mssql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mssql/mssql_forge.php b/system/database/drivers/mssql/mssql_forge.php index 91b5794bc..6b6109868 100644 --- a/system/database/drivers/mssql/mssql_forge.php +++ b/system/database/drivers/mssql/mssql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php index b62bf75cb..38a0a0574 100644 --- a/system/database/drivers/mssql/mssql_result.php +++ b/system/database/drivers/mssql/mssql_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php index cd23be828..95ce88f13 100644 --- a/system/database/drivers/mssql/mssql_utility.php +++ b/system/database/drivers/mssql/mssql_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php index 70b4f68ba..6e445cf72 100644 --- a/system/database/drivers/mysql/mysql_driver.php +++ b/system/database/drivers/mysql/mysql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysql/mysql_forge.php b/system/database/drivers/mysql/mysql_forge.php index fa84be371..7ed8f8d38 100644 --- a/system/database/drivers/mysql/mysql_forge.php +++ b/system/database/drivers/mysql/mysql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php index 20cade2e1..7aa265ebb 100644 --- a/system/database/drivers/mysql/mysql_result.php +++ b/system/database/drivers/mysql/mysql_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php index 4c1f2391b..bc01fc58d 100644 --- a/system/database/drivers/mysql/mysql_utility.php +++ b/system/database/drivers/mysql/mysql_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index cf931a351..8c1b99caa 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysqli/mysqli_forge.php b/system/database/drivers/mysqli/mysqli_forge.php index c17f729c0..c5b23b6ca 100644 --- a/system/database/drivers/mysqli/mysqli_forge.php +++ b/system/database/drivers/mysqli/mysqli_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php index 0ce07414f..929c2b455 100644 --- a/system/database/drivers/mysqli/mysqli_result.php +++ b/system/database/drivers/mysqli/mysqli_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php index 79d9f3670..4a3dad4d1 100644 --- a/system/database/drivers/mysqli/mysqli_utility.php +++ b/system/database/drivers/mysqli/mysqli_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index 56fdf32cf..c7f033019 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 23e025757..ac33cde0c 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php index fc860ea12..0c3543333 100644 --- a/system/database/drivers/oci8/oci8_result.php +++ b/system/database/drivers/oci8/oci8_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php index ebe49c463..ce0dfc5f8 100644 --- a/system/database/drivers/oci8/oci8_utility.php +++ b/system/database/drivers/oci8/oci8_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php index 82efa498c..9f5a86fa0 100644 --- a/system/database/drivers/odbc/odbc_driver.php +++ b/system/database/drivers/odbc/odbc_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/odbc/odbc_forge.php b/system/database/drivers/odbc/odbc_forge.php index bac30bedc..77b2fdf62 100644 --- a/system/database/drivers/odbc/odbc_forge.php +++ b/system/database/drivers/odbc/odbc_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/odbc/odbc_result.php b/system/database/drivers/odbc/odbc_result.php index 110d6ab0f..845aa9c79 100644 --- a/system/database/drivers/odbc/odbc_result.php +++ b/system/database/drivers/odbc/odbc_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php index 2e344963d..643f6ec0c 100644 --- a/system/database/drivers/odbc/odbc_utility.php +++ b/system/database/drivers/odbc/odbc_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index 2da9cf38f..d816dcb64 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/pdo_forge.php b/system/database/drivers/pdo/pdo_forge.php index 2595f7b6e..685b6776d 100644 --- a/system/database/drivers/pdo/pdo_forge.php +++ b/system/database/drivers/pdo/pdo_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php index d1809bef2..bbc2cdc5a 100644 --- a/system/database/drivers/pdo/pdo_result.php +++ b/system/database/drivers/pdo/pdo_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/pdo_utility.php b/system/database/drivers/pdo/pdo_utility.php index 384661bf0..5029cac94 100644 --- a/system/database/drivers/pdo/pdo_utility.php +++ b/system/database/drivers/pdo/pdo_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php index 3dedfd9b3..7eaeaa1fd 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php index 41994f9db..3f636d3bd 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php index 4eb7f0ba6..fc49e0dd0 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php index b5b95078e..276cbb6bc 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php index 9a1cbcaf4..3249a1d7f 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php index 830200325..d0cca38dd 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php index 7811d3da4..aa5e7d6e7 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php index 50df76905..20c5a6897 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php index 2366c4036..26b556a78 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php index a2dbfc25a..4238ca082 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php index d40d17a88..050171f64 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php index 5af39b181..2ddc2a933 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php index 6452b787b..66c15dac6 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php index 9d04a8a9a..c7a92b826 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php index dd1d31c26..abf9167d6 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index 705b1c711..c8983ee56 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php index ebe1ed6f0..f4a2f08f3 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php index 7c65daa84..a2a3bada3 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php index 05b8350d1..9aed3a2fe 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php index 214b6f528..18e399dac 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php index cb06c2a9d..9b70f3ea6 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php index b124bcad1..18c475b17 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php index dfccb7d69..1cf6c614d 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php index 56bf87f3a..82a0d515d 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php index 9f794a12e..058a8044c 100644 --- a/system/database/drivers/postgre/postgre_driver.php +++ b/system/database/drivers/postgre/postgre_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php index 8d985ba7d..f7bbf7441 100644 --- a/system/database/drivers/postgre/postgre_forge.php +++ b/system/database/drivers/postgre/postgre_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php index 354bb08d5..57864a7f3 100644 --- a/system/database/drivers/postgre/postgre_result.php +++ b/system/database/drivers/postgre/postgre_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php index bb5e6e04b..5ca358da5 100644 --- a/system/database/drivers/postgre/postgre_utility.php +++ b/system/database/drivers/postgre/postgre_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php index 9743499bd..2d78a0f8a 100644 --- a/system/database/drivers/sqlite3/sqlite3_driver.php +++ b/system/database/drivers/sqlite3/sqlite3_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlite3/sqlite3_forge.php b/system/database/drivers/sqlite3/sqlite3_forge.php index c45472f54..5ee6daae3 100644 --- a/system/database/drivers/sqlite3/sqlite3_forge.php +++ b/system/database/drivers/sqlite3/sqlite3_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlite3/sqlite3_result.php b/system/database/drivers/sqlite3/sqlite3_result.php index aa559eef6..03751f0dc 100644 --- a/system/database/drivers/sqlite3/sqlite3_result.php +++ b/system/database/drivers/sqlite3/sqlite3_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlite3/sqlite3_utility.php b/system/database/drivers/sqlite3/sqlite3_utility.php index b47c086f6..20d562f96 100644 --- a/system/database/drivers/sqlite3/sqlite3_utility.php +++ b/system/database/drivers/sqlite3/sqlite3_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php index c55d5f7b7..10aad115f 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_driver.php +++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/database/drivers/sqlsrv/sqlsrv_forge.php b/system/database/drivers/sqlsrv/sqlsrv_forge.php index 4f0ce9d6f..aa8490ee4 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_forge.php +++ b/system/database/drivers/sqlsrv/sqlsrv_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/database/drivers/sqlsrv/sqlsrv_result.php b/system/database/drivers/sqlsrv/sqlsrv_result.php index fde7264b9..f784ebea8 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_result.php +++ b/system/database/drivers/sqlsrv/sqlsrv_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/database/drivers/sqlsrv/sqlsrv_utility.php b/system/database/drivers/sqlsrv/sqlsrv_utility.php index 726fe3ea6..19c93d0c6 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_utility.php +++ b/system/database/drivers/sqlsrv/sqlsrv_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/helpers/array_helper.php b/system/helpers/array_helper.php index 3fdccf909..74c7c15a8 100644 --- a/system/helpers/array_helper.php +++ b/system/helpers/array_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index f2ff4dccf..8f44806cc 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php index f8943fde3..30b475ce6 100644 --- a/system/helpers/cookie_helper.php +++ b/system/helpers/cookie_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/date_helper.php b/system/helpers/date_helper.php index 1f8e319ca..799c9f6d2 100644 --- a/system/helpers/date_helper.php +++ b/system/helpers/date_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php index cdc4c16bc..2785241e6 100644 --- a/system/helpers/directory_helper.php +++ b/system/helpers/directory_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 9619c61b1..b9a0e6be9 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php index 484bf3228..6af632b07 100644 --- a/system/helpers/file_helper.php +++ b/system/helpers/file_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index 496fc1055..9844c752a 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 22ef39c2e..b5e8ed783 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index f14f57c54..49e2a53db 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/language_helper.php b/system/helpers/language_helper.php index 3721164b7..d26cf5b8d 100644 --- a/system/helpers/language_helper.php +++ b/system/helpers/language_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index e7810c706..cc8a7760c 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/path_helper.php b/system/helpers/path_helper.php index 6c846a211..6896cb97b 100644 --- a/system/helpers/path_helper.php +++ b/system/helpers/path_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/security_helper.php b/system/helpers/security_helper.php index 048f06b68..72736fa7d 100644 --- a/system/helpers/security_helper.php +++ b/system/helpers/security_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/string_helper.php b/system/helpers/string_helper.php index 62b1a18e0..311f7a420 100644 --- a/system/helpers/string_helper.php +++ b/system/helpers/string_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/text_helper.php b/system/helpers/text_helper.php index e54ed04e1..07c01c3af 100644 --- a/system/helpers/text_helper.php +++ b/system/helpers/text_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/typography_helper.php b/system/helpers/typography_helper.php index 928cb6d04..183e117bf 100644 --- a/system/helpers/typography_helper.php +++ b/system/helpers/typography_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index 8a5a75c44..99e82ef9f 100644 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/xml_helper.php b/system/helpers/xml_helper.php index 3489da91c..a12ee25db 100644 --- a/system/helpers/xml_helper.php +++ b/system/helpers/xml_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/calendar_lang.php b/system/language/english/calendar_lang.php index 8af5e8056..77911e983 100644 --- a/system/language/english/calendar_lang.php +++ b/system/language/english/calendar_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/date_lang.php b/system/language/english/date_lang.php index 39af5a239..bb454edfb 100644 --- a/system/language/english/date_lang.php +++ b/system/language/english/date_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/db_lang.php b/system/language/english/db_lang.php index ed93452b4..b44bda951 100644 --- a/system/language/english/db_lang.php +++ b/system/language/english/db_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/email_lang.php b/system/language/english/email_lang.php index 84fb09109..22dc0fa78 100644 --- a/system/language/english/email_lang.php +++ b/system/language/english/email_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index 92d6d5ebb..aa9ff330b 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/ftp_lang.php b/system/language/english/ftp_lang.php index 9e72bce42..eada3e5d5 100644 --- a/system/language/english/ftp_lang.php +++ b/system/language/english/ftp_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/imglib_lang.php b/system/language/english/imglib_lang.php index 7f23233b4..363b90074 100644 --- a/system/language/english/imglib_lang.php +++ b/system/language/english/imglib_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/migration_lang.php b/system/language/english/migration_lang.php index bce9210d3..168496090 100644 --- a/system/language/english/migration_lang.php +++ b/system/language/english/migration_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/language/english/number_lang.php b/system/language/english/number_lang.php index 0aaf51e72..9723ce5ec 100644 --- a/system/language/english/number_lang.php +++ b/system/language/english/number_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/pagination_lang.php b/system/language/english/pagination_lang.php index 4d36bdee8..d24dd047b 100644 --- a/system/language/english/pagination_lang.php +++ b/system/language/english/pagination_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/profiler_lang.php b/system/language/english/profiler_lang.php index 2d8fa51f4..20949a20a 100644 --- a/system/language/english/profiler_lang.php +++ b/system/language/english/profiler_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/unit_test_lang.php b/system/language/english/unit_test_lang.php index 29a4137a5..a89cb2d93 100644 --- a/system/language/english/unit_test_lang.php +++ b/system/language/english/unit_test_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/upload_lang.php b/system/language/english/upload_lang.php index 058dca993..ec611f9ac 100644 --- a/system/language/english/upload_lang.php +++ b/system/language/english/upload_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php index 349af1579..267dffb09 100644 --- a/system/libraries/Cache/Cache.php +++ b/system/libraries/Cache/Cache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/libraries/Cache/drivers/Cache_apc.php b/system/libraries/Cache/drivers/Cache_apc.php index fb8df03a7..f2b61adb1 100644 --- a/system/libraries/Cache/drivers/Cache_apc.php +++ b/system/libraries/Cache/drivers/Cache_apc.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/libraries/Cache/drivers/Cache_dummy.php b/system/libraries/Cache/drivers/Cache_dummy.php index 4323a68af..c6d9a61f1 100644 --- a/system/libraries/Cache/drivers/Cache_dummy.php +++ b/system/libraries/Cache/drivers/Cache_dummy.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index 93932d4cf..8a36e9d79 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index ab8bfab8b..73584278d 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 2d1ead452..bb26b3b47 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Cache/drivers/Cache_wincache.php b/system/libraries/Cache/drivers/Cache_wincache.php index d6a0d4fb6..f296a5e26 100644 --- a/system/libraries/Cache/drivers/Cache_wincache.php +++ b/system/libraries/Cache/drivers/Cache_wincache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php index 1f8ef814f..edb0fb4d9 100644 --- a/system/libraries/Calendar.php +++ b/system/libraries/Calendar.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Driver.php b/system/libraries/Driver.php index 38c6aefe6..00e8416f9 100644 --- a/system/libraries/Driver.php +++ b/system/libraries/Driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 1191e2350..fbf0cb7dc 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php index 1372a311f..46f374726 100644 --- a/system/libraries/Encrypt.php +++ b/system/libraries/Encrypt.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Encryption.php b/system/libraries/Encryption.php index c68ee2584..6799d0fef 100644 --- a/system/libraries/Encryption.php +++ b/system/libraries/Encryption.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index c2bc22f95..6f654deb4 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php index 88f265808..ac960a419 100644 --- a/system/libraries/Ftp.php +++ b/system/libraries/Ftp.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 884d0dcec..0685692de 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Migration.php b/system/libraries/Migration.php index 3e2107e83..2a87d9d7c 100644 --- a/system/libraries/Migration.php +++ b/system/libraries/Migration.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 44f848fe0..1df5f9cd5 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Parser.php b/system/libraries/Parser.php index 22cffb2c4..fdd958b22 100644 --- a/system/libraries/Parser.php +++ b/system/libraries/Parser.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index cf455d3da..e9e03cfe0 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index 9d3bd7a2f..3e4865cd1 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/libraries/Session/Session_driver.php b/system/libraries/Session/Session_driver.php index 55ddb25e0..f32f14ae0 100644 --- a/system/libraries/Session/Session_driver.php +++ b/system/libraries/Session/Session_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_database_driver.php b/system/libraries/Session/drivers/Session_database_driver.php index 2f5241256..31f5a4663 100644 --- a/system/libraries/Session/drivers/Session_database_driver.php +++ b/system/libraries/Session/drivers/Session_database_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_files_driver.php b/system/libraries/Session/drivers/Session_files_driver.php index 37315d3cd..6016e094e 100644 --- a/system/libraries/Session/drivers/Session_files_driver.php +++ b/system/libraries/Session/drivers/Session_files_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index eb1dcd3d8..2556bf0f7 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 233b15619..5313de04c 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 2f1b3b414..dc309890b 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 diff --git a/system/libraries/Trackback.php b/system/libraries/Trackback.php index 7222c00c2..55e9a0ee6 100644 --- a/system/libraries/Trackback.php +++ b/system/libraries/Trackback.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php index c45398bdc..ce31ba317 100644 --- a/system/libraries/Typography.php +++ b/system/libraries/Typography.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Unit_test.php b/system/libraries/Unit_test.php index 3122ed624..38e0fbd24 100644 --- a/system/libraries/Unit_test.php +++ b/system/libraries/Unit_test.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index ac5c9e42d..3a1731e58 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/User_agent.php b/system/libraries/User_agent.php index 60d159966..cda3ef0a0 100644 --- a/system/libraries/User_agent.php +++ b/system/libraries/User_agent.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 87f609e8d..7af96c233 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php index f343a7ec0..21de937c8 100644 --- a/system/libraries/Xmlrpcs.php +++ b/system/libraries/Xmlrpcs.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php index 82a43e9c9..d6974b13a 100644 --- a/system/libraries/Zip.php +++ b/system/libraries/Zip.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2016, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/user_guide_src/source/conf.py b/user_guide_src/source/conf.py index 4714b0d62..e0312d3c1 100644 --- a/user_guide_src/source/conf.py +++ b/user_guide_src/source/conf.py @@ -41,7 +41,7 @@ master_doc = 'index' # General information about the project. project = u'CodeIgniter' -copyright = u'2014 - 2016, British Columbia Institute of Technology' +copyright = u'2014 - 2017, British Columbia Institute of Technology' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -229,7 +229,7 @@ man_pages = [ epub_title = u'CodeIgniter' epub_author = u'British Columbia Institute of Technology' epub_publisher = u'British Columbia Institute of Technology' -epub_copyright = u'2014 - 2016, British Columbia Institute of Technology' +epub_copyright = u'2014 - 2017, British Columbia Institute of Technology' # The language of the text. It defaults to the language option # or en if the language is not set. diff --git a/user_guide_src/source/license.rst b/user_guide_src/source/license.rst index 3f7b2f58b..c943c294a 100644 --- a/user_guide_src/source/license.rst +++ b/user_guide_src/source/license.rst @@ -2,7 +2,7 @@ The MIT License (MIT) ##################### -Copyright (c) 2014 - 2016, British Columbia Institute of Technology +Copyright (c) 2014 - 2017, British Columbia Institute of Technology Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal -- cgit v1.2.3-24-g4f1b From b3f2e9bcc34c2046a56f34d2bc67dc65dbb61185 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 3 Jan 2017 12:28:07 +0200 Subject: [ci skip] Update year to 2017 in user_guide_src/cilexer --- user_guide_src/cilexer/cilexer/cilexer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/user_guide_src/cilexer/cilexer/cilexer.py b/user_guide_src/cilexer/cilexer/cilexer.py index 40582f88a..4ecfd0bc4 100644 --- a/user_guide_src/cilexer/cilexer/cilexer.py +++ b/user_guide_src/cilexer/cilexer/cilexer.py @@ -1,11 +1,11 @@ # CodeIgniter # https://codeigniter.com -# +# # An open source application development framework for PHP -# +# # This content is released under the MIT License (MIT) # -# Copyright (c) 2014 - 2016, British Columbia Institute of Technology +# Copyright (c) 2014 - 2017, British Columbia Institute of Technology # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal -- cgit v1.2.3-24-g4f1b From 806e014ec46f739398d7510b07be62593e0c3377 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 4 Jan 2017 17:19:30 +0200 Subject: Close #4904 --- system/core/Input.php | 6 +++--- system/helpers/cookie_helper.php | 4 ++-- user_guide_src/source/changelog.rst | 2 ++ user_guide_src/source/libraries/input.rst | 8 ++++---- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/system/core/Input.php b/system/core/Input.php index a7918aefb..0585b42fe 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -304,7 +304,7 @@ class CI_Input { * @param bool $httponly Whether to only makes the cookie accessible via HTTP (no javascript) * @return void */ - public function set_cookie($name, $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = FALSE, $httponly = FALSE) + public function set_cookie($name, $value = '', $expire = 0, $domain = '', $path = '/', $prefix = '', $secure = FALSE, $httponly = FALSE) { if (is_array($name)) { @@ -343,9 +343,9 @@ class CI_Input { $httponly = config_item('cookie_httponly'); } - if ( ! is_numeric($expire)) + if ( ! is_numeric($expire) || $expire < 0) { - $expire = time() - 86500; + $expire = 1; } else { diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php index 30b475ce6..d069cdb15 100644 --- a/system/helpers/cookie_helper.php +++ b/system/helpers/cookie_helper.php @@ -59,7 +59,7 @@ if ( ! function_exists('set_cookie')) * * @param mixed * @param string the value of the cookie - * @param string the number of seconds until expiration + * @param int the number of seconds until expiration * @param string the cookie domain. Usually: .yourdomain.com * @param string the cookie path * @param string the cookie prefix @@ -67,7 +67,7 @@ if ( ! function_exists('set_cookie')) * @param bool true makes the cookie accessible via http(s) only (no javascript) * @return void */ - function set_cookie($name, $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = FALSE, $httponly = FALSE) + function set_cookie($name, $value = '', $expire = 0, $domain = '', $path = '/', $prefix = '', $secure = FALSE, $httponly = FALSE) { // Set the config file options get_instance()->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure, $httponly); diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 74fb15798..a8467dcf1 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -24,6 +24,8 @@ Release Date: Not Released - Removed previously deprecated ``$config['allow_get_array']``. - Removed previously deprecated ``$config['standardize_newlines']``. - Removed previously deprecated method ``is_cli_request()`` (use :php:func:`is_cli()` instead). + - Changed the ``set_cookie()`` method's default expiry time to 0 (expires when browser is closed). + - Changed the ``set_cookie()`` method to delete the cookie if a negative expiry time is passed to it. - Libraries diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index 97460c2c5..aee39584a 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -242,7 +242,7 @@ Class Reference This method is identical to ``get()``, ``post()`` and ``cookie()``, only it fetches the *php://input* stream data. - .. php:method:: set_cookie($name = ''[, $value = ''[, $expire = ''[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = FALSE[, $httponly = FALSE]]]]]]]) + .. php:method:: set_cookie($name = ''[, $value = ''[, $expire = 0[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = FALSE[, $httponly = FALSE]]]]]]]) :param mixed $name: Cookie name or an array of parameters :param string $value: Cookie value @@ -267,7 +267,7 @@ Class Reference $cookie = array( 'name' => 'The Cookie Name', 'value' => 'The Value', - 'expire' => '86500', + 'expire' => 86500, 'domain' => '.some-domain.com', 'path' => '/', 'prefix' => 'myprefix_', @@ -278,8 +278,8 @@ Class Reference **Notes** - Only the name and value are required. To delete a cookie set it with the - expiration blank. + Only the name and value are required. To delete a cookie set the expiry + time to a negative, or non-numeric value. The expiration is set in **seconds**, which will be added to the current time. Do not include the time, but rather only the number of seconds -- cgit v1.2.3-24-g4f1b From d473b0e1185b09eeb4888117b73022c9094bb7b1 Mon Sep 17 00:00:00 2001 From: arysom Date: Wed, 4 Jan 2017 22:44:56 +0100 Subject: editorconfig settings --- .editorconfig | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..39f48d95f --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true + +# Matches multiple files with brace expansion notation +# Set default charset +[*] +charset = utf-8 + +# Tab indentation (no size specified) +indent_style = tab -- cgit v1.2.3-24-g4f1b From 7061e8f75f9b0e64864b2565573252dce00d3ea9 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 5 Jan 2017 11:39:49 +0200 Subject: [ci skip] || -> OR --- system/core/Input.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Input.php b/system/core/Input.php index 0585b42fe..70a3c61ee 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -343,7 +343,7 @@ class CI_Input { $httponly = config_item('cookie_httponly'); } - if ( ! is_numeric($expire) || $expire < 0) + if ( ! is_numeric($expire) OR $expire < 0) { $expire = 1; } -- cgit v1.2.3-24-g4f1b From d24dbe9d42a2dc0dce95339bd351d3a130a81c23 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Mon, 26 Dec 2016 12:30:32 +0900 Subject: oci8_forge add column bug fix Notice Error Array to string conversion $this->dbforge->add_column('sample', [ 'column_name1' => [ 'type' => 'char', 'default' => '0' ], 'column_name2' => [ 'type' => 'char', 'default' => '0' ] ]); --- system/database/drivers/oci8/oci8_forge.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index ac33cde0c..33f2ce228 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -126,6 +126,7 @@ class CI_DB_oci8_forge extends CI_DB_forge { $sqls[] = $sql.' RENAME COLUMN '.$this->db->escape_identifiers($field[$i]['name']) .' '.$this->db->escape_identifiers($field[$i]['new_name']); } + $field[$i] = $field[$i]['_literal']; } } @@ -136,7 +137,7 @@ class CI_DB_oci8_forge extends CI_DB_forge { // RENAME COLUMN must be executed after MODIFY array_unshift($sqls, $sql); - return $sql; + return $sqls; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 66b289839a5b2c2cb48526c78eeb92d2f26ade05 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Thu, 5 Jan 2017 18:55:00 +0900 Subject: add empty line prior add empty line prior --- system/database/drivers/oci8/oci8_forge.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 33f2ce228..70fc5c4db 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -126,7 +126,7 @@ class CI_DB_oci8_forge extends CI_DB_forge { $sqls[] = $sql.' RENAME COLUMN '.$this->db->escape_identifiers($field[$i]['name']) .' '.$this->db->escape_identifiers($field[$i]['new_name']); } - $field[$i] = $field[$i]['_literal']; + $field[$i] = "\n\t".$field[$i]['_literal']; } } -- cgit v1.2.3-24-g4f1b From ad29ba888068485de20980df240ae786aa53a9ab Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 6 Jan 2017 11:38:19 +0200 Subject: [ci skip] Add an empty line to PR #4962 patch --- system/database/drivers/oci8/oci8_forge.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 70fc5c4db..867a94341 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -126,6 +126,7 @@ class CI_DB_oci8_forge extends CI_DB_forge { $sqls[] = $sql.' RENAME COLUMN '.$this->db->escape_identifiers($field[$i]['name']) .' '.$this->db->escape_identifiers($field[$i]['new_name']); } + $field[$i] = "\n\t".$field[$i]['_literal']; } } -- cgit v1.2.3-24-g4f1b From bda2efd42e8896c03d6a95591a6d77bcb761ce26 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 6 Jan 2017 12:37:30 +0200 Subject: Add valid_mac() FV rule Close #3992 --- system/language/english/form_validation_lang.php | 1 + system/libraries/Form_validation.php | 25 ++++++++++++++++++++++ .../codeigniter/libraries/Form_validation_test.php | 15 +++++++++++-- user_guide_src/source/changelog.rst | 1 + .../source/libraries/form_validation.rst | 1 + 5 files changed, 41 insertions(+), 2 deletions(-) diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index aa9ff330b..357f747ce 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -43,6 +43,7 @@ $lang['form_validation_valid_email'] = 'The {field} field must contain a valid $lang['form_validation_valid_emails'] = 'The {field} field must contain all valid email addresses.'; $lang['form_validation_valid_url'] = 'The {field} field must contain a valid URL.'; $lang['form_validation_valid_ip'] = 'The {field} field must contain a valid IP.'; +$lang['form_validation_valid_mac'] = 'The {field} field must contain a valid MAC.'; $lang['form_validation_min_length'] = 'The {field} field must be at least {param} characters in length.'; $lang['form_validation_max_length'] = 'The {field} field cannot exceed {param} characters in length.'; $lang['form_validation_exact_length'] = 'The {field} field must be exactly {param} characters in length.'; diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 6f654deb4..11f98f2a9 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1283,6 +1283,31 @@ class CI_Form_validation { // -------------------------------------------------------------------- + /** + * Validate MAC address + * + * @param string $mac + * @return bool + */ + public function valid_mac($mac) + { + if ( ! is_php('5.5')) + { + // Most common format, with either dash or colon delimiters + if (preg_match('#\A[0-9a-f]{2}(?[:-])([0-9a-f]{2}((?P=delimiter)|\z)){5}#i', $mac)) + { + return TRUE; + } + + // The less common format; e.g. 0123.4567.89ab + return (bool) preg_match('#((\A|\.)[0-9a-f]{4}){3}\z#i', $mac); + } + + return (bool) filter_var($mac, FILTER_VALIDATE_MAC); + } + + // -------------------------------------------------------------------- + /** * Alpha * diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index edbe9da4a..035410724 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -268,7 +268,6 @@ class Form_validation_test extends CI_TestCase { public function test_rule_valid_email() { $this->assertTrue($this->form_validation->valid_email('email@sample.com')); - $this->assertFalse($this->form_validation->valid_email('valid_email', '@sample.com')); } @@ -294,10 +293,22 @@ class Form_validation_test extends CI_TestCase { $this->assertFalse($this->form_validation->valid_ip('127.0.0.259')); } + public function test_rule_valid_mac() + { + $this->assertTrue($this->form_validation->valid_mac("01-23-45-67-89-aB")); + $this->assertTrue($this->form_validation->valid_mac("01:23:45:67:89:aB")); + $this->assertTrue($this->form_validation->valid_mac("0123.4567.89aB")); + + $this->assertFalse($this->form_validation->valid_mac("-01-23-45-67-89-ab")); + $this->assertFalse($this->form_validation->valid_mac("01:23:45:67:89:ab:")); + $this->assertFalse($this->form_validation->valid_mac("01:23:45:67:89:ab\n")); + $this->assertFalse($this->form_validation->valid_mac("01:23:45:67:89:ag:")); + $this->assertFalse($this->form_validation->valid_mac('0123456789ab')); + } + public function test_rule_valid_base64() { $this->assertTrue($this->form_validation->valid_base64(base64_encode('string'))); - $this->assertFalse($this->form_validation->valid_base64('FA08GG')); } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index a8467dcf1..e83ad41ad 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -45,6 +45,7 @@ Release Date: Not Released - Removed previously deprecated method ``prep_for_form()`` / rule *prep_for_form*. - Changed method ``set_rules()`` to throw a ``BadMethodCallException`` when its first parameter is not an array and the ``$rules`` one is unused. + - Added rule **valid_mac**, which replicates PHP's native ``filter_var()`` with ``FILTER_VALIDATE_MAC``. - :doc:`HTML Table Library ` changes include: diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 915ce876f..65fd9acc8 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -987,6 +987,7 @@ Rule Parameter Description **valid_emails** No Returns FALSE if any value provided in a comma separated list is not a valid email. **valid_ip** No Returns FALSE if the supplied IP is not valid. Accepts an optional parameter of 'ipv4' or 'ipv6' to specify an IP format. +**valid_mac** No Returns FALSE if the supplied MAC address is not valid. **valid_base64** No Returns FALSE if the supplied string contains anything other than valid Base64 characters. ========================= ========== ============================================================================================= ======================= -- cgit v1.2.3-24-g4f1b From cd78f072773bc670eb8ec13f2a3bff1d926d7b61 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 6 Jan 2017 12:50:58 +0200 Subject: [ci skip] A cosmetic change to the PR #4251 --- system/helpers/captcha_helper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 442a915ef..a79904c35 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -68,6 +68,7 @@ if ( ! function_exists('create_captcha')) 'img_url' => '', 'img_width' => '150', 'img_height' => '30', + 'img_alt' => 'captcha' 'font_path' => '', 'expiration' => 7200, 'word_length' => 8, @@ -79,8 +80,7 @@ if ( ! function_exists('create_captcha')) 'border' => array(153,102,102), 'text' => array(204,153,153), 'grid' => array(255,182,182) - ), - 'img_alt' => 'captcha' + ) ); foreach ($defaults as $key => $val) -- cgit v1.2.3-24-g4f1b From a8092d42d6f8e08acbe077a565c0fc8da1cb9653 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 6 Jan 2017 12:52:56 +0200 Subject: [ci skip] Add changelog entry for PR #4251 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index e83ad41ad..e63d3874b 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -74,6 +74,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - Added new function :php:func:`ordinal_format()` to :doc:`Inflector Helper `. + - Added 'img_alt' option to :php:func`create_captcha()` :doc:`CAPTCHA Helper` with a default value of 'captcha'. - Updated :doc:`Download Helper ` :php:func:`force_download()` to allow existing files to be renamed for download. - :doc:`String Helper ` changes include: -- cgit v1.2.3-24-g4f1b From 383a5f650511437bb2b591bc74924b0b33687f09 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 6 Jan 2017 13:05:57 +0200 Subject: Fix FV's valid_mac() on PHP 5.4 --- system/libraries/Form_validation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 11f98f2a9..7be0b949d 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1294,7 +1294,7 @@ class CI_Form_validation { if ( ! is_php('5.5')) { // Most common format, with either dash or colon delimiters - if (preg_match('#\A[0-9a-f]{2}(?[:-])([0-9a-f]{2}((?P=delimiter)|\z)){5}#i', $mac)) + if (preg_match('#\A[0-9a-f]{2}(?[:-])([0-9a-f]{2}(?P=delimiter)){4}[0-9a-f]{2}\z#i', $mac)) { return TRUE; } -- cgit v1.2.3-24-g4f1b From 79fad9b16fca72f6c15913dd5296400f19136576 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 6 Jan 2017 13:57:13 +0200 Subject: [ci skip] Add changelog entry for PR #4825 --- user_guide_src/source/changelog.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index e63d3874b..ed814aa22 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -75,7 +75,11 @@ Release Date: Not Released - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - Added new function :php:func:`ordinal_format()` to :doc:`Inflector Helper `. - Added 'img_alt' option to :php:func`create_captcha()` :doc:`CAPTCHA Helper` with a default value of 'captcha'. - - Updated :doc:`Download Helper ` :php:func:`force_download()` to allow existing files to be renamed for download. + + - :doc:`Download Helper ` changes include: + + - Updated :php:func:`force_download()` to allow existing files to be renamed for download. + - Updated :php:func:`force_download()` to better utilize available server memory. - :doc:`String Helper ` changes include: -- cgit v1.2.3-24-g4f1b From 9c07c3697bab0bf43e10daf59068497dd3a0a9fd Mon Sep 17 00:00:00 2001 From: Chris Faulkner Date: Tue, 10 Jan 2017 16:02:40 +1030 Subject: Fix Undefined variable: object error Change the undefined variable $object to $vars when calling get_object_vars(). This fixes an error when passing an object to a view. --- system/core/Loader.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 17ff2362c..acfc739dd 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -1368,7 +1368,7 @@ class CI_Loader { * Prepare variables for _ci_vars, to be later extract()-ed inside views * * Converts objects to associative arrays and filters-out internal - * variable names (i.e. keys prexied with '_ci_'). + * variable names (i.e. keys prefixed with '_ci_'). * * @param mixed $vars * @return array @@ -1378,7 +1378,7 @@ class CI_Loader { if ( ! is_array($vars)) { $vars = is_object($vars) - ? get_object_vars($object) + ? get_object_vars($vars) : array(); } -- cgit v1.2.3-24-g4f1b From e82d91b0b322b4770441d00480d908be959ac175 Mon Sep 17 00:00:00 2001 From: Fabio Spampinato Date: Wed, 11 Jan 2017 15:27:45 +0100 Subject: Fixed regex used for loading helpers We want to exactly match a dot, so we have to escape it. I found the bug because in my project I load an helper named `session_php_helper.php`, so the `_php` part gets removed and the `session_helper.php` helper gets loaded instead, this way not even an error was shown. --- system/core/Loader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index e9813a7c9..7279e8833 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -590,7 +590,7 @@ class CI_Loader { { $filename = basename($helper); $filepath = ($filename === $helper) ? '' : substr($helper, 0, strlen($helper) - strlen($filename)); - $filename = strtolower(preg_replace('#(_helper)?(.php)?$#i', '', $filename)).'_helper'; + $filename = strtolower(preg_replace('#(_helper)?(\.php)?$#i', '', $filename)).'_helper'; $helper = $filepath.$filename; if (isset($this->_ci_helpers[$helper])) -- cgit v1.2.3-24-g4f1b From f41b4e33d1d5fe8d17b3d572b9676b0fdfedc8f7 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 16 Jan 2017 12:03:38 +0200 Subject: [ci skip] Fix #4985 --- system/helpers/captcha_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index a79904c35..f98d8a4cd 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -68,7 +68,7 @@ if ( ! function_exists('create_captcha')) 'img_url' => '', 'img_width' => '150', 'img_height' => '30', - 'img_alt' => 'captcha' + 'img_alt' => 'captcha', 'font_path' => '', 'expiration' => 7200, 'word_length' => 8, -- cgit v1.2.3-24-g4f1b From 24fedeb2075194f0da475f45f400a0866d9577f9 Mon Sep 17 00:00:00 2001 From: klemens Date: Mon, 16 Jan 2017 21:01:58 +0100 Subject: spelling fixes --- system/core/Common.php | 2 +- system/core/Security.php | 2 +- system/database/DB_driver.php | 2 +- system/database/DB_query_builder.php | 4 ++-- system/database/drivers/cubrid/cubrid_driver.php | 4 ++-- system/database/drivers/ibase/ibase_driver.php | 2 +- system/database/drivers/mssql/mssql_driver.php | 2 +- system/database/drivers/mysql/mysql_driver.php | 4 ++-- system/database/drivers/mysqli/mysqli_driver.php | 2 +- system/database/drivers/oci8/oci8_driver.php | 2 +- system/database/drivers/odbc/odbc_driver.php | 4 ++-- system/database/drivers/pdo/pdo_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php | 2 +- system/database/drivers/postgre/postgre_driver.php | 4 ++-- system/database/drivers/postgre/postgre_forge.php | 2 +- system/database/drivers/sqlite3/sqlite3_driver.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_driver.php | 2 +- system/libraries/Cache/drivers/Cache_memcached.php | 2 +- system/libraries/Ftp.php | 2 +- system/libraries/Pagination.php | 2 +- system/libraries/Typography.php | 2 +- system/libraries/Xmlrpc.php | 2 +- tests/codeigniter/helpers/date_helper_test.php | 2 +- user_guide_src/source/database/queries.rst | 2 +- user_guide_src/source/database/transactions.rst | 2 +- user_guide_src/source/general/common_functions.rst | 2 +- user_guide_src/source/helpers/date_helper.rst | 2 +- user_guide_src/source/helpers/string_helper.rst | 2 +- user_guide_src/source/installation/upgrade_300.rst | 2 +- user_guide_src/source/installation/upgrade_313.rst | 2 +- user_guide_src/source/installation/upgrade_320.rst | 2 +- user_guide_src/source/libraries/config.rst | 2 +- user_guide_src/source/libraries/email.rst | 4 ++-- user_guide_src/source/libraries/encryption.rst | 2 +- user_guide_src/source/libraries/ftp.rst | 2 +- user_guide_src/source/libraries/input.rst | 4 ++-- user_guide_src/source/libraries/pagination.rst | 2 +- user_guide_src/source/libraries/sessions.rst | 2 +- user_guide_src/source/libraries/trackback.rst | 2 +- 40 files changed, 49 insertions(+), 49 deletions(-) diff --git a/system/core/Common.php b/system/core/Common.php index d3ffaf0cd..2712df0e4 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -826,7 +826,7 @@ if ( ! function_exists('function_usable')) * terminate script execution if a disabled function is executed. * * The above described behavior turned out to be a bug in Suhosin, - * but even though a fix was commited for 0.9.34 on 2012-02-12, + * but even though a fix was committed for 0.9.34 on 2012-02-12, * that version is yet to be released. This function will therefore * be just temporary, but would probably be kept for a few years. * diff --git a/system/core/Security.php b/system/core/Security.php index 1c398632d..0fa2531b2 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -847,7 +847,7 @@ class CI_Security { // Each iteration filters a single attribute do { - // Strip any non-alpha characters that may preceed an attribute. + // Strip any non-alpha characters that may preced an attribute. // Browsers often parse these incorrectly and that has been a // of numerous XSS issues we've had. $matches['attributes'] = preg_replace('#^[^a-z]+#i', '', $matches['attributes']); diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index d6e9a7df3..161e0e225 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -1111,7 +1111,7 @@ abstract class CI_DB_driver { // -------------------------------------------------------------------- /** - * Platform-dependant string escape + * Platform-dependent string escape * * @param string * @return string diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index ab19d97a2..74eb015e4 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -2441,7 +2441,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * * Escapes identifiers in GROUP BY statements at execution time. * - * Required so that aliases are tracked properly, regardless of wether + * Required so that aliases are tracked properly, regardless of whether * group_by() is called prior to from(), join() and dbprefix is added * only if needed. * @@ -2477,7 +2477,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * * Escapes identifiers in ORDER BY statements at execution time. * - * Required so that aliases are tracked properly, regardless of wether + * Required so that aliases are tracked properly, regardless of whether * order_by() is called prior to from(), join() and dbprefix is added * only if needed. * diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php index 257925d88..6e8aff7c6 100644 --- a/system/database/drivers/cubrid/cubrid_driver.php +++ b/system/database/drivers/cubrid/cubrid_driver.php @@ -250,7 +250,7 @@ class CI_DB_cubrid_driver extends CI_DB { // -------------------------------------------------------------------- /** - * Platform-dependant string escape + * Platform-dependent string escape * * @param string * @return string @@ -361,7 +361,7 @@ class CI_DB_cubrid_driver extends CI_DB { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/database/drivers/ibase/ibase_driver.php b/system/database/drivers/ibase/ibase_driver.php index 106d5efac..fea3bfe52 100644 --- a/system/database/drivers/ibase/ibase_driver.php +++ b/system/database/drivers/ibase/ibase_driver.php @@ -294,7 +294,7 @@ class CI_DB_ibase_driver extends CI_DB { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php index 7709c37bb..a490d206c 100644 --- a/system/database/drivers/mssql/mssql_driver.php +++ b/system/database/drivers/mssql/mssql_driver.php @@ -340,7 +340,7 @@ class CI_DB_mssql_driver extends CI_DB { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php index 6e445cf72..3a7fc9812 100644 --- a/system/database/drivers/mysql/mysql_driver.php +++ b/system/database/drivers/mysql/mysql_driver.php @@ -336,7 +336,7 @@ class CI_DB_mysql_driver extends CI_DB { // -------------------------------------------------------------------- /** - * Platform-dependant string escape + * Platform-dependent string escape * * @param string * @return string @@ -447,7 +447,7 @@ class CI_DB_mysql_driver extends CI_DB { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index 8c1b99caa..290101153 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -375,7 +375,7 @@ class CI_DB_mysqli_driver extends CI_DB { // -------------------------------------------------------------------- /** - * Platform-dependant string escape + * Platform-dependent string escape * * @param string * @return string diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index c7f033019..fb2f6b31b 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -553,7 +553,7 @@ class CI_DB_oci8_driver extends CI_DB { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php index 9f5a86fa0..ed44412c1 100644 --- a/system/database/drivers/odbc/odbc_driver.php +++ b/system/database/drivers/odbc/odbc_driver.php @@ -309,7 +309,7 @@ class CI_DB_odbc_driver extends CI_DB_driver { // -------------------------------------------------------------------- /** - * Platform-dependant string escape + * Platform-dependent string escape * * @param string * @return string @@ -402,7 +402,7 @@ class CI_DB_odbc_driver extends CI_DB_driver { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index d816dcb64..6afc999c2 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -223,7 +223,7 @@ class CI_DB_pdo_driver extends CI_DB { // -------------------------------------------------------------------- /** - * Platform-dependant string escape + * Platform-dependent string escape * * @param string * @return string @@ -285,7 +285,7 @@ class CI_DB_pdo_driver extends CI_DB { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php index f4a2f08f3..5a492d881 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php @@ -161,7 +161,7 @@ class CI_DB_pdo_odbc_driver extends CI_DB_pdo_driver { // -------------------------------------------------------------------- /** - * Platform-dependant string escape + * Platform-dependent string escape * * @param string * @return string diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php index 18e399dac..b00af4ad0 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -168,7 +168,7 @@ class CI_DB_pdo_pgsql_forge extends CI_DB_pdo_forge { */ protected function _attr_type(&$attributes) { - // Reset field lenghts for data types that don't support it + // Reset field lengths for data types that don't support it if (isset($attributes['CONSTRAINT']) && stripos($attributes['TYPE'], 'int') !== FALSE) { $attributes['CONSTRAINT'] = NULL; diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php index 058a8044c..75b1d4c37 100644 --- a/system/database/drivers/postgre/postgre_driver.php +++ b/system/database/drivers/postgre/postgre_driver.php @@ -293,7 +293,7 @@ class CI_DB_postgre_driver extends CI_DB { // -------------------------------------------------------------------- /** - * Platform-dependant string escape + * Platform-dependent string escape * * @param string * @return string @@ -465,7 +465,7 @@ class CI_DB_postgre_driver extends CI_DB { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php index f7bbf7441..cdbff4c4b 100644 --- a/system/database/drivers/postgre/postgre_forge.php +++ b/system/database/drivers/postgre/postgre_forge.php @@ -163,7 +163,7 @@ class CI_DB_postgre_forge extends CI_DB_forge { */ protected function _attr_type(&$attributes) { - // Reset field lenghts for data types that don't support it + // Reset field lengths for data types that don't support it if (isset($attributes['CONSTRAINT']) && stripos($attributes['TYPE'], 'int') !== FALSE) { $attributes['CONSTRAINT'] = NULL; diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php index 2d78a0f8a..d131baad7 100644 --- a/system/database/drivers/sqlite3/sqlite3_driver.php +++ b/system/database/drivers/sqlite3/sqlite3_driver.php @@ -168,7 +168,7 @@ class CI_DB_sqlite3_driver extends CI_DB { // -------------------------------------------------------------------- /** - * Platform-dependant string escape + * Platform-dependent string escape * * @param string * @return string @@ -291,7 +291,7 @@ class CI_DB_sqlite3_driver extends CI_DB { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php index 10aad115f..e4f403180 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_driver.php +++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php @@ -358,7 +358,7 @@ class CI_DB_sqlsrv_driver extends CI_DB { * Error * * Returns an array containing code and message of the last - * database error that has occured. + * database error that has occurred. * * @return array */ diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 73584278d..4836b6aed 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -122,7 +122,7 @@ class CI_Cache_memcached extends CI_Driver { if ($this->_memcached instanceof Memcache) { - // Third parameter is persistance and defaults to TRUE. + // Third parameter is persistence and defaults to TRUE. $this->_memcached->addServer( $cache_server['hostname'], $cache_server['port'], diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php index ac960a419..86e5b8f33 100644 --- a/system/libraries/Ftp.php +++ b/system/libraries/Ftp.php @@ -486,7 +486,7 @@ class CI_FTP { { for ($i = 0, $c = count($list); $i < $c; $i++) { - // If we can't delete the item it's probaly a directory, + // If we can't delete the item it's probably a directory, // so we'll recursively call delete_dir() if ( ! preg_match('#/\.\.?$#', $list[$i]) && ! @ftp_delete($this->conn_id, $list[$i])) { diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 1df5f9cd5..f26f8a4ed 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -428,7 +428,7 @@ class CI_Pagination { { $get = $this->CI->input->get(); - // Unset the controll, method, old-school routing options + // Unset the control, method, old-school routing options unset($get['c'], $get['m'], $get[$this->query_string_segment]); } else diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php index ce31ba317..b25d8fdaa 100644 --- a/system/libraries/Typography.php +++ b/system/libraries/Typography.php @@ -241,7 +241,7 @@ class CI_Typography { // Clean up stray paragraph tags that appear before block level elements '#

      <('.$this->block_elements.')#' => '<$1', - // Clean up stray non-breaking spaces preceeding block elements + // Clean up stray non-breaking spaces preceding block elements '#( \s*)+<('.$this->block_elements.')#' => ' <$2', // Replace the temporary markers we added earlier diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 7af96c233..e025c4508 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -238,7 +238,7 @@ class CI_Xmlrpc { public $result; /** - * XML-RPC Reponse + * XML-RPC Response * * @var array */ diff --git a/tests/codeigniter/helpers/date_helper_test.php b/tests/codeigniter/helpers/date_helper_test.php index 00139de5c..8d0317dcb 100644 --- a/tests/codeigniter/helpers/date_helper_test.php +++ b/tests/codeigniter/helpers/date_helper_test.php @@ -196,7 +196,7 @@ class Date_helper_test extends CI_TestCase { } $this->assertArrayHasKey('UP3', timezones()); - $this->assertEquals(0, timezones('non_existant')); + $this->assertEquals(0, timezones('non_existent')); } // ------------------------------------------------------------------------ diff --git a/user_guide_src/source/database/queries.rst b/user_guide_src/source/database/queries.rst index d4ffd16cf..f626f1e83 100644 --- a/user_guide_src/source/database/queries.rst +++ b/user_guide_src/source/database/queries.rst @@ -165,7 +165,7 @@ Handling Errors **$this->db->error();** -If you need to get the last error that has occured, the error() method +If you need to get the last error that has occurred, the error() method will return an array containing its code and message. Here's a quick example:: diff --git a/user_guide_src/source/database/transactions.rst b/user_guide_src/source/database/transactions.rst index e25b8ed14..cfd6a566d 100644 --- a/user_guide_src/source/database/transactions.rst +++ b/user_guide_src/source/database/transactions.rst @@ -87,7 +87,7 @@ If you would like to disable transactions you can do so using $this->db->query('AN SQL QUERY...'); $this->db->trans_complete(); -When transactions are disabled, your queries will be auto-commited, just as +When transactions are disabled, your queries will be auto-committed, just as they are when running queries without transactions, practically ignoring any calls to ``trans_start()``, ``trans_complete()``, etc. diff --git a/user_guide_src/source/general/common_functions.rst b/user_guide_src/source/general/common_functions.rst index 602a6c763..77b0df14e 100644 --- a/user_guide_src/source/general/common_functions.rst +++ b/user_guide_src/source/general/common_functions.rst @@ -101,7 +101,7 @@ loading any libraries or helpers. .. php:function:: set_status_header($code[, $text = '']) - :param int $code: HTTP Reponse status code + :param int $code: HTTP Response status code :param string $text: A custom message to set with the status code :rtype: void diff --git a/user_guide_src/source/helpers/date_helper.rst b/user_guide_src/source/helpers/date_helper.rst index 909528855..2f44cb923 100644 --- a/user_guide_src/source/helpers/date_helper.rst +++ b/user_guide_src/source/helpers/date_helper.rst @@ -31,7 +31,7 @@ The following functions are available: :rtype: int Returns the current time as a UNIX timestamp, referenced either to your server's - local time or any PHP suported timezone, based on the "time reference" setting + local time or any PHP supported timezone, based on the "time reference" setting in your config file. If you do not intend to set your master time reference to any other PHP supported timezone (which you'll typically do if you run a site that lets each user set their own timezone settings) there is no benefit to using diff --git a/user_guide_src/source/helpers/string_helper.rst b/user_guide_src/source/helpers/string_helper.rst index d697d824b..7a45dc95b 100644 --- a/user_guide_src/source/helpers/string_helper.rst +++ b/user_guide_src/source/helpers/string_helper.rst @@ -151,7 +151,7 @@ The following functions are available: :returns: Reduced string :rtype: string - Reduces multiple instances of a particular character occuring directly + Reduces multiple instances of a particular character occurring directly after each other. Example:: $string = "Fred, Bill,, Joe, Jimmy"; diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index 7b9082679..4e2ff8ab2 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -111,7 +111,7 @@ that you should make: - Set your ``$config['sess_driver']`` value - It will default to 'files', unles you've previously used + It will default to 'files', unless you've previously used ``$config['sess_use_database']``, in which case it will be set to 'database'. diff --git a/user_guide_src/source/installation/upgrade_313.rst b/user_guide_src/source/installation/upgrade_313.rst index 76dd159e6..13af775a1 100644 --- a/user_guide_src/source/installation/upgrade_313.rst +++ b/user_guide_src/source/installation/upgrade_313.rst @@ -35,7 +35,7 @@ Step 3: Remove usage of $config['standardize_newlines'] ======================================================= The :doc:`Input Library <../libraries/input>` would optionally replace -occurences of `\r\n`, `\r`, `\n` in input data with whatever the ``PHP_EOL`` +occurrences of `\r\n`, `\r`, `\n` in input data with whatever the ``PHP_EOL`` value is on your system - if you've set ``$config['standardize_newlines']`` to ``TRUE`` in your *application/config/config.php*. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 95d9aab4d..18f8717f8 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -118,7 +118,7 @@ default, and required explicitly setting the **validate** option to ``TRUE`` in order to enable it. Naturally, a validity check should not result in any problems, but this is -technically a backwards-compability break and you should check that +technically a backwards-compatibility break and you should check that everything works fine. If something indeed goes wrong with that, please report it as a bug to us, and you can disable the **validate** option to revert to the old behavior. diff --git a/user_guide_src/source/libraries/config.rst b/user_guide_src/source/libraries/config.rst index 7398329c3..2431abf93 100644 --- a/user_guide_src/source/libraries/config.rst +++ b/user_guide_src/source/libraries/config.rst @@ -211,7 +211,7 @@ Class Reference .. php:method:: load([$file = ''[, $use_sections = FALSE[, $fail_gracefully = FALSE]]]) :param string $file: Configuration file name - :param bool $use_sections: Whether config values shoud be loaded into their own section (index of the main config array) + :param bool $use_sections: Whether config values should be loaded into their own section (index of the main config array) :param bool $fail_gracefully: Whether to return FALSE or to display an error message :returns: TRUE on success, FALSE on failure :rtype: bool diff --git a/user_guide_src/source/libraries/email.rst b/user_guide_src/source/libraries/email.rst index 253d85c71..bd416ba3b 100644 --- a/user_guide_src/source/libraries/email.rst +++ b/user_guide_src/source/libraries/email.rst @@ -348,7 +348,7 @@ Class Reference $this->email->attach('http://example.com/filename.pdf'); - If you'd like to use a custom file name, you can use the third paramater:: + If you'd like to use a custom file name, you can use the third parameter:: $this->email->attach('filename.pdf', 'attachment', 'report.pdf'); @@ -387,7 +387,7 @@ Class Reference :rtype: string Returns a string containing any server messages, the email headers, and - the email messsage. Useful for debugging. + the email message. Useful for debugging. You can optionally specify which parts of the message should be printed. Valid options are: **headers**, **subject**, **body**. diff --git a/user_guide_src/source/libraries/encryption.rst b/user_guide_src/source/libraries/encryption.rst index 377e650a9..b16511d4d 100644 --- a/user_guide_src/source/libraries/encryption.rst +++ b/user_guide_src/source/libraries/encryption.rst @@ -382,7 +382,7 @@ the hood: #. Check if the string is long enough, separate the HMAC out of it and validate if it is correct (this is done in a way that - prevents timing attacks agains it). Return FALSE if either of + prevents timing attacks against it). Return FALSE if either of the checks fails. #. Base64-decode the string. diff --git a/user_guide_src/source/libraries/ftp.rst b/user_guide_src/source/libraries/ftp.rst index ddd4442fd..2a015256d 100644 --- a/user_guide_src/source/libraries/ftp.rst +++ b/user_guide_src/source/libraries/ftp.rst @@ -2,7 +2,7 @@ FTP Class ######### -CodeIgniter's FTP Class permits files to be transfered to a remote +CodeIgniter's FTP Class permits files to be transferred to a remote server. Remote files can also be moved, renamed, and deleted. The FTP class also includes a "mirroring" function that permits an entire local directory to be recreated remotely via FTP. diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index aee39584a..8a0b5f286 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -124,7 +124,7 @@ Class Reference $this->input->post(array('field1', 'field2')); - Same rule applied here, to retrive the parameters with XSS filtering enabled, set the + Same rule applied here, to retrieve the parameters with XSS filtering enabled, set the second parameter to boolean TRUE. :: @@ -157,7 +157,7 @@ Class Reference $this->input->get(array('field1', 'field2')); - Same rule applied here, to retrive the parameters with XSS filtering enabled, set the + Same rule applied here, to retrieve the parameters with XSS filtering enabled, set the second parameter to boolean TRUE. :: diff --git a/user_guide_src/source/libraries/pagination.rst b/user_guide_src/source/libraries/pagination.rst index 913717c67..99b5a80a2 100644 --- a/user_guide_src/source/libraries/pagination.rst +++ b/user_guide_src/source/libraries/pagination.rst @@ -101,7 +101,7 @@ like:: If you have ``$config['enable_query_strings']`` set to TRUE your links will automatically be re-written using Query Strings. This option can -also be explictly set. Using ``$config['page_query_string']`` set to TRUE, +also be explicitly set. Using ``$config['page_query_string']`` set to TRUE, the pagination link will become:: http://example.com/index.php?c=test&m=page&per_page=20 diff --git a/user_guide_src/source/libraries/sessions.rst b/user_guide_src/source/libraries/sessions.rst index a95cd5a19..b1f658d8f 100644 --- a/user_guide_src/source/libraries/sessions.rst +++ b/user_guide_src/source/libraries/sessions.rst @@ -471,7 +471,7 @@ Preference Default Description .. note:: The 'cookie_httponly' setting doesn't have an effect on sessions. Instead the HttpOnly parameter is always enabled, for security - reasons. Additionaly, the 'cookie_prefix' setting is completely + reasons. Additionally, the 'cookie_prefix' setting is completely ignored. Session Drivers diff --git a/user_guide_src/source/libraries/trackback.rst b/user_guide_src/source/libraries/trackback.rst index bceb515f2..dc4477e9f 100644 --- a/user_guide_src/source/libraries/trackback.rst +++ b/user_guide_src/source/libraries/trackback.rst @@ -262,7 +262,7 @@ Class Reference :returns: Data value or empty string if not found :rtype: string - Returns a single item from the reponse data array. + Returns a single item from the response data array. .. php:method:: process($url, $data) -- cgit v1.2.3-24-g4f1b From e75b6de1be5872ad11543bb2b3691a7d9fd624e4 Mon Sep 17 00:00:00 2001 From: klemens Date: Mon, 16 Jan 2017 21:47:20 +0100 Subject: spelling fixes(1) --- system/core/Security.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Security.php b/system/core/Security.php index 0fa2531b2..4ad550fff 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -847,7 +847,7 @@ class CI_Security { // Each iteration filters a single attribute do { - // Strip any non-alpha characters that may preced an attribute. + // Strip any non-alpha characters that may precede an attribute. // Browsers often parse these incorrectly and that has been a // of numerous XSS issues we've had. $matches['attributes'] = preg_replace('#^[^a-z]+#i', '', $matches['attributes']); -- cgit v1.2.3-24-g4f1b From 1f4df78b5fae3251b9c0c5617946ab959cad4cd2 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 17 Jan 2017 15:07:09 +0800 Subject: Add aliased tables cache. Signed-off-by: tianhe1986 --- system/database/DB_query_builder.php | 40 +++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index ab19d97a2..407b0d5d8 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -214,6 +214,13 @@ abstract class CI_DB_query_builder extends CI_DB_driver { */ protected $qb_cache_join = array(); + /** + * QB Cache aliased tables list data + * + * @var array + */ + protected $qb_cache_aliased_tables = array(); + /** * QB Cache WHERE data * @@ -2284,6 +2291,11 @@ abstract class CI_DB_query_builder extends CI_DB_driver { if ( ! in_array($table, $this->qb_aliased_tables)) { $this->qb_aliased_tables[] = $table; + if ($this->qb_caching === TRUE && ! in_array($table, $this->qb_cache_aliased_tables)) + { + $this->qb_cache_aliased_tables[] = $table; + $this->qb_cache_exists[] = 'aliased_tables'; + } } } } @@ -2616,16 +2628,17 @@ abstract class CI_DB_query_builder extends CI_DB_driver { public function flush_cache() { $this->_reset_run(array( - 'qb_cache_select' => array(), - 'qb_cache_from' => array(), - 'qb_cache_join' => array(), - 'qb_cache_where' => array(), - 'qb_cache_groupby' => array(), - 'qb_cache_having' => array(), - 'qb_cache_orderby' => array(), - 'qb_cache_set' => array(), - 'qb_cache_exists' => array(), - 'qb_cache_no_escape' => array() + 'qb_cache_select' => array(), + 'qb_cache_from' => array(), + 'qb_cache_join' => array(), + 'qb_cache_aliased_tables' => array(), + 'qb_cache_where' => array(), + 'qb_cache_groupby' => array(), + 'qb_cache_having' => array(), + 'qb_cache_orderby' => array(), + 'qb_cache_set' => array(), + 'qb_cache_exists' => array(), + 'qb_cache_no_escape' => array() )); return $this; @@ -2676,13 +2689,6 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $this->qb_no_escape = $qb_no_escape; } } - - // If we are "protecting identifiers" we need to examine the "from" - // portion of the query to determine if there are any aliases - if ($this->_protect_identifiers === TRUE && count($this->qb_cache_from) > 0) - { - $this->_track_aliases($this->qb_from); - } } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 8d4af96a727140d49ffdb0ca05d2d154f3278e22 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 17 Jan 2017 18:36:14 +0800 Subject: 1 Keep just 'list'. 2 Using strict mode with in_array(). 3 Do not re-align. Signed-off-by: tianhe1986 --- system/database/DB_query_builder.php | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 407b0d5d8..395f7c19b 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -215,7 +215,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { protected $qb_cache_join = array(); /** - * QB Cache aliased tables list data + * QB Cache aliased tables list * * @var array */ @@ -2288,10 +2288,10 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $table = trim(strrchr($table, ' ')); // Store the alias, if it doesn't already exist - if ( ! in_array($table, $this->qb_aliased_tables)) + if ( ! in_array($table, $this->qb_aliased_tables, TRUE)) { $this->qb_aliased_tables[] = $table; - if ($this->qb_caching === TRUE && ! in_array($table, $this->qb_cache_aliased_tables)) + if ($this->qb_caching === TRUE && ! in_array($table, $this->qb_cache_aliased_tables, TRUE)) { $this->qb_cache_aliased_tables[] = $table; $this->qb_cache_exists[] = 'aliased_tables'; @@ -2628,17 +2628,17 @@ abstract class CI_DB_query_builder extends CI_DB_driver { public function flush_cache() { $this->_reset_run(array( - 'qb_cache_select' => array(), - 'qb_cache_from' => array(), - 'qb_cache_join' => array(), + 'qb_cache_select' => array(), + 'qb_cache_from' => array(), + 'qb_cache_join' => array(), + 'qb_cache_where' => array(), + 'qb_cache_groupby' => array(), + 'qb_cache_having' => array(), + 'qb_cache_orderby' => array(), + 'qb_cache_set' => array(), + 'qb_cache_exists' => array(), + 'qb_cache_no_escape' => array(), 'qb_cache_aliased_tables' => array(), - 'qb_cache_where' => array(), - 'qb_cache_groupby' => array(), - 'qb_cache_having' => array(), - 'qb_cache_orderby' => array(), - 'qb_cache_set' => array(), - 'qb_cache_exists' => array(), - 'qb_cache_no_escape' => array() )); return $this; -- cgit v1.2.3-24-g4f1b From b044cc3aa55de4c54f6c28b0ad90f4a8534b5c72 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 17 Jan 2017 18:38:23 +0800 Subject: Format fix。 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: tianhe1986 --- system/database/DB_query_builder.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 395f7c19b..09a4228bf 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -2630,7 +2630,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $this->_reset_run(array( 'qb_cache_select' => array(), 'qb_cache_from' => array(), - 'qb_cache_join' => array(), + 'qb_cache_join' => array(), 'qb_cache_where' => array(), 'qb_cache_groupby' => array(), 'qb_cache_having' => array(), @@ -2638,7 +2638,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { 'qb_cache_set' => array(), 'qb_cache_exists' => array(), 'qb_cache_no_escape' => array(), - 'qb_cache_aliased_tables' => array(), + 'qb_cache_aliased_tables' => array() )); return $this; -- cgit v1.2.3-24-g4f1b From 01b6bc80595cc7804ca7a7b50044261b5fd13e78 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Sat, 21 Jan 2017 17:00:13 +0800 Subject: Also convert single quotes. Signed-off-by: tianhe1986 --- system/libraries/Profiler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index e9e03cfe0..c1fa5a081 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -490,7 +490,7 @@ class CI_Profiler { } $output .= '' - .$config.'  '.htmlspecialchars($val)."\n"; + .$config.'  '.htmlspecialchars($val, ENT_QUOTES, config_item('charset'))."\n"; } return $output."\n"; @@ -522,7 +522,7 @@ class CI_Profiler { } $output .= '' - .$key.'  '.htmlspecialchars($val)."\n"; + .$key.'  '.htmlspecialchars($val, ENT_QUOTES, config_item('charset'))."\n"; } return $output."\n"; -- cgit v1.2.3-24-g4f1b From 645e8a1e149f4eaada166af0f22f5cd6a6d6860f Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Sat, 21 Jan 2017 17:02:14 +0800 Subject: Close
       tag.
      
      Signed-off-by: tianhe1986 
      ---
       system/libraries/Profiler.php | 6 +++---
       1 file changed, 3 insertions(+), 3 deletions(-)
      
      diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php
      index c1fa5a081..9ea09a529 100644
      --- a/system/libraries/Profiler.php
      +++ b/system/libraries/Profiler.php
      @@ -316,7 +316,7 @@ class CI_Profiler {
       			{
       				is_int($key) OR $key = "'".htmlspecialchars($key, ENT_QUOTES, config_item('charset'))."'";
       				$val = (is_array($val) OR is_object($val))
      -					? '
      '.htmlspecialchars(print_r($val, TRUE), ENT_QUOTES, config_item('charset'))
      +					? '
      '.htmlspecialchars(print_r($val, TRUE), ENT_QUOTES, config_item('charset')).'
      ' : htmlspecialchars($val, ENT_QUOTES, config_item('charset')); $output .= '$_GET[' @@ -356,7 +356,7 @@ class CI_Profiler { { is_int($key) OR $key = "'".htmlspecialchars($key, ENT_QUOTES, config_item('charset'))."'"; $val = (is_array($val) OR is_object($val)) - ? '
      '.htmlspecialchars(print_r($val, TRUE), ENT_QUOTES, config_item('charset'))
      +					? '
      '.htmlspecialchars(print_r($val, TRUE), ENT_QUOTES, config_item('charset')).'
      ' : htmlspecialchars($val, ENT_QUOTES, config_item('charset')); $output .= '$_POST[' @@ -368,7 +368,7 @@ class CI_Profiler { { is_int($key) OR $key = "'".htmlspecialchars($key, ENT_QUOTES, config_item('charset'))."'"; $val = (is_array($val) OR is_object($val)) - ? '
      '.htmlspecialchars(print_r($val, TRUE), ENT_QUOTES, config_item('charset'))
      +					? '
      '.htmlspecialchars(print_r($val, TRUE), ENT_QUOTES, config_item('charset')).'
      ' : htmlspecialchars($val, ENT_QUOTES, config_item('charset')); $output .= '$_FILES[' -- cgit v1.2.3-24-g4f1b From 674d3657e917f83874dca7239cd3a988a5e0b693 Mon Sep 17 00:00:00 2001 From: Dmitriy Verkhoumov Date: Sat, 21 Jan 2017 17:05:41 +0300 Subject: Fixed show_error() for check $exit_status At the beginning of the function it checks whether a parameter $status_code is less than 100. Then the parameter $exit_status is formed by summing the $status_code + 9. In this case, the parameter $exit_status can not be more than 108, but somehow it is checked whether the value of the parameter $exit_status over 125. Such a situation can not occur under any circumstances. --- system/core/Common.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/system/core/Common.php b/system/core/Common.php index 2712df0e4..5c6f88ef9 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -409,11 +409,6 @@ if ( ! function_exists('show_error')) if ($status_code < 100) { $exit_status = $status_code + 9; // 9 is EXIT__AUTO_MIN - if ($exit_status > 125) // 125 is EXIT__AUTO_MAX - { - $exit_status = 1; // EXIT_ERROR - } - $status_code = 500; } else -- cgit v1.2.3-24-g4f1b From 55195e50aad2fbb0737008b39a5d686ff2e98997 Mon Sep 17 00:00:00 2001 From: DiederikLascaris Date: Sun, 22 Jan 2017 23:20:58 +0100 Subject: Removed wrapper and changed mix cases usage of hex colorcodes --- application/views/errors/html/error_404.php | 138 +++++++++++----------- application/views/errors/html/error_db.php | 138 +++++++++++----------- application/views/errors/html/error_exception.php | 36 +++--- application/views/errors/html/error_general.php | 138 +++++++++++----------- application/views/errors/html/error_php.php | 36 +++--- application/views/welcome_message.php | 36 +++--- 6 files changed, 248 insertions(+), 274 deletions(-) diff --git a/application/views/errors/html/error_404.php b/application/views/errors/html/error_404.php index 54b5ba3eb..d2f888c3f 100644 --- a/application/views/errors/html/error_404.php +++ b/application/views/errors/html/error_404.php @@ -3,90 +3,84 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - -404 Page Not Found - + #body { + margin: 0 15px 0 15px; + min-height: 96px; + } + -
      -
      -

      -
      - -
      +
      +

      +
      +
      diff --git a/application/views/errors/html/error_db.php b/application/views/errors/html/error_db.php index 561b20c63..23b0655fe 100644 --- a/application/views/errors/html/error_db.php +++ b/application/views/errors/html/error_db.php @@ -3,90 +3,84 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - -Database Error - + #body { + margin: 0 15px 0 15px; + min-height: 96px; + } + -
      -
      -

      -
      - -
      +
      +

      +
      +
      diff --git a/application/views/errors/html/error_exception.php b/application/views/errors/html/error_exception.php index 22e4f8351..befa12955 100644 --- a/application/views/errors/html/error_exception.php +++ b/application/views/errors/html/error_exception.php @@ -2,31 +2,31 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> -
      +
      -

      An uncaught Exception was encountered

      +

      An uncaught Exception was encountered

      -

      Type:

      -

      Message:

      -

      Filename: getFile(); ?>

      -

      Line Number: getLine(); ?>

      +

      Type:

      +

      Message:

      +

      Filename: getFile(); ?>

      +

      Line Number: getLine(); ?>

      - + -

      Backtrace:

      - getTrace() as $error): ?> +

      Backtrace:

      + getTrace() as $error): ?> - + -

      - File:
      - Line:
      - Function: -

      - +

      + File:
      + Line:
      + Function: +

      + - + - +
      diff --git a/application/views/errors/html/error_general.php b/application/views/errors/html/error_general.php index 0c28e3164..ad1066409 100644 --- a/application/views/errors/html/error_general.php +++ b/application/views/errors/html/error_general.php @@ -3,90 +3,84 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> - -Error - + #body { + margin: 0 15px 0 15px; + min-height: 96px; + } + -
      -
      -

      -
      - -
      +
      +

      +
      +
      diff --git a/application/views/errors/html/error_php.php b/application/views/errors/html/error_php.php index 8bf6efc61..8b445ef39 100644 --- a/application/views/errors/html/error_php.php +++ b/application/views/errors/html/error_php.php @@ -2,32 +2,32 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> -
      +
      -

      A PHP Error was encountered

      +

      A PHP Error was encountered

      -

      Severity:

      -

      Message:

      -

      Filename:

      -

      Line Number:

      +

      Severity:

      +

      Message:

      +

      Filename:

      +

      Line Number:

      - + -

      Backtrace:

      - +

      Backtrace:

      + - + -

      - File:
      - Line:
      - Function: -

      +

      + File:
      + Line:
      + Function: +

      - + - + - +
      diff --git a/application/views/welcome_message.php b/application/views/welcome_message.php index ddcfa98fd..bc5b441a9 100644 --- a/application/views/welcome_message.php +++ b/application/views/welcome_message.php @@ -8,12 +8,13 @@ defined('BASEPATH') OR exit('No direct script access allowed'); - -

      CodeIgniter @@ -118,7 +112,5 @@ defined('BASEPATH') OR exit('No direct script access allowed');

      -
      - -- cgit v1.2.3-24-g4f1b From 77db815a619864f8d2c59a4b02bac2f6fd6b3d69 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 23 Jan 2017 12:03:20 +0200 Subject: [ci skip] Add changelog entry for PR #4030 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 7e52a0eda..f61d97970 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -10,6 +10,7 @@ Release Date: Not Released - General Changes - Officially dropped any kind of support for anything under PHP 5.4.8. + - Updated Welcome view and HTML error templates with new styling. - Core -- cgit v1.2.3-24-g4f1b From 9b3cef3a108055b67a9c34c6b07cd0aea3030eff Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Sat, 4 Feb 2017 16:54:19 +0800 Subject: Loading global mimes config file first, and then environment file. Signed-off-by: tianhe1986 --- system/core/Common.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/system/core/Common.php b/system/core/Common.php index 5c6f88ef9..2db94c165 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -318,17 +318,16 @@ if ( ! function_exists('get_mimes')) if (empty($_mimes)) { - if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/mimes.php')) - { - $_mimes = include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'); - } - elseif (file_exists(APPPATH.'config/mimes.php')) + $_mimes = array(); + + if (file_exists(APPPATH.'config/mimes.php')) { - $_mimes = include(APPPATH.'config/mimes.php'); + $_mimes = array_merge($_mimes, include(APPPATH.'config/mimes.php')); } - else + + if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/mimes.php')) { - $_mimes = array(); + $_mimes = array_merge($_mimes, include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php')); } } -- cgit v1.2.3-24-g4f1b From b3c113f60a0343c3dbf16a3b6898270c698f45bb Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Sat, 4 Feb 2017 16:57:45 +0800 Subject: Removing url encoded 127. Signed-off-by: tianhe1986 --- system/core/Common.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/core/Common.php b/system/core/Common.php index 2db94c165..cef9f47e0 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -717,6 +717,7 @@ if ( ! function_exists('remove_invisible_characters')) { $non_displayables[] = '/%0[0-8bcef]/i'; // url encoded 00-08, 11, 12, 14, 15 $non_displayables[] = '/%1[0-9a-f]/i'; // url encoded 16-31 + $non_displayables[] = '/%7f/i'; // url encoded 127 } $non_displayables[] = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S'; // 00-08, 11, 12, 14-31, 127 -- cgit v1.2.3-24-g4f1b From d107d6d950b38b46fba58488c201d5cac35be156 Mon Sep 17 00:00:00 2001 From: vlakoff Date: Tue, 7 Feb 2017 11:01:55 +0100 Subject: Allow to omit trailing slash in config paths --- application/config/config.php | 6 +++--- system/core/Exceptions.php | 12 ++++++++++++ system/core/Log.php | 4 +++- system/core/Output.php | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index c6e1a7af5..72e79bee9 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -221,7 +221,7 @@ $config['log_threshold'] = 0; |-------------------------------------------------------------------------- | | Leave this BLANK unless you would like to set something other than the default -| application/logs/ directory. Use a full server path with trailing slash. +| application/logs/ directory. Use a full server path. | */ $config['log_path'] = ''; @@ -269,7 +269,7 @@ $config['log_date_format'] = 'Y-m-d H:i:s'; |-------------------------------------------------------------------------- | | Leave this BLANK unless you would like to set something other than the default -| application/views/errors/ directory. Use a full server path with trailing slash. +| application/views/errors/ directory. Use a full server path. | */ $config['error_views_path'] = ''; @@ -280,7 +280,7 @@ $config['error_views_path'] = ''; |-------------------------------------------------------------------------- | | Leave this BLANK unless you would like to set something other than the default -| application/cache/ directory. Use a full server path with trailing slash. +| application/cache/ directory. Use a full server path. | */ $config['cache_path'] = ''; diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php index 47d153f49..806598921 100644 --- a/system/core/Exceptions.php +++ b/system/core/Exceptions.php @@ -161,6 +161,10 @@ class CI_Exceptions { { $templates_path = VIEWPATH.'errors'.DIRECTORY_SEPARATOR; } + else + { + $templates_path = rtrim($templates_path, '/\\').DIRECTORY_SEPARATOR; + } if (is_cli()) { @@ -194,6 +198,10 @@ class CI_Exceptions { { $templates_path = VIEWPATH.'errors'.DIRECTORY_SEPARATOR; } + else + { + $templates_path = rtrim($templates_path, '/\\').DIRECTORY_SEPARATOR; + } $message = $exception->getMessage(); if (empty($message)) @@ -240,6 +248,10 @@ class CI_Exceptions { { $templates_path = VIEWPATH.'errors'.DIRECTORY_SEPARATOR; } + else + { + $templates_path = rtrim($templates_path, '/\\').DIRECTORY_SEPARATOR; + } $severity = isset($this->levels[$severity]) ? $this->levels[$severity] : $severity; diff --git a/system/core/Log.php b/system/core/Log.php index 5be7baea8..67b315b6b 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -124,7 +124,9 @@ class CI_Log { isset(self::$func_override) OR self::$func_override = (extension_loaded('mbstring') && ini_get('mbstring.func_override')); - $this->_log_path = ($config['log_path'] !== '') ? $config['log_path'] : APPPATH.'logs/'; + $this->_log_path = ($config['log_path'] !== '') + ? rtrim($config['log_path'], '/\\').DIRECTORY_SEPARATOR : APPPATH.'logs'.DIRECTORY_SEPARATOR; + $this->_file_ext = (isset($config['log_file_extension']) && $config['log_file_extension'] !== '') ? ltrim($config['log_file_extension'], '.') : 'php'; diff --git a/system/core/Output.php b/system/core/Output.php index 0887717d9..2cdb9808c 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -554,7 +554,7 @@ class CI_Output { { $CI =& get_instance(); $path = $CI->config->item('cache_path'); - $cache_path = ($path === '') ? APPPATH.'cache/' : $path; + $cache_path = ($path === '') ? APPPATH.'cache'.DIRECTORY_SEPARATOR : rtrim($path, '/\\').DIRECTORY_SEPARATOR; if ( ! is_dir($cache_path) OR ! is_really_writable($cache_path)) { -- cgit v1.2.3-24-g4f1b From 0b7ff8cb5b3242d402785a82db2f9821bed74f8f Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Mon, 13 Feb 2017 16:47:58 +0800 Subject: Using _wh_in() instead of _where_in(). Signed-off-by: tianhe1986 --- system/database/DB_query_builder.php | 37 +++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index fe4cf6993..0ae132c19 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -725,7 +725,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { */ public function where_in($key = NULL, $values = NULL, $escape = NULL) { - return $this->_where_in($key, $values, FALSE, 'AND ', $escape); + return $this->_wh_in('qb_where', $key, $values, FALSE, 'AND ', $escape); } // -------------------------------------------------------------------- @@ -743,7 +743,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { */ public function or_where_in($key = NULL, $values = NULL, $escape = NULL) { - return $this->_where_in($key, $values, FALSE, 'OR ', $escape); + return $this->_wh_in('qb_where', $key, $values, FALSE, 'OR ', $escape); } // -------------------------------------------------------------------- @@ -761,7 +761,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { */ public function where_not_in($key = NULL, $values = NULL, $escape = NULL) { - return $this->_where_in($key, $values, TRUE, 'AND ', $escape); + return $this->_wh_in('qb_where', $key, $values, TRUE, 'AND ', $escape); } // -------------------------------------------------------------------- @@ -779,19 +779,24 @@ abstract class CI_DB_query_builder extends CI_DB_driver { */ public function or_where_not_in($key = NULL, $values = NULL, $escape = NULL) { - return $this->_where_in($key, $values, TRUE, 'OR ', $escape); + return $this->_wh_in('qb_where', $key, $values, TRUE, 'OR ', $escape); } // -------------------------------------------------------------------- /** - * Internal WHERE IN + * Internal WHERE/HAVING IN * * @used-by where_in() * @used-by or_where_in() * @used-by where_not_in() * @used-by or_where_not_in() + * @used-by having_in() + * @used-by or_having_in() + * @used-by having_not_in() + * @used-by or_having_not_in() * + * @param string $qb_key 'qb_where' or 'qb_having' * @param string $key The field to search * @param array $values The values searched on * @param bool $not If the statement would be IN or NOT IN @@ -799,8 +804,10 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - protected function _where_in($key = NULL, $values = NULL, $not = FALSE, $type = 'AND ', $escape = NULL) + protected function _wh_in($qb_key, $key = NULL, $values = NULL, $not = FALSE, $type = 'AND ', $escape = NULL) { + $qb_cache_key = ($qb_key === 'qb_having') ? 'qb_cache_having' : 'qb_cache_where'; + if ($key === NULL OR $values === NULL) { return $this; @@ -817,31 +824,31 @@ abstract class CI_DB_query_builder extends CI_DB_driver { if ($escape === TRUE) { - $where_in = array(); + $wh_in = array(); foreach ($values as $value) { - $where_in[] = $this->escape($value); + $wh_in[] = $this->escape($value); } } else { - $where_in = array_values($values); + $wh_in = array_values($values); } - $prefix = (count($this->qb_where) === 0 && count($this->qb_cache_where) === 0) + $prefix = (count($this->$qb_key) === 0 && count($this->$qb_cache_key) === 0) ? $this->_group_get_type('') : $this->_group_get_type($type); - $where_in = array( - 'condition' => $prefix.$key.$not.' IN('.implode(', ', $where_in).')', + $wh_in = array( + 'condition' => $prefix.$key.$not.' IN('.implode(', ', $wh_in).')', 'escape' => $escape ); - $this->qb_where[] = $where_in; + $this->{$qb_key}[] = $wh_in; if ($this->qb_caching === TRUE) { - $this->qb_cache_where[] = $where_in; - $this->qb_cache_exists[] = 'where'; + $this->{$qb_cache_key}[] = $wh_in; + $this->qb_cache_exists[] = substr($qb_key, 3); } return $this; -- cgit v1.2.3-24-g4f1b From 975d5cfca6248c55496b3e15b37fb2c81fb85f4c Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Mon, 13 Feb 2017 16:58:24 +0800 Subject: Adding having_in(), or_having_in(), having_not_in() and or_having_not_in(). Signed-off-by: tianhe1986 --- system/database/DB_query_builder.php | 72 ++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 0ae132c19..1daee99a8 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -784,6 +784,78 @@ abstract class CI_DB_query_builder extends CI_DB_driver { // -------------------------------------------------------------------- + /** + * HAVING IN + * + * Generates a HAVING field IN('item', 'item') SQL query, + * joined with 'AND' if appropriate. + * + * @param string $key The field to search + * @param array $values The values searched on + * @param bool $escape + * @return CI_DB_query_builder + */ + public function having_in($key = NULL, $values = NULL, $escape = NULL) + { + return $this->_wh_in('qb_having', $key, $values, FALSE, 'AND ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * OR HAVING IN + * + * Generates a HAVING field IN('item', 'item') SQL query, + * joined with 'OR' if appropriate. + * + * @param string $key The field to search + * @param array $values The values searched on + * @param bool $escape + * @return CI_DB_query_builder + */ + public function or_having_in($key = NULL, $values = NULL, $escape = NULL) + { + return $this->_wh_in('qb_having', $key, $values, FALSE, 'OR ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * HAVING NOT IN + * + * Generates a HAVING field NOT IN('item', 'item') SQL query, + * joined with 'AND' if appropriate. + * + * @param string $key The field to search + * @param array $values The values searched on + * @param bool $escape + * @return CI_DB_query_builder + */ + public function having_not_in($key = NULL, $values = NULL, $escape = NULL) + { + return $this->_wh_in('qb_having', $key, $values, TRUE, 'AND ', $escape); + } + + // -------------------------------------------------------------------- + + /** + * OR HAVING NOT IN + * + * Generates a HAVING field NOT IN('item', 'item') SQL query, + * joined with 'OR' if appropriate. + * + * @param string $key The field to search + * @param array $values The values searched on + * @param bool $escape + * @return CI_DB_query_builder + */ + public function or_having_not_in($key = NULL, $values = NULL, $escape = NULL) + { + return $this->_wh_in('qb_having', $key, $values, TRUE, 'OR ', $escape); + } + + // -------------------------------------------------------------------- + /** * Internal WHERE/HAVING IN * -- cgit v1.2.3-24-g4f1b From 6e3384b012aec7a54b531aecdafd7aeeecd25e04 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Mon, 13 Feb 2017 17:10:50 +0800 Subject: Add unit test. Signed-off-by: tianhe1986 --- .../database/query_builder/group_test.php | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/tests/codeigniter/database/query_builder/group_test.php b/tests/codeigniter/database/query_builder/group_test.php index 5249f7c87..785754ec1 100644 --- a/tests/codeigniter/database/query_builder/group_test.php +++ b/tests/codeigniter/database/query_builder/group_test.php @@ -48,4 +48,74 @@ class Group_test extends CI_TestCase { $this->assertEquals(2, count($jobs)); } + // ------------------------------------------------------------------------ + + /** + * @see ./mocks/schema/skeleton.php + */ + public function test_having_in() + { + $jobs = $this->db->select('name') + ->from('job') + ->group_by('name') + ->having_in('SUM(id)', array(1, 2, 5)) + ->get() + ->result_array(); + + $this->assertEquals(2, count($jobs)); + } + + // ------------------------------------------------------------------------ + + /** + * @see ./mocks/schema/skeleton.php + */ + public function test_or_having_in() + { + $jobs = $this->db->select('name') + ->from('job') + ->group_by('name') + ->or_having_in('SUM(id)', array(1, 5)) + ->or_having_in('SUM(id)', array(2, 6)) + ->get() + ->result_array(); + + $this->assertEquals(2, count($jobs)); + } + + // ------------------------------------------------------------------------ + + /** + * @see ./mocks/schema/skeleton.php + */ + public function test_having_not_in() + { + $jobs = $this->db->select('name') + ->from('job') + ->group_by('name') + ->having_not_in('SUM(id)', array(3, 6)) + ->get() + ->result_array(); + + $this->assertEquals(3, count($jobs)); + } + + // ------------------------------------------------------------------------ + + /** + * @see ./mocks/schema/skeleton.php + */ + public function test_or_having_not_in() + { + $jobs = $this->db->select('name') + ->from('job') + ->group_by('name') + ->or_having_not_in('SUM(id)', array(1, 2, 3)) + ->or_having_not_in('SUM(id)', array(1, 3, 4)) + ->get() + ->result_array(); + + $this->assertEquals(2, count($jobs)); + } + } \ No newline at end of file -- cgit v1.2.3-24-g4f1b From dba57690c10397235f8422c33a757e377941907a Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Mon, 13 Feb 2017 17:20:10 +0800 Subject: Add user-guide. Signed-off-by: tianhe1986 --- user_guide_src/source/database/query_builder.rst | 46 ++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/user_guide_src/source/database/query_builder.rst b/user_guide_src/source/database/query_builder.rst index 3135f76da..2d954c7a8 100644 --- a/user_guide_src/source/database/query_builder.rst +++ b/user_guide_src/source/database/query_builder.rst @@ -452,6 +452,52 @@ setting it to FALSE. Identical to having(), only separates multiple clauses with "OR". +**$this->db->having_in()** + +Generates a HAVING field IN ('item', 'item') SQL query joined with AND if +appropriate + +:: + + $names = array('Frank', 'Todd', 'James'); + $this->db->having_in('username', $names); + // Produces: HAVING username IN ('Frank', 'Todd', 'James') + + +**$this->db->or_having_in()** + +Generates a HAVING field IN ('item', 'item') SQL query joined with OR if +appropriate + +:: + + $names = array('Frank', 'Todd', 'James'); + $this->db->or_having_in('username', $names); + // Produces: OR username IN ('Frank', 'Todd', 'James') + +**$this->db->having_not_in()** + +Generates a HAVING field NOT IN ('item', 'item') SQL query joined with +AND if appropriate + +:: + + $names = array('Frank', 'Todd', 'James'); + $this->db->having_not_in('username', $names); + // Produces: HAVING username NOT IN ('Frank', 'Todd', 'James') + + +**$this->db->or_having_not_in()** + +Generates a HAVING field NOT IN ('item', 'item') SQL query joined with OR +if appropriate + +:: + + $names = array('Frank', 'Todd', 'James'); + $this->db->or_having_not_in('username', $names); + // Produces: OR username NOT IN ('Frank', 'Todd', 'James') + **************** Ordering results **************** -- cgit v1.2.3-24-g4f1b From b27e4451ee2ae65581f3245971155927c75d6ec7 Mon Sep 17 00:00:00 2001 From: Zach Ploskey Date: Mon, 13 Feb 2017 16:21:37 -0800 Subject: Don't duplicate is_file and filesize checks Move duplicate is_file and file_size checks out of if/else branches. Signed-off-by: Zach Ploskey --- system/helpers/download_helper.php | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index ea3da1bf4..7500bc827 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -84,23 +84,18 @@ if ( ! function_exists('force_download')) { return; } - - if ( ! @is_file($filepath) OR ($filesize = @filesize($filepath)) === FALSE) - { - return; - } } else { - if ( ! @is_file($filename) OR ($filesize = @filesize($filename)) === FALSE) - { - return; - } - $filepath = $filename; $filename = explode('/', str_replace(DIRECTORY_SEPARATOR, '/', $filename)); $filename = end($filename); } + + if ( ! @is_file($filepath) OR ($filesize = @filesize($filepath)) === FALSE) + { + return; + } } else { -- cgit v1.2.3-24-g4f1b From 0b9d5c35e46eff9e8d19f66047eff88067bdcf4a Mon Sep 17 00:00:00 2001 From: vlakoff Date: Wed, 15 Feb 2017 19:17:20 +0100 Subject: Do not fail if the array pointer is after the element --- system/helpers/download_helper.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 7500bc827..b2f0edb48 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -77,6 +77,7 @@ if ( ! function_exists('force_download')) return; } + reset($filename); $filepath = key($filename); $filename = current($filename); -- cgit v1.2.3-24-g4f1b From 5b0d89da6a0e66f0f10f7fa43383290c99193bdb Mon Sep 17 00:00:00 2001 From: vlakoff Date: Thu, 16 Feb 2017 01:31:59 +0100 Subject: Do not strip substrings looking like URL encode sequences --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 161e0e225..de599a675 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -1118,7 +1118,7 @@ abstract class CI_DB_driver { */ protected function _escape_str($str) { - return str_replace("'", "''", remove_invisible_characters($str)); + return str_replace("'", "''", remove_invisible_characters($str, FALSE)); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From c26f4d057fc9c028cfa7575399e04cfdd544f04e Mon Sep 17 00:00:00 2001 From: katsew Date: Mon, 20 Feb 2017 14:07:44 +0900 Subject: Create Cache_apcu class and copy source from Cache_apc class Signed-off-by: katsew --- system/libraries/Cache/drivers/Cache_apcu.php | 221 ++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 system/libraries/Cache/drivers/Cache_apcu.php diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php new file mode 100644 index 000000000..066fe428f --- /dev/null +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -0,0 +1,221 @@ +is_supported()) + { + log_message('error', 'Cache: Failed to initialize APC; extension not loaded/enabled?'); + } + } + + // ------------------------------------------------------------------------ + + /** + * Get + * + * Look for a value in the cache. If it exists, return the data + * if not, return FALSE + * + * @param string + * @return mixed value that is stored/FALSE on failure + */ + public function get($id) + { + $success = FALSE; + $data = apc_fetch($id, $success); + + if ($success === TRUE) + { + return is_array($data) + ? unserialize($data[0]) + : $data; + } + + return FALSE; + } + + // ------------------------------------------------------------------------ + + /** + * Cache Save + * + * @param string $id Cache ID + * @param mixed $data Data to store + * @param int $ttl Length of time (in seconds) to cache the data + * @param bool $raw Whether to store the raw value + * @return bool TRUE on success, FALSE on failure + */ + public function save($id, $data, $ttl = 60, $raw = FALSE) + { + $ttl = (int) $ttl; + + return apc_store( + $id, + ($raw === TRUE ? $data : array(serialize($data), time(), $ttl)), + $ttl + ); + } + + // ------------------------------------------------------------------------ + + /** + * Delete from Cache + * + * @param mixed unique identifier of the item in the cache + * @return bool true on success/false on failure + */ + public function delete($id) + { + return apc_delete($id); + } + + // ------------------------------------------------------------------------ + + /** + * Increment a raw value + * + * @param string $id Cache ID + * @param int $offset Step/value to add + * @return mixed New value on success or FALSE on failure + */ + public function increment($id, $offset = 1) + { + return apc_inc($id, $offset); + } + + // ------------------------------------------------------------------------ + + /** + * Decrement a raw value + * + * @param string $id Cache ID + * @param int $offset Step/value to reduce by + * @return mixed New value on success or FALSE on failure + */ + public function decrement($id, $offset = 1) + { + return apc_dec($id, $offset); + } + + // ------------------------------------------------------------------------ + + /** + * Clean the cache + * + * @return bool false on failure/true on success + */ + public function clean() + { + return apc_clear_cache('user'); + } + + // ------------------------------------------------------------------------ + + /** + * Cache Info + * + * @param string user/filehits + * @return mixed array on success, false on failure + */ + public function cache_info($type = NULL) + { + return apc_cache_info($type); + } + + // ------------------------------------------------------------------------ + + /** + * Get Cache Metadata + * + * @param mixed key to get cache metadata on + * @return mixed array on success/false on failure + */ + public function get_metadata($id) + { + $success = FALSE; + $stored = apc_fetch($id, $success); + + if ($success === FALSE OR count($stored) !== 3) + { + return FALSE; + } + + list($data, $time, $ttl) = $stored; + + return array( + 'expire' => $time + $ttl, + 'mtime' => $time, + 'data' => unserialize($data) + ); + } + + // ------------------------------------------------------------------------ + + /** + * is_supported() + * + * Check to see if APC is available on this system, bail if it isn't. + * + * @return bool + */ + public function is_supported() + { + return (extension_loaded('apc') && ini_get('apc.enabled')); + } +} \ No newline at end of file -- cgit v1.2.3-24-g4f1b From f5e1e6dac46e11b6eca3f1708e15c662400eef30 Mon Sep 17 00:00:00 2001 From: katsew Date: Mon, 20 Feb 2017 14:15:41 +0900 Subject: Correct method and docs Signed-off-by: katsew --- system/libraries/Cache/drivers/Cache_apcu.php | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index 066fe428f..7fa0a0812 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -38,7 +38,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); /** - * CodeIgniter APC Caching Class + * CodeIgniter APCu Caching Class * * @package CodeIgniter * @subpackage Libraries @@ -46,13 +46,13 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @author EllisLab Dev Team * @link */ -class CI_Cache_apc extends CI_Driver { +class CI_Cache_apcu extends CI_Driver { /** * Class constructor * * Only present so that an error message is logged - * if APC is not available. + * if APCu is not available. * * @return void */ @@ -60,7 +60,7 @@ class CI_Cache_apc extends CI_Driver { { if ( ! $this->is_supported()) { - log_message('error', 'Cache: Failed to initialize APC; extension not loaded/enabled?'); + log_message('error', 'Cache: Failed to initialize APCu; extension not loaded/enabled?'); } } @@ -78,7 +78,7 @@ class CI_Cache_apc extends CI_Driver { public function get($id) { $success = FALSE; - $data = apc_fetch($id, $success); + $data = apcu_fetch($id, $success); if ($success === TRUE) { @@ -105,7 +105,7 @@ class CI_Cache_apc extends CI_Driver { { $ttl = (int) $ttl; - return apc_store( + return apcu_store( $id, ($raw === TRUE ? $data : array(serialize($data), time(), $ttl)), $ttl @@ -122,7 +122,7 @@ class CI_Cache_apc extends CI_Driver { */ public function delete($id) { - return apc_delete($id); + return apcu_delete($id); } // ------------------------------------------------------------------------ @@ -136,7 +136,7 @@ class CI_Cache_apc extends CI_Driver { */ public function increment($id, $offset = 1) { - return apc_inc($id, $offset); + return apcu_inc($id, $offset); } // ------------------------------------------------------------------------ @@ -150,7 +150,7 @@ class CI_Cache_apc extends CI_Driver { */ public function decrement($id, $offset = 1) { - return apc_dec($id, $offset); + return apcu_dec($id, $offset); } // ------------------------------------------------------------------------ @@ -162,7 +162,7 @@ class CI_Cache_apc extends CI_Driver { */ public function clean() { - return apc_clear_cache('user'); + return apcu_clear_cache(); } // ------------------------------------------------------------------------ @@ -170,12 +170,12 @@ class CI_Cache_apc extends CI_Driver { /** * Cache Info * - * @param string user/filehits + * @param bool Whether to exclude the individual list of cache entries * @return mixed array on success, false on failure */ - public function cache_info($type = NULL) + public function cache_info($limited = FALSE) { - return apc_cache_info($type); + return apcu_cache_info($limited); } // ------------------------------------------------------------------------ @@ -189,7 +189,7 @@ class CI_Cache_apc extends CI_Driver { public function get_metadata($id) { $success = FALSE; - $stored = apc_fetch($id, $success); + $stored = apcu_fetch($id, $success); if ($success === FALSE OR count($stored) !== 3) { @@ -210,12 +210,12 @@ class CI_Cache_apc extends CI_Driver { /** * is_supported() * - * Check to see if APC is available on this system, bail if it isn't. + * Check to see if APCu is available on this system, bail if it isn't. * * @return bool */ public function is_supported() { - return (extension_loaded('apc') && ini_get('apc.enabled')); + return (extension_loaded('apcu') && ini_get('apc.enabled')); } } \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 7e19f24dc10a011dee210930d20be2dd6fecf629 Mon Sep 17 00:00:00 2001 From: katsew Date: Mon, 20 Feb 2017 14:16:04 +0900 Subject: Add apcu driver into valid driver list Signed-off-by: katsew --- system/libraries/Cache/Cache.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php index 267dffb09..b56f33e74 100644 --- a/system/libraries/Cache/Cache.php +++ b/system/libraries/Cache/Cache.php @@ -55,6 +55,7 @@ class CI_Cache extends CI_Driver_Library { */ protected $valid_drivers = array( 'apc', + 'apcu', 'dummy', 'file', 'memcached', -- cgit v1.2.3-24-g4f1b From 9bfa0cbcc8ac42a2295f25dd3d1ecc83fd7f458a Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 20 Feb 2017 11:53:24 +0200 Subject: [ci skip] Add changelog entry for PR #5010 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index f61d97970..eddb2b946 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -11,6 +11,7 @@ Release Date: Not Released - Officially dropped any kind of support for anything under PHP 5.4.8. - Updated Welcome view and HTML error templates with new styling. + - Updated configurable directory paths to handle missing trailing ``DIRECTORY_SEPARATOR``s automatically. - Core -- cgit v1.2.3-24-g4f1b From 954a34bf3cd00e0ff3e4875beb32a660c72200f7 Mon Sep 17 00:00:00 2001 From: katsew Date: Mon, 20 Feb 2017 20:11:47 +0900 Subject: Change version comment Signed-off-by: katsew --- system/libraries/Cache/drivers/Cache_apcu.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index 7fa0a0812..a60937339 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -32,7 +32,7 @@ * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com - * @since Version 2.0.0 + * @since Version 3.2.0 * @filesource */ defined('BASEPATH') OR exit('No direct script access allowed'); -- cgit v1.2.3-24-g4f1b From eca48e3c0290f84ef210a8a497a29180098ff67b Mon Sep 17 00:00:00 2001 From: katsew Date: Mon, 20 Feb 2017 20:12:30 +0900 Subject: Change author to dev team Signed-off-by: katsew --- system/libraries/Cache/drivers/Cache_apcu.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index a60937339..955539d8e 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -43,7 +43,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @package CodeIgniter * @subpackage Libraries * @category Core - * @author EllisLab Dev Team + * @author CodeIgniter Dev team * @link */ class CI_Cache_apcu extends CI_Driver { -- cgit v1.2.3-24-g4f1b From 93d755223f76d01113e239e2913f32d978efc577 Mon Sep 17 00:00:00 2001 From: katsew Date: Mon, 20 Feb 2017 20:13:17 +0900 Subject: Remove unused link comment Signed-off-by: katsew --- system/libraries/Cache/drivers/Cache_apcu.php | 1 - 1 file changed, 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index 955539d8e..d4a90ace2 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -44,7 +44,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Core * @author CodeIgniter Dev team - * @link */ class CI_Cache_apcu extends CI_Driver { -- cgit v1.2.3-24-g4f1b From d790a06ad50803dfd9778e6eeb8caf799b908b93 Mon Sep 17 00:00:00 2001 From: katsew Date: Mon, 20 Feb 2017 20:16:55 +0900 Subject: Align with spaces Signed-off-by: katsew --- system/libraries/Cache/drivers/Cache_apcu.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index d4a90ace2..584162d32 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -198,9 +198,9 @@ class CI_Cache_apcu extends CI_Driver { list($data, $time, $ttl) = $stored; return array( - 'expire' => $time + $ttl, - 'mtime' => $time, - 'data' => unserialize($data) + 'expire' => $time + $ttl, + 'mtime' => $time, + 'data' => unserialize($data) ); } -- cgit v1.2.3-24-g4f1b From a729f757bf2c5ef45ae45f9101879f5fdf5a2c0e Mon Sep 17 00:00:00 2001 From: katsew Date: Mon, 20 Feb 2017 20:26:46 +0900 Subject: Remove specific argument from abstraction Signed-off-by: katsew --- system/libraries/Cache/drivers/Cache_apcu.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index 584162d32..56e553395 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -169,12 +169,11 @@ class CI_Cache_apcu extends CI_Driver { /** * Cache Info * - * @param bool Whether to exclude the individual list of cache entries * @return mixed array on success, false on failure */ - public function cache_info($limited = FALSE) + public function cache_info() { - return apcu_cache_info($limited); + return apcu_cache_info(); } // ------------------------------------------------------------------------ -- cgit v1.2.3-24-g4f1b From 1a66dd27a332797a5b11c0b8e90a579338d64268 Mon Sep 17 00:00:00 2001 From: katsew Date: Mon, 20 Feb 2017 21:15:08 +0900 Subject: Remove serialization/deserialization array Signed-off-by: katsew --- system/libraries/Cache/drivers/Cache_apcu.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index 56e553395..9b7fe877c 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -82,7 +82,7 @@ class CI_Cache_apcu extends CI_Driver { if ($success === TRUE) { return is_array($data) - ? unserialize($data[0]) + ? $data[0] : $data; } @@ -106,7 +106,7 @@ class CI_Cache_apcu extends CI_Driver { return apcu_store( $id, - ($raw === TRUE ? $data : array(serialize($data), time(), $ttl)), + ($raw === TRUE ? $data : array($data, time(), $ttl)), $ttl ); } @@ -199,7 +199,7 @@ class CI_Cache_apcu extends CI_Driver { return array( 'expire' => $time + $ttl, 'mtime' => $time, - 'data' => unserialize($data) + 'data' => $data ); } -- cgit v1.2.3-24-g4f1b From 3e0ad435f13179ed1c590bdeba2fbeeaa7d0f9c2 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 21 Feb 2017 09:38:08 +0800 Subject: Use less indentation. Signed-off-by: tianhe1986 --- .../database/query_builder/group_test.php | 44 +++++++++++----------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/tests/codeigniter/database/query_builder/group_test.php b/tests/codeigniter/database/query_builder/group_test.php index 785754ec1..51266e858 100644 --- a/tests/codeigniter/database/query_builder/group_test.php +++ b/tests/codeigniter/database/query_builder/group_test.php @@ -56,11 +56,11 @@ class Group_test extends CI_TestCase { public function test_having_in() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->having_in('SUM(id)', array(1, 2, 5)) - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->having_in('SUM(id)', array(1, 2, 5)) + ->get() + ->result_array(); $this->assertEquals(2, count($jobs)); } @@ -73,12 +73,12 @@ class Group_test extends CI_TestCase { public function test_or_having_in() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->or_having_in('SUM(id)', array(1, 5)) - ->or_having_in('SUM(id)', array(2, 6)) - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->or_having_in('SUM(id)', array(1, 5)) + ->or_having_in('SUM(id)', array(2, 6)) + ->get() + ->result_array(); $this->assertEquals(2, count($jobs)); } @@ -91,11 +91,11 @@ class Group_test extends CI_TestCase { public function test_having_not_in() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->having_not_in('SUM(id)', array(3, 6)) - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->having_not_in('SUM(id)', array(3, 6)) + ->get() + ->result_array(); $this->assertEquals(3, count($jobs)); } @@ -108,12 +108,12 @@ class Group_test extends CI_TestCase { public function test_or_having_not_in() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->or_having_not_in('SUM(id)', array(1, 2, 3)) - ->or_having_not_in('SUM(id)', array(1, 3, 4)) - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->or_having_not_in('SUM(id)', array(1, 2, 3)) + ->or_having_not_in('SUM(id)', array(1, 3, 4)) + ->get() + ->result_array(); $this->assertEquals(2, count($jobs)); } -- cgit v1.2.3-24-g4f1b From cf6a44c7266ec813e56a9bb002179f8c599e5a92 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 21 Feb 2017 11:42:48 +0200 Subject: [ci skip] Add changelog entry for PR #5017 --- user_guide_src/source/changelog.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index eddb2b946..5cfe0ca74 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -68,6 +68,10 @@ Release Date: Not Released - Added support for declaring date/time type fields default values as ``CURRENT_TIMESTAMP`` and similar. + - :doc:`Query Builder `: + + - Added methods ``having_in()``, ``or_having_in()``, ``not_having_in()``, ``or_not_having_in()``. + - Helpers - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). -- cgit v1.2.3-24-g4f1b From 1f73ffeb551a17563ae238ee90de380a9384b880 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 21 Feb 2017 11:44:42 +0200 Subject: [ci skip] Reduce excessive indentation in QB group_by(), having() tests --- .../database/query_builder/group_test.php | 65 +++++++++++----------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/tests/codeigniter/database/query_builder/group_test.php b/tests/codeigniter/database/query_builder/group_test.php index 51266e858..cf91c0965 100644 --- a/tests/codeigniter/database/query_builder/group_test.php +++ b/tests/codeigniter/database/query_builder/group_test.php @@ -23,10 +23,10 @@ class Group_test extends CI_TestCase { public function test_group_by() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->get() + ->result_array(); $this->assertEquals(4, count($jobs)); } @@ -39,11 +39,11 @@ class Group_test extends CI_TestCase { public function test_having_by() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->having('SUM(id) > 2') - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->having('SUM(id) > 2') + ->get() + ->result_array(); $this->assertEquals(2, count($jobs)); } @@ -56,11 +56,11 @@ class Group_test extends CI_TestCase { public function test_having_in() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->having_in('SUM(id)', array(1, 2, 5)) - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->having_in('SUM(id)', array(1, 2, 5)) + ->get() + ->result_array(); $this->assertEquals(2, count($jobs)); } @@ -73,12 +73,12 @@ class Group_test extends CI_TestCase { public function test_or_having_in() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->or_having_in('SUM(id)', array(1, 5)) - ->or_having_in('SUM(id)', array(2, 6)) - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->or_having_in('SUM(id)', array(1, 5)) + ->or_having_in('SUM(id)', array(2, 6)) + ->get() + ->result_array(); $this->assertEquals(2, count($jobs)); } @@ -91,11 +91,11 @@ class Group_test extends CI_TestCase { public function test_having_not_in() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->having_not_in('SUM(id)', array(3, 6)) - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->having_not_in('SUM(id)', array(3, 6)) + ->get() + ->result_array(); $this->assertEquals(3, count($jobs)); } @@ -108,14 +108,13 @@ class Group_test extends CI_TestCase { public function test_or_having_not_in() { $jobs = $this->db->select('name') - ->from('job') - ->group_by('name') - ->or_having_not_in('SUM(id)', array(1, 2, 3)) - ->or_having_not_in('SUM(id)', array(1, 3, 4)) - ->get() - ->result_array(); + ->from('job') + ->group_by('name') + ->or_having_not_in('SUM(id)', array(1, 2, 3)) + ->or_having_not_in('SUM(id)', array(1, 3, 4)) + ->get() + ->result_array(); $this->assertEquals(2, count($jobs)); } - -} \ No newline at end of file +} -- cgit v1.2.3-24-g4f1b From 1d9aaee34ea77fdb68d79d7add37f26dd2649c00 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 21 Feb 2017 11:53:46 +0200 Subject: [ci skip] Changelog, docs changes following PR #5025 --- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/libraries/caching.rst | 27 ++++++++++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 5cfe0ca74..f1f0b6834 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -37,6 +37,7 @@ Release Date: Not Released - :doc:`Cache Library ` changes include: + - Added 'apcu' driver. - Added UNIX socket connection support to the 'memcached' driver. - Added 'database' configuration option to the 'redis' driver, allowing to auto-select another database. - Changed the 'memcached' driver to ignore configurations that don't specify a hostname. diff --git a/user_guide_src/source/libraries/caching.rst b/user_guide_src/source/libraries/caching.rst index 81019c015..6621c94ea 100644 --- a/user_guide_src/source/libraries/caching.rst +++ b/user_guide_src/source/libraries/caching.rst @@ -42,7 +42,8 @@ to avoid collisions when you're running multiple applications on the same enviro :: - $this->load->driver('cache', + $this->load->driver( + 'cache', array('adapter' => 'apc', 'backup' => 'file', 'key_prefix' => 'my_') ); @@ -101,7 +102,7 @@ Class Reference $this->cache->save('cache_item_id', 'data_to_cache'); - .. note:: The ``$raw`` parameter is only utilized by APC and Memcache, + .. note:: The ``$raw`` parameter is only utilized by APC, APCu and Memcache, in order to allow usage of ``increment()`` and ``decrement()``. .. php:method:: delete($id) @@ -201,7 +202,19 @@ specific adapter to the driver loader as follows:: $this->cache->apc->save('foo', 'bar', 10); For more information on APC, please see -`http://php.net/apc `_. +`https://php.net/apc `_. + +APC User Cache (APCu) Caching +============================= + +All of the methods listed above can be accessed without passing a +specific adapter to the driver loader as follows:: + + $this->load->driver('cache'); + $this->cache->apcu->save('foo', 'bar', 10); + +For more information on APCu, please see +`https://php.net/apcu `_. File-based Caching ================== @@ -230,7 +243,7 @@ specific adapter to the driver loader as follows:: $this->cache->memcached->save('foo', 'bar', 10); For more information on Memcached, please see -`http://php.net/memcached `_. +`https://php.net/memcached `_. WinCache Caching ================ @@ -244,7 +257,7 @@ specific adapter to the driver loader as follows:: $this->cache->wincache->save('foo', 'bar', 10); For more information on WinCache, please see -`http://php.net/wincache `_. +`https://php.net/wincache `_. Redis Caching ============= @@ -267,11 +280,11 @@ specific adapter to the driver loader as follows:: $this->cache->redis->save('foo', 'bar', 10); For more information on Redis, please see -`http://redis.io `_. +`https://redis.io `_. Dummy Cache =========== This is a caching backend that will always 'miss.' It stores no data, but lets you keep your caching code in place in environments that don't -support your chosen cache. \ No newline at end of file +support your chosen cache. -- cgit v1.2.3-24-g4f1b From 1fcee7b2aeeefca2c12529eeefd638ee48861908 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 26 Mar 2017 14:30:21 +0300 Subject: Added get_loaded_driver() method to Cache.php; updated docs. --- system/libraries/Cache/Cache.php | 10 ++++++++++ user_guide_src/source/libraries/caching.rst | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php index b56f33e74..676375c37 100644 --- a/system/libraries/Cache/Cache.php +++ b/system/libraries/Cache/Cache.php @@ -253,4 +253,14 @@ class CI_Cache extends CI_Driver_Library { return $support[$driver]; } + + /** + * Get currently loaded driver + * + * @return string + */ + public function get_loaded_driver() + { + return $this->_adapter; + } } diff --git a/user_guide_src/source/libraries/caching.rst b/user_guide_src/source/libraries/caching.rst index 6621c94ea..2226b4281 100644 --- a/user_guide_src/source/libraries/caching.rst +++ b/user_guide_src/source/libraries/caching.rst @@ -188,6 +188,16 @@ Class Reference .. note:: The information returned and the structure of the data is dependent on which adapter is being used. + .. php:method:: get_loaded_driver() + + :returns: Loaded driver name, based on initialization config ('apc', 'apcu', 'dummy', 'file', 'memcached', 'redis' or 'wincache') + :rtype: string + + This method will return the caching driver currently used after initialization. + :: + + echo $this->cache->get_loaded_driver(); // Will return something like "file" + ******* Drivers ******* -- cgit v1.2.3-24-g4f1b From 6c5228b336f4d5aed5d0572af9af81f754fd0c59 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 26 Mar 2017 14:38:55 +0300 Subject: Added method separator as comment. --- system/libraries/Cache/Cache.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php index 676375c37..1b1801b5a 100644 --- a/system/libraries/Cache/Cache.php +++ b/system/libraries/Cache/Cache.php @@ -254,6 +254,8 @@ class CI_Cache extends CI_Driver_Library { return $support[$driver]; } + // ------------------------------------------------------------------------ + /** * Get currently loaded driver * -- cgit v1.2.3-24-g4f1b From af3484600b2cbfddf8cedebbc87ae388e2b2c721 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Tue, 28 Mar 2017 13:11:29 +0300 Subject: Updated Caching docs according to review --- user_guide_src/source/libraries/caching.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/caching.rst b/user_guide_src/source/libraries/caching.rst index 2226b4281..be3f894ec 100644 --- a/user_guide_src/source/libraries/caching.rst +++ b/user_guide_src/source/libraries/caching.rst @@ -190,7 +190,7 @@ Class Reference .. php:method:: get_loaded_driver() - :returns: Loaded driver name, based on initialization config ('apc', 'apcu', 'dummy', 'file', 'memcached', 'redis' or 'wincache') + :returns: Loaded driver name after initialization ('apc', 'apcu', 'dummy', 'file', 'memcached', 'redis' or 'wincache') :rtype: string This method will return the caching driver currently used after initialization. -- cgit v1.2.3-24-g4f1b From a706fbfa6be39b864730f666471ad68cfd90a951 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 28 Mar 2017 13:29:08 +0300 Subject: [ci skip] Add changelog entry for PR #5067 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 2b8d65f4c..767b2486d 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -40,6 +40,7 @@ Release Date: Not Released - Added 'apcu' driver. - Added UNIX socket connection support to the 'memcached' driver. - Added 'database' configuration option to the 'redis' driver, allowing to auto-select another database. + - Added method ``get_loaded_driver()`` to return the currently used driver. - Changed the 'memcached' driver to ignore configurations that don't specify a hostname. - Removed the *socket_type* configuration setting from the 'redis' driver. - Changed data serialization logic in 'redis' driver for better performance. -- cgit v1.2.3-24-g4f1b From ab155307e4f2a38cb3c82641500dad8f9ceaaa0a Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Mon, 10 Apr 2017 08:56:38 -0700 Subject: Fix typo in serializeval() Signed-off-by:Master Yoda --- system/libraries/Xmlrpc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index ca35e85c0..340ec8872 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -1884,7 +1884,7 @@ class XML_RPC_Values extends CI_Xmlrpc public function serializeval($o) { $array = $o->me; - list($value, $type) = array(reset($ar), key($array)); + list($value, $type) = array(reset($array), key($array)); return "\n".$this->serializedata($type, $value)."\n"; } -- cgit v1.2.3-24-g4f1b From 583e9a073c3c91b6938644a1eaf5393466047cdf Mon Sep 17 00:00:00 2001 From: Fatih Turan Date: Sat, 6 May 2017 18:42:07 +0300 Subject: quizzes singular is doesnt work. --- system/helpers/inflector_helper.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index 49e2a53db..9e3cc38bc 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -95,6 +95,7 @@ if ( ! function_exists('singular')) '/(s)tatuses$/' => '\1\2tatus', '/(c)hildren$/' => '\1\2hild', '/(n)ews$/' => '\1\2ews', + '/(quiz)zes$/' => '\1', '/([^us])s$/' => '\1' ); -- cgit v1.2.3-24-g4f1b From 3bb650404199a3cf3ae427a42086c4f6e79a86c1 Mon Sep 17 00:00:00 2001 From: Giuseppe Marcelli Date: Tue, 9 May 2017 23:30:14 +0200 Subject: read() in DB_cache does not fail when catching E_WARNING with custom error handler --- system/database/DB_cache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php index b74c31924..1c188234a 100644 --- a/system/database/DB_cache.php +++ b/system/database/DB_cache.php @@ -143,7 +143,7 @@ class CI_DB_Cache { $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); $filepath = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'.md5($sql); - if (FALSE === ($cachedata = @file_get_contents($filepath))) + if ( ! is_file($filepath) OR FALSE === ($cachedata = @file_get_contents($filepath))) { return FALSE; } -- cgit v1.2.3-24-g4f1b From 8233b1d6fc56347195b3a0411806e197e2e59ad3 Mon Sep 17 00:00:00 2001 From: Giuseppe Marcelli Date: Wed, 10 May 2017 02:12:31 +0200 Subject: Commit 4763c13c99eab2a720a4d6d913902e5cef4e76ec does not allow anymore to use the custom result object against cached database results, fixing this, for more info see issue 4665,1351 --- system/database/DB_result.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_result.php b/system/database/DB_result.php index 98d8876a7..ed1642bdc 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -183,7 +183,7 @@ class CI_DB_result { { return $this->custom_result_object[$class_name]; } - elseif ( ! $this->result_id OR $this->num_rows === 0) + elseif ($this->result_id === FALSE OR $this->num_rows === 0) { return array(); } -- cgit v1.2.3-24-g4f1b From 0dbf6d3d501a5afcd1aa063c2eb0262df93c8fc6 Mon Sep 17 00:00:00 2001 From: Giuseppe Marcelli Date: Wed, 10 May 2017 10:29:24 +0200 Subject: Revert "Commit 4763c13c99eab2a720a4d6d913902e5cef4e76ec does not allow anymore to use the custom result object against cached database results, fixing this, for more info see issue 4665,1351" This reverts commit 8233b1d6fc56347195b3a0411806e197e2e59ad3. --- system/database/DB_result.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_result.php b/system/database/DB_result.php index ed1642bdc..98d8876a7 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -183,7 +183,7 @@ class CI_DB_result { { return $this->custom_result_object[$class_name]; } - elseif ($this->result_id === FALSE OR $this->num_rows === 0) + elseif ( ! $this->result_id OR $this->num_rows === 0) { return array(); } -- cgit v1.2.3-24-g4f1b From 07ccf2cbd2d8d09c094337f43feb3c3da91cbb6f Mon Sep 17 00:00:00 2001 From: Giuseppe Marcelli Date: Wed, 10 May 2017 10:32:09 +0200 Subject: Removing the error suppression op from the file_get_contents() call. --- system/database/DB_cache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php index 1c188234a..7c8ee5fc9 100644 --- a/system/database/DB_cache.php +++ b/system/database/DB_cache.php @@ -143,7 +143,7 @@ class CI_DB_Cache { $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); $filepath = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'.md5($sql); - if ( ! is_file($filepath) OR FALSE === ($cachedata = @file_get_contents($filepath))) + if ( ! is_file($filepath) OR FALSE === ($cachedata = file_get_contents($filepath))) { return FALSE; } -- cgit v1.2.3-24-g4f1b From 45f296f1872e7613a9dc1437046acae4eb8ed11d Mon Sep 17 00:00:00 2001 From: Lloric Mayuga Garcia Date: Sun, 21 May 2017 21:21:57 +0800 Subject: add pre tag in config and session when array --- system/libraries/Profiler.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index 9ea09a529..9a1a51380 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -484,13 +484,19 @@ class CI_Profiler { foreach ($this->CI->config->config as $config => $val) { + $pre = ''; + $pre_close = ''; + if (is_array($val) OR is_object($val)) { $val = print_r($val, TRUE); + + $pre = '
      ' ;
      +                                $pre_close = '
      '; } $output .= '' - .$config.'  '.htmlspecialchars($val, ENT_QUOTES, config_item('charset'))."\n"; + .$config.'  '.$pre.htmlspecialchars($val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; @@ -516,13 +522,19 @@ class CI_Profiler { foreach ($this->CI->session->userdata() as $key => $val) { + $pre = ''; + $pre_close = ''; + if (is_array($val) OR is_object($val)) { $val = print_r($val, TRUE); + + $pre = '
      ' ;
      +                                $pre_close = '
      '; } $output .= '' - .$key.'  '.htmlspecialchars($val, ENT_QUOTES, config_item('charset'))."\n"; + .$key.'  '.$pre.htmlspecialchars($val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; -- cgit v1.2.3-24-g4f1b From a785a4f2d1c8137ac82062d5b52cf7b6f575a72f Mon Sep 17 00:00:00 2001 From: aroche Date: Wed, 24 May 2017 15:30:05 +0200 Subject: fix bad attribute handling of form_label When passing a string for extra attributes in form_label helper function, these attributes were skipped. --- system/helpers/form_helper.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index 4a4a7c89f..6f7e63b32 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -609,13 +609,7 @@ if ( ! function_exists('form_label')) $label .= ' for="'.$id.'"'; } - if (is_array($attributes) && count($attributes) > 0) - { - foreach ($attributes as $key => $val) - { - $label .= ' '.$key.'="'.$val.'"'; - } - } + $label .= _attributes_to_string($attributes); return $label.'>'.$label_text.''; } -- cgit v1.2.3-24-g4f1b From dec2b56fa44803e1579804fe329fd45658c6217b Mon Sep 17 00:00:00 2001 From: Tyson Andre Date: Sun, 4 Jun 2017 23:08:40 -0700 Subject: Fix misc type inconsistencies between code and doc comments --- system/core/Common.php | 2 +- system/core/Exceptions.php | 2 +- system/core/compat/mbstring.php | 2 +- system/database/DB_forge.php | 6 +++--- system/database/drivers/ibase/ibase_forge.php | 2 +- system/libraries/Session/drivers/Session_redis_driver.php | 2 +- system/libraries/Table.php | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/system/core/Common.php b/system/core/Common.php index c4f6dd30b..bf9924df5 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -134,7 +134,7 @@ if ( ! function_exists('load_class')) * * @param string the class name being requested * @param string the directory where the class should be found - * @param string an optional argument to pass to the class constructor + * @param mixed an optional argument to pass to the class constructor * @return object */ function &load_class($class, $directory = 'libraries', $param = NULL) diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php index 806598921..399b1bd63 100644 --- a/system/core/Exceptions.php +++ b/system/core/Exceptions.php @@ -239,7 +239,7 @@ class CI_Exceptions { * @param string $message Error message * @param string $filepath File path * @param int $line Line number - * @return string Error page output + * @return void */ public function show_php_error($severity, $message, $filepath, $line) { diff --git a/system/core/compat/mbstring.php b/system/core/compat/mbstring.php index f466e1c34..1b2f2c63b 100644 --- a/system/core/compat/mbstring.php +++ b/system/core/compat/mbstring.php @@ -68,7 +68,7 @@ if ( ! function_exists('mb_strlen')) * @link http://php.net/mb_strlen * @param string $str * @param string $encoding - * @return string + * @return int */ function mb_strlen($str, $encoding = NULL) { diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index b52d1fb2b..31fae43cf 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -488,7 +488,7 @@ abstract class CI_DB_forge { * * @param string $table Table name * @param bool $if_exists Whether to add an IF EXISTS condition - * @return string + * @return mixed (Returns a platform-specific DROP table string, or TRUE to indicate there's nothing to do) */ protected function _drop_table($table, $if_exists) { @@ -991,8 +991,8 @@ abstract class CI_DB_forge { /** * Process indexes * - * @param string $table - * @return string + * @param string $table Table name + * @return string[] list of SQL statements */ protected function _process_indexes($table) { diff --git a/system/database/drivers/ibase/ibase_forge.php b/system/database/drivers/ibase/ibase_forge.php index 44bb24e68..31352f128 100644 --- a/system/database/drivers/ibase/ibase_forge.php +++ b/system/database/drivers/ibase/ibase_forge.php @@ -91,7 +91,7 @@ class CI_DB_ibase_forge extends CI_DB_forge { * Create database * * @param string $db_name - * @return string + * @return bool */ public function create_database($db_name) { diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 5313de04c..2aeb77267 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -51,7 +51,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle /** * phpRedis instance * - * @var resource + * @var Redis */ protected $_redis; diff --git a/system/libraries/Table.php b/system/libraries/Table.php index dc309890b..ba096836b 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -436,7 +436,7 @@ class CI_Table { /** * Set table data from a database result object * - * @param CI_DB_result $db_result Database result object + * @param CI_DB_result $object Database result object * @return void */ protected function _set_from_db_result($object) -- cgit v1.2.3-24-g4f1b From 99b4d649a1d1d196d779277091c808f2bb77280f Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Tue, 13 Jun 2017 17:57:09 +0900 Subject: add rename to keyword --- system/database/drivers/oci8/oci8_forge.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 867a94341..724a76df4 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -124,7 +124,7 @@ class CI_DB_oci8_forge extends CI_DB_forge { if ($alter_type === 'MODIFY' && ! empty($field[$i]['new_name'])) { $sqls[] = $sql.' RENAME COLUMN '.$this->db->escape_identifiers($field[$i]['name']) - .' '.$this->db->escape_identifiers($field[$i]['new_name']); + .' TO '.$this->db->escape_identifiers($field[$i]['new_name']); } $field[$i] = "\n\t".$field[$i]['_literal']; -- cgit v1.2.3-24-g4f1b From d3dff0bc54060f4b9b1ec0cb2250847aee1085b2 Mon Sep 17 00:00:00 2001 From: Angel Aces Date: Wed, 14 Jun 2017 12:09:05 -0700 Subject: Create ancillary_classes.rst "Normally, to call any of the available CodeIgniter methods requires you to use the ``$this`` construct::" - Grammatical adjustment. It appears that the author meshed two sentences together by starting with the proper noun that they ended the previous sentence but as it is the sentence reads: "Normally to call any of the available. CodeIgniter methods requires..." --- user_guide_src/source/general/ancillary_classes.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/general/ancillary_classes.rst b/user_guide_src/source/general/ancillary_classes.rst index f1285d931..4d6528aae 100644 --- a/user_guide_src/source/general/ancillary_classes.rst +++ b/user_guide_src/source/general/ancillary_classes.rst @@ -19,7 +19,7 @@ access CodeIgniter's native resources** simply by using the ``get_instance()`` function. This function returns the main CodeIgniter object. -Normally, to call any of the available CodeIgniter methods requires +Normally, to call any of the available methods, CodeIgniter requires you to use the ``$this`` construct:: $this->load->helper('url'); -- cgit v1.2.3-24-g4f1b From 9f6da3c2f11535fee09dd306ae6b884168e4623b Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 15 Jun 2017 11:45:39 +0800 Subject: Ignore LIMIT when using CI_DB_query_builder::count_all_results Signed-off-by: tianhe1986 --- system/database/DB_query_builder.php | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index ef375227c..2e1003395 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1488,6 +1488,15 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $this->qb_orderby = NULL; } + //ignore LIMIT + if ($this->qb_limit OR $this->qb_offset) + { + $limit = $this->qb_limit; + $this->qb_limit = NULL; + $offset = $this->qb_offset; + $this->qb_offset = NULL; + } + $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby)) ? $this->query($this->_count_string.$this->protect_identifiers('numrows')."\nFROM (\n".$this->_compile_select()."\n) CI_count_all_results") : $this->query($this->_compile_select($this->_count_string.$this->protect_identifiers('numrows'))); @@ -1496,10 +1505,19 @@ abstract class CI_DB_query_builder extends CI_DB_driver { { $this->_reset_select(); } - // If we've previously reset the qb_orderby values, get them back - elseif ( ! isset($this->qb_orderby)) + // If we've previously reset the qb_orderby,qb_limit or qb_offset values, get them back + else { - $this->qb_orderby = $orderby; + if ( ! isset($this->qb_orderby)) + { + $this->qb_orderby = $orderby; + } + + if ( ! isset($this->qb_limit)) + { + $this->qb_limit = $limit; + $this->qb_offset = $offset; + } } if ($result->num_rows() === 0) -- cgit v1.2.3-24-g4f1b From ef0bfea072a6b20e14cb6777c27b8b3a3d94ab5d Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 15 Jun 2017 11:47:28 +0800 Subject: Adding unit test. Signed-off-by: tianhe1986 --- tests/codeigniter/database/query_builder/count_test.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/codeigniter/database/query_builder/count_test.php b/tests/codeigniter/database/query_builder/count_test.php index 90ac5283e..cce3fb61d 100644 --- a/tests/codeigniter/database/query_builder/count_test.php +++ b/tests/codeigniter/database/query_builder/count_test.php @@ -35,4 +35,14 @@ class Count_test extends CI_TestCase { $this->assertEquals(2, $this->db->like('name', 'ian')->count_all_results('job')); } + // ------------------------------------------------------------------------ + + /** + * @see ./mocks/schema/skeleton.php + */ + public function test_count_all_results_limit() + { + $this->assertEquals(2, $this->db->like('name', 'ian')->limit(10, 10)->count_all_results('job')); + } + } \ No newline at end of file -- cgit v1.2.3-24-g4f1b From f8df72efa0e085f3f8fbbd560b8b74704d5efec5 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 15 Jun 2017 17:53:35 +0800 Subject: Revert "Ignore LIMIT when using CI_DB_query_builder::count_all_results" This reverts commit 9f6da3c2f11535fee09dd306ae6b884168e4623b. Signed-off-by: tianhe1986 --- system/database/DB_query_builder.php | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 2e1003395..ef375227c 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1488,15 +1488,6 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $this->qb_orderby = NULL; } - //ignore LIMIT - if ($this->qb_limit OR $this->qb_offset) - { - $limit = $this->qb_limit; - $this->qb_limit = NULL; - $offset = $this->qb_offset; - $this->qb_offset = NULL; - } - $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby)) ? $this->query($this->_count_string.$this->protect_identifiers('numrows')."\nFROM (\n".$this->_compile_select()."\n) CI_count_all_results") : $this->query($this->_compile_select($this->_count_string.$this->protect_identifiers('numrows'))); @@ -1505,19 +1496,10 @@ abstract class CI_DB_query_builder extends CI_DB_driver { { $this->_reset_select(); } - // If we've previously reset the qb_orderby,qb_limit or qb_offset values, get them back - else + // If we've previously reset the qb_orderby values, get them back + elseif ( ! isset($this->qb_orderby)) { - if ( ! isset($this->qb_orderby)) - { - $this->qb_orderby = $orderby; - } - - if ( ! isset($this->qb_limit)) - { - $this->qb_limit = $limit; - $this->qb_offset = $offset; - } + $this->qb_orderby = $orderby; } if ($result->num_rows() === 0) -- cgit v1.2.3-24-g4f1b From bcd005fafa195d443db2419629bfeed99e49fc7e Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 15 Jun 2017 17:58:54 +0800 Subject: Getting right num of rows with LIMIT usage. Signed-off-by: tianhe1986 --- system/database/DB_query_builder.php | 2 +- tests/codeigniter/database/query_builder/count_test.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index ef375227c..102ff4ac0 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1488,7 +1488,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $this->qb_orderby = NULL; } - $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby)) + $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby) OR $this->qb_limit OR $this->qb_offset) ? $this->query($this->_count_string.$this->protect_identifiers('numrows')."\nFROM (\n".$this->_compile_select()."\n) CI_count_all_results") : $this->query($this->_compile_select($this->_count_string.$this->protect_identifiers('numrows'))); diff --git a/tests/codeigniter/database/query_builder/count_test.php b/tests/codeigniter/database/query_builder/count_test.php index cce3fb61d..da312d866 100644 --- a/tests/codeigniter/database/query_builder/count_test.php +++ b/tests/codeigniter/database/query_builder/count_test.php @@ -42,7 +42,7 @@ class Count_test extends CI_TestCase { */ public function test_count_all_results_limit() { - $this->assertEquals(2, $this->db->like('name', 'ian')->limit(10, 10)->count_all_results('job')); + $this->assertEquals(1, $this->db->like('name', 'ian')->limit(1)->count_all_results('job')); } } \ No newline at end of file -- cgit v1.2.3-24-g4f1b From 7b61ba41bbd431bdfb0ef11aca41b893e33f5c20 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Wed, 21 Jun 2017 19:17:23 +0800 Subject: Always check whether a model be a subclass of CI_Model when loaded. Signed-off-by: tianhe1986 --- system/core/Loader.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 7279e8833..e6585ad3f 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -344,9 +344,10 @@ class CI_Loader { throw new RuntimeException('Unable to locate the model you have specified: '.$model); } } - elseif ( ! is_subclass_of($model, 'CI_Model')) + + if ( ! is_subclass_of($model, 'CI_Model')) { - throw new RuntimeException("Class ".$model." already exists and doesn't extend CI_Model"); + throw new RuntimeException("Class ".$model." doesn't extend CI_Model"); } $this->_ci_models[] = $name; -- cgit v1.2.3-24-g4f1b From c8a0d0bc784a778694e7f42243a1584b51cf207d Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Wed, 21 Jun 2017 19:23:45 +0800 Subject: Add unit test. Signed-off-by: tianhe1986 --- tests/codeigniter/core/Loader_test.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index 241c415b3..3b6a7e16c 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -269,6 +269,25 @@ class Loader_test extends CI_TestCase { // -------------------------------------------------------------------- + public function test_invalid_model() + { + $this->ci_set_core_class('model', 'CI_Model'); + + // Create model in VFS + $model = 'Unit_test_invalid_model'; + $content = 'ci_vfs_create($model, $content, $this->ci_app_root, 'models'); + + // Test no extending + $this->setExpectedException( + 'RuntimeException', + 'Class '.$model.' doesn\'t extend CI_Model' + ); + $this->load->model($model); + } + + // -------------------------------------------------------------------- + // public function testDatabase() // { // $this->assertInstanceOf('CI_Loader', $this->load->database()); @@ -544,7 +563,7 @@ class Loader_test extends CI_TestCase { $dir = 'testdir'; $path = APPPATH.$dir.'/'; $model = 'Automod'; - $this->ci_vfs_create($model, 'ci_app_root, array($dir, 'models')); + $this->ci_vfs_create($model, 'ci_app_root, array($dir, 'models')); // Create autoloader config $cfg = array( -- cgit v1.2.3-24-g4f1b From f39cb00559b86f956737c62ec1dcbc9aab29ebb9 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 21 Jun 2017 14:46:25 +0300 Subject: [ci skip] Add changelog entry for PR #5159 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 59b4e0fd9..2613f8677 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -20,6 +20,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. + - Changed :doc:`Loader ` method ``model()`` to always check if the loaded class extends ``CI_Model``. - :doc:`Input Library ` changes include: -- cgit v1.2.3-24-g4f1b From 56c233fc4a455d33d2e679b59132b8a7a1cf1832 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 21 Jun 2017 15:29:25 +0300 Subject: Implement #193: Validating entire arrays in a single function call --- system/libraries/Form_validation.php | 20 ++++++++++++-------- tests/codeigniter/libraries/Form_validation_test.php | 8 +++++++- user_guide_src/source/changelog.rst | 1 + 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 6eaf67710..6b7d9893e 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -627,11 +627,13 @@ class CI_Form_validation { */ protected function _execute($row, $rules, $postdata = NULL, $cycles = 0) { + $allow_arrays = in_array('is_array', $rules, TRUE); + // If the $_POST data is an array we will run a recursive call // // Note: We MUST check if the array is empty or not! // Otherwise empty arrays will always pass validation. - if (is_array($postdata) && ! empty($postdata)) + if ($allow_arrays === FALSE && is_array($postdata) && ! empty($postdata)) { foreach ($postdata as $key => $val) { @@ -660,14 +662,16 @@ class CI_Form_validation { $postdata = $this->_field_data[$row['field']]['postdata'][$cycles]; $_in_array = TRUE; } + // If we get an array field, but it's not expected - then it is most likely + // somebody messing with the form on the client side, so we'll just consider + // it an empty field + elseif ($allow_arrays === FALSE && is_array($this->_field_data[$row['field']]['postdata'])) + { + $postdata = NULL; + } else { - // If we get an array field, but it's not expected - then it is most likely - // somebody messing with the form on the client side, so we'll just consider - // it an empty field - $postdata = is_array($this->_field_data[$row['field']]['postdata']) - ? NULL - : $this->_field_data[$row['field']]['postdata']; + $postdata = $this->_field_data[$row['field']]['postdata']; } // Is the rule a callback? @@ -702,7 +706,7 @@ class CI_Form_validation { // Ignore empty, non-required inputs with a few exceptions ... if ( - ($postdata === NULL OR $postdata === '') + ($postdata === NULL OR ($allow_arrays === FALSE && $postdata === '')) && $callback === FALSE && $callable === FALSE && ! in_array($rule, array('required', 'isset', 'matches'), TRUE) diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index ab0e1fc0a..afd070e05 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -43,7 +43,6 @@ class Form_validation_test extends CI_TestCase { // Empty, not required $this->assertTrue($this->run_rules($rules, array('foo' => ''))); - // Not required, but also not empty $this->assertTrue($this->run_rules($rules, array('foo' => '123'))); $this->assertFalse($this->run_rules($rules, array('foo' => 'bar'))); @@ -56,6 +55,13 @@ class Form_validation_test extends CI_TestCase { $this->assertFalse($this->run_rules($rules, array('foo' => 'bar'))); } + public function test_rule_is_array() + { + $rules = array(array('field' => 'foo', 'label' => 'Foo', 'rules' => 'is_array')); + $this->assertTrue($this->run_rules($rules, array('foo' => array('1', '2')))); + $this->assertFalse($this->run_rules($rules, array('foo' => ''))); + } + public function test_rule_matches() { $rules = array( diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 2613f8677..c94ee8756 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -51,6 +51,7 @@ Release Date: Not Released - Removed previously deprecated method ``prep_for_form()`` / rule *prep_for_form*. - Changed method ``set_rules()`` to throw a ``BadMethodCallException`` when its first parameter is not an array and the ``$rules`` one is unused. - Added rule **valid_mac**, which replicates PHP's native ``filter_var()`` with ``FILTER_VALIDATE_MAC``. + - Added ability to validate entire arrays at once, if ``is_array`` is within the list of rules. - :doc:`HTML Table Library ` changes include: -- cgit v1.2.3-24-g4f1b From 8acd0fa915f61d4e152ce7505646865815b4f458 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 22 Jun 2017 13:40:21 +0300 Subject: [ci skip] Close #3711 --- system/libraries/Email.php | 22 ++++++---------------- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/libraries/email.rst | 12 ++++++++---- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index fa5820dcd..73bf7ffdd 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1235,7 +1235,7 @@ class CI_Email { /** * Build Final Body and attachments * - * @return bool + * @return void */ protected function _build_message() { @@ -1402,8 +1402,6 @@ class CI_Email { $this->_finalbody = ($this->_get_protocol() === 'mail') ? $body : $hdr.$this->newline.$this->newline.$body; - - return TRUE; } // -------------------------------------------------------------------- @@ -1677,21 +1675,17 @@ class CI_Email { if ($this->bcc_batch_mode && count($this->_bcc_array) > $this->bcc_batch_size) { - $result = $this->batch_bcc_send(); + $this->batch_bcc_send(); - if ($result && $auto_clear) + if ($auto_clear) { $this->clear(); } - return $result; - } - - if ($this->_build_message() === FALSE) - { - return FALSE; + return TRUE; } + $this->_build_message(); $result = $this->_spool_email(); if ($result && $auto_clear) @@ -1750,11 +1744,7 @@ class CI_Email { $this->_bcc_array = $bcc; } - if ($this->_build_message() === FALSE) - { - return FALSE; - } - + $this->_build_message(); $this->_spool_email(); } } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index c94ee8756..c1f53dac0 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -60,6 +60,7 @@ Release Date: Not Released - :doc:`Email Library ` changes include: - Changed the default value of the **validate** option to ``TRUE``. + - Changed the ``send()`` method to always return ``TRUE`` when sending multiple batches of emails. - :doc:`Database ` changes include: diff --git a/user_guide_src/source/libraries/email.rst b/user_guide_src/source/libraries/email.rst index bd416ba3b..81ca00e50 100644 --- a/user_guide_src/source/libraries/email.rst +++ b/user_guide_src/source/libraries/email.rst @@ -312,14 +312,18 @@ Class Reference This method will automatically clear all parameters if the request was successful. To stop this behaviour pass FALSE:: - if ($this->email->send(FALSE)) - { - // Parameters won't be cleared - } + if ($this->email->send(FALSE)) + { + // Parameters won't be cleared + } .. note:: In order to use the ``print_debugger()`` method, you need to avoid clearing the email parameters. + .. note:: If ``batch_bcc_mode`` is enabled, and there are more than + ``batch_bcc_size`` recipients, this method will always return + boolean ``TRUE``. + .. php:method:: attach($filename[, $disposition = ''[, $newname = NULL[, $mime = '']]]) :param string $filename: File name -- cgit v1.2.3-24-g4f1b From a2a49fcc322acd5ded3c0664d64bbebe982815f5 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 22 Jun 2017 13:51:11 +0300 Subject: [ci skip] Misc cleanup of CI_Email code --- system/libraries/Email.php | 165 ++++++++++++++++++--------------------------- 1 file changed, 64 insertions(+), 101 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 73bf7ffdd..1dcafeddd 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1663,8 +1663,8 @@ class CI_Email { $this->reply_to($this->_headers['From']); } - if ( ! isset($this->_recipients) && ! isset($this->_headers['To']) - && ! isset($this->_bcc_array) && ! isset($this->_headers['Bcc']) + if (empty($this->_recipients) && ! isset($this->_headers['To']) + && empty($this->_bcc_array) && ! isset($this->_headers['Bcc']) && ! isset($this->_headers['Cc'])) { $this->_set_error_message('lang:email_no_recipients'); @@ -1935,27 +1935,21 @@ class CI_Email { } } - if (count($this->_cc_array) > 0) + foreach ($this->_cc_array as $val) { - foreach ($this->_cc_array as $val) + if ($val !== '' && ! $this->_send_command('to', $val)) { - if ($val !== '' && ! $this->_send_command('to', $val)) - { - $this->_smtp_end(); - return FALSE; - } + $this->_smtp_end(); + return FALSE; } } - if (count($this->_bcc_array) > 0) + foreach ($this->_bcc_array as $val) { - foreach ($this->_bcc_array as $val) + if ($val !== '' && ! $this->_send_command('to', $val)) { - if ($val !== '' && ! $this->_send_command('to', $val)) - { - $this->_smtp_end(); - return FALSE; - } + $this->_smtp_end(); + return FALSE; } } @@ -1969,7 +1963,6 @@ class CI_Email { $this->_send_data($this->_header_str.preg_replace('/^\./m', '..$1', $this->_finalbody)); $this->_send_data('.'); - $reply = $this->_get_smtp_data(); $this->_set_error_message($reply); @@ -1995,9 +1988,7 @@ class CI_Email { */ protected function _smtp_end() { - ($this->smtp_keepalive) - ? $this->_send_command('reset') - : $this->_send_command('quit'); + $this->_send_command($this->smtp_keepalive ? 'reset' : 'quit'); } // -------------------------------------------------------------------- @@ -2016,11 +2007,13 @@ class CI_Email { $ssl = ($this->smtp_crypto === 'ssl') ? 'ssl://' : ''; - $this->_smtp_connect = fsockopen($ssl.$this->smtp_host, - $this->smtp_port, - $errno, - $errstr, - $this->smtp_timeout); + $this->_smtp_connect = fsockopen( + $ssl.$this->smtp_host, + $this->smtp_port, + $errno, + $errstr, + $this->smtp_timeout + ); if ( ! is_resource($this->_smtp_connect)) { @@ -2061,57 +2054,49 @@ class CI_Email { { switch ($cmd) { - case 'hello' : - - if ($this->_smtp_auth OR $this->_get_encoding() === '8bit') - { - $this->_send_data('EHLO '.$this->_get_hostname()); - } - else - { - $this->_send_data('HELO '.$this->_get_hostname()); - } - - $resp = 250; - break; - case 'starttls' : - - $this->_send_data('STARTTLS'); - $resp = 220; - break; - case 'from' : - - $this->_send_data('MAIL FROM:<'.$data.'>'); - $resp = 250; - break; - case 'to' : - - if ($this->dsn) - { - $this->_send_data('RCPT TO:<'.$data.'> NOTIFY=SUCCESS,DELAY,FAILURE ORCPT=rfc822;'.$data); - } - else - { - $this->_send_data('RCPT TO:<'.$data.'>'); - } - - $resp = 250; - break; - case 'data' : - - $this->_send_data('DATA'); - $resp = 354; - break; - case 'reset': - - $this->_send_data('RSET'); - $resp = 250; - break; - case 'quit' : + case 'hello': + if ($this->_smtp_auth OR $this->_get_encoding() === '8bit') + { + $this->_send_data('EHLO '.$this->_get_hostname()); + } + else + { + $this->_send_data('HELO '.$this->_get_hostname()); + } - $this->_send_data('QUIT'); - $resp = 221; - break; + $resp = 250; + break; + case 'starttls': + $this->_send_data('STARTTLS'); + $resp = 220; + break; + case 'from': + $this->_send_data('MAIL FROM:<'.$data.'>'); + $resp = 250; + break; + case 'to': + if ($this->dsn) + { + $this->_send_data('RCPT TO:<'.$data.'> NOTIFY=SUCCESS,DELAY,FAILURE ORCPT=rfc822;'.$data); + } + else + { + $this->_send_data('RCPT TO:<'.$data.'>'); + } + $resp = 250; + break; + case 'data': + $this->_send_data('DATA'); + $resp = 354; + break; + case 'reset': + $this->_send_data('RSET'); + $resp = 250; + break; + case 'quit': + $this->_send_data('QUIT'); + $resp = 221; + break; } $reply = $this->_get_smtp_data(); @@ -2153,7 +2138,6 @@ class CI_Email { } $this->_send_data('AUTH LOGIN'); - $reply = $this->_get_smtp_data(); if (strpos($reply, '503') === 0) // Already authenticated @@ -2167,7 +2151,6 @@ class CI_Email { } $this->_send_data(base64_encode($this->smtp_user)); - $reply = $this->_get_smtp_data(); if (strpos($reply, '334') !== 0) @@ -2177,7 +2160,6 @@ class CI_Email { } $this->_send_data(base64_encode($this->smtp_pass)); - $reply = $this->_get_smtp_data(); if (strpos($reply, '235') !== 0) @@ -2300,34 +2282,15 @@ class CI_Email { */ public function print_debugger($include = array('headers', 'subject', 'body')) { - $msg = ''; - - if (count($this->_debug_msg) > 0) - { - foreach ($this->_debug_msg as $val) - { - $msg .= $val; - } - } + $msg = implode('', $this->_debug_msg); // Determine which parts of our raw data needs to be printed $raw_data = ''; is_array($include) OR $include = array($include); - if (in_array('headers', $include, TRUE)) - { - $raw_data = htmlspecialchars($this->_header_str)."\n"; - } - - if (in_array('subject', $include, TRUE)) - { - $raw_data .= htmlspecialchars($this->_subject)."\n"; - } - - if (in_array('body', $include, TRUE)) - { - $raw_data .= htmlspecialchars($this->_finalbody); - } + in_array('headers', $include, TRUE) && $raw_data = htmlspecialchars($this->_header_str)."\n"; + in_array('subject', $include, TRUE) && $raw_data .= htmlspecialchars($this->_subject)."\n"; + in_array('body', $include, TRUE) && $raw_data .= htmlspecialchars($this->_finalbody); return $msg.($raw_data === '' ? '' : '
      '.$raw_data.'
      '); } -- cgit v1.2.3-24-g4f1b From 0c06ba0c587b5ef97718bc3b19c6dba163b7acb0 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 22 Jun 2017 14:45:50 +0300 Subject: Implement #2436 (access to FV processed data) --- system/libraries/Form_validation.php | 54 ++++++++++------------ .../codeigniter/libraries/Form_validation_test.php | 18 ++++++++ user_guide_src/source/changelog.rst | 1 + .../source/libraries/form_validation.rst | 21 ++++++++- 4 files changed, 64 insertions(+), 30 deletions(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 6b7d9893e..c1cfcdb8f 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -104,13 +104,6 @@ class CI_Form_validation { */ protected $error_string = ''; - /** - * Whether the form data has been validated as safe - * - * @var bool - */ - protected $_safe_form_data = FALSE; - /** * Custom data to validate * @@ -414,10 +407,11 @@ class CI_Form_validation { * * This function does all the work. * - * @param string $group + * @param string $config + * @param array $data * @return bool */ - public function run($group = '') + public function run($config = NULL, &$data = NULL) { $validation_array = empty($this->validation_data) ? $_POST @@ -428,19 +422,19 @@ class CI_Form_validation { if (count($this->_field_data) === 0) { // No validation rules? We're done... - if (count($this->_config_rules) === 0) + if (empty($this->_config_rules)) { return FALSE; } - if (empty($group)) + if (empty($config)) { // Is there a validation rule for the particular URI being accessed? - $group = trim($this->CI->uri->ruri_string(), '/'); - isset($this->_config_rules[$group]) OR $group = $this->CI->router->class.'/'.$this->CI->router->method; + $config = trim($this->CI->uri->ruri_string(), '/'); + isset($this->_config_rules[$config]) OR $config = $this->CI->router->class.'/'.$this->CI->router->method; } - $this->set_rules(isset($this->_config_rules[$group]) ? $this->_config_rules[$group] : $this->_config_rules); + $this->set_rules(isset($this->_config_rules[$config]) ? $this->_config_rules[$config] : $this->_config_rules); // Were we able to set the rules correctly? if (count($this->_field_data) === 0) @@ -482,17 +476,22 @@ class CI_Form_validation { $this->_execute($row, $row['rules'], $row['postdata']); } - // Did we end up with any errors? - $total_errors = count($this->_error_array); - if ($total_errors > 0) + if ( ! empty($this->_error_array)) { - $this->_safe_form_data = TRUE; + return FALSE; } - // Now we need to re-set the POST data with the new, processed data - empty($this->validation_data) && $this->_reset_post_array(); + // Fill $data if requested, otherwise modify $_POST, as long as + // set_data() wasn't used (yea, I know it sounds confusing) + if (func_num_args() >= 2) + { + $data = empty($this->validation_data) ? $_POST : $this->validation_data; + $this->_reset_data_array($data); + return TRUE; + } - return ($total_errors === 0); + empty($this->validation_data) && $this->_reset_data_array($_POST); + return TRUE; } // -------------------------------------------------------------------- @@ -580,7 +579,7 @@ class CI_Form_validation { * * @return void */ - protected function _reset_post_array() + protected function _reset_data_array(&$data) { foreach ($this->_field_data as $field => $row) { @@ -588,27 +587,24 @@ class CI_Form_validation { { if ($row['is_array'] === FALSE) { - isset($_POST[$field]) && $_POST[$field] = $row['postdata']; + isset($data[$field]) && $data[$field] = $row['postdata']; } else { - // start with a reference - $post_ref =& $_POST; - // before we assign values, make a reference to the right POST key if (count($row['keys']) === 1) { - $post_ref =& $post_ref[current($row['keys'])]; + $data_ref =& $data[current($row['keys'])]; } else { foreach ($row['keys'] as $val) { - $post_ref =& $post_ref[$val]; + $data_ref =& $data_ref[$val]; } } - $post_ref = $row['postdata']; + $data_ref = $row['postdata']; } } } diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index afd070e05..ebb14983e 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -610,6 +610,24 @@ class Form_validation_test extends CI_TestCase { $this->assertEquals('?>', $this->form_validation->encode_php_tags('?>')); } + public function test_validated_data_assignment() + { + $_POST = $post_original = array('foo' => ' bar ', 'bar' => 'baz'); + + $this->form_validation->set_data($_POST); + $this->form_validation->set_rules('foo', 'Foo', 'required|trim'); + + $data_processed = NULL; + $validation_result = $this->form_validation->run('', $data_processed); + + $this->assertTrue($validation_result); + $this->assertEquals($post_original, $_POST); + $this->assertEquals(array('foo' => 'bar', 'bar' => 'baz'), $data_processed); + + $this->form_validation->reset_validation(); + $_POST = array(); + } + /** * Run rules * diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index c1f53dac0..db2be2014 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -52,6 +52,7 @@ Release Date: Not Released - Changed method ``set_rules()`` to throw a ``BadMethodCallException`` when its first parameter is not an array and the ``$rules`` one is unused. - Added rule **valid_mac**, which replicates PHP's native ``filter_var()`` with ``FILTER_VALIDATE_MAC``. - Added ability to validate entire arrays at once, if ``is_array`` is within the list of rules. + - Added ability to fetch processed data via a second parameter to ``run()``. - :doc:`HTML Table Library ` changes include: diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 6a92cc983..fd2f3af94 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -881,6 +881,24 @@ When a rule group is named identically to a controller class/method it will be used automatically when the ``run()`` method is invoked from that class/method. +Accessing validated/processed data +================================== + +By default, validation will be performed directly on the ``$_POST`` array, +and any possible modifications (like trimming whitespace, for example) +would be written back onto it. +However, if you want to keep the original input data intact, or have used +``set_data()`` to pass a custom set of inputs, you would likely want to +fetch the now-modified data. In order to do that, you can pass a variable +as the second parameter to ``run()``:: + + $input = array('name' => ' White Space '); + $output = NULL; + + $this->form_validation->set_rules('name', 'Name', 'required|trim'); + $this->form_validation->run(NULL, $output); + // $output will now contain: array('name' => 'White Space'); + .. _using-arrays-as-field-names: *************************** @@ -1043,9 +1061,10 @@ Class Reference - :ref:`setting-validation-rules` - :ref:`saving-groups` - .. php:method:: run([$group = '']) + .. php:method:: run([$config = NULL[, $data = NULL]]) :param string $group: The name of the validation group to run + :param mixed $data: Optional variable to assign validated data to :returns: TRUE on success, FALSE if validation failed :rtype: bool -- cgit v1.2.3-24-g4f1b From 9414d492612e08f7fa8ae46131d882547afb49ff Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 22 Jun 2017 15:39:05 +0300 Subject: Close #4134: Allow dots in alias names detected by QB --- system/database/DB_driver.php | 23 ++++++++++++---------- user_guide_src/source/changelog.rst | 1 + .../source/database/db_driver_reference.rst | 5 +++-- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index de599a675..1dc23d72e 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -1320,10 +1320,11 @@ abstract class CI_DB_driver { * * This function escapes column and table names * - * @param mixed + * @param mixed $item Identifier to escape + * @param bool $split Whether to split identifiers when a dot is encountered * @return mixed */ - public function escape_identifiers($item) + public function escape_identifiers($item, $split = TRUE) { if ($this->_escape_char === '' OR empty($item) OR in_array($item, $this->_reserved_identifiers)) { @@ -1344,22 +1345,22 @@ abstract class CI_DB_driver { return $item; } - static $preg_ec = array(); + static $preg_ec; if (empty($preg_ec)) { if (is_array($this->_escape_char)) { $preg_ec = array( - preg_quote($this->_escape_char[0], '/'), - preg_quote($this->_escape_char[1], '/'), + preg_quote($this->_escape_char[0]), + preg_quote($this->_escape_char[1]), $this->_escape_char[0], $this->_escape_char[1] ); } else { - $preg_ec[0] = $preg_ec[1] = preg_quote($this->_escape_char, '/'); + $preg_ec[0] = $preg_ec[1] = preg_quote($this->_escape_char); $preg_ec[2] = $preg_ec[3] = $this->_escape_char; } } @@ -1368,11 +1369,13 @@ abstract class CI_DB_driver { { if (strpos($item, '.'.$id) !== FALSE) { - return preg_replace('/'.$preg_ec[0].'?([^'.$preg_ec[1].'\.]+)'.$preg_ec[1].'?\./i', $preg_ec[2].'$1'.$preg_ec[3].'.', $item); + return preg_replace('#'.$preg_ec[0].'?([^'.$preg_ec[1].'\.]+)'.$preg_ec[1].'?\.#i', $preg_ec[2].'$1'.$preg_ec[3].'.', $item); } } - return preg_replace('/'.$preg_ec[0].'?([^'.$preg_ec[1].'\.]+)'.$preg_ec[1].'?(\.)?/i', $preg_ec[2].'$1'.$preg_ec[3].'$2', $item); + $dot = ($split !== FALSE) ? '\.' : ''; + + return preg_replace('#'.$preg_ec[0].'?([^'.$preg_ec[1].$dot.']+)'.$preg_ec[1].'?(\.)?#i', $preg_ec[2].'$1'.$preg_ec[3].'$2', $item); } // -------------------------------------------------------------------- @@ -1786,14 +1789,14 @@ abstract class CI_DB_driver { if ($offset = strripos($item, ' AS ')) { $alias = ($protect_identifiers) - ? substr($item, $offset, 4).$this->escape_identifiers(substr($item, $offset + 4)) + ? substr($item, $offset, 4).$this->escape_identifiers(substr($item, $offset + 4), FALSE) : substr($item, $offset); $item = substr($item, 0, $offset); } elseif ($offset = strrpos($item, ' ')) { $alias = ($protect_identifiers) - ? ' '.$this->escape_identifiers(substr($item, $offset + 1)) + ? ' '.$this->escape_identifiers(substr($item, $offset + 1), FALSE) : substr($item, $offset); $item = substr($item, 0, $offset); } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index db2be2014..c25c70e64 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -77,6 +77,7 @@ Release Date: Not Released - :doc:`Query Builder `: - Added methods ``having_in()``, ``or_having_in()``, ``not_having_in()``, ``or_not_having_in()``. + - Updated logic to allow dots in alias names. - Helpers diff --git a/user_guide_src/source/database/db_driver_reference.rst b/user_guide_src/source/database/db_driver_reference.rst index 6f2fa5fb1..c240526e0 100644 --- a/user_guide_src/source/database/db_driver_reference.rst +++ b/user_guide_src/source/database/db_driver_reference.rst @@ -305,9 +305,10 @@ This article is intended to be a reference for them. Gets a list containing field data about a table. - .. php:method:: escape_identifiers($item) + .. php:method:: escape_identifiers($item, $split = TRUE) :param mixed $item: The item or array of items to escape + :param bool $split: Whether to split identifiers when a dot is encountered :returns: The input item(s), escaped :rtype: mixed @@ -428,4 +429,4 @@ This article is intended to be a reference for them. insert the table prefix (if it exists) in the proper position, and escape only the correct identifiers. - This method is used extensively by the Query Builder class. \ No newline at end of file + This method is used extensively by the Query Builder class. -- cgit v1.2.3-24-g4f1b From 4fbc7a0cac132bb98451d7c86e89e81b76aef08f Mon Sep 17 00:00:00 2001 From: Hex Date: Mon, 26 Jun 2017 00:29:50 +0800 Subject: Fix the spelling of the word. --- user_guide_src/source/libraries/security.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/security.rst b/user_guide_src/source/libraries/security.rst index fc5cba19d..868112684 100644 --- a/user_guide_src/source/libraries/security.rst +++ b/user_guide_src/source/libraries/security.rst @@ -107,7 +107,7 @@ Class Reference If the optional second parameter is set to true, it will return boolean TRUE if the image is safe to use and FALSE if malicious data was detected in it. - .. important:: This method is not suitable for filtering HTML attribute vales! + .. important:: This method is not suitable for filtering HTML attribute values! Use :php:func:`html_escape()` for that instead. .. php:method:: sanitize_filename($str[, $relative_path = FALSE]) -- cgit v1.2.3-24-g4f1b From 569cf69078de1c8a970ab4259467dfe27b4cdb96 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Wed, 5 Jul 2017 16:54:01 +0800 Subject: Acquiring redis lock with existence check. Signed-off-by: tianhe1986 --- system/libraries/Session/drivers/Session_redis_driver.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 2aeb77267..8fc0a45da 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -365,7 +365,16 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle continue; } - if ( ! $this->_redis->setex($lock_key, 300, time())) + if ($ttl === -2) + { + $set_result = $this->_redis->set($lock_key, time(), array('nx', 'ex' => 300)); + } + else + { + $set_result = $this->_redis->setex($lock_key, 300, time()); + } + + if ( ! $set_result) { log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); return FALSE; -- cgit v1.2.3-24-g4f1b From e98c203f81a11cfd82a644381cd50f865384118d Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Wed, 5 Jul 2017 17:05:23 +0800 Subject: Acquiring memcached lock with add() to avoid race conditions. Signed-off-by: tianhe1986 --- system/libraries/Session/drivers/Session_memcached_driver.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index 2556bf0f7..542f596c9 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -310,7 +310,7 @@ class CI_Session_memcached_driver extends CI_Session_driver implements SessionHa if ( ! $this->_memcached->replace($this->_lock_key, time(), 300)) { return ($this->_memcached->getResultCode() === Memcached::RES_NOTFOUND) - ? $this->_memcached->set($this->_lock_key, time(), 300) + ? $this->_memcached->add($this->_lock_key, time(), 300) : FALSE; } } @@ -326,7 +326,11 @@ class CI_Session_memcached_driver extends CI_Session_driver implements SessionHa continue; } - if ( ! $this->_memcached->set($lock_key, time(), 300)) + $set_result = ($this->_memcached->getResultCode() === Memcached::RES_NOTFOUND) + ? $this->_memcached->add($lock_key, time(), 300) + : $this->_memcached->set($lock_key, time(), 300); + + if ( ! $set_result) { log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); return FALSE; -- cgit v1.2.3-24-g4f1b From 3eecd968bd68cf3c70baa81be332b2007a14e564 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Wed, 5 Jul 2017 19:42:49 +0800 Subject: Simplifying the code. Signed-off-by: tianhe1986 --- .../libraries/Session/drivers/Session_memcached_driver.php | 4 ++-- system/libraries/Session/drivers/Session_redis_driver.php | 14 ++++---------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index 542f596c9..8c01a8783 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -326,11 +326,11 @@ class CI_Session_memcached_driver extends CI_Session_driver implements SessionHa continue; } - $set_result = ($this->_memcached->getResultCode() === Memcached::RES_NOTFOUND) + $result = ($this->_memcached->getResultCode() === Memcached::RES_NOTFOUND) ? $this->_memcached->add($lock_key, time(), 300) : $this->_memcached->set($lock_key, time(), 300); - if ( ! $set_result) + if ( ! $result) { log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); return FALSE; diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 8fc0a45da..3437898de 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -365,16 +365,10 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle continue; } - if ($ttl === -2) - { - $set_result = $this->_redis->set($lock_key, time(), array('nx', 'ex' => 300)); - } - else - { - $set_result = $this->_redis->setex($lock_key, 300, time()); - } - - if ( ! $set_result) + $result = ($ttl === -2) + ? $this->_redis->set($lock_key, time(), array('nx', 'ex' => 300)) + : $this->_redis->setex($lock_key, 300, time()); + if ( ! $result) { log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); return FALSE; -- cgit v1.2.3-24-g4f1b From 6ec0433759964e74d71233b45cd259d24a24ecf3 Mon Sep 17 00:00:00 2001 From: Syafiqq Date: Thu, 6 Jul 2017 08:16:47 +0700 Subject: Add array identifier for library loader --- system/core/Loader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index e6585ad3f..677b832bb 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -182,7 +182,7 @@ class CI_Loader { * Loads and instantiates libraries. * Designed to be called from application controllers. * - * @param string $library Library name + * @param string|array $library Library name * @param array $params Optional parameters to pass to the library class constructor * @param string $object_name An optional object name to assign to * @return object -- cgit v1.2.3-24-g4f1b From 24e91311bd86b9eddb9ffb2d4b6ab78bf19796c2 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 6 Jul 2017 09:25:01 +0800 Subject: Format fixing. Signed-off-by: tianhe1986 --- system/libraries/Session/drivers/Session_memcached_driver.php | 7 ++----- system/libraries/Session/drivers/Session_redis_driver.php | 1 + 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index 8c01a8783..5e90539d7 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -326,11 +326,8 @@ class CI_Session_memcached_driver extends CI_Session_driver implements SessionHa continue; } - $result = ($this->_memcached->getResultCode() === Memcached::RES_NOTFOUND) - ? $this->_memcached->add($lock_key, time(), 300) - : $this->_memcached->set($lock_key, time(), 300); - - if ( ! $result) + $method = ($this->_memcached->getResultCode() === Memcached::RES_NOTFOUND) ? 'add' : 'set'; + if ( ! $this->_memcached->$method($lock_key, time(), 300)) { log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); return FALSE; diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 3437898de..76bddffd3 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -368,6 +368,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle $result = ($ttl === -2) ? $this->_redis->set($lock_key, time(), array('nx', 'ex' => 300)) : $this->_redis->setex($lock_key, 300, time()); + if ( ! $result) { log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); -- cgit v1.2.3-24-g4f1b From cea4e2ca1103506ce2b8f62e2065edc0f8a792b1 Mon Sep 17 00:00:00 2001 From: Syafiqq Date: Thu, 6 Jul 2017 08:16:47 +0700 Subject: Add array identifier for library loader --- system/core/Loader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index e6585ad3f..6374558ad 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -182,7 +182,7 @@ class CI_Loader { * Loads and instantiates libraries. * Designed to be called from application controllers. * - * @param string $library Library name + * @param mixed $library Library name * @param array $params Optional parameters to pass to the library class constructor * @param string $object_name An optional object name to assign to * @return object -- cgit v1.2.3-24-g4f1b From b344273d2aa61457d0119f0b224d400b8de65654 Mon Sep 17 00:00:00 2001 From: Lloric Mayuga Garcia Date: Sun, 9 Jul 2017 22:19:19 +0800 Subject: php style Signed-off-by: Lloric Mayuga Garcia --- system/libraries/Profiler.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index 9a1a51380..cb3eaed75 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -484,15 +484,15 @@ class CI_Profiler { foreach ($this->CI->config->config as $config => $val) { - $pre = ''; - $pre_close = ''; + $pre = ''; + $pre_close = ''; if (is_array($val) OR is_object($val)) { $val = print_r($val, TRUE); - $pre = '
      ' ;
      -                                $pre_close = '
      '; + $pre = '
      ' ;
      + 				$pre_close = '
      '; } $output .= '' @@ -522,15 +522,15 @@ class CI_Profiler { foreach ($this->CI->session->userdata() as $key => $val) { - $pre = ''; - $pre_close = ''; + $pre = ''; + $pre_close = ''; if (is_array($val) OR is_object($val)) { $val = print_r($val, TRUE); - $pre = '
      ' ;
      -                                $pre_close = '
      '; + $pre = '
      ' ;
      + 				$pre_close = '
      '; } $output .= '' -- cgit v1.2.3-24-g4f1b From 216b80a381a4d151e4f748542a9190292a928d79 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Wed, 12 Jul 2017 15:44:35 +0900 Subject: add is_write_type method for merge query Signed-off-by: tetsuro yoshikawa --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 1dc23d72e..e04525de3 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -982,7 +982,7 @@ abstract class CI_DB_driver { */ public function is_write_type($sql) { - return (bool) preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX)\s/i', $sql); + return (bool) preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD|COPY|ALTER|RENAME|GRANT|REVOKE|LOCK|UNLOCK|REINDEX|MERGE)\s/i', $sql); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 2ce3173415226a34ded78ff24556178cb41c7269 Mon Sep 17 00:00:00 2001 From: ryanbriscall Date: Sun, 16 Jul 2017 12:17:34 -0600 Subject: updates version of sphinx to 1.6.3 for easyinstall command in step 2 of user_guide_src/README. --- user_guide_src/README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/README.rst b/user_guide_src/README.rst index d645adb73..b6606bf24 100644 --- a/user_guide_src/README.rst +++ b/user_guide_src/README.rst @@ -23,7 +23,7 @@ Installation ============ 1. Install `easy_install `_ -2. ``easy_install "sphinx==1.2.3"`` +2. ``easy_install "sphinx==1.6.3"`` 3. ``easy_install "sphinxcontrib-phpdomain==0.1.3.post1"`` 4. Install the CI Lexer which allows PHP, HTML, CSS, and JavaScript syntax highlighting in code examples (see *cilexer/README*) 5. ``cd user_guide_src`` -- cgit v1.2.3-24-g4f1b From 9cce9b7dd19ab6843af6925a1910cdf0924f0736 Mon Sep 17 00:00:00 2001 From: ryanbriscall Date: Sun, 16 Jul 2017 23:51:54 -0600 Subject: updates prerequisites text to clarify v2.7 requirement of Python for Sphinx. --- user_guide_src/README.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/user_guide_src/README.rst b/user_guide_src/README.rst index b6606bf24..b31db7cf8 100644 --- a/user_guide_src/README.rst +++ b/user_guide_src/README.rst @@ -13,11 +13,13 @@ output it to various formats. Pages are written in human-readable Prerequisites ============= -Sphinx requires Python, which is already installed if you are running OS X. +Sphinx requires Python 2.7. If you are on OS X, then you already have Python. You can confirm in a Terminal window by executing the ``python`` command without any parameters. It should load up and tell you which version you have -installed. If you're not on 2.7+, go ahead and install 2.7.2 from -http://python.org/download/releases/2.7.2/ +installed. + +Note: If you're not on Python 2.7, then you must upgrade. E.g. Install 2.7.2 +from http://python.org/download/releases/2.7.2/ Installation ============ -- cgit v1.2.3-24-g4f1b From 4aaa9072fc40c9c10bb1501a86505666939deb7d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 20 Jul 2017 12:50:49 +0300 Subject: [ci skip] Fix changelog entries (errors detected while testing #5188) --- user_guide_src/source/changelog.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index c25c70e64..ba789f396 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -11,7 +11,7 @@ Release Date: Not Released - Officially dropped any kind of support for anything under PHP 5.4.8. - Updated Welcome view and HTML error templates with new styling. - - Updated configurable directory paths to handle missing trailing ``DIRECTORY_SEPARATOR``s automatically. + - Updated configurable directory paths to handle missing trailing ``DIRECTORY_SEPARATOR`` automatically. - Core @@ -87,7 +87,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - Added new function :php:func:`ordinal_format()` to :doc:`Inflector Helper `. - - Added 'img_alt' option to :php:func`create_captcha()` :doc:`CAPTCHA Helper` with a default value of 'captcha'. + - Added 'img_alt' option to :php:func`create_captcha()` :doc:`CAPTCHA Helper ` with a default value of 'captcha'. - :doc:`Download Helper ` changes include: -- cgit v1.2.3-24-g4f1b From 30f15f9317b5df49ebe880a423a317b045a495eb Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Thu, 20 Jul 2017 04:58:16 -0700 Subject: Fix some mistakes in the user guide --- .gitignore | 3 ++- user_guide_src/source/database/query_builder.rst | 2 +- user_guide_src/source/general/urls.rst | 8 +++----- user_guide_src/source/libraries/input.rst | 2 +- user_guide_src/source/libraries/loader.rst | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 916cbe589..f6e8e993b 100644 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,5 @@ user_guide_src/cilexer/pycilexer.egg-info/* *.stTheme.cache *.sublime-workspace *.sublime-project -/tests/tests/ \ No newline at end of file +/tests/tests/ +/tests/results/ \ No newline at end of file diff --git a/user_guide_src/source/database/query_builder.rst b/user_guide_src/source/database/query_builder.rst index 2d954c7a8..7c1bd4cc0 100644 --- a/user_guide_src/source/database/query_builder.rst +++ b/user_guide_src/source/database/query_builder.rst @@ -119,7 +119,7 @@ escaping of fields may break them. :: - $this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE); + $this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4) AS amount_paid', FALSE); $query = $this->db->get('mytable'); **$this->db->select_max()** diff --git a/user_guide_src/source/general/urls.rst b/user_guide_src/source/general/urls.rst index ca44e2f4c..b2b90ba39 100644 --- a/user_guide_src/source/general/urls.rst +++ b/user_guide_src/source/general/urls.rst @@ -42,13 +42,11 @@ By default, the **index.php** file will be included in your URLs:: If your Apache server has *mod_rewrite* enabled, you can easily remove this file by using a .htaccess file with some simple rules. Here is an example of such a file, using the "negative" method in which everything is redirected -except the specified items: - -:: +except the specified items:: RewriteEngine On - RewriteCond %{REQUEST_FILENAME} !-f - RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} -f [OR] + RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteRule ^(.*)$ index.php/$1 [L] In the above example, any HTTP request other than those for existing diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index 7f762e9f0..b568dae6f 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -202,7 +202,7 @@ Class Reference data:: $this->input->cookie('some_cookie'); - $this->input->cookie('some_cookie, TRUE); // with XSS filter + $this->input->cookie('some_cookie', TRUE); // with XSS filter To return an array of multiple cookie values, pass all the required keys as an array. diff --git a/user_guide_src/source/libraries/loader.rst b/user_guide_src/source/libraries/loader.rst index 228d5e478..22abb4586 100644 --- a/user_guide_src/source/libraries/loader.rst +++ b/user_guide_src/source/libraries/loader.rst @@ -125,7 +125,7 @@ Class Reference $config = array ( 'mailtype' => 'html', - 'charset' => 'utf-8, + 'charset' => 'utf-8', 'priority' => '1' ); -- cgit v1.2.3-24-g4f1b From 771eca8d9ac7fc7ebed46b3a91d384eb62debd6e Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Thu, 20 Jul 2017 07:23:44 -0700 Subject: Remove changes to general/urls.rst --- user_guide_src/source/general/urls.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/general/urls.rst b/user_guide_src/source/general/urls.rst index b2b90ba39..82bcc5711 100644 --- a/user_guide_src/source/general/urls.rst +++ b/user_guide_src/source/general/urls.rst @@ -45,8 +45,8 @@ of such a file, using the "negative" method in which everything is redirected except the specified items:: RewriteEngine On - RewriteCond %{REQUEST_FILENAME} -f [OR] - RewriteCond %{REQUEST_FILENAME} -d [OR] + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] In the above example, any HTTP request other than those for existing -- cgit v1.2.3-24-g4f1b From 3b490ef66741ff6e822ac641df52f44c17936d97 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Thu, 20 Jul 2017 08:50:33 -0700 Subject: Added code-block tag to make sphinx happy with urls.rst --- user_guide_src/source/general/urls.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/user_guide_src/source/general/urls.rst b/user_guide_src/source/general/urls.rst index 82bcc5711..e23554907 100644 --- a/user_guide_src/source/general/urls.rst +++ b/user_guide_src/source/general/urls.rst @@ -44,6 +44,8 @@ file by using a .htaccess file with some simple rules. Here is an example of such a file, using the "negative" method in which everything is redirected except the specified items:: +.. code-block:: console + RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d -- cgit v1.2.3-24-g4f1b From 3375040f47d82cc018b1bcd3949665360914d04d Mon Sep 17 00:00:00 2001 From: "Instructor, Computer Systems Technology" Date: Wed, 26 Jul 2017 21:42:14 -0700 Subject: Update readme.rst --- readme.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.rst b/readme.rst index a2537b393..f2b1033a6 100644 --- a/readme.rst +++ b/readme.rst @@ -57,7 +57,7 @@ Resources - `Language File Translations `_ - `Community Forums `_ - `Community Wiki `_ -- `Community IRC `_ +- `Community Slack Channel `_ Report security issues to our `Security Panel `_ or via our `page on HackerOne `_, thank you. -- cgit v1.2.3-24-g4f1b From 4aaf3847dbd3a33bdd3341a93462be4f0cbcaeef Mon Sep 17 00:00:00 2001 From: "Instructor, Computer Systems Technology" Date: Wed, 26 Jul 2017 21:43:24 -0700 Subject: Update composer.json Replace IRC reference with Slack --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index fea8f1f85..f9359a93d 100644 --- a/composer.json +++ b/composer.json @@ -7,7 +7,7 @@ "support": { "forum": "http://forum.codeigniter.com/", "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki", - "irc": "irc://irc.freenode.net/codeigniter", + "slack": "https://codeigniterchat.slack.com", "source": "https://github.com/bcit-ci/CodeIgniter" }, "require": { -- cgit v1.2.3-24-g4f1b From 9957eb37a9f12e9d9ea48b26801b1cf573376539 Mon Sep 17 00:00:00 2001 From: Erik Nord Date: Sat, 5 Aug 2017 19:11:09 +0200 Subject: Minor change in _display() method in CI_Output class allowing us to override output data with an empty string. Without this change CI chooses to use the default "final_output" var; even though we passed an empty string to the method. --- system/core/Output.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/core/Output.php b/system/core/Output.php index 2dabb2445..aceef676a 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -412,7 +412,7 @@ class CI_Output { * @param string $output Output data override * @return void */ - public function _display($output = '') + public function _display($output = NULL) { // Note: We use load_class() because we can't use $CI =& get_instance() // since this function is sometimes called by the caching mechanism, @@ -429,7 +429,7 @@ class CI_Output { // -------------------------------------------------------------------- // Set the output data - if ($output === '') + if ($output === NULL) { $output =& $this->final_output; } -- cgit v1.2.3-24-g4f1b From cbe27d76f0aaba7b40f4b23904e4258964bdc50c Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 7 Aug 2017 11:10:21 +0300 Subject: [ci skip] Update docs & add changelog entry for PR #5217 --- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/libraries/output.rst | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index ba789f396..6b75d6296 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -21,6 +21,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Config Library ` method ``system_url()`` (encourages insecure practices). - Changed :doc:`URI Library ` to ignore the ``$config['url_suffix']``, ``$config['permitted_uri_chars']`` configuration settings for CLI requests. - Changed :doc:`Loader ` method ``model()`` to always check if the loaded class extends ``CI_Model``. + - Changed :doc:`Output Library ` method ``_display()`` default parameter value to ``NULL`` instead of empty string. - :doc:`Input Library ` changes include: diff --git a/user_guide_src/source/libraries/output.rst b/user_guide_src/source/libraries/output.rst index 92060f66a..bb5493712 100644 --- a/user_guide_src/source/libraries/output.rst +++ b/user_guide_src/source/libraries/output.rst @@ -207,7 +207,7 @@ Class Reference For more information, please see the :doc:`caching documentation <../general/caching>`. - .. php:method:: _display([$output = '']) + .. php:method:: _display([$output = NULL]) :param string $output: Output data override :returns: void -- cgit v1.2.3-24-g4f1b From 4a9110e120b105c0ad29d028c721c312f405f75a Mon Sep 17 00:00:00 2001 From: Shang Ning Date: Tue, 29 Aug 2017 19:57:50 +0800 Subject: add NATURAL JOIN types to fix #5240 --- system/database/DB_query_builder.php | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 102ff4ac0..98ba71dbc 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -525,20 +525,29 @@ abstract class CI_DB_query_builder extends CI_DB_driver { */ public function join($table, $cond, $type = '', $escape = NULL) { + $natural_join = FALSE; + if ($type !== '') { $type = strtoupper(trim($type)); - if ( ! in_array($type, array('LEFT', 'RIGHT', 'OUTER', 'INNER', 'LEFT OUTER', 'RIGHT OUTER'), TRUE)) + if (in_array($type, array('LEFT', 'RIGHT', 'OUTER', 'INNER', 'LEFT OUTER', 'RIGHT OUTER'), TRUE)) { - $type = ''; + $type .= ' '; } - else + elseif (in_array($type, array('NATURAL', 'NATURAL LEFT', 'NATURAL RIGHT', 'NATURAL LEFT OUTER', 'NATURAL RIGHT OUTER'), TRUE)) { $type .= ' '; + $natural_join = TRUE; + } + else + { + $type = ''; } } + + // Extract any aliases that might exist. We use this information // in the protect_identifiers to know whether to add a table prefix $this->_track_aliases($table); @@ -594,7 +603,14 @@ abstract class CI_DB_query_builder extends CI_DB_driver { } // Assemble the JOIN statement - $this->qb_join[] = $join = $type.'JOIN '.$table.$cond; + if ($natural_join === FALSE) + { + $this->qb_join[] = $join = $type.'JOIN '.$table.$cond; + } + else + { + $this->qb_join[] = $join = $type.'JOIN '.$table; + } if ($this->qb_caching === TRUE) { -- cgit v1.2.3-24-g4f1b From 8958af6bf463ef958d798d22b4e0be68b721102d Mon Sep 17 00:00:00 2001 From: Shang Ning Date: Tue, 29 Aug 2017 20:11:45 +0800 Subject: remove unnecessary empty lines --- system/database/DB_query_builder.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 98ba71dbc..9564e8870 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -546,8 +546,6 @@ abstract class CI_DB_query_builder extends CI_DB_driver { } } - - // Extract any aliases that might exist. We use this information // in the protect_identifiers to know whether to add a table prefix $this->_track_aliases($table); -- cgit v1.2.3-24-g4f1b From 66b6717e6b3ec2cd9ced7040cd330d7add19dcb6 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 29 Aug 2017 16:01:18 +0300 Subject: Polish changes from & add changelog entry for PR #5242 Also, further simplified the join() logic --- system/database/DB_query_builder.php | 37 ++++++++---------------------------- user_guide_src/source/changelog.rst | 1 + 2 files changed, 9 insertions(+), 29 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 9564e8870..d35d84d6d 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -525,26 +525,8 @@ abstract class CI_DB_query_builder extends CI_DB_driver { */ public function join($table, $cond, $type = '', $escape = NULL) { - $natural_join = FALSE; - - if ($type !== '') - { - $type = strtoupper(trim($type)); - - if (in_array($type, array('LEFT', 'RIGHT', 'OUTER', 'INNER', 'LEFT OUTER', 'RIGHT OUTER'), TRUE)) - { - $type .= ' '; - } - elseif (in_array($type, array('NATURAL', 'NATURAL LEFT', 'NATURAL RIGHT', 'NATURAL LEFT OUTER', 'NATURAL RIGHT OUTER'), TRUE)) - { - $type .= ' '; - $natural_join = TRUE; - } - else - { - $type = ''; - } - } + $type = strtoupper(trim($type)); + preg_match('#^(NATURAL(?=\s|$)\s*)?((LEFT|RIGHT)(?=\s|$))?\s*(INNER|OUTER)?$#', $type) OR $type = ''; // Extract any aliases that might exist. We use this information // in the protect_identifiers to know whether to add a table prefix @@ -552,7 +534,11 @@ abstract class CI_DB_query_builder extends CI_DB_driver { is_bool($escape) OR $escape = $this->_protect_identifiers; - if ( ! $this->_has_operator($cond)) + if (strpos($type, 'NATURAL') === 0) + { + $cond = ''; + } + elseif ( ! $this->_has_operator($cond)) { $cond = ' USING ('.($escape ? $this->escape_identifiers($cond) : $cond).')'; } @@ -601,14 +587,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { } // Assemble the JOIN statement - if ($natural_join === FALSE) - { - $this->qb_join[] = $join = $type.'JOIN '.$table.$cond; - } - else - { - $this->qb_join[] = $join = $type.'JOIN '.$table; - } + $this->qb_join[] = $join = $type.' JOIN '.$table.$cond; if ($this->qb_caching === TRUE) { diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 6b75d6296..4b0a6e56a 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -78,6 +78,7 @@ Release Date: Not Released - :doc:`Query Builder `: - Added methods ``having_in()``, ``or_having_in()``, ``not_having_in()``, ``or_not_having_in()``. + - Updated method ``join()`` to allow accepting ``NATURAL`` clauses in its third parameter. - Updated logic to allow dots in alias names. - Helpers -- cgit v1.2.3-24-g4f1b From 6ffc8f63c8a9a76c5323a4013382a61eb4d7031a Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 29 Aug 2017 16:38:24 +0300 Subject: Optimize the join() type regexp and remove the extra leading space when no special join-type is used --- system/database/DB_query_builder.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index d35d84d6d..3ff94be8e 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -525,8 +525,8 @@ abstract class CI_DB_query_builder extends CI_DB_driver { */ public function join($table, $cond, $type = '', $escape = NULL) { - $type = strtoupper(trim($type)); - preg_match('#^(NATURAL(?=\s|$)\s*)?((LEFT|RIGHT)(?=\s|$))?\s*(INNER|OUTER)?$#', $type) OR $type = ''; + $type = trim(strtoupper($type).' JOIN'); + preg_match('#^(NATURAL\s+)?((LEFT|RIGHT)\s+)?((INNER|OUTER)\s+)?JOIN$#', $type) OR $type = 'JOIN'; // Extract any aliases that might exist. We use this information // in the protect_identifiers to know whether to add a table prefix @@ -587,7 +587,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { } // Assemble the JOIN statement - $this->qb_join[] = $join = $type.' JOIN '.$table.$cond; + $this->qb_join[] = $join = $type.' '.$table.$cond; if ($this->qb_caching === TRUE) { -- cgit v1.2.3-24-g4f1b From e1f7e5430b3b7761467b918b07890e94edc6e663 Mon Sep 17 00:00:00 2001 From: Andrei Rosseti Date: Wed, 30 Aug 2017 17:41:27 -0300 Subject: Fixed DBLIB subdriver to get the right version number of SQL Server. --- .../drivers/pdo/subdrivers/pdo_dblib_driver.php | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php index 08243232e..048759fef 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php @@ -334,4 +334,31 @@ class CI_DB_pdo_dblib_driver extends CI_DB_pdo_driver { return ($this->db_debug) ? $this->display_error('db_unsupported_feature') : FALSE; } + /** + * Database version number + * Fix by Andrei Rosseti + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + try + { + $productversion = $this->conn_id->query("SELECT + CAST( + SERVERPROPERTY('productversion') + AS VARCHAR + )")->fetchColumn(0); + + return $this->data_cache['version'] = $productversion; + } + catch (PDOException $e) + { + return parent::version(); + } + } } -- cgit v1.2.3-24-g4f1b From ec948d3665d50a5d4786fac4d806941d3e989f7e Mon Sep 17 00:00:00 2001 From: Andrei Rosseti Date: Thu, 31 Aug 2017 09:40:06 -0300 Subject: Refactoring some codeblocks. --- .../drivers/pdo/subdrivers/pdo_dblib_driver.php | 41 ++++++++-------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php index 048759fef..fbd279681 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php @@ -334,31 +334,20 @@ class CI_DB_pdo_dblib_driver extends CI_DB_pdo_driver { return ($this->db_debug) ? $this->display_error('db_unsupported_feature') : FALSE; } + // -------------------------------------------------------------------- + /** - * Database version number - * Fix by Andrei Rosseti - * @return string - */ - public function version() - { - if (isset($this->data_cache['version'])) - { - return $this->data_cache['version']; - } - - try - { - $productversion = $this->conn_id->query("SELECT - CAST( - SERVERPROPERTY('productversion') - AS VARCHAR - )")->fetchColumn(0); - - return $this->data_cache['version'] = $productversion; - } - catch (PDOException $e) - { - return parent::version(); - } - } + * Database version number + * + * @return string + */ + public function version() + { + if (isset($this->data_cache['version'])) + { + return $this->data_cache['version']; + } + + return $this->data_cache['version'] = $this->conn_id->query("SELECT SERVERPROPERTY('ProductVersion') AS ver")->fetchColumn(0); + } } -- cgit v1.2.3-24-g4f1b From 6607ca29fcf3da49ed562aefe4e3f8ceb91c32f1 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 4 Sep 2017 16:24:45 +0300 Subject: Fix Travis-CI failures --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 100b145b2..d41186094 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: php +dist: precise php: - 5.4 -- cgit v1.2.3-24-g4f1b From 94bac7ab05cedb75c46ce75c546a268015eabd2e Mon Sep 17 00:00:00 2001 From: Mehdi Bounya Date: Sat, 16 Sep 2017 10:55:39 +0100 Subject: Fixed dbprefix() $this->db->set_dbprefix('newprefix'); $this->db->dbprefix('tablename'); Would output newprefixtablename not newprefix_tablename --- user_guide_src/source/database/queries.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/database/queries.rst b/user_guide_src/source/database/queries.rst index f626f1e83..710ababb0 100644 --- a/user_guide_src/source/database/queries.rst +++ b/user_guide_src/source/database/queries.rst @@ -66,7 +66,7 @@ the following:: If for any reason you would like to change the prefix programatically without needing to create a new connection, you can use this method:: - $this->db->set_dbprefix('newprefix'); + $this->db->set_dbprefix('newprefix_'); $this->db->dbprefix('tablename'); // outputs newprefix_tablename -- cgit v1.2.3-24-g4f1b From 3e59801223f1393507d81e9f394c4f5ae33e1c04 Mon Sep 17 00:00:00 2001 From: Uekawa Date: Fri, 29 Sep 2017 15:10:41 +0900 Subject: Fix auto_link --- system/helpers/url_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 system/helpers/url_helper.php diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php old mode 100644 new mode 100755 index 99e82ef9f..421b3bad5 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -393,7 +393,7 @@ if ( ! function_exists('auto_link')) function auto_link($str, $type = 'both', $popup = FALSE) { // Find and replace any URLs. - if ($type !== 'email' && preg_match_all('#(\w*://|www\.)[^\s()<>;]+\w#i', $str, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) + if ($type !== 'email' && preg_match_all('#(\w*://|www\.)[^\s()<>;]+\w/?#i', $str, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) { // Set our target HTML if using popup links. $target = ($popup) ? ' target="_blank"' : ''; -- cgit v1.2.3-24-g4f1b From db92b5b336cbc6603f613916bde55940c9c24a05 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 29 Sep 2017 12:02:06 +0300 Subject: [ci skip] Revert file permission change from PR #5278 --- system/helpers/url_helper.php | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 system/helpers/url_helper.php diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php old mode 100755 new mode 100644 -- cgit v1.2.3-24-g4f1b From a92de9145196be119fefa5b294c6489d72e45b2d Mon Sep 17 00:00:00 2001 From: Paweł Kłopotek-Główczewski Date: Sat, 30 Sep 2017 21:08:06 +0200 Subject: Adding some letters translated to Y in foregin_chars.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Paweł Kłopotek-Główczewski --- application/config/foreign_chars.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/config/foreign_chars.php b/application/config/foreign_chars.php index ac406e3d4..995f48304 100644 --- a/application/config/foreign_chars.php +++ b/application/config/foreign_chars.php @@ -59,8 +59,8 @@ $foreign_characters = array( '/Þ|þ/' => 'th', '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U', '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u', - '/Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ|Й/' => 'Y', - '/ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ|й/' => 'y', + '/Ƴ|Ɏ|Ỵ|Ẏ|Ӳ|Ӯ|Ў|Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ|Й/' => 'Y', + '/ẙ|ʏ|ƴ|ɏ|ỵ|ẏ|ӳ|ӯ|ў|ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ|й/' => 'y', '/В/' => 'V', '/в/' => 'v', '/Ŵ/' => 'W', -- cgit v1.2.3-24-g4f1b From 09a05e1d9df3e71dec4f622ae28dafbce9515273 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 2 Oct 2017 10:48:20 +0300 Subject: [ci skip] Drop docs section about short PHP tags (close #5280) --- user_guide_src/source/general/alternative_php.rst | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/user_guide_src/source/general/alternative_php.rst b/user_guide_src/source/general/alternative_php.rst index 418d2e6eb..7f3a05e56 100644 --- a/user_guide_src/source/general/alternative_php.rst +++ b/user_guide_src/source/general/alternative_php.rst @@ -10,20 +10,6 @@ alternative syntax for control structures and short tag echo statements. If you are not familiar with this syntax, it allows you to eliminate the braces from your code, and eliminate "echo" statements. -Automatic Short Tag Support -=========================== - -.. note:: If you find that the syntax described in this page does not - work on your server it might be that "short tags" are disabled in your - PHP ini file. CodeIgniter will optionally rewrite short tags on-the-fly, - allowing you to use that syntax even if your server doesn't support it. - This feature can be enabled in your *config/config.php* file. - -Please note that if you do use this feature, if PHP errors are -encountered in your **view files**, the error message and line number -will not be accurately shown. Instead, all errors will be shown as -``eval()`` errors. - Alternative Echos ================= @@ -72,4 +58,4 @@ Here is another example, using ``if``/``elseif``/``else``. Notice the colons::

      Hi unknown user

      - \ No newline at end of file + -- cgit v1.2.3-24-g4f1b From a088cc47a7104e11d78eac44851779d20bae9cbc Mon Sep 17 00:00:00 2001 From: Zach Ploskey Date: Wed, 4 Oct 2017 05:24:53 -0700 Subject: Fix issue 5202 Fix attempting to access data_ref before it is defined when validating an array input with multiple explicitly specified keys. Adds a test for the issue. Signed-off-by: Zach Ploskey --- system/libraries/Form_validation.php | 2 ++ tests/codeigniter/libraries/Form_validation_test.php | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index c1cfcdb8f..0dfb274b2 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -591,6 +591,8 @@ class CI_Form_validation { } else { + $data_ref =& $data; + // before we assign values, make a reference to the right POST key if (count($row['keys']) === 1) { diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index ebb14983e..b70f950a2 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -482,6 +482,20 @@ class Form_validation_test extends CI_TestCase { $this->assertEquals('bar2', $this->form_validation->set_value('bar[]', $default)); } + public function test_issue_5202() + { + $data = array('person' => array('firstname' => 'Dick', 'lastname' => 'Tracy ')); + $this->form_validation->reset_validation(); + $this->form_validation->set_rules('person[firstname]', 'First Name', 'required|trim'); + $this->form_validation->set_rules('person[lastname]', 'Last Name', 'required|trim'); + $this->form_validation->set_data($data); + $valid = $this->form_validation->run('', $data); + + $this->assertEquals(TRUE, $valid); + $this->assertEquals('Dick', $data['person']['firstname']); + $this->assertEquals('Tracy', $data['person']['lastname']); + } + public function test_set_select() { // Test 1: No options selected -- cgit v1.2.3-24-g4f1b From a457c20f4183f800d9c14ac779dd440237165cbf Mon Sep 17 00:00:00 2001 From: AJ Dunn Date: Sun, 8 Oct 2017 17:26:40 +1030 Subject: Small spelling fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Missing ‘e’ in word ‘certificates’. Signed-off-by: AJ Dunn --- application/config/database.php | 2 +- user_guide_src/source/database/configuration.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/config/database.php b/application/config/database.php index b4d8a6a3e..d8566e8c3 100644 --- a/application/config/database.php +++ b/application/config/database.php @@ -47,7 +47,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | 'ssl_key' - Path to the private key file | 'ssl_cert' - Path to the public key certificate file | 'ssl_ca' - Path to the certificate authority file -| 'ssl_capath' - Path to a directory containing trusted CA certificats in PEM format +| 'ssl_capath' - Path to a directory containing trusted CA certificates in PEM format | 'ssl_cipher' - List of *allowed* ciphers to be used for the encryption, separated by colons (':') | 'ssl_verify' - TRUE/FALSE; Whether verify the server certificate or not ('mysqli' only) | diff --git a/user_guide_src/source/database/configuration.rst b/user_guide_src/source/database/configuration.rst index e231a7d6a..a9bf7dcb6 100644 --- a/user_guide_src/source/database/configuration.rst +++ b/user_guide_src/source/database/configuration.rst @@ -186,7 +186,7 @@ Explanation of Values: - 'ssl_key' - Path to the private key file - 'ssl_cert' - Path to the public key certificate file - 'ssl_ca' - Path to the certificate authority file - - 'ssl_capath' - Path to a directory containing trusted CA certificats in PEM format + - 'ssl_capath' - Path to a directory containing trusted CA certificates in PEM format - 'ssl_cipher' - List of *allowed* ciphers to be used for the encryption, separated by colons (':') - 'ssl_verify' - TRUE/FALSE; Whether to verify the server certificate or not ('mysqli' only) -- cgit v1.2.3-24-g4f1b From ea21f113733e914d5d0c950d5bfb5c5624368407 Mon Sep 17 00:00:00 2001 From: Mamat Rahmat Date: Mon, 9 Oct 2017 14:18:52 +0700 Subject: Fix broken .htaccess example code-block - remove double colon before code-block - change lexer into apacheconf Fixes #5283 Signed-off-by: Mamat Rahmat --- user_guide_src/source/general/urls.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/general/urls.rst b/user_guide_src/source/general/urls.rst index e23554907..b8a1b9f5b 100644 --- a/user_guide_src/source/general/urls.rst +++ b/user_guide_src/source/general/urls.rst @@ -42,9 +42,9 @@ By default, the **index.php** file will be included in your URLs:: If your Apache server has *mod_rewrite* enabled, you can easily remove this file by using a .htaccess file with some simple rules. Here is an example of such a file, using the "negative" method in which everything is redirected -except the specified items:: +except the specified items: -.. code-block:: console +.. code-block:: apache RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f -- cgit v1.2.3-24-g4f1b From 43d3a2c2cab6405dde6e68662659574bea0e6432 Mon Sep 17 00:00:00 2001 From: Zach Ploskey Date: Wed, 11 Oct 2017 08:24:06 -0700 Subject: Clean up form validation tests Remove a number unnecessary calls to reset_validation(). A new form_validation object is already initialized for every test in set_up(), so these lines do nothing unless multiple validations are done in the same test. Explicitly empty the $_POST array after each test that modifies it. Signed-off-by: Zach Ploskey --- .../codeigniter/libraries/Form_validation_test.php | 42 +++++++++++----------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index b70f950a2..90dd721a3 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -321,9 +321,6 @@ class Form_validation_test extends CI_TestCase { public function test_set_data() { - // Reset test environment - $_POST = array(); - $this->form_validation->reset_validation(); $data = array('field' => 'some_data'); $this->form_validation->set_data($data); $this->form_validation->set_rules('field', 'label', 'required'); @@ -342,9 +339,6 @@ class Form_validation_test extends CI_TestCase { public function test_set_message() { - // Reset test environment - $_POST = array(); - $this->form_validation->reset_validation(); $err_message = 'What a terrible error!'; $rules = array( array( @@ -372,7 +366,6 @@ class Form_validation_test extends CI_TestCase { public function test_set_error_delimiters() { - $this->form_validation->reset_validation(); $prefix = '
      '; $suffix = '
      '; $this->form_validation->set_error_delimiters($prefix, $suffix); @@ -383,11 +376,12 @@ class Form_validation_test extends CI_TestCase { $this->assertTrue(strrpos($error_msg, $prefix) === 0); $this->assertTrue(strrpos($error_msg, $suffix, -strlen($suffix)) === (strlen($error_msg) - strlen($suffix))); + + $_POST = array(); } public function test_error_array() { - $this->form_validation->reset_validation(); $error_message = 'What a terrible error!'; $this->form_validation->set_message('required', $error_message); $this->form_validation->set_rules('foo', 'label', 'required'); @@ -395,11 +389,12 @@ class Form_validation_test extends CI_TestCase { $this->form_validation->run(); $error_array = $this->form_validation->error_array(); $this->assertEquals($error_message, $error_array['foo']); + + $_POST = array(); } public function test_error_string() { - $this->form_validation->reset_validation(); $error_message = 'What a terrible error!'; $prefix_default = ''; $suffix_default = ''; @@ -421,6 +416,8 @@ class Form_validation_test extends CI_TestCase { $_POST = array('foo' => 'bar'); $this->form_validation->run(); $this->assertEquals('', $this->form_validation->error_string()); + + $_POST = array(); } public function test_run() @@ -449,6 +446,8 @@ class Form_validation_test extends CI_TestCase { $form_validation = new CI_Form_validation($config); $this->assertFalse($form_validation->run('fail')); + + $_POST = array(); } public function test_set_rules_exception() @@ -459,7 +458,6 @@ class Form_validation_test extends CI_TestCase { public function test_has_rule() { - $this->form_validation->reset_validation(); $this->form_validation->set_rules('foo', 'label', 'required'); $this->assertTrue($this->form_validation->has_rule('foo')); @@ -468,7 +466,6 @@ class Form_validation_test extends CI_TestCase { public function test_set_value() { - $this->form_validation->reset_validation(); $default = 'default'; $this->form_validation->set_rules('foo', 'label', 'required'); $this->form_validation->set_rules('bar[]', 'label', 'required'); @@ -480,12 +477,13 @@ class Form_validation_test extends CI_TestCase { $this->assertEquals('foo', $this->form_validation->set_value('foo', $default)); $this->assertEquals('bar1', $this->form_validation->set_value('bar[]', $default)); $this->assertEquals('bar2', $this->form_validation->set_value('bar[]', $default)); + + $_POST = array(); } public function test_issue_5202() { $data = array('person' => array('firstname' => 'Dick', 'lastname' => 'Tracy ')); - $this->form_validation->reset_validation(); $this->form_validation->set_rules('person[firstname]', 'First Name', 'required|trim'); $this->form_validation->set_rules('person[lastname]', 'Last Name', 'required|trim'); $this->form_validation->set_data($data); @@ -499,8 +497,6 @@ class Form_validation_test extends CI_TestCase { public function test_set_select() { // Test 1: No options selected - $this->form_validation->reset_validation(); - $_POST = array(); $this->form_validation->run(); $this->assertEquals('', $this->form_validation->set_select('select', 'foo')); @@ -529,13 +525,13 @@ class Form_validation_test extends CI_TestCase { $this->assertEquals(' selected="selected"', $this->form_validation->set_select('select[]', 'bar', TRUE)); $this->assertEquals('', $this->form_validation->set_select('select[]', 'foobar')); $this->assertEquals('', $this->form_validation->set_select('select[]', 'foobar', TRUE)); + + $_POST = array(); } public function test_set_radio() { // Test 1: No options selected - $this->form_validation->reset_validation(); - $_POST = array(); $this->form_validation->run(); $this->assertEquals('', $this->form_validation->set_radio('select', 'foo')); @@ -565,13 +561,13 @@ class Form_validation_test extends CI_TestCase { $this->assertEquals(' checked="checked"', $this->form_validation->set_radio('select[]', 'bar', TRUE)); $this->assertEquals('', $this->form_validation->set_radio('select[]', 'foobar')); $this->assertEquals('', $this->form_validation->set_radio('select[]', 'foobar', TRUE)); + + $_POST = array(); } public function test_set_checkbox() { // Test 1: No options selected - $this->form_validation->reset_validation(); - $_POST = array(); $this->form_validation->run(); $this->assertEquals('', $this->form_validation->set_checkbox('select', 'foo')); @@ -600,6 +596,8 @@ class Form_validation_test extends CI_TestCase { $this->assertEquals(' checked="checked"', $this->form_validation->set_checkbox('select[]', 'bar', TRUE)); $this->assertEquals('', $this->form_validation->set_checkbox('select[]', 'foobar')); $this->assertEquals('', $this->form_validation->set_checkbox('select[]', 'foobar', TRUE)); + + $_POST = array(); } public function test_regex_match() @@ -638,7 +636,6 @@ class Form_validation_test extends CI_TestCase { $this->assertEquals($post_original, $_POST); $this->assertEquals(array('foo' => 'bar', 'bar' => 'baz'), $data_processed); - $this->form_validation->reset_validation(); $_POST = array(); } @@ -652,13 +649,16 @@ class Form_validation_test extends CI_TestCase { { $this->form_validation->reset_validation(); $_POST = array(); - $this->form_validation->set_rules($rules); + foreach ($values as $field => $value) { $_POST[$field] = $value; } - return $this->form_validation->run(); + $valid = $this->form_validation->run(); + $_POST = array(); + + return $valid; } } -- cgit v1.2.3-24-g4f1b From 91dc2bf9b3f6a182a9ed2dea5b05590826471bd0 Mon Sep 17 00:00:00 2001 From: gonzalo-massa Date: Wed, 25 Oct 2017 11:44:18 -0300 Subject: Missing links for CI2 versions on documentation Download links for CodeIgniter versions 2.2.4, 2.2.5 and 2.2.6 added to documentation (Installation > Downloading CodeIgniter) --- user_guide_src/source/installation/downloads.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/user_guide_src/source/installation/downloads.rst b/user_guide_src/source/installation/downloads.rst index 337ea35d5..08f1e2b7c 100644 --- a/user_guide_src/source/installation/downloads.rst +++ b/user_guide_src/source/installation/downloads.rst @@ -18,6 +18,9 @@ Downloading CodeIgniter - `CodeIgniter v3.0.2 `_ - `CodeIgniter v3.0.1 `_ - `CodeIgniter v3.0.0 `_ +- `CodeIgniter v2.2.6 `_ +- `CodeIgniter v2.2.5 `_ +- `CodeIgniter v2.2.4 `_ - `CodeIgniter v2.2.3 `_ - `CodeIgniter v2.2.2 `_ - `CodeIgniter v2.2.1 `_ -- cgit v1.2.3-24-g4f1b From 151dd609313dcc2b52d2a7681f2722d388780b53 Mon Sep 17 00:00:00 2001 From: Avrom Date: Thu, 2 Nov 2017 18:11:01 -0400 Subject: Fixed docblock on model function. Changed @param model from string to mixed --- system/core/Loader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 580145231..fd43ebbe1 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -226,7 +226,7 @@ class CI_Loader { * * Loads and instantiates models. * - * @param string $model Model name + * @param mixed $model Model name * @param string $name An optional object name to assign to * @param bool $db_conn An optional database connection configuration to initialize * @return object -- cgit v1.2.3-24-g4f1b From a425963d769984a7f97f088ce1eb3db27d933cfa Mon Sep 17 00:00:00 2001 From: Vinod Selvin Date: Sun, 5 Nov 2017 19:30:24 +0530 Subject: Bug in documentation when i clicked on Codeigniter repository on Contributing.md, it redirects to https://github.com/bcit-ci/CodeIgniter>, there is some extra greater than symbol, creating issue, so i fixed and creating pull request to you. --- contributing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contributing.md b/contributing.md index 10b89b1db..d0df9b966 100644 --- a/contributing.md +++ b/contributing.md @@ -1,7 +1,7 @@ # 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. +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. 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: @@ -92,4 +92,4 @@ If you are using command-line you can do the following: 2. `git pull codeigniter develop` 3. `git push origin develop` -Now your fork is up to date. This should be done regularly, or before you send a pull request at least. \ No newline at end of file +Now your fork is up to date. This should be done regularly, or before you send a pull request at least. -- cgit v1.2.3-24-g4f1b From 0ef93646615516ae2bc87e54894708adaa29700f Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 7 Nov 2017 15:30:36 +0200 Subject: Implement data:image URIs in CAPTCHA helper Also, switched to PNG by default and dropped JPEG; refactored image files GC. Close #5200 --- system/helpers/captcha_helper.php | 74 +++++++++++++++--------- user_guide_src/source/changelog.rst | 7 ++- user_guide_src/source/helpers/captcha_helper.rst | 11 ++-- 3 files changed, 56 insertions(+), 36 deletions(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index f98d8a4cd..1da4a923b 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -70,9 +70,9 @@ if ( ! function_exists('create_captcha')) 'img_height' => '30', 'img_alt' => 'captcha', 'font_path' => '', + 'font_size' => 16, 'expiration' => 7200, 'word_length' => 8, - 'font_size' => 16, 'img_id' => '', 'pool' => '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'colors' => array( @@ -95,30 +95,41 @@ if ( ! function_exists('create_captcha')) } } - if ($img_path === '' OR $img_url === '' - OR ! is_dir($img_path) OR ! is_really_writable($img_path) - OR ! extension_loaded('gd')) + if ( ! extension_loaded('gd')) { return FALSE; } - // ----------------------------------- - // Remove old images - // ----------------------------------- + if ($img_url !== '' OR $img_path !== '') + { + if ($img_path === '' OR $img_url === '' OR ! is_dir($img_path) OR ! is_really_writable($img_path)) + { + return FALSE; + } - $now = microtime(TRUE); + /** + * Remove old images + */ + $now = microtime(TRUE); - $current_dir = @opendir($img_path); - while ($filename = @readdir($current_dir)) - { - if (in_array(substr($filename, -4), array('.jpg', '.png')) - && (str_replace(array('.jpg', '.png'), '', $filename) + $expiration) < $now) + $current_dir = @opendir($img_path); + while ($filename = @readdir($current_dir)) { - @unlink($img_path.$filename); + if (preg_match('#^(?\d{10})\.png$#', $filename, $match) && ($match['ts'] + $expiration) < $now) + { + @unlink($img_path.$filename); + } } - } - @closedir($current_dir); + @closedir($current_dir); + + // This variable will later be used later to determine whether we write to disk or output a data:image URI + $img_filename = $now.'.png'; + } + else + { + $img_filename = NULL; + } // ----------------------------------- // Do we have a "word" yet? @@ -228,8 +239,8 @@ if ( ! function_exists('create_captcha')) // Determine angle and position // ----------------------------------- $length = strlen($word); - $angle = ($length >= 6) ? mt_rand(-($length-6), ($length-6)) : 0; - $x_axis = mt_rand(6, (360/$length)-16); + $angle = ($length >= 6) ? mt_rand(-($length - 6), ($length - 6)) : 0; + $x_axis = mt_rand(6, (360 / $length)-16); $y_axis = ($angle >= 0) ? mt_rand($img_height, $img_width) : mt_rand(6, $img_height); // Create image @@ -317,24 +328,31 @@ if ( ! function_exists('create_captcha')) // ----------------------------------- // Generate the image // ----------------------------------- - $img_url = rtrim($img_url, '/').'/'; - if (function_exists('imagejpeg')) - { - $img_filename = $now.'.jpg'; - imagejpeg($im, $img_path.$img_filename); - } - elseif (function_exists('imagepng')) + if (isset($img_filename)) { - $img_filename = $now.'.png'; + $img_src = rtrim($img_url, '/').'/'.$img_filename; imagepng($im, $img_path.$img_filename); } else { - return FALSE; + // I don't see an easier way to get the image contents without writing to file + $buffer = fopen('php://memory', 'wb+'); + imagepng($im, $buffer); + rewind($buffer); + $img_src = ''; + + // fread() will return an empty string (not FALSE) after the entire contents are read + while (strlen($read = fread($buffer, 4096))) + { + $img_src .= $read; + } + + fclose($buffer); + $img_src = 'data:image/png;base64,'.base64_encode($img_src); } - $img = ''.$img_alt.''; + $img = ''.$img_alt.''; ImageDestroy($im); return array('word' => $word, 'time' => $now, 'image' => $img, 'filename' => $img_filename); diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 0a625d861..0e766166e 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -89,7 +89,6 @@ Release Date: Not Released - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - Added new function :php:func:`ordinal_format()` to :doc:`Inflector Helper `. - - Added 'img_alt' option to :php:func`create_captcha()` :doc:`CAPTCHA Helper ` with a default value of 'captcha'. - :doc:`Download Helper ` changes include: @@ -113,6 +112,12 @@ Release Date: Not Released - Removed previously deprecated function ``form_prep()`` (use :php:func:`html_escape()` instead). - Removed the second (out of three) parameter from the :php:func:`form_upload()` function (it was never used). + - :doc:`CAPTCHA Helper ` changes include: + + - Added 'img_alt' option with a default value of 'captcha'. + - Added ability to generate ``data:image/png;base64`` URIs instead of writing image files to disk. + - Updated to always create PNG images instead of JPEG. + Version 3.1.7 ============= diff --git a/user_guide_src/source/helpers/captcha_helper.rst b/user_guide_src/source/helpers/captcha_helper.rst index 986c1d3e1..bdf33c2a1 100644 --- a/user_guide_src/source/helpers/captcha_helper.rst +++ b/user_guide_src/source/helpers/captcha_helper.rst @@ -50,7 +50,8 @@ Once loaded you can generate a CAPTCHA like this:: echo $cap['image']; - The captcha function requires the GD image library. -- Only the **img_path** and **img_url** are required. +- The **img_path** and **img_url** are both required if you want to write images to disk. + To create ``data:image/png;base64`` images, simply omit these options. - If a **word** is not supplied, the function will generate a random ASCII string. You might put together your own word library that you can draw randomly from. @@ -89,10 +90,6 @@ Here is an example of usage with a database. On the page where the CAPTCHA will be shown you'll have something like this:: $this->load->helper('captcha'); - $vals = array(      - 'img_path' => './captcha/',      - 'img_url' => 'http://example.com/captcha/'      - ); $cap = create_captcha($vals); $data = array(      @@ -155,10 +152,10 @@ The following functions are available: The **image** is the actual image tag:: - + The **time** is the micro timestamp used as the image name without the file extension. It will be a number like this: 1139612155.3422 The **word** is the word that appears in the captcha image, which if not - supplied to the function, will be a random string. \ No newline at end of file + supplied to the function, will be a random string. -- cgit v1.2.3-24-g4f1b From f2d92ea6cc175a43687665939b097cb6a9c79399 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 9 Nov 2017 13:27:11 +0200 Subject: Refactor CI_Config, CI_Hooks interaction (close #5323) --- system/core/CodeIgniter.php | 28 ++++++++++++++-------------- system/core/Hooks.php | 6 +++--- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index c97ff2bbb..767e1a17a 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -141,20 +141,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); $BM->mark('total_execution_time_start'); $BM->mark('loading_time:_base_classes_start'); -/* - * ------------------------------------------------------ - * Instantiate the hooks class - * ------------------------------------------------------ - */ - $EXT =& load_class('Hooks', 'core'); - -/* - * ------------------------------------------------------ - * Is there a "pre_system" hook? - * ------------------------------------------------------ - */ - $EXT->call_hook('pre_system'); - /* * ------------------------------------------------------ * Instantiate the config class @@ -176,6 +162,20 @@ defined('BASEPATH') OR exit('No direct script access allowed'); } } +/* + * ------------------------------------------------------ + * Instantiate the hooks class + * ------------------------------------------------------ + */ + $EXT =& load_class('Hooks', 'core', $CFG); + +/* + * ------------------------------------------------------ + * Is there a "pre_system" hook? + * ------------------------------------------------------ + */ + $EXT->call_hook('pre_system'); + /* * ------------------------------------------------------ * Important charset-related stuff diff --git a/system/core/Hooks.php b/system/core/Hooks.php index f2d6f21ca..d21381f5e 100644 --- a/system/core/Hooks.php +++ b/system/core/Hooks.php @@ -83,16 +83,16 @@ class CI_Hooks { /** * Class constructor * + * @param CI_Config $config * @return void */ - public function __construct() + public function __construct(CI_Config $config) { - $CFG =& load_class('Config', 'core'); log_message('info', 'Hooks Class Initialized'); // If hooks are not enabled in the config file // there is nothing else to do - if ($CFG->item('enable_hooks') === FALSE) + if ($config->item('enable_hooks') === FALSE) { return; } -- cgit v1.2.3-24-g4f1b From f9133e2ea006a796fdaf39d5421d99f1a9a57c80 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 9 Nov 2017 16:40:47 +0200 Subject: Attempt PHP 7.2 tests on Travis --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index d41186094..0aef43e6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ php: - 5.6 - 7.0 - 7.1 + - 7.2 - hhvm env: @@ -30,6 +31,7 @@ script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 matrix: allow_failures: + - php: 7.2 - php: hhvm exclude: - php: hhvm -- cgit v1.2.3-24-g4f1b From 7e502b6eaef9dbf0997f1d9198bff91a43fef5dc Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 9 Nov 2017 17:30:41 +0200 Subject: Don't try to run 'DB=mysql' tests on PHP 7.2 --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 0aef43e6a..862d6c682 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,6 +42,8 @@ matrix: env: DB=mysql - php: 7.1 env: DB=mysql + - php: 7.2 + env: DB=mysql branches: only: -- cgit v1.2.3-24-g4f1b From ab32ef5b17d3fe0475d2887563d0650a3ec5e146 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 9 Nov 2017 18:15:45 +0200 Subject: Move PHP 7.2 into the main testing matrix --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 862d6c682..477ffca0d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,7 +31,6 @@ script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 matrix: allow_failures: - - php: 7.2 - php: hhvm exclude: - php: hhvm -- cgit v1.2.3-24-g4f1b From 212df3650c30ce93219168d3305f374d8b8ece37 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 9 Nov 2017 18:16:58 +0200 Subject: Try testing on PHP master branch builds too (allowed failures) --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 477ffca0d..f84b6f331 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ php: - 7.0 - 7.1 - 7.2 + - master - hhvm env: @@ -32,6 +33,7 @@ script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 matrix: allow_failures: - php: hhvm + - php: master exclude: - php: hhvm env: DB=pgsql @@ -43,6 +45,8 @@ matrix: env: DB=mysql - php: 7.2 env: DB=mysql + - php: master + env: DB=mysql branches: only: -- cgit v1.2.3-24-g4f1b From c45caeac4f45b83fbb3655f62638ebcf913981c8 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 15 Nov 2017 14:58:55 +0200 Subject: [ci skip] Update upgrade instructions for 3.2.0 --- user_guide_src/source/installation/upgrade_320.rst | 56 ++++++++++++++++++---- 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 18f8717f8..de279fdc7 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -24,7 +24,47 @@ may be at least runnable, we strongly discourage you from using any PHP versions the ones listed on the `PHP.net Supported Versions `_ page. -Step 3: Change database connection handling +Step 3: Remove calls to ``CI_Model::__construct()`` +=================================================== + +The class constructor for ``CI_Model`` never contained vital code or useful +logic, only a single line to log a message. A change in CodeIgniter 3.1.7 +moved this log message elsewhere and that naturally made the constructor +completely unnecessary. However, it was left in place to avoid immedate BC +breaks in a minor release. + +In version 3.2.0, that constructor is entirely removed, which would result +in fatal errors on attempts to call it. Particularly in code like this: +:: + + class Some_model extends CI_Model { + + public function __construct() + { + parent::__construct(); // calls CI_Model::__construct() + + do_some_other_thing(); + } + } + +All you need to do is remove that ``parent::__construct()`` call. On a side +note, the following seems to be a very common practice: +:: + + class Some_class extends CI_Something { + + public function __construct() + { + parent::__construct(); + } + } + +Please, do NOT do this! It's pointless; it serves no purpose and doesn't do +anything. If a parent class has a ``__construct()`` method, it will be +inherited by all its child classes and will execute just fine - you DON'T +have to explicitly call it unless you want to extend its logic. + +Step 4: Change database connection handling =========================================== "Loading" a database, whether by using the *config/autoload.php* settings @@ -69,7 +109,7 @@ That doesn't make sense and that's the reason why most database drivers don't support it at all. Thus, ``db_set_charset()`` is no longer necessary and is removed. -Step 4: Check logic related to URI parsing of CLI requests +Step 5: Check logic related to URI parsing of CLI requests ========================================================== When running a CodeIgniter application from the CLI, the @@ -82,7 +122,7 @@ this change was made) and therefore you shouldn't be affected by this, but if you've relied on them for some reason, you'd probably have to make some changes to your code. -Step 5: Check Cache Library configurations for Redis, Memcache(d) +Step 6: Check Cache Library configurations for Redis, Memcache(d) ================================================================= The new improvements for the 'redis' and 'memcached' drivers of the @@ -109,7 +149,7 @@ value (previously, it just set the host to the default '127.0.0.1'). Therefore, if you've added a configuration that only sets e.g. a ``port``, you will now have to explicitly set the ``host`` to '127.0.0.1' as well. -Step 6: Check usage of the Email library +Step 7: Check usage of the Email library ======================================== The :doc:`Email Library <../libraries/email>` will now by default check the @@ -123,7 +163,7 @@ everything works fine. If something indeed goes wrong with that, please report it as a bug to us, and you can disable the **validate** option to revert to the old behavior. -Step 7: Check usage of doctype() HTML helper +Step 8: Check usage of doctype() HTML helper ============================================ The :doc:`HTML Helper <../helpers/html_helper>` function @@ -136,7 +176,7 @@ relies on the default value, you should double-check it and either explicitly set the desired format, or adapt your front-end to use proper HTML 5 formatting. -Step 8: Check usage of form_upload() Form helper +Step 9: Check usage of form_upload() Form helper ================================================ The :doc:`Form Helper <../helpers/form_helper>` function @@ -153,7 +193,7 @@ You should change it to:: form_upload('name', $extra); -Step 9: Remove usage of previously deprecated functionalities +Step 10: Remove usage of previously deprecated functionalities ============================================================= The following is a list of functionalities deprecated in previous @@ -191,7 +231,7 @@ CodeIgniter versions that have been removed in 3.2.0: - The entire *Smiley Helper* (an archived version is available on GitHub: `bcit-ci/ci3-smiley-helper `_) -Step 10: Make sure you're validating all user inputs +Step 11: Make sure you're validating all user inputs ==================================================== The :doc:`Input Library <../libraries/input>` used to (often -- cgit v1.2.3-24-g4f1b From 41afe03031cfda835d5e5ebee51281dc0e58e66b Mon Sep 17 00:00:00 2001 From: Ahmad Anbar Date: Sun, 26 Nov 2017 20:41:27 +0200 Subject: Fix issue #4454 --- system/libraries/Pagination.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index f26f8a4ed..1a96e575d 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -352,9 +352,8 @@ class CI_Pagination { * @return CI_Pagination */ public function initialize(array $params = array()) - { - isset($params['attributes']) OR $params['attributes'] = array(); - if (is_array($params['attributes'])) + { + if (isset($params['attributes']) && is_array($params['attributes'])) { $this->_parse_attributes($params['attributes']); unset($params['attributes']); -- cgit v1.2.3-24-g4f1b From f609918247083634dac6c94712acdee625dea527 Mon Sep 17 00:00:00 2001 From: Ahmad Anbar Date: Sun, 26 Nov 2017 20:50:42 +0200 Subject: remove spaces --- system/libraries/Pagination.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 1a96e575d..9a57ecbaf 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -352,7 +352,7 @@ class CI_Pagination { * @return CI_Pagination */ public function initialize(array $params = array()) - { + { if (isset($params['attributes']) && is_array($params['attributes'])) { $this->_parse_attributes($params['attributes']); -- cgit v1.2.3-24-g4f1b From 0055dca60260d36a334f29bd61047eb076d38613 Mon Sep 17 00:00:00 2001 From: Ahmad Anbar Date: Mon, 27 Nov 2017 19:23:38 +0200 Subject: Enable rel attribute by default #4000 --- system/libraries/Pagination.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 9a57ecbaf..ece4edac9 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -339,6 +339,8 @@ class CI_Pagination { } } + // Enable rel attribute by default + isset($params['attributes']) OR $params['attributes'] = array(); $this->initialize($params); log_message('info', 'Pagination Class Initialized'); } -- cgit v1.2.3-24-g4f1b From 2819340f009e60b79f74ef1c4fc98d469a44d923 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 28 Nov 2017 13:14:44 +0200 Subject: [ci skip] Polish changes from PR #5342 --- system/libraries/Pagination.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index ece4edac9..3af70cb12 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -339,8 +339,10 @@ class CI_Pagination { } } - // Enable rel attribute by default + // _parse_attributes(), called by initialize(), needs to run at least once + // in order to enable "rel" attributes, and this triggers it. isset($params['attributes']) OR $params['attributes'] = array(); + $this->initialize($params); log_message('info', 'Pagination Class Initialized'); } -- cgit v1.2.3-24-g4f1b From 3ecfcaa94bbae55fec8c2c9bbf8524c49816342f Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 4 Dec 2017 12:18:20 +0200 Subject: [ci skip] Fix #5348 --- system/libraries/Email.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 6e28989cb..f115d9f40 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1014,7 +1014,7 @@ class CI_Email { */ public function valid_email($email) { - if (function_exists('idn_to_ascii') && strpos($email, '@')) + if (function_exists('idn_to_ascii') && $atpos = strpos($email, '@')) { $email = self::substr($email, 0, ++$atpos).idn_to_ascii(self::substr($email, $atpos), 0, INTL_IDNA_VARIANT_UTS46); } @@ -1821,7 +1821,7 @@ class CI_Email { */ protected function _validate_email_for_shell(&$email) { - if (function_exists('idn_to_ascii') && strpos($email, '@')) + if (function_exists('idn_to_ascii') && $atpos = strpos($email, '@')) { $email = self::substr($email, 0, ++$atpos).idn_to_ascii(self::substr($email, $atpos), 0, INTL_IDNA_VARIANT_UTS46); } -- cgit v1.2.3-24-g4f1b From dfa52f3ed31696c58fdc85273f4408559233b19e Mon Sep 17 00:00:00 2001 From: Gabriel Caruso Date: Fri, 8 Dec 2017 17:25:02 -0200 Subject: Refactoring tests --- tests/codeigniter/core/Benchmark_test.php | 4 ++-- tests/codeigniter/core/Common_test.php | 6 +++--- tests/codeigniter/core/Input_test.php | 8 ++++---- tests/codeigniter/core/Log_test.php | 4 ++-- tests/codeigniter/core/Security_test.php | 2 +- tests/codeigniter/core/Utf8_test.php | 2 +- tests/codeigniter/core/compat/password_test.php | 2 +- tests/codeigniter/database/DB_test.php | 10 +++++----- .../database/query_builder/distinct_test.php | 4 ++-- .../database/query_builder/empty_test.php | 4 ++-- .../database/query_builder/escape_test.php | 6 +++--- .../database/query_builder/from_test.php | 4 ++-- .../database/query_builder/group_test.php | 12 ++++++------ .../database/query_builder/like_test.php | 12 ++++++------ .../database/query_builder/limit_test.php | 6 +++--- .../database/query_builder/order_test.php | 6 +++--- .../database/query_builder/select_test.php | 6 +++--- .../database/query_builder/truncate_test.php | 6 +++--- .../database/query_builder/where_test.php | 14 +++++++------- tests/codeigniter/helpers/array_helper_test.php | 8 ++++---- tests/codeigniter/libraries/Encryption_test.php | 4 ++-- .../codeigniter/libraries/Form_validation_test.php | 4 ++-- tests/codeigniter/libraries/Table_test.php | 22 +++++++++++----------- 23 files changed, 78 insertions(+), 78 deletions(-) diff --git a/tests/codeigniter/core/Benchmark_test.php b/tests/codeigniter/core/Benchmark_test.php index 63b0e3d5a..33bd742b2 100644 --- a/tests/codeigniter/core/Benchmark_test.php +++ b/tests/codeigniter/core/Benchmark_test.php @@ -15,7 +15,7 @@ class Benchmark_test extends CI_TestCase { $this->benchmark->mark('code_start'); - $this->assertEquals(1, count($this->benchmark->marker)); + $this->assertCount(1, $this->benchmark->marker); $this->assertArrayHasKey('code_start', $this->benchmark->marker); } @@ -64,4 +64,4 @@ class Benchmark_test extends CI_TestCase { $this->assertEquals('{memory_usage}', $this->benchmark->memory_usage()); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/core/Common_test.php b/tests/codeigniter/core/Common_test.php index ca19e5de0..effae50c5 100644 --- a/tests/codeigniter/core/Common_test.php +++ b/tests/codeigniter/core/Common_test.php @@ -4,8 +4,8 @@ class Common_test extends CI_TestCase { public function test_is_php() { - $this->assertEquals(TRUE, is_php('1.2.0')); - $this->assertEquals(FALSE, is_php('9999.9.9')); + $this->assertTrue(is_php('1.2.0')); + $this->assertFalse(is_php('9999.9.9')); } // ------------------------------------------------------------------------ @@ -66,4 +66,4 @@ class Common_test extends CI_TestCase { $removed_string = 'Here is a string containing url_encoded invisible text.'; $this->assertEquals($removed_string, remove_invisible_characters($raw_string)); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/core/Input_test.php b/tests/codeigniter/core/Input_test.php index e068a84be..80cb9a740 100644 --- a/tests/codeigniter/core/Input_test.php +++ b/tests/codeigniter/core/Input_test.php @@ -20,8 +20,8 @@ class Input_test extends CI_TestCase { public function test_get_not_exists() { - $this->assertTrue($this->input->get() === array()); - $this->assertTrue($this->input->get('foo') === NULL); + $this->assertSame(array(), $this->input->get()); + $this->assertNull($this->input->get('foo')); } // -------------------------------------------------------------------- @@ -51,8 +51,8 @@ class Input_test extends CI_TestCase { public function test_post_not_exists() { - $this->assertTrue($this->input->post() === array()); - $this->assertTrue($this->input->post('foo') === NULL); + $this->assertSame(array(), $this->input->post()); + $this->assertNull($this->input->post('foo')); } // -------------------------------------------------------------------- diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index d5a6fcb6b..103af342b 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -28,7 +28,7 @@ class Log_test extends CI_TestCase { $this->assertEquals($date_fmt->getValue($instance), 'd.m.Y'); $this->assertEquals($file_ext->getValue($instance), 'php'); $this->assertEquals($file_perms->getValue($instance), 0644); - $this->assertEquals($enabled->getValue($instance), FALSE); + $this->assertFalse($enabled->getValue($instance)); $this->ci_set_config('log_path', ''); $this->ci_set_config('log_threshold', '0'); @@ -60,4 +60,4 @@ class Log_test extends CI_TestCase { "LEVEL - Timestamp --> Message\n" ); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/core/Security_test.php b/tests/codeigniter/core/Security_test.php index 4dd31f4b1..22c97df8b 100644 --- a/tests/codeigniter/core/Security_test.php +++ b/tests/codeigniter/core/Security_test.php @@ -253,7 +253,7 @@ class Security_test extends CI_TestCase { // Perform hash $this->security->xss_hash(); - $this->assertTrue(preg_match('#^[0-9a-f]{32}$#iS', $this->security->xss_hash) === 1); + $this->assertRegExp('#^[0-9a-f]{32}$#iS', $this->security->xss_hash); } // -------------------------------------------------------------------- diff --git a/tests/codeigniter/core/Utf8_test.php b/tests/codeigniter/core/Utf8_test.php index f40bb9848..8ae51b8af 100644 --- a/tests/codeigniter/core/Utf8_test.php +++ b/tests/codeigniter/core/Utf8_test.php @@ -59,7 +59,7 @@ class Utf8_test extends CI_TestCase { elseif (ICONV_ENABLED) { // This is a known issue, iconv doesn't always work with //IGNORE - $this->assertTrue(in_array($utf8->clean_string($illegal_utf8), array('тест', ''), TRUE)); + $this->assertContains($utf8->clean_string($illegal_utf8), array('тест', '')); } else { diff --git a/tests/codeigniter/core/compat/password_test.php b/tests/codeigniter/core/compat/password_test.php index 77f5eba4e..b6dbcfab1 100644 --- a/tests/codeigniter/core/compat/password_test.php +++ b/tests/codeigniter/core/compat/password_test.php @@ -156,4 +156,4 @@ class password_test extends CI_TestCase { $this->assertTrue(password_verify('rasmuslerdorf', '$2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi')); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/DB_test.php b/tests/codeigniter/database/DB_test.php index dc4fae986..9d53fd6f2 100644 --- a/tests/codeigniter/database/DB_test.php +++ b/tests/codeigniter/database/DB_test.php @@ -36,8 +36,8 @@ class DB_test extends CI_TestCase { $db = Mock_Database_DB::DB($connection->set_dsn(DB_DRIVER), TRUE); - $this->assertTrue($db instanceof CI_DB); - $this->assertTrue($db instanceof CI_DB_Driver); + $this->assertInstanceOf('CI_DB', $db); + $this->assertInstanceOf('CI_DB_Driver', $db); } // ------------------------------------------------------------------------ @@ -53,9 +53,9 @@ class DB_test extends CI_TestCase { $connection = new Mock_Database_DB($config); $db = Mock_Database_DB::DB($connection->set_dsn(DB_DRIVER.'_failover'), TRUE); - $this->assertTrue($db instanceof CI_DB); - $this->assertTrue($db instanceof CI_DB_Driver); + $this->assertInstanceOf('CI_DB', $db); + $this->assertInstanceOf('CI_DB_Driver', $db); } */ -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/distinct_test.php b/tests/codeigniter/database/query_builder/distinct_test.php index cc98009ce..81fabe448 100644 --- a/tests/codeigniter/database/query_builder/distinct_test.php +++ b/tests/codeigniter/database/query_builder/distinct_test.php @@ -27,7 +27,7 @@ class Distinct_test extends CI_TestCase { ->get('user') ->result_array(); - $this->assertEquals(3, count($users)); + $this->assertCount(3, $users); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/empty_test.php b/tests/codeigniter/database/query_builder/empty_test.php index d1f56285f..3f63a60f5 100644 --- a/tests/codeigniter/database/query_builder/empty_test.php +++ b/tests/codeigniter/database/query_builder/empty_test.php @@ -25,7 +25,7 @@ class Empty_test extends CI_TestCase { // Check initial record $jobs = $this->db->get('job')->result_array(); - $this->assertEquals(4, count($jobs)); + $this->assertCount(4, $jobs); // Do the empty $this->db->empty_table('job'); @@ -36,4 +36,4 @@ class Empty_test extends CI_TestCase { $this->assertEmpty($jobs->result_array()); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/escape_test.php b/tests/codeigniter/database/query_builder/escape_test.php index 27e678f22..de6cd0a9d 100644 --- a/tests/codeigniter/database/query_builder/escape_test.php +++ b/tests/codeigniter/database/query_builder/escape_test.php @@ -37,7 +37,7 @@ class Escape_test extends CI_TestCase { $res = $this->db->query($sql)->result_array(); // Check the result - $this->assertEquals(1, count($res)); + $this->assertCount(1, $res); } // ------------------------------------------------------------------------ @@ -62,7 +62,7 @@ class Escape_test extends CI_TestCase { $res = $this->db->query($sql)->result_array(); // Check the result - $this->assertEquals(2, count($res)); + $this->assertCount(2, $res); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/from_test.php b/tests/codeigniter/database/query_builder/from_test.php index 7aaae348d..5a4ac690d 100644 --- a/tests/codeigniter/database/query_builder/from_test.php +++ b/tests/codeigniter/database/query_builder/from_test.php @@ -26,7 +26,7 @@ class From_test extends CI_TestCase { ->get() ->result_array(); - $this->assertEquals(4, count($jobs)); + $this->assertCount(4, $jobs); } // ------------------------------------------------------------------------ @@ -46,4 +46,4 @@ class From_test extends CI_TestCase { $this->assertEquals('Awesome job, but sometimes makes you bored', $job1->description); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/group_test.php b/tests/codeigniter/database/query_builder/group_test.php index cf91c0965..df3f168c6 100644 --- a/tests/codeigniter/database/query_builder/group_test.php +++ b/tests/codeigniter/database/query_builder/group_test.php @@ -28,7 +28,7 @@ class Group_test extends CI_TestCase { ->get() ->result_array(); - $this->assertEquals(4, count($jobs)); + $this->assertCount(4, $jobs); } // ------------------------------------------------------------------------ @@ -45,7 +45,7 @@ class Group_test extends CI_TestCase { ->get() ->result_array(); - $this->assertEquals(2, count($jobs)); + $this->assertCount(2, $jobs); } // ------------------------------------------------------------------------ @@ -62,7 +62,7 @@ class Group_test extends CI_TestCase { ->get() ->result_array(); - $this->assertEquals(2, count($jobs)); + $this->assertCount(2, $jobs); } // ------------------------------------------------------------------------ @@ -80,7 +80,7 @@ class Group_test extends CI_TestCase { ->get() ->result_array(); - $this->assertEquals(2, count($jobs)); + $this->assertCount(2, $jobs); } // ------------------------------------------------------------------------ @@ -97,7 +97,7 @@ class Group_test extends CI_TestCase { ->get() ->result_array(); - $this->assertEquals(3, count($jobs)); + $this->assertCount(3, $jobs); } // ------------------------------------------------------------------------ @@ -115,6 +115,6 @@ class Group_test extends CI_TestCase { ->get() ->result_array(); - $this->assertEquals(2, count($jobs)); + $this->assertCount(2, $jobs); } } diff --git a/tests/codeigniter/database/query_builder/like_test.php b/tests/codeigniter/database/query_builder/like_test.php index 2736fbe0b..3672afae3 100644 --- a/tests/codeigniter/database/query_builder/like_test.php +++ b/tests/codeigniter/database/query_builder/like_test.php @@ -44,7 +44,7 @@ class Like_test extends CI_TestCase { ->result_array(); // Check the result - $this->assertEquals(3, count($jobs)); + $this->assertCount(3, $jobs); $this->assertEquals('Developer', $jobs[0]['name']); $this->assertEquals('Politician', $jobs[1]['name']); $this->assertEquals('Musician', $jobs[2]['name']); @@ -62,7 +62,7 @@ class Like_test extends CI_TestCase { ->result_array(); // Check the result - $this->assertEquals(3, count($jobs)); + $this->assertCount(3, $jobs); $this->assertEquals('Politician', $jobs[0]['name']); $this->assertEquals('Accountant', $jobs[1]['name']); $this->assertEquals('Musician', $jobs[2]['name']); @@ -81,7 +81,7 @@ class Like_test extends CI_TestCase { ->result_array(); // Check the result - $this->assertEquals(3, count($jobs)); + $this->assertCount(3, $jobs); $this->assertEquals('Politician', $jobs[0]['name']); $this->assertEquals('Accountant', $jobs[1]['name']); $this->assertEquals('Musician', $jobs[2]['name']); @@ -99,8 +99,8 @@ class Like_test extends CI_TestCase { $spaces = $this->db->like('value', ' ')->get('misc')->result_array(); $tabs = $this->db->like('value', "\t")->get('misc')->result_array(); - $this->assertEquals(1, count($spaces)); - $this->assertEquals(1, count($tabs)); + $this->assertCount(1, $spaces); + $this->assertCount(1, $tabs); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/limit_test.php b/tests/codeigniter/database/query_builder/limit_test.php index a0954c7ab..a1976d457 100644 --- a/tests/codeigniter/database/query_builder/limit_test.php +++ b/tests/codeigniter/database/query_builder/limit_test.php @@ -26,7 +26,7 @@ class Limit_test extends CI_TestCase { ->get('job') ->result_array(); - $this->assertEquals(2, count($jobs)); + $this->assertCount(2, $jobs); } // ------------------------------------------------------------------------ @@ -40,9 +40,9 @@ class Limit_test extends CI_TestCase { ->get('job') ->result_array(); - $this->assertEquals(2, count($jobs)); + $this->assertCount(2, $jobs); $this->assertEquals('Accountant', $jobs[0]['name']); $this->assertEquals('Musician', $jobs[1]['name']); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/order_test.php b/tests/codeigniter/database/query_builder/order_test.php index 46f452bae..ff5bc543d 100644 --- a/tests/codeigniter/database/query_builder/order_test.php +++ b/tests/codeigniter/database/query_builder/order_test.php @@ -27,7 +27,7 @@ class Order_test extends CI_TestCase { ->result_array(); // Check the result - $this->assertEquals(4, count($jobs)); + $this->assertCount(4, $jobs); $this->assertEquals('Accountant', $jobs[0]['name']); $this->assertEquals('Developer', $jobs[1]['name']); $this->assertEquals('Musician', $jobs[2]['name']); @@ -45,11 +45,11 @@ class Order_test extends CI_TestCase { ->get('job') ->result_array(); - $this->assertEquals(4, count($jobs)); + $this->assertCount(4, $jobs); $this->assertEquals('Politician', $jobs[0]['name']); $this->assertEquals('Musician', $jobs[1]['name']); $this->assertEquals('Developer', $jobs[2]['name']); $this->assertEquals('Accountant', $jobs[3]['name']); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/select_test.php b/tests/codeigniter/database/query_builder/select_test.php index 877b5d8c0..93b5c3d46 100644 --- a/tests/codeigniter/database/query_builder/select_test.php +++ b/tests/codeigniter/database/query_builder/select_test.php @@ -28,8 +28,8 @@ class Select_test extends CI_TestCase { // Check rows item $this->assertArrayHasKey('name',$jobs_name[0]); - $this->assertFalse(array_key_exists('id', $jobs_name[0])); - $this->assertFalse(array_key_exists('description', $jobs_name[0])); + $this->assertArrayNotHasKey('id', $jobs_name[0]); + $this->assertArrayNotHasKey('description', $jobs_name[0]); } // ------------------------------------------------------------------------ @@ -92,4 +92,4 @@ class Select_test extends CI_TestCase { $this->assertEquals('10', $job_sum->id); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/truncate_test.php b/tests/codeigniter/database/query_builder/truncate_test.php index 09923c7f1..64abe2872 100644 --- a/tests/codeigniter/database/query_builder/truncate_test.php +++ b/tests/codeigniter/database/query_builder/truncate_test.php @@ -24,7 +24,7 @@ class Truncate_test extends CI_TestCase { { // Check initial record $jobs = $this->db->get('job')->result_array(); - $this->assertEquals(4, count($jobs)); + $this->assertCount(4, $jobs); // Do the empty $this->db->truncate('job'); @@ -43,7 +43,7 @@ class Truncate_test extends CI_TestCase { { // Check initial record $users = $this->db->get('user')->result_array(); - $this->assertEquals(4, count($users)); + $this->assertCount(4, $users); // Do the empty $this->db->from('user')->truncate(); @@ -53,4 +53,4 @@ class Truncate_test extends CI_TestCase { $this->assertEmpty($users->result_array()); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/database/query_builder/where_test.php b/tests/codeigniter/database/query_builder/where_test.php index 46a7fa2eb..8a7a09ddb 100644 --- a/tests/codeigniter/database/query_builder/where_test.php +++ b/tests/codeigniter/database/query_builder/where_test.php @@ -36,7 +36,7 @@ class Where_test extends CI_TestCase { public function test_where_custom_key_value() { $jobs = $this->db->where('id !=', 1)->get('job')->result_array(); - $this->assertEquals(3, count($jobs)); + $this->assertCount(3, $jobs); } // ------------------------------------------------------------------------ @@ -49,7 +49,7 @@ class Where_test extends CI_TestCase { $where = array('id >' => 2, 'name !=' => 'Accountant'); $jobs = $this->db->where($where)->get('job')->result_array(); - $this->assertEquals(1, count($jobs)); + $this->assertCount(1, $jobs); // Should be Musician $job = current($jobs); @@ -66,7 +66,7 @@ class Where_test extends CI_TestCase { $where = "id > 2 AND name != 'Accountant'"; $jobs = $this->db->where($where)->get('job')->result_array(); - $this->assertEquals(1, count($jobs)); + $this->assertCount(1, $jobs); // Should be Musician $job = current($jobs); @@ -85,7 +85,7 @@ class Where_test extends CI_TestCase { ->get('job') ->result_array(); - $this->assertEquals(3, count($jobs)); + $this->assertCount(3, $jobs); $this->assertEquals('Developer', $jobs[0]['name']); $this->assertEquals('Politician', $jobs[1]['name']); $this->assertEquals('Musician', $jobs[2]['name']); @@ -102,7 +102,7 @@ class Where_test extends CI_TestCase { ->get('job') ->result_array(); - $this->assertEquals(2, count($jobs)); + $this->assertCount(2, $jobs); $this->assertEquals('Politician', $jobs[0]['name']); $this->assertEquals('Accountant', $jobs[1]['name']); } @@ -118,7 +118,7 @@ class Where_test extends CI_TestCase { ->get('job') ->result_array(); - $this->assertEquals(2, count($jobs)); + $this->assertCount(2, $jobs); $this->assertEquals('Developer', $jobs[0]['name']); $this->assertEquals('Musician', $jobs[1]['name']); } @@ -131,4 +131,4 @@ class Where_test extends CI_TestCase { $sql = $this->db->where('foo', $input)->get_compiled_select('dummy'); $this->assertEquals("'".$input."'", substr($sql, -20)); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/helpers/array_helper_test.php b/tests/codeigniter/helpers/array_helper_test.php index 5a9958971..b2409c330 100644 --- a/tests/codeigniter/helpers/array_helper_test.php +++ b/tests/codeigniter/helpers/array_helper_test.php @@ -31,15 +31,15 @@ class Array_helper_test extends CI_TestCase { $this->assertEquals('my string', random_element('my string')); // Test sending an array - $this->assertEquals(TRUE, in_array(random_element($this->my_array), $this->my_array)); + $this->assertContains(random_element($this->my_array), $this->my_array); } // ------------------------------------------------------------------------ public function test_elements() { - $this->assertEquals(TRUE, is_array(elements('test', $this->my_array))); - $this->assertEquals(TRUE, is_array(elements('foo', $this->my_array))); + $this->assertInternalType('array', elements('test', $this->my_array)); + $this->assertInternalType('array', elements('foo', $this->my_array)); } -} \ No newline at end of file +} diff --git a/tests/codeigniter/libraries/Encryption_test.php b/tests/codeigniter/libraries/Encryption_test.php index 99c5d4b9d..8e411d9fa 100644 --- a/tests/codeigniter/libraries/Encryption_test.php +++ b/tests/codeigniter/libraries/Encryption_test.php @@ -151,7 +151,7 @@ class Encryption_test extends CI_TestCase { 'hmac_key' => str_repeat("\x0", 16) ); - $this->assertTrue(is_array($this->encryption->__get_params($params))); + $this->assertInternalType('array', $this->encryption->__get_params($params)); $params['base64'] = TRUE; $params['hmac_digest'] = 'sha512'; @@ -257,7 +257,7 @@ class Encryption_test extends CI_TestCase { return $this->markTestSkipped('ext/mcrypt is deprecated since PHP 7.1 and will generate notices here.'); } - $this->assertTrue(is_resource($this->encryption->__driver_get_handle('mcrypt', 'rijndael-128', 'cbc'))); + $this->assertInternalType('resource', $this->encryption->__driver_get_handle('mcrypt', 'rijndael-128', 'cbc')); } // -------------------------------------------------------------------- diff --git a/tests/codeigniter/libraries/Form_validation_test.php b/tests/codeigniter/libraries/Form_validation_test.php index 90dd721a3..04bd670ad 100644 --- a/tests/codeigniter/libraries/Form_validation_test.php +++ b/tests/codeigniter/libraries/Form_validation_test.php @@ -374,7 +374,7 @@ class Form_validation_test extends CI_TestCase { $this->form_validation->run(); $error_msg = $this->form_validation->error('foo'); - $this->assertTrue(strrpos($error_msg, $prefix) === 0); + $this->assertStringStartsWith($prefix, $error_msg); $this->assertTrue(strrpos($error_msg, $suffix, -strlen($suffix)) === (strlen($error_msg) - strlen($suffix))); $_POST = array(); @@ -489,7 +489,7 @@ class Form_validation_test extends CI_TestCase { $this->form_validation->set_data($data); $valid = $this->form_validation->run('', $data); - $this->assertEquals(TRUE, $valid); + $this->assertTrue($valid); $this->assertEquals('Dick', $data['person']['firstname']); $this->assertEquals('Tracy', $data['person']['lastname']); } diff --git a/tests/codeigniter/libraries/Table_test.php b/tests/codeigniter/libraries/Table_test.php index 8e7452474..f505a43fc 100644 --- a/tests/codeigniter/libraries/Table_test.php +++ b/tests/codeigniter/libraries/Table_test.php @@ -67,7 +67,7 @@ class Table_test extends CI_TestCase { $this->table->add_row('your', 'pony', 'stinks'); $this->table->add_row('my pony', '>', 'your pony'); - $this->assertEquals(count($this->table->rows), 3); + $this->assertCount(3, $this->table->rows); $this->assertEquals( array( @@ -188,8 +188,8 @@ class Table_test extends CI_TestCase { } $this->assertFalse($this->table->auto_heading); - $this->assertEquals(count($this->table->heading), 3); - $this->assertEquals(count($this->table->rows), 2); + $this->assertCount(3, $this->table->heading); + $this->assertCount(2, $this->table->rows); $this->table->clear(); @@ -213,7 +213,7 @@ class Table_test extends CI_TestCase { $this->table->clear(); $this->table->set_from_array($data); - $this->assertEquals(count($this->table->rows), 2); + $this->assertCount(2, $this->table->rows); $expected = array( array('data' => 'name'), @@ -270,14 +270,14 @@ class Table_test extends CI_TestCase { $table = $this->table->generate($data); // Test the table header - $this->assertTrue(strpos($table, 'Name') !== FALSE); - $this->assertTrue(strpos($table, 'Color') !== FALSE); - $this->assertTrue(strpos($table, 'Size') !== FALSE); + $this->assertContains('Name', $table); + $this->assertContains('Color', $table); + $this->assertContains('Size', $table); // Test the first entry - $this->assertTrue(strpos($table, 'Fred') !== FALSE); - $this->assertTrue(strpos($table, 'Blue') !== FALSE); - $this->assertTrue(strpos($table, 'Small') !== FALSE); + $this->assertContains('Fred', $table); + $this->assertContains('Blue', $table); + $this->assertContains('Small', $table); } } @@ -297,4 +297,4 @@ class DB_result_dummy extends CI_DB_result array('name' => 'Foo Bar', 'email' => 'foo@bar.com') ); } -} \ No newline at end of file +} -- cgit v1.2.3-24-g4f1b From 058a127a6a5e15f39def341e67a7cd6418882c34 Mon Sep 17 00:00:00 2001 From: Gabriel Caruso Date: Wed, 20 Dec 2017 14:50:39 -0200 Subject: Clean elses --- system/database/DB_forge.php | 6 ++---- system/database/DB_result.php | 8 +++----- system/libraries/Email.php | 12 ++++-------- system/libraries/Encryption.php | 6 ++---- system/libraries/Session/Session.php | 6 ++---- system/libraries/Upload.php | 6 ++---- system/libraries/Xmlrpcs.php | 18 ++++++------------ tests/mocks/ci_testcase.php | 6 ++---- 8 files changed, 23 insertions(+), 45 deletions(-) diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index 31fae43cf..dbf76fd13 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -382,10 +382,8 @@ abstract class CI_DB_forge { { return TRUE; } - else - { - $if_not_exists = FALSE; - } + + $if_not_exists = FALSE; } $sql = ($if_not_exists) diff --git a/system/database/DB_result.php b/system/database/DB_result.php index 98d8876a7..821a0ea07 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -163,10 +163,8 @@ class CI_DB_result { { return $this->result_object(); } - else - { - return $this->custom_result_object($type); - } + + return $this->custom_result_object($type); } // -------------------------------------------------------------------- @@ -336,7 +334,7 @@ class CI_DB_result { if ($type === 'object') return $this->row_object($n); elseif ($type === 'array') return $this->row_array($n); - else return $this->custom_row_object($n, $type); + return $this->custom_row_object($n, $type); } // -------------------------------------------------------------------- diff --git a/system/libraries/Email.php b/system/libraries/Email.php index f115d9f40..6d192a6e2 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -941,10 +941,8 @@ class CI_Email { { return 'plain-attach'; } - else - { - return 'plain'; - } + + return 'plain'; } // -------------------------------------------------------------------- @@ -2209,10 +2207,8 @@ class CI_Email { usleep(250000); continue; } - else - { - $timestamp = 0; - } + + $timestamp = 0; } if ($result === FALSE) diff --git a/system/libraries/Encryption.php b/system/libraries/Encryption.php index c3ddf60ed..4f4f72057 100644 --- a/system/libraries/Encryption.php +++ b/system/libraries/Encryption.php @@ -682,10 +682,8 @@ class CI_Encryption { { return FALSE; } - else - { - $params['mode'] = $this->_modes[$this->_driver][$params['mode']]; - } + + $params['mode'] = $this->_modes[$this->_driver][$params['mode']]; } if (isset($params['hmac']) && $params['hmac'] === FALSE) diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index 3e4865cd1..406b9a219 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -222,10 +222,8 @@ class CI_Session { { return $prefix.$class; } - else - { - log_message('debug', 'Session: '.$prefix.$class.".php found but it doesn't declare class ".$prefix.$class.'.'); - } + + log_message('debug', 'Session: '.$prefix.$class.".php found but it doesn't declare class ".$prefix.$class.'.'); } return 'CI_'.$class; diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 9e8389480..c6771b584 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -678,10 +678,8 @@ class CI_Upload { $this->set_error('upload_bad_filename', 'debug'); return FALSE; } - else - { - return $new_filename; - } + + return $new_filename; } // -------------------------------------------------------------------- diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php index 0274f13b6..7f760a088 100644 --- a/system/libraries/Xmlrpcs.php +++ b/system/libraries/Xmlrpcs.php @@ -402,15 +402,11 @@ class CI_Xmlrpcs extends CI_Xmlrpc { { return get_instance()->{$method_parts[1]}($m); } - else - { - return $this->object->{$method_parts[1]}($m); - } - } - else - { - return call_user_func($this->methods[$methName]['function'], $m); + + return $this->object->{$method_parts[1]}($m); } + + return call_user_func($this->methods[$methName]['function'], $m); } // -------------------------------------------------------------------- @@ -499,10 +495,8 @@ class CI_Xmlrpcs extends CI_Xmlrpc { return new XML_RPC_Response(new XML_RPC_Values($docstring, 'string')); } - else - { - return new XML_RPC_Response(0, $this->xmlrpcerr['introspect_unknown'], $this->xmlrpcstr['introspect_unknown']); - } + + return new XML_RPC_Response(0, $this->xmlrpcerr['introspect_unknown'], $this->xmlrpcstr['introspect_unknown']); } // -------------------------------------------------------------------- diff --git a/tests/mocks/ci_testcase.php b/tests/mocks/ci_testcase.php index b320aab74..593685c23 100644 --- a/tests/mocks/ci_testcase.php +++ b/tests/mocks/ci_testcase.php @@ -377,10 +377,8 @@ class CI_TestCase extends PHPUnit_Framework_TestCase { { return call_user_func_array($this->{$method},$args); } - else - { - return parent::__call($method, $args); - } + + return parent::__call($method, $args); } } -- cgit v1.2.3-24-g4f1b From 7774e3846c525ff65c6d9b86aacb1cc3bc229e3e Mon Sep 17 00:00:00 2001 From: Gabriel Caruso Date: Wed, 20 Dec 2017 17:53:55 -0200 Subject: Add extra line before return --- system/database/DB_result.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/database/DB_result.php b/system/database/DB_result.php index 821a0ea07..40b8fbb74 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -334,6 +334,7 @@ class CI_DB_result { if ($type === 'object') return $this->row_object($n); elseif ($type === 'array') return $this->row_array($n); + return $this->custom_row_object($n, $type); } -- cgit v1.2.3-24-g4f1b From e5af2c34a5af6a6e505034e9af6248131eaf7925 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Mon, 25 Dec 2017 19:38:59 +0800 Subject: Setting initial value with increment/decrement functions. Signed-off-by: tianhe1986 --- system/libraries/Cache/drivers/Cache_memcached.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 4836b6aed..314263d7e 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -210,6 +210,7 @@ class CI_Cache_memcached extends CI_Driver { */ public function increment($id, $offset = 1) { + $this->_memcached->add($id, 0); return $this->_memcached->increment($id, $offset); } @@ -224,6 +225,7 @@ class CI_Cache_memcached extends CI_Driver { */ public function decrement($id, $offset = 1) { + $this->_memcached->add($id, 0); return $this->_memcached->decrement($id, $offset); } -- cgit v1.2.3-24-g4f1b From 89da3a5bf7a87bcbc922ed4b57ba26e875807dba Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 2 Jan 2018 17:40:56 +0800 Subject: Calling add() after increment/decrement when the return value is FALSE. Signed-off-by: tianhe1986 --- system/libraries/Cache/drivers/Cache_memcached.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 314263d7e..cbf874b97 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -210,8 +210,13 @@ class CI_Cache_memcached extends CI_Driver { */ public function increment($id, $offset = 1) { - $this->_memcached->add($id, 0); - return $this->_memcached->increment($id, $offset); + if (($result = $this->_memcached->increment($id, $offset)) === FALSE) + { + $this->_memcached->add($id, 0); + $result = $this->_memcached->increment($id, $offset); + } + + return $result; } // ------------------------------------------------------------------------ @@ -225,8 +230,13 @@ class CI_Cache_memcached extends CI_Driver { */ public function decrement($id, $offset = 1) { - $this->_memcached->add($id, 0); - return $this->_memcached->decrement($id, $offset); + if (($result = $this->_memcached->decrement($id, $offset)) === FALSE) + { + $this->_memcached->add($id, 0); + $result = $this->_memcached->decrement($id, $offset); + } + + return $result; } // ------------------------------------------------------------------------ -- cgit v1.2.3-24-g4f1b From a0b016905a3540c05be5d0c480ca83cdd58ad850 Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Wed, 3 Jan 2018 14:56:09 +0100 Subject: prevent _ci_vars from being cached in _ci_cached_vars Signed-off-by: Christian Mohr --- system/core/Loader.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 5b051e1a8..98db8d4f7 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -938,11 +938,10 @@ class CI_Loader { * * You can either set variables using the dedicated $this->load->vars() * function or via the second parameter of this function. We'll merge - * the two types and cache them so that views that are embedded within - * other views can have access to these variables. + * the two types. */ - empty($_ci_vars) OR $this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars); - extract($this->_ci_cached_vars); + empty($this->_ci_cached_vars) OR $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); + extract($_ci_vars); /** * Buffer the output -- cgit v1.2.3-24-g4f1b From 7d591a3c36cd58b430125eee214a9dba36290d00 Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Wed, 3 Jan 2018 16:37:55 +0100 Subject: reproduce caching behaviour for nested view() calls Signed-off-by: Christian Mohr --- system/core/Loader.php | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 98db8d4f7..1e5eeecd5 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -93,6 +93,13 @@ class CI_Loader { */ protected $_ci_cached_vars = array(); + /** + * stack of variables for nested _ci_load calls + * + * @var array + */ + protected $_ci_vars_stack = array(); + /** * List of loaded classes * @@ -934,14 +941,30 @@ class CI_Loader { } /* - * Extract and cache variables + * Extract and stack variables * * You can either set variables using the dedicated $this->load->vars() * function or via the second parameter of this function. We'll merge - * the two types. + * the two types. Additionally we merge them with the last variables + * from the nested call stack so that views that are embedded within + * other views can have access to these variables. */ - empty($this->_ci_cached_vars) OR $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); - extract($_ci_vars); + + // merge with global cached vars (first call) or last state from nested + // call stack (subsequent nested calls) + // if (!empty($this->_ci_vars_stack)) { + // $_ci_vars = array_merge(end($this->_ci_vars_stack), $_ci_vars); + // } else if (!empty($this->_ci_cached_vars)) { + // // merge with cached vars + // $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); + // } + + empty($_ci_vars) OR $this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars); + + + // push current _ci_vars state to stack and extract it + // array_push($this->_ci_vars_stack, $_ci_vars); + extract($this->_ci_cached_vars); /** * Buffer the output @@ -959,6 +982,9 @@ class CI_Loader { include($_ci_path); // include() vs include_once() allows for multiple views with the same name log_message('info', 'File loaded: '.$_ci_path); + // remove current _ci_vars state from stack + // array_pop($this->_ci_vars_stack); + // Return the file data if requested if ($_ci_return === TRUE) { -- cgit v1.2.3-24-g4f1b From 5d7e8c0ef3f324ead7cb97a9738dc790e0b0b196 Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Wed, 3 Jan 2018 16:42:35 +0100 Subject: reproduce caching behaviour for nested view() calls Signed-off-by: Christian Mohr --- system/core/Loader.php | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 1e5eeecd5..3506a0ef1 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -952,18 +952,14 @@ class CI_Loader { // merge with global cached vars (first call) or last state from nested // call stack (subsequent nested calls) - // if (!empty($this->_ci_vars_stack)) { - // $_ci_vars = array_merge(end($this->_ci_vars_stack), $_ci_vars); - // } else if (!empty($this->_ci_cached_vars)) { - // // merge with cached vars - // $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); - // } - - empty($_ci_vars) OR $this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars); - + if (!empty($this->_ci_vars_stack)) { + $_ci_vars = array_merge(end($this->_ci_vars_stack), $_ci_vars); + } else if (!empty($this->_ci_cached_vars)) { + $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); + } // push current _ci_vars state to stack and extract it - // array_push($this->_ci_vars_stack, $_ci_vars); + array_push($this->_ci_vars_stack, $_ci_vars); extract($this->_ci_cached_vars); /** @@ -983,7 +979,7 @@ class CI_Loader { log_message('info', 'File loaded: '.$_ci_path); // remove current _ci_vars state from stack - // array_pop($this->_ci_vars_stack); + array_pop($this->_ci_vars_stack); // Return the file data if requested if ($_ci_return === TRUE) -- cgit v1.2.3-24-g4f1b From 88c7763b4832ad14b4ff1381d0f158204eb0bb6f Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Wed, 3 Jan 2018 18:46:18 +0100 Subject: reproduce caching behaviour for nested view() calls Signed-off-by: Christian Mohr --- system/core/Loader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 3506a0ef1..e75578ae8 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -960,7 +960,7 @@ class CI_Loader { // push current _ci_vars state to stack and extract it array_push($this->_ci_vars_stack, $_ci_vars); - extract($this->_ci_cached_vars); + extract($_ci_vars); /** * Buffer the output -- cgit v1.2.3-24-g4f1b From 79561aef771e6ccc323aa328f12826294a48724d Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Wed, 3 Jan 2018 19:43:02 +0100 Subject: fixed case without parameter Signed-off-by: Christian Mohr --- system/core/Loader.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/system/core/Loader.php b/system/core/Loader.php index e75578ae8..07e572950 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -950,6 +950,11 @@ class CI_Loader { * other views can have access to these variables. */ + // init current _ci_vars + if (!is_array($_ci_vars)) { + $_ci_vars = []; + } + // merge with global cached vars (first call) or last state from nested // call stack (subsequent nested calls) if (!empty($this->_ci_vars_stack)) { -- cgit v1.2.3-24-g4f1b From f87fb6dd6c5406029bb1a26d6ba6933d4a69d26e Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Thu, 4 Jan 2018 17:10:50 +0800 Subject: Calling another increment/decrement if add() return FALSE. Signed-off-by: tianhe1986 --- system/libraries/Cache/drivers/Cache_memcached.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index cbf874b97..8b6af84db 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -212,8 +212,7 @@ class CI_Cache_memcached extends CI_Driver { { if (($result = $this->_memcached->increment($id, $offset)) === FALSE) { - $this->_memcached->add($id, 0); - $result = $this->_memcached->increment($id, $offset); + return $this->_memcached->add($id, $offset) ? $offset : $this->_memcached->increment($id, $offset); } return $result; @@ -232,8 +231,7 @@ class CI_Cache_memcached extends CI_Driver { { if (($result = $this->_memcached->decrement($id, $offset)) === FALSE) { - $this->_memcached->add($id, 0); - $result = $this->_memcached->decrement($id, $offset); + return $this->_memcached->add($id, 0) ? 0 : $this->_memcached->decrement($id, $offset); } return $result; -- cgit v1.2.3-24-g4f1b From d77ceeaf3d7c506a050163af40f4a6bb1e1f2a38 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Fri, 5 Jan 2018 22:50:05 +0800 Subject: Do not retry after calling add() Signed-off-by: tianhe1986 --- system/libraries/Cache/drivers/Cache_memcached.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 8b6af84db..1562569e8 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -212,7 +212,7 @@ class CI_Cache_memcached extends CI_Driver { { if (($result = $this->_memcached->increment($id, $offset)) === FALSE) { - return $this->_memcached->add($id, $offset) ? $offset : $this->_memcached->increment($id, $offset); + return $this->_memcached->add($id, $offset) ? $offset : FALSE; } return $result; @@ -231,7 +231,7 @@ class CI_Cache_memcached extends CI_Driver { { if (($result = $this->_memcached->decrement($id, $offset)) === FALSE) { - return $this->_memcached->add($id, 0) ? 0 : $this->_memcached->decrement($id, $offset); + return $this->_memcached->add($id, 0) ? 0 : FALSE; } return $result; -- cgit v1.2.3-24-g4f1b From 208381009ed12768478b2e8110bfb6e506acc3e1 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Tue, 9 Jan 2018 00:53:27 -0800 Subject: Annual copyright update --- index.php | 4 ++-- license.txt | 2 +- system/core/Benchmark.php | 4 ++-- system/core/CodeIgniter.php | 4 ++-- system/core/Common.php | 4 ++-- system/core/Config.php | 4 ++-- system/core/Controller.php | 4 ++-- system/core/Exceptions.php | 4 ++-- system/core/Hooks.php | 4 ++-- system/core/Input.php | 4 ++-- system/core/Lang.php | 4 ++-- system/core/Loader.php | 4 ++-- system/core/Log.php | 4 ++-- system/core/Model.php | 4 ++-- system/core/Output.php | 4 ++-- system/core/Router.php | 4 ++-- system/core/Security.php | 4 ++-- system/core/URI.php | 4 ++-- system/core/Utf8.php | 4 ++-- system/core/compat/hash.php | 4 ++-- system/core/compat/mbstring.php | 4 ++-- system/core/compat/password.php | 4 ++-- system/core/compat/standard.php | 4 ++-- system/database/DB.php | 4 ++-- system/database/DB_cache.php | 4 ++-- system/database/DB_driver.php | 4 ++-- system/database/DB_forge.php | 4 ++-- system/database/DB_query_builder.php | 4 ++-- system/database/DB_result.php | 4 ++-- system/database/DB_utility.php | 4 ++-- system/database/drivers/cubrid/cubrid_driver.php | 4 ++-- system/database/drivers/cubrid/cubrid_forge.php | 4 ++-- system/database/drivers/cubrid/cubrid_result.php | 4 ++-- system/database/drivers/cubrid/cubrid_utility.php | 4 ++-- system/database/drivers/ibase/ibase_driver.php | 4 ++-- system/database/drivers/ibase/ibase_forge.php | 4 ++-- system/database/drivers/ibase/ibase_result.php | 4 ++-- system/database/drivers/ibase/ibase_utility.php | 4 ++-- system/database/drivers/mssql/mssql_driver.php | 4 ++-- system/database/drivers/mssql/mssql_forge.php | 4 ++-- system/database/drivers/mssql/mssql_result.php | 4 ++-- system/database/drivers/mssql/mssql_utility.php | 4 ++-- system/database/drivers/mysql/mysql_driver.php | 4 ++-- system/database/drivers/mysql/mysql_forge.php | 4 ++-- system/database/drivers/mysql/mysql_result.php | 4 ++-- system/database/drivers/mysql/mysql_utility.php | 4 ++-- system/database/drivers/mysqli/mysqli_driver.php | 4 ++-- system/database/drivers/mysqli/mysqli_forge.php | 4 ++-- system/database/drivers/mysqli/mysqli_result.php | 4 ++-- system/database/drivers/mysqli/mysqli_utility.php | 4 ++-- system/database/drivers/oci8/oci8_driver.php | 4 ++-- system/database/drivers/oci8/oci8_forge.php | 4 ++-- system/database/drivers/oci8/oci8_result.php | 4 ++-- system/database/drivers/oci8/oci8_utility.php | 4 ++-- system/database/drivers/odbc/odbc_driver.php | 4 ++-- system/database/drivers/odbc/odbc_forge.php | 4 ++-- system/database/drivers/odbc/odbc_result.php | 4 ++-- system/database/drivers/odbc/odbc_utility.php | 4 ++-- system/database/drivers/pdo/pdo_driver.php | 4 ++-- system/database/drivers/pdo/pdo_forge.php | 4 ++-- system/database/drivers/pdo/pdo_result.php | 4 ++-- system/database/drivers/pdo/pdo_utility.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_4d_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_4d_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_informix_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_informix_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_oci_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_oci_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php | 4 ++-- system/database/drivers/postgre/postgre_driver.php | 4 ++-- system/database/drivers/postgre/postgre_forge.php | 4 ++-- system/database/drivers/postgre/postgre_result.php | 4 ++-- system/database/drivers/postgre/postgre_utility.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_driver.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_forge.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_result.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_utility.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_driver.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_forge.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_result.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_utility.php | 4 ++-- system/helpers/array_helper.php | 4 ++-- system/helpers/captcha_helper.php | 4 ++-- system/helpers/cookie_helper.php | 4 ++-- system/helpers/date_helper.php | 4 ++-- system/helpers/directory_helper.php | 4 ++-- system/helpers/download_helper.php | 4 ++-- system/helpers/file_helper.php | 4 ++-- system/helpers/form_helper.php | 4 ++-- system/helpers/html_helper.php | 4 ++-- system/helpers/inflector_helper.php | 4 ++-- system/helpers/language_helper.php | 4 ++-- system/helpers/number_helper.php | 4 ++-- system/helpers/path_helper.php | 4 ++-- system/helpers/security_helper.php | 4 ++-- system/helpers/string_helper.php | 4 ++-- system/helpers/text_helper.php | 4 ++-- system/helpers/typography_helper.php | 4 ++-- system/helpers/url_helper.php | 4 ++-- system/helpers/xml_helper.php | 4 ++-- system/language/english/calendar_lang.php | 4 ++-- system/language/english/date_lang.php | 4 ++-- system/language/english/db_lang.php | 4 ++-- system/language/english/email_lang.php | 4 ++-- system/language/english/form_validation_lang.php | 4 ++-- system/language/english/ftp_lang.php | 4 ++-- system/language/english/imglib_lang.php | 4 ++-- system/language/english/migration_lang.php | 4 ++-- system/language/english/number_lang.php | 4 ++-- system/language/english/pagination_lang.php | 4 ++-- system/language/english/profiler_lang.php | 4 ++-- system/language/english/unit_test_lang.php | 4 ++-- system/language/english/upload_lang.php | 4 ++-- system/libraries/Cache/Cache.php | 4 ++-- system/libraries/Cache/drivers/Cache_apc.php | 4 ++-- system/libraries/Cache/drivers/Cache_apcu.php | 4 ++-- system/libraries/Cache/drivers/Cache_dummy.php | 4 ++-- system/libraries/Cache/drivers/Cache_file.php | 4 ++-- system/libraries/Cache/drivers/Cache_memcached.php | 4 ++-- system/libraries/Cache/drivers/Cache_redis.php | 4 ++-- system/libraries/Cache/drivers/Cache_wincache.php | 4 ++-- system/libraries/Calendar.php | 4 ++-- system/libraries/Driver.php | 4 ++-- system/libraries/Email.php | 4 ++-- system/libraries/Encrypt.php | 4 ++-- system/libraries/Encryption.php | 4 ++-- system/libraries/Form_validation.php | 4 ++-- system/libraries/Ftp.php | 4 ++-- system/libraries/Image_lib.php | 4 ++-- system/libraries/Migration.php | 4 ++-- system/libraries/Pagination.php | 4 ++-- system/libraries/Parser.php | 4 ++-- system/libraries/Profiler.php | 4 ++-- system/libraries/Session/Session.php | 4 ++-- system/libraries/Session/Session_driver.php | 4 ++-- system/libraries/Session/drivers/Session_database_driver.php | 4 ++-- system/libraries/Session/drivers/Session_files_driver.php | 4 ++-- system/libraries/Session/drivers/Session_memcached_driver.php | 4 ++-- system/libraries/Session/drivers/Session_redis_driver.php | 4 ++-- system/libraries/Table.php | 4 ++-- system/libraries/Trackback.php | 4 ++-- system/libraries/Typography.php | 4 ++-- system/libraries/Unit_test.php | 4 ++-- system/libraries/Upload.php | 4 ++-- system/libraries/User_agent.php | 4 ++-- system/libraries/Xmlrpc.php | 4 ++-- system/libraries/Xmlrpcs.php | 4 ++-- system/libraries/Zip.php | 4 ++-- user_guide_src/source/conf.py | 4 ++-- user_guide_src/source/license.rst | 2 +- 167 files changed, 332 insertions(+), 332 deletions(-) diff --git a/index.php b/index.php index b4e1fb146..536aef878 100755 --- a/index.php +++ b/index.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/license.txt b/license.txt index 934e126ff..dcac58588 100644 --- a/license.txt +++ b/license.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014 - 2017, British Columbia Institute of Technology +Copyright (c) 2014 - 2018, British Columbia Institute of Technology Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/system/core/Benchmark.php b/system/core/Benchmark.php index b3ac79c62..d6e133648 100644 --- a/system/core/Benchmark.php +++ b/system/core/Benchmark.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 767e1a17a..bce6a014a 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Common.php b/system/core/Common.php index bf9924df5..8d6253bea 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Config.php b/system/core/Config.php index d7236df1f..ca453668e 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Controller.php b/system/core/Controller.php index 59a916734..ec9aa2ad0 100644 --- a/system/core/Controller.php +++ b/system/core/Controller.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php index 399b1bd63..918de37cd 100644 --- a/system/core/Exceptions.php +++ b/system/core/Exceptions.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Hooks.php b/system/core/Hooks.php index d21381f5e..2f7bdafea 100644 --- a/system/core/Hooks.php +++ b/system/core/Hooks.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Input.php b/system/core/Input.php index dcaae60eb..97a6be78f 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Lang.php b/system/core/Lang.php index 569b02368..39fdd0668 100644 --- a/system/core/Lang.php +++ b/system/core/Lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Loader.php b/system/core/Loader.php index 5b051e1a8..b9a39d756 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Log.php b/system/core/Log.php index dd6ab8b90..1f4476efe 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Model.php b/system/core/Model.php index 691053a9c..69d934366 100644 --- a/system/core/Model.php +++ b/system/core/Model.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Output.php b/system/core/Output.php index aceef676a..acadc8fc8 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Router.php b/system/core/Router.php index e92a8f540..838413766 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Security.php b/system/core/Security.php index 4b6df01a3..b8f76e5e2 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/URI.php b/system/core/URI.php index 275c07900..899e49bd9 100644 --- a/system/core/URI.php +++ b/system/core/URI.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Utf8.php b/system/core/Utf8.php index 1aafbf3a3..6ecd9f8f4 100644 --- a/system/core/Utf8.php +++ b/system/core/Utf8.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/core/compat/hash.php b/system/core/compat/hash.php index fc319028d..226ea5b3c 100644 --- a/system/core/compat/hash.php +++ b/system/core/compat/hash.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/core/compat/mbstring.php b/system/core/compat/mbstring.php index 1b2f2c63b..9f6c24e2e 100644 --- a/system/core/compat/mbstring.php +++ b/system/core/compat/mbstring.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/core/compat/password.php b/system/core/compat/password.php index fa28f5492..fab543e8f 100644 --- a/system/core/compat/password.php +++ b/system/core/compat/password.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php index 6fd292a26..fb90e5d4f 100644 --- a/system/core/compat/standard.php +++ b/system/core/compat/standard.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/DB.php b/system/database/DB.php index 009035032..9596ed5ce 100644 --- a/system/database/DB.php +++ b/system/database/DB.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php index 7c8ee5fc9..56b735648 100644 --- a/system/database/DB_cache.php +++ b/system/database/DB_cache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 8ab5d762e..037be739e 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index dbf76fd13..40dfcd9b9 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index baa5ba814..d271964b9 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_result.php b/system/database/DB_result.php index 40b8fbb74..a5a4ca27d 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php index 944d45881..80baa4d27 100644 --- a/system/database/DB_utility.php +++ b/system/database/DB_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php index 6e8aff7c6..9d6afea6d 100644 --- a/system/database/drivers/cubrid/cubrid_driver.php +++ b/system/database/drivers/cubrid/cubrid_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/cubrid/cubrid_forge.php b/system/database/drivers/cubrid/cubrid_forge.php index 27bfc1466..95e7ca1d0 100644 --- a/system/database/drivers/cubrid/cubrid_forge.php +++ b/system/database/drivers/cubrid/cubrid_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/cubrid/cubrid_result.php b/system/database/drivers/cubrid/cubrid_result.php index 251b70a63..a71b1a20f 100644 --- a/system/database/drivers/cubrid/cubrid_result.php +++ b/system/database/drivers/cubrid/cubrid_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/cubrid/cubrid_utility.php b/system/database/drivers/cubrid/cubrid_utility.php index 555ae7a91..eb906ae21 100644 --- a/system/database/drivers/cubrid/cubrid_utility.php +++ b/system/database/drivers/cubrid/cubrid_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/ibase/ibase_driver.php b/system/database/drivers/ibase/ibase_driver.php index 3069d6699..fd866ffd1 100644 --- a/system/database/drivers/ibase/ibase_driver.php +++ b/system/database/drivers/ibase/ibase_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/ibase/ibase_forge.php b/system/database/drivers/ibase/ibase_forge.php index 31352f128..77aa4ae01 100644 --- a/system/database/drivers/ibase/ibase_forge.php +++ b/system/database/drivers/ibase/ibase_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/ibase/ibase_result.php b/system/database/drivers/ibase/ibase_result.php index 7d7dd79ac..b548f32ff 100644 --- a/system/database/drivers/ibase/ibase_result.php +++ b/system/database/drivers/ibase/ibase_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/ibase/ibase_utility.php b/system/database/drivers/ibase/ibase_utility.php index 3c152101a..a1e5d69ef 100644 --- a/system/database/drivers/ibase/ibase_utility.php +++ b/system/database/drivers/ibase/ibase_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php index 234be6786..3988d8bd7 100644 --- a/system/database/drivers/mssql/mssql_driver.php +++ b/system/database/drivers/mssql/mssql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mssql/mssql_forge.php b/system/database/drivers/mssql/mssql_forge.php index 6b6109868..9a3e3ebcb 100644 --- a/system/database/drivers/mssql/mssql_forge.php +++ b/system/database/drivers/mssql/mssql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php index 38a0a0574..8e1f4164c 100644 --- a/system/database/drivers/mssql/mssql_result.php +++ b/system/database/drivers/mssql/mssql_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php index 95ce88f13..90b7107fa 100644 --- a/system/database/drivers/mssql/mssql_utility.php +++ b/system/database/drivers/mssql/mssql_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php index 3a7fc9812..a23835b90 100644 --- a/system/database/drivers/mysql/mysql_driver.php +++ b/system/database/drivers/mysql/mysql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysql/mysql_forge.php b/system/database/drivers/mysql/mysql_forge.php index 7ed8f8d38..f8a998b56 100644 --- a/system/database/drivers/mysql/mysql_forge.php +++ b/system/database/drivers/mysql/mysql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php index 7aa265ebb..07d518782 100644 --- a/system/database/drivers/mysql/mysql_result.php +++ b/system/database/drivers/mysql/mysql_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php index bc01fc58d..ae3c26cba 100644 --- a/system/database/drivers/mysql/mysql_utility.php +++ b/system/database/drivers/mysql/mysql_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index a7ef648d7..58f12b199 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysqli/mysqli_forge.php b/system/database/drivers/mysqli/mysqli_forge.php index c5b23b6ca..dd77edca8 100644 --- a/system/database/drivers/mysqli/mysqli_forge.php +++ b/system/database/drivers/mysqli/mysqli_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php index bd465c405..bac073781 100644 --- a/system/database/drivers/mysqli/mysqli_result.php +++ b/system/database/drivers/mysqli/mysqli_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php index 82cf5cebf..332da604c 100644 --- a/system/database/drivers/mysqli/mysqli_utility.php +++ b/system/database/drivers/mysqli/mysqli_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index fb2f6b31b..1bd977390 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 724a76df4..0011bb022 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php index 0c3543333..1c4196f27 100644 --- a/system/database/drivers/oci8/oci8_result.php +++ b/system/database/drivers/oci8/oci8_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php index ce0dfc5f8..574ff6852 100644 --- a/system/database/drivers/oci8/oci8_utility.php +++ b/system/database/drivers/oci8/oci8_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php index ef982fc63..c85390352 100644 --- a/system/database/drivers/odbc/odbc_driver.php +++ b/system/database/drivers/odbc/odbc_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/odbc/odbc_forge.php b/system/database/drivers/odbc/odbc_forge.php index 77b2fdf62..761e81fcd 100644 --- a/system/database/drivers/odbc/odbc_forge.php +++ b/system/database/drivers/odbc/odbc_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/odbc/odbc_result.php b/system/database/drivers/odbc/odbc_result.php index 845aa9c79..f7c3aecbb 100644 --- a/system/database/drivers/odbc/odbc_result.php +++ b/system/database/drivers/odbc/odbc_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php index 643f6ec0c..2a3342801 100644 --- a/system/database/drivers/odbc/odbc_utility.php +++ b/system/database/drivers/odbc/odbc_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index 6afc999c2..c99bb0603 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/pdo_forge.php b/system/database/drivers/pdo/pdo_forge.php index 685b6776d..c77a84982 100644 --- a/system/database/drivers/pdo/pdo_forge.php +++ b/system/database/drivers/pdo/pdo_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php index bbc2cdc5a..3a821fbdc 100644 --- a/system/database/drivers/pdo/pdo_result.php +++ b/system/database/drivers/pdo/pdo_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/pdo_utility.php b/system/database/drivers/pdo/pdo_utility.php index 5029cac94..9091ea519 100644 --- a/system/database/drivers/pdo/pdo_utility.php +++ b/system/database/drivers/pdo/pdo_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php index 7eaeaa1fd..bbb675d3b 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php index 3f636d3bd..7135aa169 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php index fc49e0dd0..3189aab23 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php index 276cbb6bc..624ce51ac 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php index b9b86f784..d04f8b35b 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php index d0cca38dd..0216b59c5 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php index cb93f19b7..eec5bf2ee 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php index 20c5a6897..2a5fa6470 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php index 26b556a78..43400a441 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php index 4238ca082..f1bd2c3a7 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php index 050171f64..e44dcb805 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php index 2ddc2a933..e4202c2bc 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php index 64b13d827..e172145e9 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php index c7a92b826..629e0a9df 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php index abf9167d6..fef7a9a06 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index 813207b8e..ad2656106 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php index 066dd9614..48909885c 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php index a2a3bada3..02b6a2ac2 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php index 9aed3a2fe..33c8f1eee 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php index b00af4ad0..e5bfee6ad 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php index 9b70f3ea6..93871a99b 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php index 18c475b17..67fe6ee7e 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php index a9fb4d14a..db1002915 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php index 82a0d515d..4c9dbe6f9 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php index 505d609b8..cae162e2e 100644 --- a/system/database/drivers/postgre/postgre_driver.php +++ b/system/database/drivers/postgre/postgre_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php index cdbff4c4b..cf90325e1 100644 --- a/system/database/drivers/postgre/postgre_forge.php +++ b/system/database/drivers/postgre/postgre_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php index 57864a7f3..daf3306f3 100644 --- a/system/database/drivers/postgre/postgre_result.php +++ b/system/database/drivers/postgre/postgre_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php index 5ca358da5..3af225ff4 100644 --- a/system/database/drivers/postgre/postgre_utility.php +++ b/system/database/drivers/postgre/postgre_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php index d131baad7..41d9d484f 100644 --- a/system/database/drivers/sqlite3/sqlite3_driver.php +++ b/system/database/drivers/sqlite3/sqlite3_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlite3/sqlite3_forge.php b/system/database/drivers/sqlite3/sqlite3_forge.php index 5ee6daae3..48c5efc97 100644 --- a/system/database/drivers/sqlite3/sqlite3_forge.php +++ b/system/database/drivers/sqlite3/sqlite3_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlite3/sqlite3_result.php b/system/database/drivers/sqlite3/sqlite3_result.php index 03751f0dc..a143fd7cb 100644 --- a/system/database/drivers/sqlite3/sqlite3_result.php +++ b/system/database/drivers/sqlite3/sqlite3_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlite3/sqlite3_utility.php b/system/database/drivers/sqlite3/sqlite3_utility.php index 20d562f96..c829c1fc0 100644 --- a/system/database/drivers/sqlite3/sqlite3_utility.php +++ b/system/database/drivers/sqlite3/sqlite3_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php index 4edcc7fb8..05d35a42f 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_driver.php +++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/database/drivers/sqlsrv/sqlsrv_forge.php b/system/database/drivers/sqlsrv/sqlsrv_forge.php index aa8490ee4..01547e802 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_forge.php +++ b/system/database/drivers/sqlsrv/sqlsrv_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/database/drivers/sqlsrv/sqlsrv_result.php b/system/database/drivers/sqlsrv/sqlsrv_result.php index f784ebea8..1d0272f9d 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_result.php +++ b/system/database/drivers/sqlsrv/sqlsrv_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/database/drivers/sqlsrv/sqlsrv_utility.php b/system/database/drivers/sqlsrv/sqlsrv_utility.php index 19c93d0c6..001107db9 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_utility.php +++ b/system/database/drivers/sqlsrv/sqlsrv_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/helpers/array_helper.php b/system/helpers/array_helper.php index 74c7c15a8..3d4a496be 100644 --- a/system/helpers/array_helper.php +++ b/system/helpers/array_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 214e7f8fc..875ff23b4 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php index a1a9324ff..4c7b826ab 100644 --- a/system/helpers/cookie_helper.php +++ b/system/helpers/cookie_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/date_helper.php b/system/helpers/date_helper.php index 799c9f6d2..b62803785 100644 --- a/system/helpers/date_helper.php +++ b/system/helpers/date_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php index 2785241e6..0d3f20572 100644 --- a/system/helpers/directory_helper.php +++ b/system/helpers/directory_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index b2f0edb48..02d4ce11e 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php index 6af632b07..9ce43f3ef 100644 --- a/system/helpers/file_helper.php +++ b/system/helpers/file_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index 0c7ee4a40..1e516ebce 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 93ba2dd7d..c935f2619 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index 9e3cc38bc..547e4602e 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/language_helper.php b/system/helpers/language_helper.php index d26cf5b8d..f1dc8151d 100644 --- a/system/helpers/language_helper.php +++ b/system/helpers/language_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index cc8a7760c..00e645136 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/path_helper.php b/system/helpers/path_helper.php index 6896cb97b..697f6bd19 100644 --- a/system/helpers/path_helper.php +++ b/system/helpers/path_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/security_helper.php b/system/helpers/security_helper.php index 72736fa7d..f79f317bd 100644 --- a/system/helpers/security_helper.php +++ b/system/helpers/security_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/string_helper.php b/system/helpers/string_helper.php index 896973704..b51ab48f4 100644 --- a/system/helpers/string_helper.php +++ b/system/helpers/string_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/text_helper.php b/system/helpers/text_helper.php index 217729b70..3e2dca8a2 100644 --- a/system/helpers/text_helper.php +++ b/system/helpers/text_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/typography_helper.php b/system/helpers/typography_helper.php index 183e117bf..e97c83ba6 100644 --- a/system/helpers/typography_helper.php +++ b/system/helpers/typography_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index 2e09534f5..e5d2d372f 100644 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/xml_helper.php b/system/helpers/xml_helper.php index a12ee25db..68fb9d762 100644 --- a/system/helpers/xml_helper.php +++ b/system/helpers/xml_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/calendar_lang.php b/system/language/english/calendar_lang.php index 77911e983..e8d673d10 100644 --- a/system/language/english/calendar_lang.php +++ b/system/language/english/calendar_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/date_lang.php b/system/language/english/date_lang.php index bb454edfb..52bedb587 100644 --- a/system/language/english/date_lang.php +++ b/system/language/english/date_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/db_lang.php b/system/language/english/db_lang.php index b44bda951..d04c4929a 100644 --- a/system/language/english/db_lang.php +++ b/system/language/english/db_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/email_lang.php b/system/language/english/email_lang.php index 22dc0fa78..56589e087 100644 --- a/system/language/english/email_lang.php +++ b/system/language/english/email_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index 357f747ce..d448466b8 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/ftp_lang.php b/system/language/english/ftp_lang.php index eada3e5d5..534501805 100644 --- a/system/language/english/ftp_lang.php +++ b/system/language/english/ftp_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/imglib_lang.php b/system/language/english/imglib_lang.php index 218874cfe..976006e3f 100644 --- a/system/language/english/imglib_lang.php +++ b/system/language/english/imglib_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/migration_lang.php b/system/language/english/migration_lang.php index 168496090..68f431b0e 100644 --- a/system/language/english/migration_lang.php +++ b/system/language/english/migration_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/language/english/number_lang.php b/system/language/english/number_lang.php index 9723ce5ec..85e58169a 100644 --- a/system/language/english/number_lang.php +++ b/system/language/english/number_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/pagination_lang.php b/system/language/english/pagination_lang.php index d24dd047b..7ea444930 100644 --- a/system/language/english/pagination_lang.php +++ b/system/language/english/pagination_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/profiler_lang.php b/system/language/english/profiler_lang.php index 20949a20a..f0de6a735 100644 --- a/system/language/english/profiler_lang.php +++ b/system/language/english/profiler_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/unit_test_lang.php b/system/language/english/unit_test_lang.php index a89cb2d93..4fccc5f5d 100644 --- a/system/language/english/unit_test_lang.php +++ b/system/language/english/unit_test_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/upload_lang.php b/system/language/english/upload_lang.php index ec611f9ac..b301c9975 100644 --- a/system/language/english/upload_lang.php +++ b/system/language/english/upload_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php index 1b1801b5a..9d1cc5e94 100644 --- a/system/libraries/Cache/Cache.php +++ b/system/libraries/Cache/Cache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/libraries/Cache/drivers/Cache_apc.php b/system/libraries/Cache/drivers/Cache_apc.php index c873eb640..b42a832e3 100644 --- a/system/libraries/Cache/drivers/Cache_apc.php +++ b/system/libraries/Cache/drivers/Cache_apc.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index 9b7fe877c..ec2b84da3 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.2.0 diff --git a/system/libraries/Cache/drivers/Cache_dummy.php b/system/libraries/Cache/drivers/Cache_dummy.php index c6d9a61f1..bbaf96fc4 100644 --- a/system/libraries/Cache/drivers/Cache_dummy.php +++ b/system/libraries/Cache/drivers/Cache_dummy.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index 8a36e9d79..4f383032f 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 1562569e8..0f3a7ed9e 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index bb26b3b47..1629031ce 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Cache/drivers/Cache_wincache.php b/system/libraries/Cache/drivers/Cache_wincache.php index f296a5e26..b4279bb9d 100644 --- a/system/libraries/Cache/drivers/Cache_wincache.php +++ b/system/libraries/Cache/drivers/Cache_wincache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php index edb0fb4d9..450350ccf 100644 --- a/system/libraries/Calendar.php +++ b/system/libraries/Calendar.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Driver.php b/system/libraries/Driver.php index 00e8416f9..7dd66ec9c 100644 --- a/system/libraries/Driver.php +++ b/system/libraries/Driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 6d192a6e2..f9a4ae733 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php index ebcc6e8c6..17a3fe270 100644 --- a/system/libraries/Encrypt.php +++ b/system/libraries/Encrypt.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Encryption.php b/system/libraries/Encryption.php index 4f4f72057..4f681034a 100644 --- a/system/libraries/Encryption.php +++ b/system/libraries/Encryption.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index da288ec76..f402459a9 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php index 86e5b8f33..2885b550f 100644 --- a/system/libraries/Ftp.php +++ b/system/libraries/Ftp.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 60ed05766..63e071e7c 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Migration.php b/system/libraries/Migration.php index 2a87d9d7c..2c4f34abc 100644 --- a/system/libraries/Migration.php +++ b/system/libraries/Migration.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 3af70cb12..3fe3d3a45 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Parser.php b/system/libraries/Parser.php index fdd958b22..1534e4d9d 100644 --- a/system/libraries/Parser.php +++ b/system/libraries/Parser.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index cb3eaed75..3294cdfa2 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index 406b9a219..475a7961b 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/libraries/Session/Session_driver.php b/system/libraries/Session/Session_driver.php index f32f14ae0..bef5ee41f 100644 --- a/system/libraries/Session/Session_driver.php +++ b/system/libraries/Session/Session_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_database_driver.php b/system/libraries/Session/drivers/Session_database_driver.php index b519b782f..ae7a1b4a1 100644 --- a/system/libraries/Session/drivers/Session_database_driver.php +++ b/system/libraries/Session/drivers/Session_database_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_files_driver.php b/system/libraries/Session/drivers/Session_files_driver.php index 8860ef667..c6d789aae 100644 --- a/system/libraries/Session/drivers/Session_files_driver.php +++ b/system/libraries/Session/drivers/Session_files_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index 5e90539d7..edabff52c 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 76bddffd3..3882c13a1 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Table.php b/system/libraries/Table.php index ba096836b..5d5b73fdc 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 diff --git a/system/libraries/Trackback.php b/system/libraries/Trackback.php index 55e9a0ee6..228794dd7 100644 --- a/system/libraries/Trackback.php +++ b/system/libraries/Trackback.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php index b25d8fdaa..bfc993472 100644 --- a/system/libraries/Typography.php +++ b/system/libraries/Typography.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Unit_test.php b/system/libraries/Unit_test.php index 38e0fbd24..fa87e03b9 100644 --- a/system/libraries/Unit_test.php +++ b/system/libraries/Unit_test.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index c6771b584..21baac8b9 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/User_agent.php b/system/libraries/User_agent.php index cda3ef0a0..b1a011f19 100644 --- a/system/libraries/User_agent.php +++ b/system/libraries/User_agent.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 340ec8872..1d33b7742 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php index 7f760a088..4680bbfa4 100644 --- a/system/libraries/Xmlrpcs.php +++ b/system/libraries/Xmlrpcs.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php index c14de00c4..bc557bfe4 100644 --- a/system/libraries/Zip.php +++ b/system/libraries/Zip.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2018, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/user_guide_src/source/conf.py b/user_guide_src/source/conf.py index e0312d3c1..f59660886 100644 --- a/user_guide_src/source/conf.py +++ b/user_guide_src/source/conf.py @@ -41,7 +41,7 @@ master_doc = 'index' # General information about the project. project = u'CodeIgniter' -copyright = u'2014 - 2017, British Columbia Institute of Technology' +copyright = u'2014 - 2018, British Columbia Institute of Technology' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -229,7 +229,7 @@ man_pages = [ epub_title = u'CodeIgniter' epub_author = u'British Columbia Institute of Technology' epub_publisher = u'British Columbia Institute of Technology' -epub_copyright = u'2014 - 2017, British Columbia Institute of Technology' +epub_copyright = u'2014 - 2018, British Columbia Institute of Technology' # The language of the text. It defaults to the language option # or en if the language is not set. diff --git a/user_guide_src/source/license.rst b/user_guide_src/source/license.rst index c943c294a..d65b56431 100644 --- a/user_guide_src/source/license.rst +++ b/user_guide_src/source/license.rst @@ -2,7 +2,7 @@ The MIT License (MIT) ##################### -Copyright (c) 2014 - 2017, British Columbia Institute of Technology +Copyright (c) 2014 - 2018, British Columbia Institute of Technology Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal -- cgit v1.2.3-24-g4f1b From 22b35fac103891034388d60f77ddd43ad94b535a Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Fri, 12 Jan 2018 17:26:30 +0800 Subject: Returning true when replace() succeed. Signed-off-by: tianhe1986 --- system/libraries/Session/drivers/Session_memcached_driver.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index edabff52c..b109738c2 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -313,6 +313,8 @@ class CI_Session_memcached_driver extends CI_Session_driver implements SessionHa ? $this->_memcached->add($this->_lock_key, time(), 300) : FALSE; } + + return TRUE; } // 30 attempts to obtain a lock, in case another request already has it -- cgit v1.2.3-24-g4f1b From 459eaa897191cceb674820a6a9e2630f7ca1350f Mon Sep 17 00:00:00 2001 From: Mehdi Bounya <5004111+mehdibo@users.noreply.github.com> Date: Sun, 28 Jan 2018 19:29:29 +0000 Subject: Added rel attribute to auto_link() Fixed security issue: allowing the target page to take control of the original page Details about the issue here: https://mathiasbynens.github.io/rel-noopener/ --- system/helpers/url_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index e5d2d372f..3eb2cb0b0 100644 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -396,7 +396,7 @@ if ( ! function_exists('auto_link')) if ($type !== 'email' && preg_match_all('#(\w*://|www\.)[a-z0-9]+(-+[a-z0-9]+)*(\.[a-z0-9]+(-+[a-z0-9]+)*)+(/([^\s()<>;]+\w)?/?)?#i', $str, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) { // Set our target HTML if using popup links. - $target = ($popup) ? ' target="_blank"' : ''; + $target = ($popup) ? ' target="_blank" rel="noopener"' : ''; // We process the links in reverse order (last -> first) so that // the returned string offsets from preg_match_all() are not -- cgit v1.2.3-24-g4f1b From 2ad0b3553121ea2e5951179ac0aaca8fc71b767b Mon Sep 17 00:00:00 2001 From: Mehdi Bounya <5004111+mehdibo@users.noreply.github.com> Date: Wed, 31 Jan 2018 04:43:37 +0000 Subject: File name changing in dynamic output Allow changing file name (`Content-Disposition` header) when outputting the image by specifying the `new_name` config --- system/libraries/Image_lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 63e071e7c..f7b66c72e 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -1548,7 +1548,7 @@ class CI_Image_lib { */ public function image_display_gd($resource) { - header('Content-Disposition: filename='.$this->source_image.';'); + header('Content-Disposition: filename='.( (empty($this->new_image)) ? $this->source_image : $this->new_image ).';'); header('Content-Type: '.$this->mime_type); header('Content-Transfer-Encoding: binary'); header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT'); -- cgit v1.2.3-24-g4f1b From 10cc80e9f35aac497fe5b60b3e409a213a5a5291 Mon Sep 17 00:00:00 2001 From: Mehdi Bounya <5004111+mehdibo@users.noreply.github.com> Date: Wed, 31 Jan 2018 22:44:16 +0000 Subject: Update Image_lib.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I didn't understand #5394 that well, what I understood from your comment is that we should convert the charset to UTF-8. I tested with **マルチバイト** but it outputs nothing (empty string), but when I add a character **before** the string (e.g. xマルチバイト) it worked fine. --- system/libraries/Image_lib.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index f7b66c72e..b5e86f8a7 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -1548,7 +1548,8 @@ class CI_Image_lib { */ public function image_display_gd($resource) { - header('Content-Disposition: filename='.( (empty($this->new_image)) ? $this->source_image : $this->new_image ).';'); + $filename = basename(empty($this->new_image) ? $this->source_image : $this->new_image); + header('Content-Disposition: filename='.$filename.'; filename*=UTF-8\'\''.rawurlencode(iconv(config_item('charset'), 'UTF-8', $filename))); header('Content-Type: '.$this->mime_type); header('Content-Transfer-Encoding: binary'); header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT'); -- cgit v1.2.3-24-g4f1b From 719e4acbafecbef3f143affb45a8dcd90945dd04 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Tue, 30 Jan 2018 01:43:48 +0900 Subject: fix rfc6266 --- system/helpers/download_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 02d4ce11e..338725477 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -149,7 +149,7 @@ if ( ! function_exists('force_download')) // Generate the server headers header('Content-Type: '.$mime); - header('Content-Disposition: attachment; filename="'.$filename.'"'); + header('Content-Disposition: attachment; filename="'.$filename.'"; filename*=UTF-8\'\''.rawurlencode($filename)); header('Expires: 0'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.$filesize); -- cgit v1.2.3-24-g4f1b From a3e36019c787eb87fd0bc2e5ba9948c85c4a2c44 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Thu, 1 Feb 2018 11:38:00 +0900 Subject: change filename. convert to utf-8 --- system/helpers/download_helper.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 338725477..93d468421 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -147,9 +147,24 @@ if ( ! function_exists('force_download')) @ob_clean(); } + $utf8_filename = $filename; + $encoding = config_item('charset'); + if (strtoupper($encoding) !== 'UTF-8') + { + if (MB_ENABLED) + { + $utf8_filename = mb_convert_encoding($utf8_filename, 'UTF-8', $encoding); + } + elseif (ICONV_ENABLED) + { + $utf8_filename = @iconv($encoding, 'UTF-8', $utf8_filename); + } + } + // Generate the server headers header('Content-Type: '.$mime); - header('Content-Disposition: attachment; filename="'.$filename.'"; filename*=UTF-8\'\''.rawurlencode($filename)); + // charset attribute (RFC 6266 only allows UTF-8) + header('Content-Disposition: attachment; filename="'.$filename.'"; filename*=UTF-8\'\''.rawurlencode($utf8_filename)); header('Expires: 0'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.$filesize); -- cgit v1.2.3-24-g4f1b From c755a6b0b32b58c86989e5c6cfd8085732b1e497 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Thu, 1 Feb 2018 11:50:36 +0900 Subject: refactor use Utf8 class --- system/helpers/download_helper.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 93d468421..a169c3fd5 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -151,13 +151,10 @@ if ( ! function_exists('force_download')) $encoding = config_item('charset'); if (strtoupper($encoding) !== 'UTF-8') { - if (MB_ENABLED) + $CI =& get_instance(); + if ($converted_filename = $CI->utf8->convert_to_utf8($utf8_filename, $encoding) ) { - $utf8_filename = mb_convert_encoding($utf8_filename, 'UTF-8', $encoding); - } - elseif (ICONV_ENABLED) - { - $utf8_filename = @iconv($encoding, 'UTF-8', $utf8_filename); + $utf8_filename = $converted_filename; } } -- cgit v1.2.3-24-g4f1b From a70cdc5a9ed9e181e9f76fdc94006f3cc20198cd Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Mon, 5 Feb 2018 22:44:56 +0900 Subject: change use direct convert_to_utf8 method --- system/helpers/download_helper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index a169c3fd5..fdca76830 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -151,8 +151,8 @@ if ( ! function_exists('force_download')) $encoding = config_item('charset'); if (strtoupper($encoding) !== 'UTF-8') { - $CI =& get_instance(); - if ($converted_filename = $CI->utf8->convert_to_utf8($utf8_filename, $encoding) ) + $converted_filename = get_instance()->utf8->convert_to_utf8($utf8_filename, $encoding); + if ($converted_filename) { $utf8_filename = $converted_filename; } -- cgit v1.2.3-24-g4f1b From e5d719d822646a7c0bcd1a2732eb8fe19357444a Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Mon, 5 Feb 2018 23:04:17 +0900 Subject: Determine exactly whether converted filename is false --- system/helpers/download_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index fdca76830..344fd4e9a 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -152,7 +152,7 @@ if ( ! function_exists('force_download')) if (strtoupper($encoding) !== 'UTF-8') { $converted_filename = get_instance()->utf8->convert_to_utf8($utf8_filename, $encoding); - if ($converted_filename) + if ($converted_filename !== FALSE) { $utf8_filename = $converted_filename; } -- cgit v1.2.3-24-g4f1b From 4dc34279cdc19b7a1df3385b1f679aeac6767c89 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Mon, 5 Feb 2018 23:05:50 +0900 Subject: change variable name --- system/helpers/download_helper.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 344fd4e9a..afdb77956 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -148,10 +148,10 @@ if ( ! function_exists('force_download')) } $utf8_filename = $filename; - $encoding = config_item('charset'); - if (strtoupper($encoding) !== 'UTF-8') + $charset = config_item('charset'); + if (strtoupper($charset) !== 'UTF-8') { - $converted_filename = get_instance()->utf8->convert_to_utf8($utf8_filename, $encoding); + $converted_filename = get_instance()->utf8->convert_to_utf8($utf8_filename, $charset); if ($converted_filename !== FALSE) { $utf8_filename = $converted_filename; -- cgit v1.2.3-24-g4f1b From 8f04f20b0f63ace705e4371a24d0ddf139655dba Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Tue, 6 Feb 2018 00:01:45 +0900 Subject: Changed to include Content-Disposition parameters in variables --- system/helpers/download_helper.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index afdb77956..43e12cf9e 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -147,21 +147,21 @@ if ( ! function_exists('force_download')) @ob_clean(); } - $utf8_filename = $filename; + $disposition = 'attachment; filename="'.$filename.'";'; $charset = config_item('charset'); if (strtoupper($charset) !== 'UTF-8') { - $converted_filename = get_instance()->utf8->convert_to_utf8($utf8_filename, $charset); - if ($converted_filename !== FALSE) + // charset attribute (RFC 6266 only allows UTF-8) + $utf8_filename = get_instance()->utf8->convert_to_utf8($filename, $charset); + if ($utf8_filename !== FALSE) { - $utf8_filename = $converted_filename; + $disposition .= ' filename*=UTF-8\'\''.rawurlencode($utf8_filename); } } // Generate the server headers header('Content-Type: '.$mime); - // charset attribute (RFC 6266 only allows UTF-8) - header('Content-Disposition: attachment; filename="'.$filename.'"; filename*=UTF-8\'\''.rawurlencode($utf8_filename)); + header('Content-Disposition: '.$disposition); header('Expires: 0'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.$filesize); -- cgit v1.2.3-24-g4f1b From 43538863b7bdd52529c38ad314ffc0f9edbbaa8b Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 7 Feb 2018 17:49:07 +0200 Subject: [ci skip] Finalize changes from PR #5394 --- system/helpers/download_helper.php | 25 +++++++++++++++---------- user_guide_src/source/changelog.rst | 1 + 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 43e12cf9e..b7a5336b6 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -147,21 +147,26 @@ if ( ! function_exists('force_download')) @ob_clean(); } - $disposition = 'attachment; filename="'.$filename.'";'; - $charset = config_item('charset'); - if (strtoupper($charset) !== 'UTF-8') + // RFC 6266 allows for multibyte filenames, but only in UTF-8, + // so we have to make it conditional ... + $utf8_filename = $filename; + $charset = strtoupper(config_item('charset')); + if ($charset !== 'UTF-8') { - // charset attribute (RFC 6266 only allows UTF-8) - $utf8_filename = get_instance()->utf8->convert_to_utf8($filename, $charset); - if ($utf8_filename !== FALSE) - { - $disposition .= ' filename*=UTF-8\'\''.rawurlencode($utf8_filename); - } + $utf8_filename = (UTF8_ENABLED === TRUE) + ? get_instance()->utf8->convert_to_utf8($filename, $charset) + : FALSE; + } + else + { + $utf8_filename = $filename; } + isset($utf8_filename[0]) && $utf8_filename = " filename*=UTF-8''".rawurlencode($utf8_filename); + // Generate the server headers header('Content-Type: '.$mime); - header('Content-Disposition: '.$disposition); + header('Content-Disposition: attachment; filename="'.$filename.'";'.$utf8_filename); header('Expires: 0'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.$filesize); diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 37c276f19..92403bc25 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -94,6 +94,7 @@ Release Date: Not Released - Updated :php:func:`force_download()` to allow existing files to be renamed for download. - Updated :php:func:`force_download()` to better utilize available server memory. + - Updated :php:func:`force_download()` to serve multibyte filenames when possible, via the ``filename*`` attribute specified by IETF `RFC 6266 `_. - :doc:`String Helper ` changes include: -- cgit v1.2.3-24-g4f1b From d4fbb65b9a5c75b00ad8374021c72eb6ff4a58df Mon Sep 17 00:00:00 2001 From: Mehdi Bounya <5004111+mehdibo@users.noreply.github.com> Date: Wed, 7 Feb 2018 18:48:17 +0000 Subject: Changing file name in image lib dynamic output --- system/libraries/Image_lib.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index b5e86f8a7..0c36f740c 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -1548,8 +1548,7 @@ class CI_Image_lib { */ public function image_display_gd($resource) { - $filename = basename(empty($this->new_image) ? $this->source_image : $this->new_image); - header('Content-Disposition: filename='.$filename.'; filename*=UTF-8\'\''.rawurlencode(iconv(config_item('charset'), 'UTF-8', $filename))); + header('Content-Disposition: filename='.basename(empty($this->new_image) ? $this->source_image : $this->new_image).';'); header('Content-Type: '.$this->mime_type); header('Content-Transfer-Encoding: binary'); header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT'); -- cgit v1.2.3-24-g4f1b From ff1029018a8e5ba7261cdfb71fb3d102c3efc22b Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Thu, 8 Feb 2018 22:08:23 +0900 Subject: Fixed bug that character code did not change --- system/helpers/download_helper.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index b7a5336b6..a2e28a6e9 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -153,9 +153,7 @@ if ( ! function_exists('force_download')) $charset = strtoupper(config_item('charset')); if ($charset !== 'UTF-8') { - $utf8_filename = (UTF8_ENABLED === TRUE) - ? get_instance()->utf8->convert_to_utf8($filename, $charset) - : FALSE; + $utf8_filename = get_instance()->utf8->convert_to_utf8($filename, $charset); } else { -- cgit v1.2.3-24-g4f1b From b8166baf08d2c7a9fa7565b355324f347ae043f9 Mon Sep 17 00:00:00 2001 From: qichengzx Date: Sun, 11 Feb 2018 17:24:58 +0800 Subject: complement the missing HTTP status codes --- system/core/Common.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/system/core/Common.php b/system/core/Common.php index 8d6253bea..b0c2d7a88 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -498,6 +498,8 @@ if ( ! function_exists('set_status_header')) $stati = array( 100 => 'Continue', 101 => 'Switching Protocols', + 102 => 'Processing', + 103 => 'Early Hints', 200 => 'OK', 201 => 'Created', @@ -506,6 +508,9 @@ if ( ! function_exists('set_status_header')) 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', + 207 => 'Multi-Status', + 208 => 'Already Reported', + 226 => 'IM Used', 300 => 'Multiple Choices', 301 => 'Moved Permanently', @@ -514,6 +519,7 @@ if ( ! function_exists('set_status_header')) 304 => 'Not Modified', 305 => 'Use Proxy', 307 => 'Temporary Redirect', + 308 => 'Permanent Redirect', 400 => 'Bad Request', 401 => 'Unauthorized', @@ -533,11 +539,14 @@ if ( ! function_exists('set_status_header')) 415 => 'Unsupported Media Type', 416 => 'Requested Range Not Satisfiable', 417 => 'Expectation Failed', + 421 => 'Misdirected Request', 422 => 'Unprocessable Entity', + 423 => 'Locked', 426 => 'Upgrade Required', 428 => 'Precondition Required', 429 => 'Too Many Requests', 431 => 'Request Header Fields Too Large', + 451 => 'Unavailable For Legal Reasons', 500 => 'Internal Server Error', 501 => 'Not Implemented', @@ -545,6 +554,10 @@ if ( ! function_exists('set_status_header')) 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported', + 506 => 'Variant Also Negotiates', + 507 => 'Insufficient Storage', + 508 => 'Loop Detected', + 510 => 'Not Extended', 511 => 'Network Authentication Required', ); -- cgit v1.2.3-24-g4f1b From c82f3236069fae1f21a0900b026d346752d089c9 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 12 Feb 2018 14:31:20 +0200 Subject: [ci skip] More polish on the download helper --- system/helpers/download_helper.php | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index a2e28a6e9..000e4c707 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -149,17 +149,10 @@ if ( ! function_exists('force_download')) // RFC 6266 allows for multibyte filenames, but only in UTF-8, // so we have to make it conditional ... - $utf8_filename = $filename; $charset = strtoupper(config_item('charset')); - if ($charset !== 'UTF-8') - { - $utf8_filename = get_instance()->utf8->convert_to_utf8($filename, $charset); - } - else - { - $utf8_filename = $filename; - } - + $utf8_filename = ($charset !== 'UTF-8') + ? $utf8_filename = get_instance()->utf8->convert_to_utf8($filename, $charset) + : $filename; isset($utf8_filename[0]) && $utf8_filename = " filename*=UTF-8''".rawurlencode($utf8_filename); // Generate the server headers -- cgit v1.2.3-24-g4f1b From 06e5d36f566c68b51ded2c2c307094c062e17a10 Mon Sep 17 00:00:00 2001 From: Mehdi Bounya <5004111+mehdibo@users.noreply.github.com> Date: Mon, 12 Feb 2018 19:15:01 +0000 Subject: Update Image_lib.php Fixed indentation --- system/libraries/Image_lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 0c36f740c..f37f25f5e 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -1548,7 +1548,7 @@ class CI_Image_lib { */ public function image_display_gd($resource) { - header('Content-Disposition: filename='.basename(empty($this->new_image) ? $this->source_image : $this->new_image).';'); + header('Content-Disposition: filename='.basename(empty($this->new_image) ? $this->source_image : $this->new_image).';'); header('Content-Type: '.$this->mime_type); header('Content-Transfer-Encoding: binary'); header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT'); -- cgit v1.2.3-24-g4f1b From 694a43722212558eb25322e72bae09d70b6d4a07 Mon Sep 17 00:00:00 2001 From: qichengzx Date: Tue, 13 Feb 2018 11:11:49 +0800 Subject: only retain 103, 207, 308, 421 and 451 --- system/core/Common.php | 8 -------- 1 file changed, 8 deletions(-) diff --git a/system/core/Common.php b/system/core/Common.php index b0c2d7a88..3a4ef425a 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -498,7 +498,6 @@ if ( ! function_exists('set_status_header')) $stati = array( 100 => 'Continue', 101 => 'Switching Protocols', - 102 => 'Processing', 103 => 'Early Hints', 200 => 'OK', @@ -509,8 +508,6 @@ if ( ! function_exists('set_status_header')) 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-Status', - 208 => 'Already Reported', - 226 => 'IM Used', 300 => 'Multiple Choices', 301 => 'Moved Permanently', @@ -541,7 +538,6 @@ if ( ! function_exists('set_status_header')) 417 => 'Expectation Failed', 421 => 'Misdirected Request', 422 => 'Unprocessable Entity', - 423 => 'Locked', 426 => 'Upgrade Required', 428 => 'Precondition Required', 429 => 'Too Many Requests', @@ -554,10 +550,6 @@ if ( ! function_exists('set_status_header')) 503 => 'Service Unavailable', 504 => 'Gateway Timeout', 505 => 'HTTP Version Not Supported', - 506 => 'Variant Also Negotiates', - 507 => 'Insufficient Storage', - 508 => 'Loop Detected', - 510 => 'Not Extended', 511 => 'Network Authentication Required', ); -- cgit v1.2.3-24-g4f1b From b7ca09f989ae344682395d16402bcf07062dd655 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Wed, 14 Feb 2018 16:32:41 +0900 Subject: Delete unnecessary assignment expressions --- system/helpers/download_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 000e4c707..901e3277c 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -151,7 +151,7 @@ if ( ! function_exists('force_download')) // so we have to make it conditional ... $charset = strtoupper(config_item('charset')); $utf8_filename = ($charset !== 'UTF-8') - ? $utf8_filename = get_instance()->utf8->convert_to_utf8($filename, $charset) + ? get_instance()->utf8->convert_to_utf8($filename, $charset) : $filename; isset($utf8_filename[0]) && $utf8_filename = " filename*=UTF-8''".rawurlencode($utf8_filename); -- cgit v1.2.3-24-g4f1b From 0b459da1d5bbbea07abef34765f55c1cb0b15814 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Feb 2018 20:51:11 +0200 Subject: [ci skip] Add changelog entry for PR #5397 --- user_guide_src/source/changelog.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 92403bc25..b9b6d6769 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -64,6 +64,11 @@ Release Date: Not Released - Changed the default value of the **validate** option to ``TRUE``. - Changed the ``send()`` method to always return ``TRUE`` when sending multiple batches of emails. + + - :doc:`Image Manipulation Library ` changes include: + + - Added option to change the output filename via the ``new_name`` option while directly rendering images. + - :doc:`Database ` changes include: - Removed previously deprecated 'sqlite' driver (used for SQLite version 2; no longer shipped with PHP 5.4+). -- cgit v1.2.3-24-g4f1b From 2e35167e8e8be5c91de2a09dcebb92e7a7410d8d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Feb 2018 20:57:20 +0200 Subject: [ci skip] Apply #5394 (multibyte filename serving) to #5397 (Image_lib dynamic_output filename) --- system/libraries/Image_lib.php | 11 ++++++++++- user_guide_src/source/changelog.rst | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index f37f25f5e..dbe5cbbd1 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -1548,7 +1548,16 @@ class CI_Image_lib { */ public function image_display_gd($resource) { - header('Content-Disposition: filename='.basename(empty($this->new_image) ? $this->source_image : $this->new_image).';'); + // RFC 6266 allows for multibyte filenames, but only in UTF-8, + // so we have to make it conditional ... + $filename = basename(empty($this->new_image) ? $this->source_image : $this->new_image); + $charset = strtoupper(config_item('charset')); + $utf8_filename = ($charset !== 'UTF-8') + ? get_instance()->utf8->convert_to_utf8($filename, $charset) + : $filename; + isset($utf8_filename[0]) && $utf8_filename = " filename*=UTF-8''".rawurlencode($utf8_filename); + + header('Content-Disposition: filename="'.$filename.'";'.$utf8_filename); header('Content-Type: '.$this->mime_type); header('Content-Transfer-Encoding: binary'); header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT'); diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index b9b6d6769..fb71481f5 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -67,7 +67,8 @@ Release Date: Not Released - :doc:`Image Manipulation Library ` changes include: - - Added option to change the output filename via the ``new_name`` option while directly rendering images. + - Added option to change the output filename via the ``new_name`` option when rendering images with ``dynamic_output``. + - Updated to serve multibyte filenames when rendering images with ``dynamic_output``, if possible. - :doc:`Database ` changes include: -- cgit v1.2.3-24-g4f1b From 8ef6526651c4900308255c2cda0f7278223ea387 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 14 Feb 2018 21:07:02 +0200 Subject: [ci skip] Add changelog entry for PR #5407 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index fb71481f5..b7ebe7aa3 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -12,6 +12,7 @@ Release Date: Not Released - Officially dropped any kind of support for anything under PHP 5.4.8. - Updated Welcome view and HTML error templates with new styling. - Updated configurable directory paths to handle missing trailing ``DIRECTORY_SEPARATOR`` automatically. + - Added support for HTTP status codes 103, 207, 308, 421 and 451 to :doc:`common function ` :php:func:`set_status_header()`. - Core -- cgit v1.2.3-24-g4f1b From 90ef2e3bd27cfb5125e2d27ec71c2ed990c12cc5 Mon Sep 17 00:00:00 2001 From: Mehdi Bounya <5004111+mehdibo@users.noreply.github.com> Date: Sun, 4 Mar 2018 00:00:20 +0000 Subject: Fixed bug in ZIP library the `read_dir` method ignores files that starts with a dot (like .htaccess) I looked through the documentation and it didn't mention that the method ignores hidden files so it must be a bug. --- system/libraries/Zip.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php index bc557bfe4..6ed6d5242 100644 --- a/system/libraries/Zip.php +++ b/system/libraries/Zip.php @@ -366,7 +366,7 @@ class CI_Zip { while (FALSE !== ($file = readdir($fp))) { - if ($file[0] === '.') + if ($file === '.' OR $file === '..') { continue; } -- cgit v1.2.3-24-g4f1b From 1a8aa70474fbd18758401c4bdd354c1a43756ccc Mon Sep 17 00:00:00 2001 From: Remko Silvis Date: Mon, 5 Mar 2018 10:45:03 +0100 Subject: Added parenthesis check around "document" elements and fixed non-existent document.window filter to window.document --- system/core/Security.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/system/core/Security.php b/system/core/Security.php index b8f76e5e2..506b4c7e8 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -134,7 +134,9 @@ class CI_Security { */ protected $_never_allowed_str = array( 'document.cookie' => '[removed]', + '(document).cookie' => '[removed]', 'document.write' => '[removed]', + '(document).write' => '[removed]', '.parentNode' => '[removed]', '.innerHTML' => '[removed]', '-moz-binding' => '[removed]', @@ -152,7 +154,7 @@ class CI_Security { */ protected $_never_allowed_regex = array( 'javascript\s*:', - '(document|(document\.)?window)\.(location|on\w*)', + '(\(?document\)?|\(?window\)?(\.document)?)\.(location|on\w*)', 'expression\s*(\(|&\#40;)', // CSS and IE 'vbscript\s*:', // IE, surprise! 'wscript\s*:', // IE @@ -905,7 +907,7 @@ class CI_Security { return str_replace( $match[1], preg_replace( - '#href=.*?(?:(?:alert|prompt|confirm)(?:\(|&\#40;)|javascript:|livescript:|mocha:|charset=|window\.|document\.|\.cookie|_filter_attributes($match[1]) ), @@ -933,7 +935,7 @@ class CI_Security { return str_replace( $match[1], preg_replace( - '#src=.*?(?:(?:alert|prompt|confirm|eval)(?:\(|&\#40;)|javascript:|livescript:|mocha:|charset=|window\.|document\.|\.cookie|_filter_attributes($match[1]) ), -- cgit v1.2.3-24-g4f1b From c4eeb617e453153134c28050d421157c730c7bc9 Mon Sep 17 00:00:00 2001 From: Remko Silvis Date: Mon, 5 Mar 2018 11:31:00 +0100 Subject: Fixed typo --- system/core/Security.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Security.php b/system/core/Security.php index 506b4c7e8..091093637 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -833,7 +833,7 @@ class CI_Security { // For other tags, see if their attributes are "evil" and strip those elseif (isset($matches['attributes'])) { - // We'll store the already fitlered attributes here + // We'll store the already filtered attributes here $attributes = array(); // Attribute-catching pattern -- cgit v1.2.3-24-g4f1b From bbb3d55f6e0315faf03dcf894709cc04d6109179 Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Wed, 7 Mar 2018 19:05:09 +0100 Subject: improved code structure and comments --- system/core/Loader.php | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 07e572950..18fba2b72 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -94,11 +94,11 @@ class CI_Loader { protected $_ci_cached_vars = array(); /** - * stack of variables for nested _ci_load calls + * Stack of variable arrays to provide nested _ci_load calls all variables from parent calls * * @var array */ - protected $_ci_vars_stack = array(); + protected $_ci_load_vars_stack = array(); /** * List of loaded classes @@ -945,26 +945,38 @@ class CI_Loader { * * You can either set variables using the dedicated $this->load->vars() * function or via the second parameter of this function. We'll merge - * the two types. Additionally we merge them with the last variables - * from the nested call stack so that views that are embedded within - * other views can have access to these variables. + * the two types so that loaded views and files have access to these + * variables. + * Additionally we want all subsequent nested _ci_load() calls embedded + * within the current file to 'inherit' all variables that are + * accessible to the current file. For this purpose we push the current + * variable configuration (_ci_vars) to the stack and remove it again + * after the file or view is completely loaded. Nested _ci_load() calls + * within the current file extend the stack with their variable + * configuration. */ - // init current _ci_vars + // Init current _ci_vars as current variable configuration if (!is_array($_ci_vars)) { $_ci_vars = []; } - // merge with global cached vars (first call) or last state from nested - // call stack (subsequent nested calls) - if (!empty($this->_ci_vars_stack)) { - $_ci_vars = array_merge(end($this->_ci_vars_stack), $_ci_vars); - } else if (!empty($this->_ci_cached_vars)) { + // Include the global cached vars into the current _ci_vars if needed + if (!empty($this->_ci_cached_vars)) { $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); } - // push current _ci_vars state to stack and extract it - array_push($this->_ci_vars_stack, $_ci_vars); + // Merge the last variable configuration from a parent _ci_load() + // call into the current _ci_vars + if (!empty($this->_ci_load_vars_stack)) { + $previous_variable_configuration = end($this->_ci_load_vars_stack); + $_ci_vars = array_merge($previous_variable_configuration, $_ci_vars); + } + + // Push the current _ci_vars to the stack + array_push($this->_ci_load_vars_stack, $_ci_vars); + + // Extract the current _ci_vars extract($_ci_vars); /** @@ -983,8 +995,8 @@ class CI_Loader { include($_ci_path); // include() vs include_once() allows for multiple views with the same name log_message('info', 'File loaded: '.$_ci_path); - // remove current _ci_vars state from stack - array_pop($this->_ci_vars_stack); + // Remove current _ci_vars from stack again + array_pop($this->_ci_load_vars_stack); // Return the file data if requested if ($_ci_return === TRUE) -- cgit v1.2.3-24-g4f1b From 6b7fc8fc1826406d5c6d04afe2c39a36e5522609 Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Wed, 7 Mar 2018 19:05:20 +0100 Subject: added test for nested view --- tests/codeigniter/core/Loader_test.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index df698f30c..f043d1fcc 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -318,6 +318,15 @@ class Loader_test extends CI_TestCase { $vars = new stdClass(); $vars->$var = $value; $this->assertInstanceOf('CI_Loader', $this->load->view($view, $vars)); + + // Create another view in VFS, nesting the first one without its own $vars + $nesting_view = 'unit_test_nesting_view'; + $nesting_content = 'Here comes a nested view. '; + $this->ci_vfs_create($nesting_view, $nesting_content.'view("'.$view.'");', $this->ci_app_root, 'views'); + + // Test $vars inheritance to nested views + $out = $this->load->view($nesting_view, array("loader" => $this->load, $var => $value), TRUE); + $this->assertEquals($nesting_content.$content.$value, $out); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 0e594f14d34e54fa97cb29a0b08eb3efd0e7a939 Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Wed, 7 Mar 2018 19:11:49 +0100 Subject: added load_view unit test to ensure that a once set and later missing parameter is in fact missing --- tests/codeigniter/core/Loader_test.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index f043d1fcc..40d310274 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -303,12 +303,16 @@ class Loader_test extends CI_TestCase { $var = 'hello'; $value = 'World!'; $content = 'This is my test page. '; - $this->ci_vfs_create($view, $content.'ci_app_root, 'views'); + $this->ci_vfs_create($view, $content.'ci_app_root, 'views'); // Test returning view $out = $this->load->view($view, array($var => $value), TRUE); $this->assertEquals($content.$value, $out); + // Test view with missing parameter in $vars + $out = $this->load->view($view, [], TRUE); + $this->assertEquals($content.'undefined', $out); + // Mock output class $output = $this->getMockBuilder('CI_Output')->setMethods(array('append_output'))->getMock(); $output->expects($this->once())->method('append_output')->with($content.$value); -- cgit v1.2.3-24-g4f1b From 6f7f5f403769544e7e2dd7f6b0056920768236fb Mon Sep 17 00:00:00 2001 From: xims Date: Thu, 8 Mar 2018 18:04:48 +1100 Subject: Update Image_lib to avoid setting file permissions when not needed When processing an image, there is no need to set file permissions when using dynamic_output. In some cases, it floods the log file with errors ERROR --> Severity: Warning --> chmod(): Operation not permitted ...../CodeIgniter/libraries/Image_lib.php 838 --- system/libraries/Image_lib.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index dbe5cbbd1..a07557f61 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -835,7 +835,10 @@ class CI_Image_lib { imagedestroy($dst_img); imagedestroy($src_img); - chmod($this->full_dst_path, $this->file_permissions); + if ($this->dynamic_output !== TRUE) + { + chmod($this->full_dst_path, $this->file_permissions); + } return TRUE; } -- cgit v1.2.3-24-g4f1b From b19f82cf12b4e34cde7c9235d2618dddaea4a38f Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 10 Mar 2018 01:34:08 +0200 Subject: [ci skip] Add changelog entry for PR #5429 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index b7ebe7aa3..8aede9406 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -37,6 +37,7 @@ Release Date: Not Released - Removed previously deprecated *Cart Library*. - Removed previously deprecated *Javascript Library* (it was always experimental in the first place). - Added UNIX socket connection support to :doc:`Session Library ` 'redis' driver. + - Updated :doc:`ZIP Library ` method ``read_dir()`` to include hidden (dot-prefixed) files. - :doc:`Cache Library ` changes include: -- cgit v1.2.3-24-g4f1b From b55994602a90a1d9ffc56107f193d8b5c61e6a66 Mon Sep 17 00:00:00 2001 From: Sukhmeet Singh Date: Wed, 14 Mar 2018 17:41:22 +0530 Subject: Spelling fix: utlize -> utilize --- user_guide_src/source/database/query_builder.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/database/query_builder.rst b/user_guide_src/source/database/query_builder.rst index 7c1bd4cc0..860b34d4c 100644 --- a/user_guide_src/source/database/query_builder.rst +++ b/user_guide_src/source/database/query_builder.rst @@ -700,7 +700,7 @@ will be reset (by default it will be--just like $this->db->insert()):: // Produces string: INSERT INTO mytable (`title`, `content`) VALUES ('My Title', 'My Content') The key thing to notice in the above example is that the second query did not -utlize `$this->db->from()` nor did it pass a table name into the first +utilize `$this->db->from()` nor did it pass a table name into the first parameter. The reason this worked is because the query has not been executed using `$this->db->insert()` which resets values or reset directly using `$this->db->reset_query()`. -- cgit v1.2.3-24-g4f1b From f5255269f21e66481166518db2653dc3e8c46202 Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Thu, 15 Mar 2018 16:21:49 +0100 Subject: fixed styleguide violations --- system/core/Loader.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index 18fba2b72..9a56b3857 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -957,18 +957,21 @@ class CI_Loader { */ // Init current _ci_vars as current variable configuration - if (!is_array($_ci_vars)) { + if ( ! is_array($_ci_vars)) + { $_ci_vars = []; } // Include the global cached vars into the current _ci_vars if needed - if (!empty($this->_ci_cached_vars)) { + if ( ! empty($this->_ci_cached_vars)) + { $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); } // Merge the last variable configuration from a parent _ci_load() // call into the current _ci_vars - if (!empty($this->_ci_load_vars_stack)) { + if ( ! empty($this->_ci_load_vars_stack)) + { $previous_variable_configuration = end($this->_ci_load_vars_stack); $_ci_vars = array_merge($previous_variable_configuration, $_ci_vars); } -- cgit v1.2.3-24-g4f1b From a9a87684ed953c41a6ac966f3253163a775e211d Mon Sep 17 00:00:00 2001 From: popcorner Date: Wed, 28 Mar 2018 19:17:40 +0800 Subject: replace toggle() to fix the toc button --- .../_themes/sphinx_rtd_theme/static/js/theme.js | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js index 081d77bdf..911dad29b 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/js/theme.js @@ -22,31 +22,34 @@ $(document).ready(function () { $('#openToc').click(function () { $('#nav').slideToggle(); }); - $('#closeMe').toggle( - function () - { + $('#closeMe').click(function () { + if (getCookie('ciNav') != 'yes') { setCookie('ciNav', 'yes', 365); + } else { + setCookie('ciNav', 'no', 365); + } + tocFlip(); + }); + var tocFlip = function(){ + if (getCookie('ciNav') == 'yes') { $('#nav2').show(); $('#topMenu').remove(); - $('body').css({background: 'none'}); - $('.wy-nav-content-wrap').css({background: 'none', 'margin-left': 0}); + $('body').css({ background: 'none' }); + $('.wy-nav-content-wrap').css({ background: 'none', 'margin-left': 0 }); $('.wy-breadcrumbs').append('
      ' + $('.wy-form').parent().html() + '
      '); $('.wy-nav-side').toggle(); - }, - function () - { - setCookie('ciNav', 'no', 365); + } else { $('#topMenu').remove(); $('#nav').hide(); $('#nav2').hide(); - $('body').css({background: '#edf0f2;'}); - $('.wy-nav-content-wrap').css({background: 'none repeat scroll 0 0 #fcfcfc;', 'margin-left': '300px'}); + $('body').css({ background: '#edf0f2;' }); + $('.wy-nav-content-wrap').css({ background: 'none repeat scroll 0 0 #fcfcfc;', 'margin-left': '300px' }); $('.wy-nav-side').show(); } - ); + }; if (getCookie('ciNav') == 'yes') { - $('#closeMe').trigger('click'); + tocFlip(); //$('#nav').slideToggle(); } // END MODIFICATION --- -- cgit v1.2.3-24-g4f1b From 5e36bdcd352c24e6312ad81cadf2ddbf041d11cb Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Tue, 3 Apr 2018 19:22:50 +0900 Subject: fix: It does not work properly when like is before --- system/database/DB_query_builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 744c4970e..41148f63b 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1042,7 +1042,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $v = "'{$v}'"; break; case 'before': - $v = "%'{$v}'"; + $v = "'%{$v}'"; break; case 'after': $v = "'{$v}%'"; -- cgit v1.2.3-24-g4f1b From 4ccc1fc93050d043b4483e5d72f92fafa32002e5 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Tue, 3 Apr 2018 19:42:16 +0900 Subject: feat: add test code --- .../database/query_builder/like_test.php | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/codeigniter/database/query_builder/like_test.php b/tests/codeigniter/database/query_builder/like_test.php index 3672afae3..f8409092a 100644 --- a/tests/codeigniter/database/query_builder/like_test.php +++ b/tests/codeigniter/database/query_builder/like_test.php @@ -103,4 +103,27 @@ class Like_test extends CI_TestCase { $this->assertCount(1, $tabs); } + /** + * GitHub issue #5462 + * + * @see ./mocks/schema/skeleton.php + * + * @dataProvider like_set_side_provider + */ + public function test_like_set_side($str, $side, $expected_name) + { + $actual = $this->db->like('name', $str, $side)->get('job')->result_array(); + $this->assertCount(1, $actual); + $this->assertEquals($expected_name, $actual[0]['name']); + } + + public function like_set_side_provider() + { + return [ + ['Developer', 'none', 'Developer'], + ['tician', 'before', 'Politician'], + ['Accou', 'after', 'Accountant'], + ['usicia', 'both', 'Musician'], + ]; + } } -- cgit v1.2.3-24-g4f1b From 69ce2fe4843ccb14ae2c2aa8db37f57841d3f231 Mon Sep 17 00:00:00 2001 From: Jehong Ahn Date: Thu, 12 Apr 2018 16:36:38 +0900 Subject: qb_limit can be zero --- system/database/DB_driver.php | 2 +- system/database/DB_query_builder.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 037be739e..c213bc280 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -1469,7 +1469,7 @@ abstract class CI_DB_driver { return 'UPDATE '.$table.' SET '.implode(', ', $valstr) .$this->_compile_wh('qb_where') .$this->_compile_order_by() - .($this->qb_limit ? ' LIMIT '.$this->qb_limit : ''); + .(($this->qb_limit !== FALSE) ? ' LIMIT '.$this->qb_limit : ''); } // -------------------------------------------------------------------- diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 744c4970e..77f6cfe89 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -2287,7 +2287,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { protected function _delete($table) { return 'DELETE FROM '.$table.$this->_compile_wh('qb_where') - .($this->qb_limit ? ' LIMIT '.$this->qb_limit : ''); + .(($this->qb_limit !== FALSE) ? ' LIMIT '.$this->qb_limit : ''); } // -------------------------------------------------------------------- @@ -2437,7 +2437,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { .$this->_compile_order_by(); // ORDER BY // LIMIT - if ($this->qb_limit OR $this->qb_offset) + if ($this->qb_limit !== FALSE OR $this->qb_offset) { return $this->_limit($sql."\n"); } -- cgit v1.2.3-24-g4f1b From deba4d95c0704779a2059f7f06306a4848f7a0c0 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Sat, 14 Apr 2018 15:57:59 +0900 Subject: fix: change to the old array() notation --- tests/codeigniter/database/query_builder/like_test.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/codeigniter/database/query_builder/like_test.php b/tests/codeigniter/database/query_builder/like_test.php index f8409092a..4d8673d99 100644 --- a/tests/codeigniter/database/query_builder/like_test.php +++ b/tests/codeigniter/database/query_builder/like_test.php @@ -119,11 +119,11 @@ class Like_test extends CI_TestCase { public function like_set_side_provider() { - return [ - ['Developer', 'none', 'Developer'], - ['tician', 'before', 'Politician'], - ['Accou', 'after', 'Accountant'], - ['usicia', 'both', 'Musician'], - ]; + return array( + array('Developer', 'none', 'Developer'), + array('tician', 'before', 'Politician'), + array('Accou', 'after', 'Accountant'), + array('usicia', 'both', 'Musician'), + ); } } -- cgit v1.2.3-24-g4f1b From 1716c70d5a36285e8f531feecd99ba290353658c Mon Sep 17 00:00:00 2001 From: Jehong Ahn Date: Wed, 18 Apr 2018 23:56:29 +0900 Subject: Remove the extra parentheses --- system/database/DB_driver.php | 2 +- system/database/DB_query_builder.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index c213bc280..2f6bd7484 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -1469,7 +1469,7 @@ abstract class CI_DB_driver { return 'UPDATE '.$table.' SET '.implode(', ', $valstr) .$this->_compile_wh('qb_where') .$this->_compile_order_by() - .(($this->qb_limit !== FALSE) ? ' LIMIT '.$this->qb_limit : ''); + .($this->qb_limit !== FALSE ? ' LIMIT '.$this->qb_limit : ''); } // -------------------------------------------------------------------- diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 77f6cfe89..8f52ff1d1 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -2287,7 +2287,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { protected function _delete($table) { return 'DELETE FROM '.$table.$this->_compile_wh('qb_where') - .(($this->qb_limit !== FALSE) ? ' LIMIT '.$this->qb_limit : ''); + .($this->qb_limit !== FALSE ? ' LIMIT '.$this->qb_limit : ''); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From e837b9b8705c222d49f86ab051d2df717d986c5b Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 24 Apr 2018 16:09:50 +0300 Subject: [ci skip] Close #5479 --- system/core/Output.php | 6 +++--- user_guide_src/source/installation/upgrade_320.rst | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/system/core/Output.php b/system/core/Output.php index acadc8fc8..ffb23e33c 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -563,7 +563,7 @@ class CI_Output { } $uri = $CI->config->item('base_url') - .$CI->config->item('index_page') + .$CI->config->slash_item('index_page') .$CI->uri->uri_string(); if (($cache_query_string = $CI->config->item('cache_query_string')) && ! empty($_SERVER['QUERY_STRING'])) @@ -658,7 +658,7 @@ class CI_Output { $cache_path = ($CFG->item('cache_path') === '') ? APPPATH.'cache/' : $CFG->item('cache_path'); // Build the file path. The file name is an MD5 hash of the full URI - $uri = $CFG->item('base_url').$CFG->item('index_page').$URI->uri_string; + $uri = $CFG->item('base_url').$CFG->slash_item('index_page').$URI->uri_string; if (($cache_query_string = $CFG->item('cache_query_string')) && ! empty($_SERVER['QUERY_STRING'])) { @@ -761,7 +761,7 @@ class CI_Output { } } - $cache_path .= md5($CI->config->item('base_url').$CI->config->item('index_page').ltrim($uri, '/')); + $cache_path .= md5($CI->config->item('base_url').$CI->config->slash_item('index_page').ltrim($uri, '/')); if ( ! @unlink($cache_path)) { diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index de279fdc7..a225f06d8 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -248,3 +248,12 @@ on global filters is a bad practice, giving you a false sense of security. This functionality is now removed, and so if you've relied on it for whatever reasons, you should double-check that you are properly validating all user inputs in your application (as you always should do). + +Step 12: Clear your output cache (optional) +=========================================== + +Internal changes to the :doc:`Output Class <../libraries/output>` make it +so that if you're using the :doc:`Web Page Caching <../general/caching>` +feature, you'll be left with some old, garbage cache files. + +That shouldn't be a problem, but you may want to clear them. -- cgit v1.2.3-24-g4f1b From 652a81943d902add380dc3bd7ff891831ec62496 Mon Sep 17 00:00:00 2001 From: Master Yoda Date: Wed, 2 May 2018 08:29:40 -0700 Subject: Fix sphinx warning message --- user_guide_src/source/installation/upgrade_320.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index a225f06d8..3eadd8caf 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -194,7 +194,7 @@ You should change it to:: form_upload('name', $extra); Step 10: Remove usage of previously deprecated functionalities -============================================================= +============================================================== The following is a list of functionalities deprecated in previous CodeIgniter versions that have been removed in 3.2.0: -- cgit v1.2.3-24-g4f1b From 52a87e506d4fc70bd5922b07a532852d28f28ab6 Mon Sep 17 00:00:00 2001 From: Mehdi Bounya Date: Thu, 17 May 2018 23:41:30 +0000 Subject: http:// to https:// --- application/config/config.php | 4 +-- application/config/constants.php | 4 +-- composer.json | 2 +- contributing.md | 4 +-- index.php | 4 +-- readme.rst | 2 +- system/core/Benchmark.php | 4 +-- system/core/CodeIgniter.php | 4 +-- system/core/Common.php | 6 ++-- system/core/Config.php | 4 +-- system/core/Controller.php | 4 +-- system/core/Exceptions.php | 4 +-- system/core/Hooks.php | 4 +-- system/core/Input.php | 4 +-- system/core/Lang.php | 4 +-- system/core/Loader.php | 4 +-- system/core/Log.php | 4 +-- system/core/Model.php | 4 +-- system/core/Output.php | 4 +-- system/core/Router.php | 4 +-- system/core/Security.php | 6 ++-- system/core/URI.php | 4 +-- system/core/Utf8.php | 4 +-- system/core/compat/hash.php | 10 +++--- system/core/compat/mbstring.php | 12 +++---- system/core/compat/password.php | 14 ++++---- system/core/compat/standard.php | 6 ++-- system/database/DB.php | 4 +-- system/database/DB_cache.php | 4 +-- system/database/DB_driver.php | 4 +-- system/database/DB_forge.php | 4 +-- system/database/DB_query_builder.php | 4 +-- system/database/DB_result.php | 4 +-- system/database/DB_utility.php | 4 +-- system/database/drivers/cubrid/cubrid_driver.php | 4 +-- system/database/drivers/cubrid/cubrid_forge.php | 4 +-- system/database/drivers/cubrid/cubrid_result.php | 4 +-- system/database/drivers/cubrid/cubrid_utility.php | 4 +-- system/database/drivers/ibase/ibase_driver.php | 4 +-- system/database/drivers/ibase/ibase_forge.php | 4 +-- system/database/drivers/ibase/ibase_result.php | 4 +-- system/database/drivers/ibase/ibase_utility.php | 4 +-- system/database/drivers/mssql/mssql_driver.php | 4 +-- system/database/drivers/mssql/mssql_forge.php | 4 +-- system/database/drivers/mssql/mssql_result.php | 4 +-- system/database/drivers/mssql/mssql_utility.php | 4 +-- system/database/drivers/mysql/mysql_driver.php | 4 +-- system/database/drivers/mysql/mysql_forge.php | 4 +-- system/database/drivers/mysql/mysql_result.php | 4 +-- system/database/drivers/mysql/mysql_utility.php | 4 +-- system/database/drivers/mysqli/mysqli_driver.php | 4 +-- system/database/drivers/mysqli/mysqli_forge.php | 4 +-- system/database/drivers/mysqli/mysqli_result.php | 4 +-- system/database/drivers/mysqli/mysqli_utility.php | 4 +-- system/database/drivers/oci8/oci8_driver.php | 4 +-- system/database/drivers/oci8/oci8_forge.php | 4 +-- system/database/drivers/oci8/oci8_result.php | 4 +-- system/database/drivers/oci8/oci8_utility.php | 4 +-- system/database/drivers/odbc/odbc_driver.php | 4 +-- system/database/drivers/odbc/odbc_forge.php | 4 +-- system/database/drivers/odbc/odbc_result.php | 4 +-- system/database/drivers/odbc/odbc_utility.php | 4 +-- system/database/drivers/pdo/pdo_driver.php | 4 +-- system/database/drivers/pdo/pdo_forge.php | 4 +-- system/database/drivers/pdo/pdo_result.php | 4 +-- system/database/drivers/pdo/pdo_utility.php | 4 +-- .../drivers/pdo/subdrivers/pdo_4d_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_4d_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_cubrid_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_cubrid_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_dblib_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_dblib_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_firebird_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_firebird_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_ibm_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_ibm_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_informix_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_informix_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_mysql_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_mysql_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_oci_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_oci_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_odbc_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_odbc_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_pgsql_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_pgsql_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_sqlite_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_sqlite_forge.php | 4 +-- .../drivers/pdo/subdrivers/pdo_sqlsrv_driver.php | 4 +-- .../drivers/pdo/subdrivers/pdo_sqlsrv_forge.php | 4 +-- system/database/drivers/postgre/postgre_driver.php | 4 +-- system/database/drivers/postgre/postgre_forge.php | 4 +-- system/database/drivers/postgre/postgre_result.php | 4 +-- .../database/drivers/postgre/postgre_utility.php | 4 +-- system/database/drivers/sqlite3/sqlite3_driver.php | 4 +-- system/database/drivers/sqlite3/sqlite3_forge.php | 4 +-- system/database/drivers/sqlite3/sqlite3_result.php | 4 +-- .../database/drivers/sqlite3/sqlite3_utility.php | 4 +-- system/database/drivers/sqlsrv/sqlsrv_driver.php | 4 +-- system/database/drivers/sqlsrv/sqlsrv_forge.php | 4 +-- system/database/drivers/sqlsrv/sqlsrv_result.php | 4 +-- system/database/drivers/sqlsrv/sqlsrv_utility.php | 4 +-- system/helpers/array_helper.php | 4 +-- system/helpers/captcha_helper.php | 4 +-- system/helpers/cookie_helper.php | 4 +-- system/helpers/date_helper.php | 4 +-- system/helpers/directory_helper.php | 4 +-- system/helpers/download_helper.php | 4 +-- system/helpers/file_helper.php | 4 +-- system/helpers/form_helper.php | 4 +-- system/helpers/html_helper.php | 4 +-- system/helpers/inflector_helper.php | 4 +-- system/helpers/language_helper.php | 4 +-- system/helpers/number_helper.php | 4 +-- system/helpers/path_helper.php | 4 +-- system/helpers/security_helper.php | 4 +-- system/helpers/string_helper.php | 4 +-- system/helpers/text_helper.php | 4 +-- system/helpers/typography_helper.php | 4 +-- system/helpers/url_helper.php | 8 ++--- system/helpers/xml_helper.php | 4 +-- system/language/english/calendar_lang.php | 4 +-- system/language/english/date_lang.php | 4 +-- system/language/english/db_lang.php | 4 +-- system/language/english/email_lang.php | 4 +-- system/language/english/form_validation_lang.php | 4 +-- system/language/english/ftp_lang.php | 4 +-- system/language/english/imglib_lang.php | 4 +-- system/language/english/migration_lang.php | 4 +-- system/language/english/number_lang.php | 4 +-- system/language/english/pagination_lang.php | 4 +-- system/language/english/profiler_lang.php | 4 +-- system/language/english/unit_test_lang.php | 4 +-- system/language/english/upload_lang.php | 4 +-- system/libraries/Cache/Cache.php | 4 +-- system/libraries/Cache/drivers/Cache_apc.php | 4 +-- system/libraries/Cache/drivers/Cache_apcu.php | 4 +-- system/libraries/Cache/drivers/Cache_dummy.php | 4 +-- system/libraries/Cache/drivers/Cache_file.php | 4 +-- system/libraries/Cache/drivers/Cache_memcached.php | 4 +-- system/libraries/Cache/drivers/Cache_redis.php | 4 +-- system/libraries/Cache/drivers/Cache_wincache.php | 6 ++-- system/libraries/Calendar.php | 4 +-- system/libraries/Driver.php | 4 +-- system/libraries/Email.php | 16 ++++----- system/libraries/Encrypt.php | 4 +-- system/libraries/Encryption.php | 4 +-- system/libraries/Form_validation.php | 4 +-- system/libraries/Ftp.php | 4 +-- system/libraries/Image_lib.php | 4 +-- system/libraries/Migration.php | 4 +-- system/libraries/Pagination.php | 6 ++-- system/libraries/Parser.php | 4 +-- system/libraries/Profiler.php | 4 +-- system/libraries/Session/Session.php | 4 +-- system/libraries/Session/Session_driver.php | 4 +-- .../Session/drivers/Session_database_driver.php | 4 +-- .../Session/drivers/Session_files_driver.php | 4 +-- .../Session/drivers/Session_memcached_driver.php | 4 +-- .../Session/drivers/Session_redis_driver.php | 4 +-- system/libraries/Table.php | 4 +-- system/libraries/Trackback.php | 4 +-- system/libraries/Typography.php | 4 +-- system/libraries/Unit_test.php | 4 +-- system/libraries/Upload.php | 6 ++-- system/libraries/User_agent.php | 4 +-- system/libraries/Xmlrpc.php | 6 ++-- system/libraries/Xmlrpcs.php | 4 +-- system/libraries/Zip.php | 6 ++-- tests/README.md | 4 +-- tests/codeigniter/core/Security_test.php | 4 +-- .../codeigniter/helpers/inflector_helper_test.php | 2 +- user_guide_src/README.rst | 2 +- user_guide_src/cilexer/cilexer/cilexer.py | 4 +-- .../source/_themes/sphinx_rtd_theme/layout.html | 2 +- .../source/_themes/sphinx_rtd_theme/versions.html | 2 +- user_guide_src/source/changelog.rst | 20 ++++++------ user_guide_src/source/contributing/index.rst | 4 +-- user_guide_src/source/general/cli.rst | 2 +- user_guide_src/source/general/common_functions.rst | 2 +- .../source/general/compatibility_functions.rst | 26 +++++++-------- user_guide_src/source/general/controllers.rst | 2 +- user_guide_src/source/general/credits.rst | 2 +- user_guide_src/source/general/requirements.rst | 2 +- user_guide_src/source/general/routing.rst | 2 +- user_guide_src/source/general/security.rst | 2 +- user_guide_src/source/general/styleguide.rst | 6 ++-- user_guide_src/source/helpers/date_helper.rst | 2 +- user_guide_src/source/helpers/file_helper.rst | 2 +- user_guide_src/source/helpers/html_helper.rst | 38 +++++++++++----------- user_guide_src/source/helpers/url_helper.rst | 2 +- user_guide_src/source/installation/downloads.rst | 2 +- user_guide_src/source/installation/upgrade_220.rst | 2 +- user_guide_src/source/installation/upgrade_300.rst | 6 ++-- user_guide_src/source/libraries/encrypt.rst | 4 +-- user_guide_src/source/libraries/encryption.rst | 12 +++---- user_guide_src/source/libraries/file_uploading.rst | 2 +- user_guide_src/source/libraries/input.rst | 2 +- user_guide_src/source/libraries/language.rst | 2 +- user_guide_src/source/libraries/loader.rst | 4 +-- user_guide_src/source/libraries/output.rst | 2 +- user_guide_src/source/libraries/sessions.rst | 16 ++++----- user_guide_src/source/libraries/trackback.rst | 2 +- user_guide_src/source/libraries/xmlrpc.rst | 2 +- user_guide_src/source/overview/at_a_glance.rst | 2 +- user_guide_src/source/overview/getting_started.rst | 2 +- user_guide_src/source/tutorial/conclusion.rst | 2 +- 207 files changed, 463 insertions(+), 463 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index 72e79bee9..782b19c74 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -88,7 +88,7 @@ $config['language'] = 'english'; | This determines which character set is used by default in various methods | that require a character set to be provided. | -| See http://php.net/htmlspecialchars for a list of supported charsets. +| See https://secure.php.net/htmlspecialchars for a list of supported charsets. | */ $config['charset'] = 'UTF-8'; @@ -133,7 +133,7 @@ $config['subclass_prefix'] = 'MY_'; | | $config['composer_autoload'] = '/path/to/vendor/autoload.php'; | -| For more information about Composer, please visit http://getcomposer.org/ +| For more information about Composer, please visit https://getcomposer.org/ | | Note: This will NOT disable or override the CodeIgniter-specific | autoloading (application/config/autoload.php) diff --git a/application/config/constants.php b/application/config/constants.php index 18d3b4b76..fb5878447 100644 --- a/application/config/constants.php +++ b/application/config/constants.php @@ -65,10 +65,10 @@ defined('FOPEN_READ_WRITE_CREATE_STRICT') OR define('FOPEN_READ_WRITE_CREA | are as follows: | | Standard C/C++ Library (stdlibc): -| http://www.gnu.org/software/libc/manual/html_node/Exit-Status.html +| https://www.gnu.org/software/libc/manual/html_node/Exit-Status.html | (This link also contains other GNU-specific conventions) | BSD sysexits.h: -| http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits +| https://www.gsp.com/cgi-bin/man.cgi?section=3&topic=sysexits | Bash scripting: | http://tldp.org/LDP/abs/html/exitcodes.html | diff --git a/composer.json b/composer.json index f9359a93d..6769e9545 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,7 @@ "homepage": "https://codeigniter.com", "license": "MIT", "support": { - "forum": "http://forum.codeigniter.com/", + "forum": "https://forum.codeigniter.com/", "wiki": "https://github.com/bcit-ci/CodeIgniter/wiki", "slack": "https://codeigniterchat.slack.com", "source": "https://github.com/bcit-ci/CodeIgniter" diff --git a/contributing.md b/contributing.md index d0df9b966..65ff9501a 100644 --- a/contributing.md +++ b/contributing.md @@ -36,7 +36,7 @@ there must be a fallback for PHP 5.2.4. ### Branching -CodeIgniter uses the [Git-Flow](http://nvie.com/posts/a-successful-git-branching-model/) branching model which requires all pull requests to be sent to the "develop" branch. This is +CodeIgniter uses the [Git-Flow](https://nvie.com/posts/a-successful-git-branching-model/) branching model which requires all pull requests to be sent to the "develop" branch. This is where the next planned version will be developed. The "master" branch will always contain the latest stable version and is kept clean so a "hotfix" (e.g: an emergency security patch) can be applied to master to create a new version, without worrying about other features holding it up. For this reason all commits need to be made to "develop" and any sent to "master" will be closed automatically. If you have multiple changes to submit, please place all changes into their own branch on your fork. One thing at a time: A pull request should only contain one change. That does not mean only one commit, but one change - however many commits it took. The reason for this is that if you change X and Y but send a pull request for both at the same time, we might really want X but disagree with Y, meaning we cannot merge the request. Using the Git-Flow branching model you can create new branches for both of these features and send two requests. @@ -55,7 +55,7 @@ This will sign your commits with the information setup in your git config, e.g. `Signed-off-by: John Q Public ` -If you are using [Tower](http://www.git-tower.com/) there is a "Sign-Off" checkbox in the commit window. You could even alias git commit to use the `-s` flag so you don’t have to think about it. +If you are using [Tower](https://www.git-tower.com/) there is a "Sign-Off" checkbox in the commit window. You could even alias git commit to use the `-s` flag so you don’t have to think about it. By signing your work in this manner, you certify to a "Developer's Certificate of Origin". The current version of this certificate is in the `DCO.txt` file in the root of this repository. diff --git a/index.php b/index.php index 536aef878..b093c2774 100755 --- a/index.php +++ b/index.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/readme.rst b/readme.rst index f2b1033a6..3e1382fbd 100644 --- a/readme.rst +++ b/readme.rst @@ -55,7 +55,7 @@ Resources - `User Guide `_ - `Language File Translations `_ -- `Community Forums `_ +- `Community Forums `_ - `Community Wiki `_ - `Community Slack Channel `_ diff --git a/system/core/Benchmark.php b/system/core/Benchmark.php index d6e133648..60ac75217 100644 --- a/system/core/Benchmark.php +++ b/system/core/Benchmark.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index bce6a014a..3b597f3b9 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Common.php b/system/core/Common.php index 3a4ef425a..3063c123b 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -629,7 +629,7 @@ if ( ! function_exists('_error_handler')) // If the error is fatal, the execution of the script should be stopped because // errors can't be recovered from. Halting the script conforms with PHP's - // default error handling. See http://www.php.net/manual/en/errorfunc.constants.php + // default error handling. See https://secure.php.net/manual/en/errorfunc.constants.php if ($is_error) { exit(1); // EXIT_ERROR diff --git a/system/core/Config.php b/system/core/Config.php index ca453668e..631de749f 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Controller.php b/system/core/Controller.php index ec9aa2ad0..24a62c860 100644 --- a/system/core/Controller.php +++ b/system/core/Controller.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php index 918de37cd..8dc6a8270 100644 --- a/system/core/Exceptions.php +++ b/system/core/Exceptions.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Hooks.php b/system/core/Hooks.php index 2f7bdafea..8ed351c1a 100644 --- a/system/core/Hooks.php +++ b/system/core/Hooks.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Input.php b/system/core/Input.php index 97a6be78f..34f080899 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Lang.php b/system/core/Lang.php index 39fdd0668..d8226d36c 100644 --- a/system/core/Lang.php +++ b/system/core/Lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Loader.php b/system/core/Loader.php index b9a39d756..f1e4bcdaf 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Log.php b/system/core/Log.php index 1f4476efe..da78e7ec0 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Model.php b/system/core/Model.php index 69d934366..328f4af3f 100644 --- a/system/core/Model.php +++ b/system/core/Model.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Output.php b/system/core/Output.php index ffb23e33c..ba6b1a3a0 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Router.php b/system/core/Router.php index 838413766..3f7090104 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Security.php b/system/core/Security.php index b19a6fb02..e35170b17 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -669,7 +669,7 @@ class CI_Security { * correctly. html_entity_decode() does not convert entities without * semicolons, so we are left with our own little solution here. Bummer. * - * @link http://php.net/html-entity-decode + * @link https://secure.php.net/html-entity-decode * * @param string $str Input * @param string $charset Character set diff --git a/system/core/URI.php b/system/core/URI.php index 899e49bd9..26b2cc844 100644 --- a/system/core/URI.php +++ b/system/core/URI.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/core/Utf8.php b/system/core/Utf8.php index 6ecd9f8f4..37ca26353 100644 --- a/system/core/Utf8.php +++ b/system/core/Utf8.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 * @filesource diff --git a/system/core/compat/hash.php b/system/core/compat/hash.php index 226ea5b3c..532c58494 100644 --- a/system/core/compat/hash.php +++ b/system/core/compat/hash.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource @@ -45,7 +45,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @category Compatibility * @author Andrey Andreev * @link https://codeigniter.com/user_guide/ - * @link http://php.net/hash + * @link https://secure.php.net/hash */ // ------------------------------------------------------------------------ @@ -62,7 +62,7 @@ if ( ! function_exists('hash_equals')) /** * hash_equals() * - * @link http://php.net/hash_equals + * @link https://secure.php.net/hash_equals * @param string $known_string * @param string $user_string * @return bool @@ -108,7 +108,7 @@ if ( ! function_exists('hash_pbkdf2')) /** * hash_pbkdf2() * - * @link http://php.net/hash_pbkdf2 + * @link https://secure.php.net/hash_pbkdf2 * @param string $algo * @param string $password * @param string $salt diff --git a/system/core/compat/mbstring.php b/system/core/compat/mbstring.php index 9f6c24e2e..63a24da08 100644 --- a/system/core/compat/mbstring.php +++ b/system/core/compat/mbstring.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource @@ -45,7 +45,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @category Compatibility * @author Andrey Andreev * @link https://codeigniter.com/user_guide/ - * @link http://php.net/mbstring + * @link https://secure.php.net/mbstring */ // ------------------------------------------------------------------------ @@ -65,7 +65,7 @@ if ( ! function_exists('mb_strlen')) * WARNING: This function WILL fall-back to strlen() * if iconv is not available! * - * @link http://php.net/mb_strlen + * @link https://secure.php.net/mb_strlen * @param string $str * @param string $encoding * @return int @@ -92,7 +92,7 @@ if ( ! function_exists('mb_strpos')) * WARNING: This function WILL fall-back to strpos() * if iconv is not available! * - * @link http://php.net/mb_strpos + * @link https://secure.php.net/mb_strpos * @param string $haystack * @param string $needle * @param int $offset @@ -121,7 +121,7 @@ if ( ! function_exists('mb_substr')) * WARNING: This function WILL fall-back to substr() * if iconv is not available. * - * @link http://php.net/mb_substr + * @link https://secure.php.net/mb_substr * @param string $str * @param int $start * @param int $length diff --git a/system/core/compat/password.php b/system/core/compat/password.php index fab543e8f..c12bc5c87 100644 --- a/system/core/compat/password.php +++ b/system/core/compat/password.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource @@ -45,7 +45,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @category Compatibility * @author Andrey Andreev * @link https://codeigniter.com/user_guide/ - * @link http://php.net/password + * @link https://secure.php.net/password */ // ------------------------------------------------------------------------ @@ -67,7 +67,7 @@ if ( ! function_exists('password_get_info')) /** * password_get_info() * - * @link http://php.net/password_get_info + * @link https://secure.php.net/password_get_info * @param string $hash * @return array */ @@ -86,7 +86,7 @@ if ( ! function_exists('password_hash')) /** * password_hash() * - * @link http://php.net/password_hash + * @link https://secure.php.net/password_hash * @param string $password * @param int $algo * @param array $options @@ -194,7 +194,7 @@ if ( ! function_exists('password_needs_rehash')) /** * password_needs_rehash() * - * @link http://php.net/password_needs_rehash + * @link https://secure.php.net/password_needs_rehash * @param string $hash * @param int $algo * @param array $options @@ -228,7 +228,7 @@ if ( ! function_exists('password_verify')) /** * password_verify() * - * @link http://php.net/password_verify + * @link https://secure.php.net/password_verify * @param string $password * @param string $hash * @return bool diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php index fb90e5d4f..e448b24dc 100644 --- a/system/core/compat/standard.php +++ b/system/core/compat/standard.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource @@ -61,7 +61,7 @@ if ( ! function_exists('array_column')) /** * array_column() * - * @link http://php.net/array_column + * @link https://secure.php.net/array_column * @param array $array * @param mixed $column_key * @param mixed $index_key diff --git a/system/database/DB.php b/system/database/DB.php index 9596ed5ce..7248039b4 100644 --- a/system/database/DB.php +++ b/system/database/DB.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php index 56b735648..2225dbf30 100644 --- a/system/database/DB_cache.php +++ b/system/database/DB_cache.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 2f6bd7484..a7ae9420e 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index 40dfcd9b9..58ec991f3 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 3b1df5475..6848afc01 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/DB_result.php b/system/database/DB_result.php index a5a4ca27d..6f48ef3ff 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php index 80baa4d27..6b8c95e98 100644 --- a/system/database/DB_utility.php +++ b/system/database/DB_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php index 9d6afea6d..65e0bee14 100644 --- a/system/database/drivers/cubrid/cubrid_driver.php +++ b/system/database/drivers/cubrid/cubrid_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 * @filesource diff --git a/system/database/drivers/cubrid/cubrid_forge.php b/system/database/drivers/cubrid/cubrid_forge.php index 95e7ca1d0..afa6c3f93 100644 --- a/system/database/drivers/cubrid/cubrid_forge.php +++ b/system/database/drivers/cubrid/cubrid_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 * @filesource diff --git a/system/database/drivers/cubrid/cubrid_result.php b/system/database/drivers/cubrid/cubrid_result.php index a71b1a20f..e3d82f0f2 100644 --- a/system/database/drivers/cubrid/cubrid_result.php +++ b/system/database/drivers/cubrid/cubrid_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 * @filesource diff --git a/system/database/drivers/cubrid/cubrid_utility.php b/system/database/drivers/cubrid/cubrid_utility.php index eb906ae21..eef708533 100644 --- a/system/database/drivers/cubrid/cubrid_utility.php +++ b/system/database/drivers/cubrid/cubrid_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 * @filesource diff --git a/system/database/drivers/ibase/ibase_driver.php b/system/database/drivers/ibase/ibase_driver.php index fd866ffd1..dace7cf8d 100644 --- a/system/database/drivers/ibase/ibase_driver.php +++ b/system/database/drivers/ibase/ibase_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/ibase/ibase_forge.php b/system/database/drivers/ibase/ibase_forge.php index 77aa4ae01..933479c20 100644 --- a/system/database/drivers/ibase/ibase_forge.php +++ b/system/database/drivers/ibase/ibase_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/ibase/ibase_result.php b/system/database/drivers/ibase/ibase_result.php index b548f32ff..10555ebc0 100644 --- a/system/database/drivers/ibase/ibase_result.php +++ b/system/database/drivers/ibase/ibase_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/ibase/ibase_utility.php b/system/database/drivers/ibase/ibase_utility.php index a1e5d69ef..4daec93d6 100644 --- a/system/database/drivers/ibase/ibase_utility.php +++ b/system/database/drivers/ibase/ibase_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php index 3988d8bd7..0f5b893df 100644 --- a/system/database/drivers/mssql/mssql_driver.php +++ b/system/database/drivers/mssql/mssql_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/mssql/mssql_forge.php b/system/database/drivers/mssql/mssql_forge.php index 9a3e3ebcb..c462625fd 100644 --- a/system/database/drivers/mssql/mssql_forge.php +++ b/system/database/drivers/mssql/mssql_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php index 8e1f4164c..929dcd664 100644 --- a/system/database/drivers/mssql/mssql_result.php +++ b/system/database/drivers/mssql/mssql_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php index 90b7107fa..7957462cf 100644 --- a/system/database/drivers/mssql/mssql_utility.php +++ b/system/database/drivers/mssql/mssql_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php index a23835b90..e427d235f 100644 --- a/system/database/drivers/mysql/mysql_driver.php +++ b/system/database/drivers/mysql/mysql_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/drivers/mysql/mysql_forge.php b/system/database/drivers/mysql/mysql_forge.php index f8a998b56..87881d143 100644 --- a/system/database/drivers/mysql/mysql_forge.php +++ b/system/database/drivers/mysql/mysql_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php index 07d518782..e8ff10137 100644 --- a/system/database/drivers/mysql/mysql_result.php +++ b/system/database/drivers/mysql/mysql_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php index ae3c26cba..8460a0891 100644 --- a/system/database/drivers/mysql/mysql_utility.php +++ b/system/database/drivers/mysql/mysql_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index 58f12b199..db455050f 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/mysqli/mysqli_forge.php b/system/database/drivers/mysqli/mysqli_forge.php index dd77edca8..2d8bc704b 100644 --- a/system/database/drivers/mysqli/mysqli_forge.php +++ b/system/database/drivers/mysqli/mysqli_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php index bac073781..5b65a3163 100644 --- a/system/database/drivers/mysqli/mysqli_result.php +++ b/system/database/drivers/mysqli/mysqli_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php index 332da604c..9b7d3b8ca 100644 --- a/system/database/drivers/mysqli/mysqli_utility.php +++ b/system/database/drivers/mysqli/mysqli_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index b90db4bd2..d5ea14f12 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 * @filesource diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 0011bb022..5de0ea321 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 * @filesource diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php index 1c4196f27..261a460f8 100644 --- a/system/database/drivers/oci8/oci8_result.php +++ b/system/database/drivers/oci8/oci8_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 * @filesource diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php index 574ff6852..6d8122907 100644 --- a/system/database/drivers/oci8/oci8_utility.php +++ b/system/database/drivers/oci8/oci8_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 * @filesource diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php index c85390352..cb34ce2da 100644 --- a/system/database/drivers/odbc/odbc_driver.php +++ b/system/database/drivers/odbc/odbc_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/odbc/odbc_forge.php b/system/database/drivers/odbc/odbc_forge.php index 761e81fcd..7e6b183b7 100644 --- a/system/database/drivers/odbc/odbc_forge.php +++ b/system/database/drivers/odbc/odbc_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/odbc/odbc_result.php b/system/database/drivers/odbc/odbc_result.php index f7c3aecbb..66681f5fa 100644 --- a/system/database/drivers/odbc/odbc_result.php +++ b/system/database/drivers/odbc/odbc_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php index 2a3342801..3fb7ec926 100644 --- a/system/database/drivers/odbc/odbc_utility.php +++ b/system/database/drivers/odbc/odbc_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index c99bb0603..4087ec4ff 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 * @filesource diff --git a/system/database/drivers/pdo/pdo_forge.php b/system/database/drivers/pdo/pdo_forge.php index c77a84982..cf4584a56 100644 --- a/system/database/drivers/pdo/pdo_forge.php +++ b/system/database/drivers/pdo/pdo_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 * @filesource diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php index 3a821fbdc..c6216e8c7 100644 --- a/system/database/drivers/pdo/pdo_result.php +++ b/system/database/drivers/pdo/pdo_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 * @filesource diff --git a/system/database/drivers/pdo/pdo_utility.php b/system/database/drivers/pdo/pdo_utility.php index 9091ea519..8c2906547 100644 --- a/system/database/drivers/pdo/pdo_utility.php +++ b/system/database/drivers/pdo/pdo_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php index bbb675d3b..c5ab206df 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php index 7135aa169..938163f73 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php index 3189aab23..88da3c77f 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php index 624ce51ac..cd83277b0 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php index d04f8b35b..d27def7ba 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php index 0216b59c5..bd8eca2a5 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php index eec5bf2ee..dde3ef36f 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php index 2a5fa6470..50d9d3b77 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php index 43400a441..1bb67766a 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php index f1bd2c3a7..3379ea25c 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php index e44dcb805..237e36537 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php index e4202c2bc..c1602acd1 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php index e172145e9..afc27126d 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php index 629e0a9df..a4f6cac56 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php index fef7a9a06..b30fa3d64 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index ad2656106..32a82edde 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php index 48909885c..0922b01d7 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php index 02b6a2ac2..24b469daf 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php index 33c8f1eee..01b795d56 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php index e5bfee6ad..f8e6ba9c4 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php index 93871a99b..36bb46b9a 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php index 67fe6ee7e..cc7361c3f 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php index db1002915..e98fb62bf 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php index 4c9dbe6f9..733837d22 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php index e9b1e991c..af3006daa 100644 --- a/system/database/drivers/postgre/postgre_driver.php +++ b/system/database/drivers/postgre/postgre_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php index cf90325e1..751a05138 100644 --- a/system/database/drivers/postgre/postgre_forge.php +++ b/system/database/drivers/postgre/postgre_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php index daf3306f3..5fbd146ee 100644 --- a/system/database/drivers/postgre/postgre_result.php +++ b/system/database/drivers/postgre/postgre_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php index 3af225ff4..0836f26e1 100644 --- a/system/database/drivers/postgre/postgre_utility.php +++ b/system/database/drivers/postgre/postgre_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 * @filesource diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php index 41d9d484f..fbdcd7987 100644 --- a/system/database/drivers/sqlite3/sqlite3_driver.php +++ b/system/database/drivers/sqlite3/sqlite3_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/sqlite3/sqlite3_forge.php b/system/database/drivers/sqlite3/sqlite3_forge.php index 48c5efc97..06eddfe12 100644 --- a/system/database/drivers/sqlite3/sqlite3_forge.php +++ b/system/database/drivers/sqlite3/sqlite3_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/sqlite3/sqlite3_result.php b/system/database/drivers/sqlite3/sqlite3_result.php index a143fd7cb..0bad4194e 100644 --- a/system/database/drivers/sqlite3/sqlite3_result.php +++ b/system/database/drivers/sqlite3/sqlite3_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/sqlite3/sqlite3_utility.php b/system/database/drivers/sqlite3/sqlite3_utility.php index c829c1fc0..62f2f0e30 100644 --- a/system/database/drivers/sqlite3/sqlite3_utility.php +++ b/system/database/drivers/sqlite3/sqlite3_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php index 05d35a42f..3caf5a8d5 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_driver.php +++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 * @filesource diff --git a/system/database/drivers/sqlsrv/sqlsrv_forge.php b/system/database/drivers/sqlsrv/sqlsrv_forge.php index 01547e802..778685259 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_forge.php +++ b/system/database/drivers/sqlsrv/sqlsrv_forge.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 * @filesource diff --git a/system/database/drivers/sqlsrv/sqlsrv_result.php b/system/database/drivers/sqlsrv/sqlsrv_result.php index 1d0272f9d..864fba144 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_result.php +++ b/system/database/drivers/sqlsrv/sqlsrv_result.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 * @filesource diff --git a/system/database/drivers/sqlsrv/sqlsrv_utility.php b/system/database/drivers/sqlsrv/sqlsrv_utility.php index 001107db9..b5d2d1783 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_utility.php +++ b/system/database/drivers/sqlsrv/sqlsrv_utility.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 * @filesource diff --git a/system/helpers/array_helper.php b/system/helpers/array_helper.php index 3d4a496be..0c2c1e66a 100644 --- a/system/helpers/array_helper.php +++ b/system/helpers/array_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 875ff23b4..b58a19091 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php index 4c7b826ab..d19dcfc06 100644 --- a/system/helpers/cookie_helper.php +++ b/system/helpers/cookie_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/date_helper.php b/system/helpers/date_helper.php index b62803785..995cf5ea1 100644 --- a/system/helpers/date_helper.php +++ b/system/helpers/date_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php index 0d3f20572..0a668adfc 100644 --- a/system/helpers/directory_helper.php +++ b/system/helpers/directory_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 901e3277c..b1a1b0232 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php index 9ce43f3ef..6d6f7fc51 100644 --- a/system/helpers/file_helper.php +++ b/system/helpers/file_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index 1e516ebce..7383e4cb8 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index c935f2619..0e1e6042c 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index 547e4602e..376cac783 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/language_helper.php b/system/helpers/language_helper.php index f1dc8151d..c6862e812 100644 --- a/system/helpers/language_helper.php +++ b/system/helpers/language_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index 00e645136..68c77b496 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/path_helper.php b/system/helpers/path_helper.php index 697f6bd19..44f750fbf 100644 --- a/system/helpers/path_helper.php +++ b/system/helpers/path_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/security_helper.php b/system/helpers/security_helper.php index f79f317bd..fb7be1ce8 100644 --- a/system/helpers/security_helper.php +++ b/system/helpers/security_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/string_helper.php b/system/helpers/string_helper.php index b51ab48f4..5bf387a60 100644 --- a/system/helpers/string_helper.php +++ b/system/helpers/string_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/text_helper.php b/system/helpers/text_helper.php index 3e2dca8a2..46b0faba5 100644 --- a/system/helpers/text_helper.php +++ b/system/helpers/text_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/typography_helper.php b/system/helpers/typography_helper.php index e97c83ba6..867e4fae8 100644 --- a/system/helpers/typography_helper.php +++ b/system/helpers/typography_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index 3eb2cb0b0..f99343ff1 100644 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -211,7 +211,7 @@ if ( ! function_exists('anchor_popup')) { $attributes = array($attributes); - // Ref: http://www.w3schools.com/jsref/met_win_open.asp + // Ref: https://www.w3schools.com/jsref/met_win_open.asp $window_name = '_blank'; } elseif ( ! empty($attributes['window_name'])) @@ -546,7 +546,7 @@ if ( ! function_exists('redirect')) if (isset($_SERVER['SERVER_PROTOCOL'], $_SERVER['REQUEST_METHOD']) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1') { $code = ($_SERVER['REQUEST_METHOD'] !== 'GET') - ? 303 // reference: http://en.wikipedia.org/wiki/Post/Redirect/Get + ? 303 // reference: https://en.wikipedia.org/wiki/Post/Redirect/Get : 307; } else diff --git a/system/helpers/xml_helper.php b/system/helpers/xml_helper.php index 68fb9d762..3ded1a187 100644 --- a/system/helpers/xml_helper.php +++ b/system/helpers/xml_helper.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/calendar_lang.php b/system/language/english/calendar_lang.php index e8d673d10..4d820aff3 100644 --- a/system/language/english/calendar_lang.php +++ b/system/language/english/calendar_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/date_lang.php b/system/language/english/date_lang.php index 52bedb587..2735a765d 100644 --- a/system/language/english/date_lang.php +++ b/system/language/english/date_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/db_lang.php b/system/language/english/db_lang.php index d04c4929a..bda8dd060 100644 --- a/system/language/english/db_lang.php +++ b/system/language/english/db_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/email_lang.php b/system/language/english/email_lang.php index 56589e087..ea3f98cf8 100644 --- a/system/language/english/email_lang.php +++ b/system/language/english/email_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index d448466b8..7c7360a36 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/ftp_lang.php b/system/language/english/ftp_lang.php index 534501805..23097121c 100644 --- a/system/language/english/ftp_lang.php +++ b/system/language/english/ftp_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/imglib_lang.php b/system/language/english/imglib_lang.php index 976006e3f..55df7183c 100644 --- a/system/language/english/imglib_lang.php +++ b/system/language/english/imglib_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/migration_lang.php b/system/language/english/migration_lang.php index 68f431b0e..e2fa2bd58 100644 --- a/system/language/english/migration_lang.php +++ b/system/language/english/migration_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/language/english/number_lang.php b/system/language/english/number_lang.php index 85e58169a..2f3579bbc 100644 --- a/system/language/english/number_lang.php +++ b/system/language/english/number_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/pagination_lang.php b/system/language/english/pagination_lang.php index 7ea444930..3cc452156 100644 --- a/system/language/english/pagination_lang.php +++ b/system/language/english/pagination_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/profiler_lang.php b/system/language/english/profiler_lang.php index f0de6a735..7461cfb96 100644 --- a/system/language/english/profiler_lang.php +++ b/system/language/english/profiler_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/unit_test_lang.php b/system/language/english/unit_test_lang.php index 4fccc5f5d..eb7f4a348 100644 --- a/system/language/english/unit_test_lang.php +++ b/system/language/english/unit_test_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/language/english/upload_lang.php b/system/language/english/upload_lang.php index b301c9975..924773c27 100644 --- a/system/language/english/upload_lang.php +++ b/system/language/english/upload_lang.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php index 9d1cc5e94..5f1d86f01 100644 --- a/system/libraries/Cache/Cache.php +++ b/system/libraries/Cache/Cache.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 * @filesource diff --git a/system/libraries/Cache/drivers/Cache_apc.php b/system/libraries/Cache/drivers/Cache_apc.php index b42a832e3..598c073a5 100644 --- a/system/libraries/Cache/drivers/Cache_apc.php +++ b/system/libraries/Cache/drivers/Cache_apc.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 * @filesource diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index ec2b84da3..b9e9b6cd7 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.2.0 * @filesource diff --git a/system/libraries/Cache/drivers/Cache_dummy.php b/system/libraries/Cache/drivers/Cache_dummy.php index bbaf96fc4..d82b38009 100644 --- a/system/libraries/Cache/drivers/Cache_dummy.php +++ b/system/libraries/Cache/drivers/Cache_dummy.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 * @filesource diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index 4f383032f..56dbb9974 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 * @filesource diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 0f3a7ed9e..17d205df6 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 * @filesource diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 1629031ce..55147005d 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/libraries/Cache/drivers/Cache_wincache.php b/system/libraries/Cache/drivers/Cache_wincache.php index b4279bb9d..e22a8b2f0 100644 --- a/system/libraries/Cache/drivers/Cache_wincache.php +++ b/system/libraries/Cache/drivers/Cache_wincache.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource @@ -41,7 +41,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * CodeIgniter Wincache Caching Class * * Read more about Wincache functions here: - * http://www.php.net/manual/en/ref.wincache.php + * https://secure.php.net/manual/en/ref.wincache.php * * @package CodeIgniter * @subpackage Libraries diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php index 450350ccf..314ef66c9 100644 --- a/system/libraries/Calendar.php +++ b/system/libraries/Calendar.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Driver.php b/system/libraries/Driver.php index 7dd66ec9c..d6a30024f 100644 --- a/system/libraries/Driver.php +++ b/system/libraries/Driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Email.php b/system/libraries/Email.php index beb2ffa17..55f81f4bd 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -174,7 +174,7 @@ class CI_Email { * Newline character sequence. * Use "\r\n" to comply with RFC 822. * - * @link http://www.ietf.org/rfc/rfc822.txt + * @link https://www.ietf.org/rfc/rfc822.txt * @var string "\r\n" or "\n" */ public $newline = "\n"; // Default newline. "\r\n" or "\n" (Use "\r\n" to comply with RFC 822) @@ -188,7 +188,7 @@ class CI_Email { * switching to "\n", while improper, is the only solution * that seems to work for all environments. * - * @link http://www.ietf.org/rfc/rfc822.txt + * @link https://www.ietf.org/rfc/rfc822.txt * @var string */ public $crlf = "\n"; @@ -1463,7 +1463,7 @@ class CI_Email { * Prep Quoted Printable * * Prepares string for Quoted-Printable Content-Transfer-Encoding - * Refer to RFC 2045 http://www.ietf.org/rfc/rfc2045.txt + * Refer to RFC 2045 https://www.ietf.org/rfc/rfc2045.txt * * @param string * @return string @@ -1472,7 +1472,7 @@ class CI_Email { { // ASCII code numbers for "safe" characters that can always be // used literally, without encoding, as described in RFC 2049. - // http://www.ietf.org/rfc/rfc2049.txt + // https://www.ietf.org/rfc/rfc2049.txt static $ascii_safe_chars = array( // ' ( ) + , - . / : = ? 39, 40, 41, 43, 44, 45, 46, 47, 58, 61, 63, @@ -2210,7 +2210,7 @@ class CI_Email { { break; } - // See https://bugs.php.net/bug.php?id=39598 and http://php.net/manual/en/function.fwrite.php#96951 + // See https://bugs.php.net/bug.php?id=39598 and https://secure.php.net/manual/en/function.fwrite.php#96951 elseif ($result === 0) { if ($timestamp === 0) @@ -2273,7 +2273,7 @@ class CI_Email { * (eg: "[1.2.3.4]"). * * @link https://tools.ietf.org/html/rfc5321#section-2.3.5 - * @link http://cbl.abuseat.org/namingproblems.html + * @link https://cbl.abuseat.org/namingproblems.html * @return string */ protected function _get_hostname() diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php index 17a3fe270..17f4f6b7a 100644 --- a/system/libraries/Encrypt.php +++ b/system/libraries/Encrypt.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Encryption.php b/system/libraries/Encryption.php index 4f681034a..fd6df9a7c 100644 --- a/system/libraries/Encryption.php +++ b/system/libraries/Encryption.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 9e4c81c61..106907289 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php index 2885b550f..e6cf05baa 100644 --- a/system/libraries/Ftp.php +++ b/system/libraries/Ftp.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index a07557f61..a41cd8850 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Migration.php b/system/libraries/Migration.php index 2c4f34abc..d7550c918 100644 --- a/system/libraries/Migration.php +++ b/system/libraries/Migration.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 3fe3d3a45..0994b84ea 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -686,7 +686,7 @@ class CI_Pagination { /** * Add "rel" attribute * - * @link http://www.w3.org/TR/html5/links.html#linkTypes + * @link https://www.w3.org/TR/html5/links.html#linkTypes * @param string $type * @return string */ diff --git a/system/libraries/Parser.php b/system/libraries/Parser.php index 1534e4d9d..874a49d1e 100644 --- a/system/libraries/Parser.php +++ b/system/libraries/Parser.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index 3294cdfa2..2e0b4661c 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index 475a7961b..26bc4f486 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 * @filesource diff --git a/system/libraries/Session/Session_driver.php b/system/libraries/Session/Session_driver.php index bef5ee41f..e0030889c 100644 --- a/system/libraries/Session/Session_driver.php +++ b/system/libraries/Session/Session_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/libraries/Session/drivers/Session_database_driver.php b/system/libraries/Session/drivers/Session_database_driver.php index ae7a1b4a1..72c043c4e 100644 --- a/system/libraries/Session/drivers/Session_database_driver.php +++ b/system/libraries/Session/drivers/Session_database_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/libraries/Session/drivers/Session_files_driver.php b/system/libraries/Session/drivers/Session_files_driver.php index c6d789aae..92c5ebc03 100644 --- a/system/libraries/Session/drivers/Session_files_driver.php +++ b/system/libraries/Session/drivers/Session_files_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index b109738c2..d9506ba7e 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 3882c13a1..0fee40e3a 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 * @filesource diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 5d5b73fdc..3c8cb05c9 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 * @filesource diff --git a/system/libraries/Trackback.php b/system/libraries/Trackback.php index 228794dd7..a306c244a 100644 --- a/system/libraries/Trackback.php +++ b/system/libraries/Trackback.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php index bfc993472..e0ce4e396 100644 --- a/system/libraries/Typography.php +++ b/system/libraries/Typography.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Unit_test.php b/system/libraries/Unit_test.php index fa87e03b9..c3e4762bf 100644 --- a/system/libraries/Unit_test.php +++ b/system/libraries/Unit_test.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 * @filesource diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 21baac8b9..982959c75 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -1183,7 +1183,7 @@ class CI_Upload { * Prevents possible script execution from Apache's handling * of files' multiple extensions. * - * @link http://httpd.apache.org/docs/1.3/mod/mod_mime.html#multipleext + * @link https://httpd.apache.org/docs/1.3/mod/mod_mime.html#multipleext * * @param string $filename * @return string diff --git a/system/libraries/User_agent.php b/system/libraries/User_agent.php index b1a011f19..8255965fd 100644 --- a/system/libraries/User_agent.php +++ b/system/libraries/User_agent.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 8cc1c83f5..4500fdada 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -743,7 +743,7 @@ class XML_RPC_Client extends CI_Xmlrpc { break; } - // See https://bugs.php.net/bug.php?id=39598 and http://php.net/manual/en/function.fwrite.php#96951 + // See https://bugs.php.net/bug.php?id=39598 and https://secure.php.net/manual/en/function.fwrite.php#96951 elseif ($result === 0) { if ($timestamp === 0) diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php index 4680bbfa4..0909c2bdb 100644 --- a/system/libraries/Xmlrpcs.php +++ b/system/libraries/Xmlrpcs.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php index 6ed6d5242..cc8045692 100644 --- a/system/libraries/Zip.php +++ b/system/libraries/Zip.php @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -41,7 +41,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * Zip Compression Class * * This class is based on a library I found at Zend: - * http://www.zend.com/codex.php?id=696&single=1 + * https://www.zend.com/codex.php?id=696&single=1 * * The original library is a little rough around the edges so I * refactored it and added several additional methods -- Rick Ellis diff --git a/tests/README.md b/tests/README.md index 04dfbc3d8..365f551a1 100644 --- a/tests/README.md +++ b/tests/README.md @@ -1,6 +1,6 @@ # CodeIgniter Unit Tests # -Status : [![Build Status](https://secure.travis-ci.org/bcit-ci/CodeIgniter.png?branch=develop)](http://travis-ci.org/bcit-ci/CodeIgniter) +Status : [![Build Status](https://secure.travis-ci.org/bcit-ci/CodeIgniter.png?branch=develop)](https://travis-ci.org/bcit-ci/CodeIgniter) ### Introduction: @@ -8,7 +8,7 @@ This is the preliminary CodeIgniter testing documentation. It will cover both internal as well as external APIs and the reasoning behind their implementation, where appropriate. As with all CodeIgniter documentation, this file should maintain a mostly human readable -format to facilitate clean api design. [see http://arrenbrecht.ch/testing/] +format to facilitate clean api design. [see https://arrenbrecht.ch/testing/] *First public draft: everything is subject to change* diff --git a/tests/codeigniter/core/Security_test.php b/tests/codeigniter/core/Security_test.php index 22c97df8b..64efdf9c8 100644 --- a/tests/codeigniter/core/Security_test.php +++ b/tests/codeigniter/core/Security_test.php @@ -306,7 +306,7 @@ class Security_test extends CI_TestCase { $imgtags = array( 'Smiley face', 'Smiley face', - '', + '', '', 'MD Logo', '', @@ -318,7 +318,7 @@ class Security_test extends CI_TestCase { $urls = array( 'smiley.gif', 'smiley.gif', - 'http://www.w3schools.com/images/w3schools_green.jpg', + 'https://www.w3schools.com/images/w3schools_green.jpg', '/img/sunset.gif', 'mdn-logo-sm.png', '', diff --git a/tests/codeigniter/helpers/inflector_helper_test.php b/tests/codeigniter/helpers/inflector_helper_test.php index 4a1e64fae..8c4f9e51f 100644 --- a/tests/codeigniter/helpers/inflector_helper_test.php +++ b/tests/codeigniter/helpers/inflector_helper_test.php @@ -30,7 +30,7 @@ class Inflector_helper_test extends CI_TestCase { $strs = array( 'telly' => 'tellies', 'smelly' => 'smellies', - 'abjectness' => 'abjectnesses', // ref : http://en.wiktionary.org/wiki/abjectnesses + 'abjectness' => 'abjectnesses', // ref : https://en.wiktionary.org/wiki/abjectnesses 'smell' => 'smells', 'witch' => 'witches', 'equipment' => 'equipment' diff --git a/user_guide_src/README.rst b/user_guide_src/README.rst index b31db7cf8..a8e151dd8 100644 --- a/user_guide_src/README.rst +++ b/user_guide_src/README.rst @@ -19,7 +19,7 @@ without any parameters. It should load up and tell you which version you have installed. Note: If you're not on Python 2.7, then you must upgrade. E.g. Install 2.7.2 -from http://python.org/download/releases/2.7.2/ +from https://python.org/download/releases/2.7.2/ Installation ============ diff --git a/user_guide_src/cilexer/cilexer/cilexer.py b/user_guide_src/cilexer/cilexer/cilexer.py index 4ecfd0bc4..d15773d4e 100644 --- a/user_guide_src/cilexer/cilexer/cilexer.py +++ b/user_guide_src/cilexer/cilexer/cilexer.py @@ -26,9 +26,9 @@ # THE SOFTWARE. # # Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) -# Copyright (c) 2014 - 2016, British Columbia Institute of Technology (http://bcit.ca/) +# Copyright (c) 2014 - 2016, British Columbia Institute of Technology (https://bcit.ca/) # -# http://opensource.org/licenses/MIT MIT License +# https://opensource.org/licenses/MIT MIT License import re import copy diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/layout.html b/user_guide_src/source/_themes/sphinx_rtd_theme/layout.html index 20ede7d32..908590ebf 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/layout.html +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/layout.html @@ -70,7 +70,7 @@ {%- endblock %} {%- block extrahead %} {% endblock %} - {# Keep modernizr in head - http://modernizr.com/docs/#installing #} + {# Keep modernizr in head - https://modernizr.com/docs/#installing #} diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/versions.html b/user_guide_src/source/_themes/sphinx_rtd_theme/versions.html index 8b3eb79d2..a574bd7ef 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/versions.html +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/versions.html @@ -29,7 +29,7 @@
      - Free document hosting provided by Read the Docs. + Free document hosting provided by Read the Docs.
      diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 4f3cb1c93..22535e2c5 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -701,7 +701,7 @@ Release Date: March 30, 2015 - License - - CodeIgniter has been relicensed with the `MIT License `_, eliminating its old proprietary licensing. + - CodeIgniter has been relicensed with the `MIT License `_, eliminating its old proprietary licensing. - General Changes @@ -759,7 +759,7 @@ Release Date: March 30, 2015 - 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 `_. + - Deprecated ``standard_date()``, which now just uses the native ``date()`` with `DateTime constants `_. - 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. @@ -784,7 +784,7 @@ Release Date: March 30, 2015 - :doc:`Inflector Helper ` changes include: - Changed :php:func:`humanize()` to allow passing an input separator as its second parameter. - - Changed :php:func:`humanize()` and :php:func:`underscore()` to utilize `mbstring `_, if available. + - Changed :php:func:`humanize()` and :php:func:`underscore()` to utilize `mbstring `_, if available. - Changed :php:func:`plural()` and :php:func:`singular()` to avoid double pluralization and support more words. - :doc:`Download Helper ` changes include: @@ -835,7 +835,7 @@ Release Date: March 30, 2015 - :doc:`Text Helper ` changes include: - Changed the default tag for use in :php:func:`highlight_phrase()` to ```` (formerly ````). - - Changed :php:func:`character_limiter()`, :php:func:`word_wrap()` and :php:func:`ellipsize()` to utilize `mbstring `_ or `iconv `_, if available. + - Changed :php:func:`character_limiter()`, :php:func:`word_wrap()` and :php:func:`ellipsize()` to utilize `mbstring `_ or `iconv `_, if available. - :doc:`Directory Helper ` :php:func:`directory_map()` will now append ``DIRECTORY_SEPARATOR`` to directory names in the returned array. - :doc:`Array Helper ` :php:func:`element()` and :php:func:`elements()` now return NULL instead of FALSE when the required elements don't exist. @@ -1152,7 +1152,7 @@ Release Date: March 30, 2015 - Changed private methods to protected so that MY_URI can override them. - Renamed internal method ``_parse_cli_args()`` to ``_parse_argv()``. - Renamed internal method ``_detect_uri()`` to ``_parse_request_uri()``. - - Changed ``_parse_request_uri()`` to accept absolute URIs for compatibility with HTTP/1.1 as per `RFC2616 `. + - Changed ``_parse_request_uri()`` to accept absolute URIs for compatibility with HTTP/1.1 as per `RFC2616 `. - Added protected method ``_parse_query_string()`` to URI paths in the the **QUERY_STRING** value, like ``_parse_request_uri()`` does. - Changed URI string detection logic to always default to **REQUEST_URI** unless configured otherwise or under CLI. - Removed methods ``_remove_url_suffix()``, ``_explode_segments()`` and moved their logic into ``_set_uri_string()``. @@ -1247,7 +1247,7 @@ Release Date: March 30, 2015 - UTF-8 Library changes include: - - ``UTF8_ENABLED`` now requires only one of `Multibyte String `_ or `iconv `_ to be available instead of both. + - ``UTF8_ENABLED`` now requires only one of `Multibyte String `_ or `iconv `_ to be available instead of both. - Changed method ``clean_string()`` to utilize ``mb_convert_encoding()`` if it is available. - Renamed method ``_is_ascii()`` to ``is_ascii()`` and made it public. @@ -1259,9 +1259,9 @@ Release Date: March 30, 2015 - Added :doc:`compatibility layers ` for: - - `Multibyte String `_ (limited support). - - `Hash `_ (``hash_equals()``, ``hash_pbkdf2()``). - - `Password Hashing `_. + - `Multibyte String `_ (limited support). + - `Hash `_ (``hash_equals()``, ``hash_pbkdf2()``). + - `Password Hashing `_. - `Standard Functions ``array_column()``, ``array_replace()``, ``array_replace_recursive()``, ``hex2bin()``, ``quoted_printable_encode()``. - Removed ``CI_CORE`` boolean constant from *CodeIgniter.php* (no longer Reactor and Core versions). @@ -1641,7 +1641,7 @@ Release Date: November 14, 2011 - Database - - Added a `CUBRID `_ driver to the :doc:`Database + - Added a `CUBRID `_ driver to the :doc:`Database Driver `. Thanks to the CUBRID team for supplying this patch. - Added a PDO driver to the :doc:`Database Driver `. diff --git a/user_guide_src/source/contributing/index.rst b/user_guide_src/source/contributing/index.rst index e102b8848..5bdeffde5 100644 --- a/user_guide_src/source/contributing/index.rst +++ b/user_guide_src/source/contributing/index.rst @@ -31,7 +31,7 @@ Support Please note that GitHub is not for general support questions! If you are having trouble using a feature of CodeIgniter, ask for help on our -`forums `_ instead. +`forums `_ instead. If you are not sure whether you are using something correctly or if you have found a bug, again - please ask on the forums first. @@ -112,7 +112,7 @@ Branching ========= CodeIgniter uses the `Git-Flow -`_ branching model +`_ branching model which requires all pull requests to be sent to the "develop" branch. This is where the next planned version will be developed. The "master" branch will always contain the latest stable version and is kept clean so a "hotfix" (e.g: diff --git a/user_guide_src/source/general/cli.rst b/user_guide_src/source/general/cli.rst index 764a6b835..e4f57aefb 100644 --- a/user_guide_src/source/general/cli.rst +++ b/user_guide_src/source/general/cli.rst @@ -13,7 +13,7 @@ What is the CLI? The command-line interface is a text-based method of interacting with computers. For more information, check the `Wikipedia -article `_. +article `_. Why run via the command-line? ============================= diff --git a/user_guide_src/source/general/common_functions.rst b/user_guide_src/source/general/common_functions.rst index 77b0df14e..ef9058b2c 100644 --- a/user_guide_src/source/general/common_functions.rst +++ b/user_guide_src/source/general/common_functions.rst @@ -110,7 +110,7 @@ loading any libraries or helpers. set_status_header(401); // Sets the header as: Unauthorized - `See here `_ for + `See here `_ for a full list of headers. .. php:function:: remove_invisible_characters($str[, $url_encoded = TRUE]) diff --git a/user_guide_src/source/general/compatibility_functions.rst b/user_guide_src/source/general/compatibility_functions.rst index 522e43f60..0ae36e710 100644 --- a/user_guide_src/source/general/compatibility_functions.rst +++ b/user_guide_src/source/general/compatibility_functions.rst @@ -26,7 +26,7 @@ Password Hashing **************** This set of compatibility functions offers a "backport" of PHP's -standard `Password Hashing extension `_ +standard `Password Hashing extension `_ that is otherwise available only since PHP 5.5. Dependencies @@ -50,7 +50,7 @@ Function reference :rtype: array For more information, please refer to the `PHP manual for - password_get_info() `_. + password_get_info() `_. .. php:function:: password_hash($password, $algo[, $options = array()]) @@ -61,7 +61,7 @@ Function reference :rtype: string For more information, please refer to the `PHP manual for - password_hash() `_. + password_hash() `_. .. note:: Unless you provide your own (and valid) salt, this function has a further dependency on an available CSPRNG source. Each @@ -80,7 +80,7 @@ Function reference :rtype: bool For more information, please refer to the `PHP manual for - password_needs_rehash() `_. + password_needs_rehash() `_. .. php:function:: password_verify($password, $hash) @@ -90,7 +90,7 @@ Function reference :rtype: bool For more information, please refer to the `PHP manual for - password_verify() `_. + password_verify() `_. ********************* Hash (Message Digest) @@ -116,7 +116,7 @@ Function reference :rtype: string For more information, please refer to the `PHP manual for - hash_equals() `_. + hash_equals() `_. .. php:function:: hash_pbkdf2($algo, $password, $salt, $iterations[, $length = 0[, $raw_output = FALSE]]) @@ -130,14 +130,14 @@ Function reference :rtype: string For more information, please refer to the `PHP manual for - hash_pbkdf2() `_. + hash_pbkdf2() `_. **************** Multibyte String **************** This set of compatibility functions offers limited support for PHP's -`Multibyte String extension `_. Because of +`Multibyte String extension `_. Because of the limited alternative solutions, only a few functions are available. .. note:: When a character set parameter is ommited, @@ -146,7 +146,7 @@ the limited alternative solutions, only a few functions are available. Dependencies ============ -- `iconv `_ extension +- `iconv `_ extension .. important:: This dependency is optional and these functions will always be declared. If iconv is not available, they WILL @@ -169,7 +169,7 @@ Function reference :rtype: string For more information, please refer to the `PHP manual for - mb_strlen() `_. + mb_strlen() `_. .. php:function:: mb_strpos($haystack, $needle[, $offset = 0[, $encoding = NULL]]) @@ -181,7 +181,7 @@ Function reference :rtype: mixed For more information, please refer to the `PHP manual for - mb_strpos() `_. + mb_strpos() `_. .. php:function:: mb_substr($str, $start[, $length = NULL[, $encoding = NULL]]) @@ -193,7 +193,7 @@ Function reference :rtype: string For more information, please refer to the `PHP manual for - mb_substr() `_. + mb_substr() `_. ****************** Standard Functions @@ -219,4 +219,4 @@ Function reference :rtype: array For more information, please refer to the `PHP manual for - array_column() `_. + array_column() `_. diff --git a/user_guide_src/source/general/controllers.rst b/user_guide_src/source/general/controllers.rst index 14e583636..77d19c1cf 100644 --- a/user_guide_src/source/general/controllers.rst +++ b/user_guide_src/source/general/controllers.rst @@ -181,7 +181,7 @@ be passed as a parameter to the ``_remap()`` method:: Any extra segments after the method name are passed into ``_remap()`` as an optional second parameter. This array can be used in combination with -PHP's `call_user_func_array() `_ +PHP's `call_user_func_array() `_ to emulate CodeIgniter's default behavior. Example:: diff --git a/user_guide_src/source/general/credits.rst b/user_guide_src/source/general/credits.rst index d0f14b3bd..66b51a7ad 100644 --- a/user_guide_src/source/general/credits.rst +++ b/user_guide_src/source/general/credits.rst @@ -12,7 +12,7 @@ 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 -`_ and was then officially announced as a community-maintained +`_ 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/requirements.rst b/user_guide_src/source/general/requirements.rst index 982a6014f..5b6a0109d 100644 --- a/user_guide_src/source/general/requirements.rst +++ b/user_guide_src/source/general/requirements.rst @@ -2,7 +2,7 @@ Server Requirements ################### -`PHP `_ version 5.6 or newer is recommended. +`PHP `_ version 5.6 or newer is recommended. It should work on 5.4.8 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/general/routing.rst b/user_guide_src/source/general/routing.rst index 909289d8d..9c6a339cc 100644 --- a/user_guide_src/source/general/routing.rst +++ b/user_guide_src/source/general/routing.rst @@ -125,7 +125,7 @@ page after they log in, you may find this example useful:: passed to ``Auth::login()``. For those of you who don't know regular expressions and want to learn -more about them, `regular-expressions.info `_ +more about them, `regular-expressions.info `_ might be a good starting point. .. note:: You can also mix and match wildcards with regular expressions. diff --git a/user_guide_src/source/general/security.rst b/user_guide_src/source/general/security.rst index 744a2c934..fb8cd31ff 100644 --- a/user_guide_src/source/general/security.rst +++ b/user_guide_src/source/general/security.rst @@ -130,7 +130,7 @@ with that. Please read below. Also, DON'T invent your own algorithms. Only use strong password hashing algorithms like BCrypt, which is used - in PHP's own `Password Hashing `_ functions. + in PHP's own `Password Hashing `_ functions. Please use them, even if you're not running PHP 5.5+, CodeIgniter provides them for you. diff --git a/user_guide_src/source/general/styleguide.rst b/user_guide_src/source/general/styleguide.rst index 5f25a5ae4..6c141efbc 100644 --- a/user_guide_src/source/general/styleguide.rst +++ b/user_guide_src/source/general/styleguide.rst @@ -160,7 +160,7 @@ programmers, but can prove invaluable when returning to your own code months down the line. There is not a required format for comments, but the following are recommended. -`DocBlock `_ +`DocBlock `_ style comments preceding class, method, and property declarations so they can be picked up by IDEs:: @@ -319,7 +319,7 @@ Use **===** and **!==** as necessary. See also information regarding `typecasting -`_, +`_, which can be quite useful. Typecasting has a slightly different effect which may be desirable. When casting a variable as a string, for instance, NULL and boolean FALSE variables become empty strings, 0 (and @@ -542,7 +542,7 @@ the ability to change this in the php.ini, you can often enable it with:: ini_set('display_errors', 1); .. note:: Setting the `display_errors - `_ + `_ setting with ``ini_set()`` at runtime is not identical to having it enabled in the PHP environment. Namely, it will not have any effect if the script has fatal errors. diff --git a/user_guide_src/source/helpers/date_helper.rst b/user_guide_src/source/helpers/date_helper.rst index 2f44cb923..c63a9d291 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() `_ + This function is identical to PHP's `date() `_ 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` diff --git a/user_guide_src/source/helpers/file_helper.rst b/user_guide_src/source/helpers/file_helper.rst index dcf3a2340..e96546a11 100644 --- a/user_guide_src/source/helpers/file_helper.rst +++ b/user_guide_src/source/helpers/file_helper.rst @@ -50,7 +50,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 `_ + The default mode is 'wb'. Please see the `PHP user guide `_ 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/html_helper.rst b/user_guide_src/source/helpers/html_helper.rst index 734b4465c..e4738b157 100644 --- a/user_guide_src/source/helpers/html_helper.rst +++ b/user_guide_src/source/helpers/html_helper.rst @@ -343,7 +343,7 @@ The following functions are available: echo doctype(); // - echo doctype('html4-trans'); // + echo doctype('html4-trans'); // The following is a list of doctype choices. These are configurable, and pulled from application/config/doctypes.php @@ -351,23 +351,23 @@ The following functions are available: =============================== =================== ================================================================================================================================================== Document type Option Result =============================== =================== ================================================================================================================================================== - XHTML 1.1 xhtml11 - XHTML 1.0 Strict xhtml1-strict - XHTML 1.0 Transitional xhtml1-trans - XHTML 1.0 Frameset xhtml1-frame - XHTML Basic 1.1 xhtml-basic11 + XHTML 1.1 xhtml11 + XHTML 1.0 Strict xhtml1-strict + XHTML 1.0 Transitional xhtml1-trans + XHTML 1.0 Frameset xhtml1-frame + XHTML Basic 1.1 xhtml-basic11 HTML 5 html5 - HTML 4 Strict html4-strict - HTML 4 Transitional html4-trans - HTML 4 Frameset html4-frame - MathML 1.01 mathml1 - MathML 2.0 mathml2 - SVG 1.0 svg10 - SVG 1.1 Full svg11 - SVG 1.1 Basic svg11-basic - SVG 1.1 Tiny svg11-tiny - XHTML+MathML+SVG (XHTML host) xhtml-math-svg-xh - XHTML+MathML+SVG (SVG host) xhtml-math-svg-sh - XHTML+RDFa 1.0 xhtml-rdfa-1 - XHTML+RDFa 1.1 xhtml-rdfa-2 + HTML 4 Strict html4-strict + HTML 4 Transitional html4-trans + HTML 4 Frameset html4-frame + MathML 1.01 mathml1 + MathML 2.0 mathml2 + SVG 1.0 svg10 + SVG 1.1 Full svg11 + SVG 1.1 Basic svg11-basic + SVG 1.1 Tiny svg11-tiny + XHTML+MathML+SVG (XHTML host) xhtml-math-svg-xh + XHTML+MathML+SVG (SVG host) xhtml-math-svg-sh + XHTML+RDFa 1.0 xhtml-rdfa-1 + XHTML+RDFa 1.1 xhtml-rdfa-2 =============================== =================== ================================================================================================================================================== diff --git a/user_guide_src/source/helpers/url_helper.rst b/user_guide_src/source/helpers/url_helper.rst index e117d37c0..adeab8c58 100644 --- a/user_guide_src/source/helpers/url_helper.rst +++ b/user_guide_src/source/helpers/url_helper.rst @@ -204,7 +204,7 @@ The following functions are available: | echo anchor_popup('news/local/123', 'Click Me!', array()); .. note:: The **window_name** is not really an attribute, but an argument to - the JavaScript `window.open() ` + the JavaScript `window.open() ` method, which accepts either a window name or a window target. .. note:: Any other attribute than the listed above will be parsed as an diff --git a/user_guide_src/source/installation/downloads.rst b/user_guide_src/source/installation/downloads.rst index f32d978f1..c915616d7 100644 --- a/user_guide_src/source/installation/downloads.rst +++ b/user_guide_src/source/installation/downloads.rst @@ -37,7 +37,7 @@ Downloading CodeIgniter GitHub ****** -`Git `_ is a distributed version control system. +`Git `_ is a distributed version control system. Public Git access is available at `GitHub `_. Please note that while every effort is made to keep this code base diff --git a/user_guide_src/source/installation/upgrade_220.rst b/user_guide_src/source/installation/upgrade_220.rst index 91f9e00cd..489dd6312 100644 --- a/user_guide_src/source/installation/upgrade_220.rst +++ b/user_guide_src/source/installation/upgrade_220.rst @@ -7,7 +7,7 @@ Upgrading from 2.1.4 to 2.2.x without Mcrypt, then this is a breaking change. You must install the Mcrypt extension in order to upgrade. For information on installing Mcrypt please see the PHP `documentation - `. + `. Before performing an update you should take your site offline by replacing the index.php file with a static one. diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index 4e2ff8ab2..188144844 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -545,8 +545,8 @@ Following numerous vulnerability reports, the :doc:`Encrypt Library <../librarie been deprecated and a new, :doc:`Encryption Library <../libraries/encryption>` is added to take its place. -The new library requires either the `MCrypt extension `_ (and /dev/urandom -availability) or PHP 5.3.3 and the `OpenSSL extension `_. +The new library requires either the `MCrypt extension `_ (and /dev/urandom +availability) or PHP 5.3.3 and the `OpenSSL extension `_. While this might be rather inconvenient, it is a requirement that allows us to have properly implemented cryptographic functions. @@ -670,7 +670,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 `_, +to the availability of native PHP `constants `_, 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/encrypt.rst b/user_guide_src/source/libraries/encrypt.rst index 67e2a0190..10893b901 100644 --- a/user_guide_src/source/libraries/encrypt.rst +++ b/user_guide_src/source/libraries/encrypt.rst @@ -135,7 +135,7 @@ Class Reference $this->encrypt->set_cipher(MCRYPT_BLOWFISH); - Please visit php.net for a list of `available ciphers `_. + Please visit php.net for a list of `available ciphers `_. If you'd like to manually test whether your server supports MCrypt you can use:: @@ -153,7 +153,7 @@ Class Reference $this->encrypt->set_mode(MCRYPT_MODE_CFB); - Please visit php.net for a list of `available modes `_. + Please visit php.net for a list of `available modes `_. .. php:method:: encode_from_legacy($string[, $legacy_mode = MCRYPT_MODE_ECB[, $key = '']]) diff --git a/user_guide_src/source/libraries/encryption.rst b/user_guide_src/source/libraries/encryption.rst index b16511d4d..8b4fd7121 100644 --- a/user_guide_src/source/libraries/encryption.rst +++ b/user_guide_src/source/libraries/encryption.rst @@ -5,7 +5,7 @@ Encryption Library .. important:: DO NOT use this or any other *encryption* library for user password storage! Passwords must be *hashed* instead, and you should do that via PHP's own `Password Hashing extension - `_. + `_. The Encryption Library provides two-way data encryption. To do so in a cryptographically secure way, it utilizes PHP extensions that are @@ -13,8 +13,8 @@ unfortunately not always available on all systems. You must meet one of the following dependencies in order to use this library: -- `OpenSSL `_ -- `MCrypt `_ (and `MCRYPT_DEV_URANDOM` availability) +- `OpenSSL `_ +- `MCrypt `_ (and `MCRYPT_DEV_URANDOM` availability) If neither of the above dependencies is met, we simply cannot offer you a good enough implementation to meet the high standards required @@ -63,7 +63,7 @@ encryption and authentication is a bad practice. Because of that, two separate keys are derived from your already configured *encryption_key*: one for encryption and one for authentication. This is done via a technique called `HMAC-based Key Derivation Function -`_ (HKDF). +`_ (HKDF). Setting your encryption_key =========================== @@ -171,7 +171,7 @@ RC4 / ARCFour rc4 40-2048 / 5-256 Stream .. note:: Even though CAST5 supports key lengths lower than 128 bits (16 bytes), in fact they will just be zero-padded to the maximum length, as specified in `RFC 2144 - `_. + `_. .. note:: Blowfish supports key lengths as small as 32 bits (4 bytes), but our tests have shown that only lengths of 128 bits (16 bytes) or @@ -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() `_ function. +native `hash_hmac() `_ 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/file_uploading.rst b/user_guide_src/source/libraries/file_uploading.rst index babdc04f9..1b7581670 100644 --- a/user_guide_src/source/libraries/file_uploading.rst +++ b/user_guide_src/source/libraries/file_uploading.rst @@ -233,7 +233,7 @@ Preference Default Value Options Descripti unless you have no other option as that would cause a security risk. **mod_mime_fix** TRUE TRUE/FALSE (boolean) If set to TRUE, multiple filename extensions will be suffixed with an underscore in order to avoid triggering `Apache mod_mime - `_. + `_. DO NOT turn off this option if your upload directory is public, as this is a security risk. ============================ ================= ======================= ====================================================================== diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index b568dae6f..730b3a9b0 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -370,7 +370,7 @@ Class Reference Returns an array of HTTP request headers. Useful if running in a non-Apache environment where - `apache_request_headers() `_ + `apache_request_headers() `_ will not be supported. :: diff --git a/user_guide_src/source/libraries/language.rst b/user_guide_src/source/libraries/language.rst index de17c8288..262d9733a 100644 --- a/user_guide_src/source/libraries/language.rst +++ b/user_guide_src/source/libraries/language.rst @@ -92,7 +92,7 @@ Internationalization The Language class in CodeIgniter is meant to provide an easy and lightweight way to support multiplelanguages in your application. It is not meant to be a full implementation of what is commonly called `internationalization and localization -`_. +`_. We use the term "idiom" to refer to a language using its common name, rather than using any of the international standards, such as "en", "en-US", diff --git a/user_guide_src/source/libraries/loader.rst b/user_guide_src/source/libraries/loader.rst index 22abb4586..4d3d51236 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() `_ function to convert to variables + `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() `_ + variables using the PHP `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/output.rst b/user_guide_src/source/libraries/output.rst index bb5493712..a24f3cb52 100644 --- a/user_guide_src/source/libraries/output.rst +++ b/user_guide_src/source/libraries/output.rst @@ -163,7 +163,7 @@ Class Reference $this->output->set_status_header(401); // Sets the header as: Unauthorized - `See here `_ for a full list of headers. + `See here `_ for a full list of headers. .. note:: This method is an alias for :doc:`Common function <../general/common_functions>` :func:`set_status_header()`. diff --git a/user_guide_src/source/libraries/sessions.rst b/user_guide_src/source/libraries/sessions.rst index 994dc2e08..f2236c633 100644 --- a/user_guide_src/source/libraries/sessions.rst +++ b/user_guide_src/source/libraries/sessions.rst @@ -112,7 +112,7 @@ Session data is simply an array associated with a particular session ID (cookie). If you've used sessions in PHP before, you should be familiar with PHP's -`$_SESSION superglobal `_ +`$_SESSION superglobal `_ (if not, please read the content on that link). CodeIgniter gives access to its session data through the same means, as it @@ -391,7 +391,7 @@ Destroying a Session ==================== To clear the current session (for example, during a logout), you may -simply use either PHP's `session_destroy() `_ +simply use either PHP's `session_destroy() `_ function, or the ``sess_destroy()`` method. Both will work in exactly the same way:: @@ -516,7 +516,7 @@ mind that it is in fact not the same code and it has some limitations To be more specific, it doesn't support PHP's `directory level and mode formats used in session.save_path -`_, +`_, and it has most of the options hard-coded for safety. Instead, only absolute paths are supported for ``$config['sess_save_path']``. @@ -554,7 +554,7 @@ increase - which is the time when it matters - the file system will consistently outperform almost all relational database setups. In addition, if performance is your only concern, you may want to look -into using `tmpfs `_, +into using `tmpfs `_, (warning: external resource), which can make your sessions blazing fast. Database Driver @@ -679,7 +679,7 @@ Memcached Driver The 'memcached' driver is very similar to the 'redis' one in all of its properties, except perhaps for availability, because PHP's `Memcached -`_ extension is distributed via PECL and some +`_ extension is distributed via PECL and some Linux distrubutions make it available as an easy to install package. Other than that, and without any intentional bias towards Redis, there's @@ -754,7 +754,7 @@ when creating a session driver for CodeIgniter: - Implement the `SessionHandlerInterface - `_ interface. + `_ interface. .. note:: You may notice that ``SessionHandlerInterface`` is provided by PHP since version 5.4.0. CodeIgniter will automatically declare @@ -1016,7 +1016,7 @@ Class Reference .. note:: This method is just an alias for PHP's native `session_regenerate_id() - `_ function. + `_ function. .. php:method:: sess_destroy() @@ -1030,7 +1030,7 @@ Class Reference .. note:: This method is just an alias for PHP's native `session_destroy() - `_ function. + `_ function. .. php:method:: __get($key) diff --git a/user_guide_src/source/libraries/trackback.rst b/user_guide_src/source/libraries/trackback.rst index dc4477e9f..abc608b7d 100644 --- a/user_guide_src/source/libraries/trackback.rst +++ b/user_guide_src/source/libraries/trackback.rst @@ -6,7 +6,7 @@ The Trackback Class provides functions that enable you to send and receive Trackback data. If you are not familiar with Trackbacks you'll find more information -`here `_. +`here `_. .. contents:: :local: diff --git a/user_guide_src/source/libraries/xmlrpc.rst b/user_guide_src/source/libraries/xmlrpc.rst index 2fe07c49d..a9a899d7b 100644 --- a/user_guide_src/source/libraries/xmlrpc.rst +++ b/user_guide_src/source/libraries/xmlrpc.rst @@ -73,7 +73,7 @@ information: - The *request* data (explained below). Here is a basic example that sends a simple Weblogs.com ping to the -`Ping-o-Matic `_ +`Ping-o-Matic `_ :: diff --git a/user_guide_src/source/overview/at_a_glance.rst b/user_guide_src/source/overview/at_a_glance.rst index 742d7bd0e..d5e5bf929 100644 --- a/user_guide_src/source/overview/at_a_glance.rst +++ b/user_guide_src/source/overview/at_a_glance.rst @@ -111,4 +111,4 @@ CodeIgniter has a Friendly Community of Users ============================================= Our growing community of users can be seen actively participating in our -`Community Forums `_. +`Community Forums `_. diff --git a/user_guide_src/source/overview/getting_started.rst b/user_guide_src/source/overview/getting_started.rst index 04ee50df7..a5181d96d 100644 --- a/user_guide_src/source/overview/getting_started.rst +++ b/user_guide_src/source/overview/getting_started.rst @@ -19,6 +19,6 @@ Reference** and **Helper Reference** pages to learn to utilize the native libraries and helper files. Feel free to take advantage of our `Community -Forums `_ if you have questions or +Forums `_ if you have questions or problems, and our `Wiki `_ to see code examples posted by other users. diff --git a/user_guide_src/source/tutorial/conclusion.rst b/user_guide_src/source/tutorial/conclusion.rst index 0d90cde6f..fa41c4492 100644 --- a/user_guide_src/source/tutorial/conclusion.rst +++ b/user_guide_src/source/tutorial/conclusion.rst @@ -20,7 +20,7 @@ CodeIgniter within a few days. If you still have questions about the framework or your own CodeIgniter code, you can: -- Check out our `forums `_ +- Check out our `forums `_ - Visit our `IRC chatroom `_ - Explore the `Wiki `_ -- cgit v1.2.3-24-g4f1b From 2674bb4eb3ef26ff3408d0eb23b74373d2db0fb3 Mon Sep 17 00:00:00 2001 From: John de Kroon Date: Fri, 25 May 2018 11:46:27 +0200 Subject: Only use the output of idn_to_ascii() if it worked properly --- system/libraries/Email.php | 12 ++++++++++-- system/libraries/Form_validation.php | 6 +++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index beb2ffa17..cbfd670e7 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1017,7 +1017,11 @@ class CI_Email { $domain = defined('INTL_IDNA_VARIANT_UTS46') ? idn_to_ascii($matches[2], 0, INTL_IDNA_VARIANT_UTS46) : idn_to_ascii($matches[2]); - $email = $matches[1].'@'.$domain; + //If idn_to_ascii() fails, treat it like it doesn't exists + if ($domain !== FALSE) + { + $email = $account.'@'.$domain; + } } return (bool) filter_var($email, FILTER_VALIDATE_EMAIL); @@ -1828,7 +1832,11 @@ class CI_Email { $domain = defined('INTL_IDNA_VARIANT_UTS46') ? idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46) : idn_to_ascii($domain); - $email = $account.'@'.$domain; + //If idn_to_ascii() fails, treat it like it doesn't exists + if ($domain !== FALSE) + { + $email = $account.'@'.$domain; + } } return (filter_var($email, FILTER_VALIDATE_EMAIL) === $email && preg_match('#\A[a-z0-9._+-]+@[a-z0-9.-]{1,253}\z#i', $email)); diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 9e4c81c61..5c1c2e2e8 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1240,7 +1240,11 @@ class CI_Form_validation { $domain = defined('INTL_IDNA_VARIANT_UTS46') ? idn_to_ascii($matches[2], 0, INTL_IDNA_VARIANT_UTS46) : idn_to_ascii($matches[2]); - $str = $matches[1].'@'.$domain; + //If idn_to_ascii() fails, treat it like it doesn't exists + if ($domain !== FALSE) + { + $str = $matches[1].'@'.$domain; + } } return (bool) filter_var($str, FILTER_VALIDATE_EMAIL); -- cgit v1.2.3-24-g4f1b From 06546124c29dae97b5346e444fa327fc2076e44f Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 27 May 2018 00:09:18 +0300 Subject: 7zip mime type renaming 7zip to 7z extension and adding one more mime id to it --- application/config/mimes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index 017653335..c2a30d368 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -155,7 +155,7 @@ return array( 'ics' => 'text/calendar', 'ical' => 'text/calendar', 'zsh' => 'text/x-scriptzsh', - '7zip' => array('application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), + '7z' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), 'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'), 'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'), 'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'), -- cgit v1.2.3-24-g4f1b From 605dcbc55ed4dfa1c8fb8ed659dc51b0710ff165 Mon Sep 17 00:00:00 2001 From: William Poetra Yoga <30787981+wpyh@users.noreply.github.com> Date: Wed, 30 May 2018 10:04:01 +0700 Subject: Use Config::base_url() properly Using the Config::slash_item() method, we get double forward slashes. For example, base_url = 'http://localhost:8080/' and asset is '/assets/my_asset.css', then the generated URL would be 'http://localhost:8080//assets/my_asset.css'. This patch fixes that, so the generated URL would be 'http://localhost:8080/assets/my_asset.css'. There is actually already an analog example in the case if index_page === TRUE, where the site_url() function is used. --- system/helpers/html_helper.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index c935f2619..985c68c8a 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -200,7 +200,7 @@ if ( ! function_exists('img')) } else { - $img .= ' src="'.get_instance()->config->slash_item('base_url').$v.'"'; + $img .= ' src="'.get_instance()->config->base_url($v).'"'; } } else @@ -292,7 +292,7 @@ if ( ! function_exists('link_tag')) } else { - $link .= 'href="'.$CI->config->slash_item('base_url').$v.'" '; + $link .= 'href="'.$CI->config->base_url($v).'" '; } } else @@ -313,7 +313,7 @@ if ( ! function_exists('link_tag')) } else { - $link .= 'href="'.$CI->config->slash_item('base_url').$href.'" '; + $link .= 'href="'.$CI->config->base_url($href).'" '; } $link .= 'rel="'.$rel.'" type="'.$type.'" '; -- cgit v1.2.3-24-g4f1b From 721e34619f79585cdad92174373edcf2b049931f Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Fri, 1 Jun 2018 18:07:34 +0300 Subject: [ci skip] Close #5482 --- system/helpers/inflector_helper.php | 8 ++++---- user_guide_src/source/helpers/inflector_helper.rst | 17 ++++++++++------- user_guide_src/source/installation/upgrade_320.rst | 11 +++++++++++ 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index 376cac783..2682649e9 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -63,7 +63,7 @@ if ( ! function_exists('singular')) { $result = strval($str); - if ( ! is_countable($result)) + if ( ! word_is_countable($result)) { return $result; } @@ -128,7 +128,7 @@ if ( ! function_exists('plural')) { $result = strval($str); - if ( ! is_countable($result)) + if ( ! word_is_countable($result)) { return $result; } @@ -226,7 +226,7 @@ if ( ! function_exists('humanize')) // -------------------------------------------------------------------- -if ( ! function_exists('is_countable')) +if ( ! function_exists('word_is_countable')) { /** * Checks if the given word has a plural version. @@ -234,7 +234,7 @@ if ( ! function_exists('is_countable')) * @param string $word Word to check * @return bool */ - function is_countable($word) + function word_is_countable($word) { return ! in_array( strtolower($word), diff --git a/user_guide_src/source/helpers/inflector_helper.rst b/user_guide_src/source/helpers/inflector_helper.rst index 76cce6f4d..ca781d2ad 100644 --- a/user_guide_src/source/helpers/inflector_helper.rst +++ b/user_guide_src/source/helpers/inflector_helper.rst @@ -85,7 +85,7 @@ The following functions are available: echo humanize('my-dog-spot', '-'); // Prints 'My Dog Spot' -.. php:function:: is_countable($word) +.. php:function:: word_is_countable($word) :param string $word: Input string :returns: TRUE if the word is countable or FALSE if not @@ -93,17 +93,20 @@ The following functions are available: Checks if the given word has a plural version. Example:: - is_countable('equipment'); // Returns FALSE + word_is_countable('equipment'); // Returns FALSE + + .. note:: This function used to be called ``is_countable()`` in + in previous CodeIgniter versions. .. php:function:: ordinal_format($number) :param int $number: non-negative natural number to be converted - :returns: Ordinal numeral for given number or original value on failure - :rtype: string + :returns: Ordinal numeral for given number or original value on failure + :rtype: string - Returns the ordinal numeral (1st, 2nd, 3rd etc.) for a - non-negative natural number. If the input is not a natural number - greater than 0, the function will return the original value. Examples:: + Returns the ordinal numeral (1st, 2nd, 3rd etc.) for a + non-negative natural number. If the input is not a natural number + greater than 0, the function will return the original value. Examples:: echo ordinal_format(1); // Returns 1st echo ordinal_format(3); // Returns 3rd diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 3eadd8caf..a9dc274c7 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -257,3 +257,14 @@ so that if you're using the :doc:`Web Page Caching <../general/caching>` feature, you'll be left with some old, garbage cache files. That shouldn't be a problem, but you may want to clear them. + +Step 13: Check for calls to is_countable() +========================================== + + +PHP 7.3 introduces a native `is_countable() `_ +function, which creates a name collision with the ``is_countable()`` function +we've had in our :doc:`Inflector Helpers <../helpers/inflector_helper>`. + +If you've been using the helper function in question, you should now rename +the calls to it to :php:func:`word_is_countable()`. -- cgit v1.2.3-24-g4f1b From 8eeb1a88eba76e6d4ed87a7a72a2272c27a1eeb4 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Fri, 1 Jun 2018 21:10:10 +0300 Subject: Adding 7zip extension to mimes.php Adding 7zip extension back as BC safety measure --- application/config/mimes.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/config/mimes.php b/application/config/mimes.php index c2a30d368..0ec9db0a0 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -156,6 +156,7 @@ return array( 'ical' => 'text/calendar', 'zsh' => 'text/x-scriptzsh', '7z' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), + '7zip' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), 'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'), 'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'), 'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'), -- cgit v1.2.3-24-g4f1b From 9bf6753a1bcd54d6ca69fc194efc9f982661aa66 Mon Sep 17 00:00:00 2001 From: John de Kroon Date: Mon, 11 Jun 2018 15:17:06 +0200 Subject: Fixing codestyle --- system/libraries/Email.php | 4 ++-- system/libraries/Form_validation.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index cbfd670e7..943500e7e 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1017,7 +1017,7 @@ class CI_Email { $domain = defined('INTL_IDNA_VARIANT_UTS46') ? idn_to_ascii($matches[2], 0, INTL_IDNA_VARIANT_UTS46) : idn_to_ascii($matches[2]); - //If idn_to_ascii() fails, treat it like it doesn't exists + if ($domain !== FALSE) { $email = $account.'@'.$domain; @@ -1832,7 +1832,7 @@ class CI_Email { $domain = defined('INTL_IDNA_VARIANT_UTS46') ? idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46) : idn_to_ascii($domain); - //If idn_to_ascii() fails, treat it like it doesn't exists + if ($domain !== FALSE) { $email = $account.'@'.$domain; diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 5c1c2e2e8..e14dc3168 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1240,7 +1240,7 @@ class CI_Form_validation { $domain = defined('INTL_IDNA_VARIANT_UTS46') ? idn_to_ascii($matches[2], 0, INTL_IDNA_VARIANT_UTS46) : idn_to_ascii($matches[2]); - //If idn_to_ascii() fails, treat it like it doesn't exists + if ($domain !== FALSE) { $str = $matches[1].'@'.$domain; -- cgit v1.2.3-24-g4f1b From 1fd1494c709ced0b20252976c65145e21be046ee Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 12 Jun 2018 16:32:15 +0300 Subject: [ci skip] Correct an erroneous variable name from PR #5510 --- system/libraries/Email.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index d9da06057..e5d9706ac 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1020,7 +1020,7 @@ class CI_Email { if ($domain !== FALSE) { - $email = $account.'@'.$domain; + $email = $matches[1].'@'.$domain; } } -- cgit v1.2.3-24-g4f1b From 65d3bff26a8e6342604f18caac70548f164a904d Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Fri, 22 Jun 2018 16:44:07 +0800 Subject: Using null comparison instead of isset(). Signed-off-by: tianhe1986 --- system/core/Input.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/system/core/Input.php b/system/core/Input.php index 34f080899..81209d704 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -212,9 +212,8 @@ class CI_Input { */ public function post_get($index, $xss_clean = FALSE) { - return isset($_POST[$index]) - ? $this->post($index, $xss_clean) - : $this->get($index, $xss_clean); + $output = $this->post($index, $xss_clean); + return ($output !== NULL) ? $output : $this->get($index, $xss_clean); } // -------------------------------------------------------------------- @@ -228,9 +227,8 @@ class CI_Input { */ public function get_post($index, $xss_clean = FALSE) { - return isset($_GET[$index]) - ? $this->get($index, $xss_clean) - : $this->post($index, $xss_clean); + $output = $this->get($index, $xss_clean); + return ($output !== NULL) ? $output : $this->post($index, $xss_clean); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 8729b2f1e54ed19f18cf31ba5c11a2953a7e4274 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Fri, 22 Jun 2018 16:51:11 +0800 Subject: Adding unit test. Signed-off-by: tianhe1986 --- tests/codeigniter/core/Input_test.php | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/codeigniter/core/Input_test.php b/tests/codeigniter/core/Input_test.php index 80cb9a740..07a99e136 100644 --- a/tests/codeigniter/core/Input_test.php +++ b/tests/codeigniter/core/Input_test.php @@ -90,6 +90,23 @@ class Input_test extends CI_TestCase { // -------------------------------------------------------------------- + public function test_post_get_array_notation() + { + $_SERVER['REQUEST_METHOD'] = 'POST'; + $_POST['foo']['bar'] = 'baz'; + $barArray = array('bar' => 'baz'); + + $this->assertEquals('baz', $this->input->get_post('foo[bar]')); + $this->assertEquals($barArray, $this->input->get_post('foo[]')); + $this->assertNull($this->input->get_post('foo[baz]')); + + $this->assertEquals('baz', $this->input->post_get('foo[bar]')); + $this->assertEquals($barArray, $this->input->post_get('foo[]')); + $this->assertNull($this->input->post_get('foo[baz]')); + } + + // -------------------------------------------------------------------- + public function test_get_post() { $_SERVER['REQUEST_METHOD'] = 'GET'; @@ -100,6 +117,23 @@ class Input_test extends CI_TestCase { // -------------------------------------------------------------------- + public function test_get_post_array_notation() + { + $_SERVER['REQUEST_METHOD'] = 'GET'; + $_GET['foo']['bar'] = 'baz'; + $barArray = array('bar' => 'baz'); + + $this->assertEquals('baz', $this->input->get_post('foo[bar]')); + $this->assertEquals($barArray, $this->input->get_post('foo[]')); + $this->assertNull($this->input->get_post('foo[baz]')); + + $this->assertEquals('baz', $this->input->post_get('foo[bar]')); + $this->assertEquals($barArray, $this->input->post_get('foo[]')); + $this->assertNull($this->input->post_get('foo[baz]')); + } + + // -------------------------------------------------------------------- + public function test_cookie() { $_COOKIE['foo'] = 'bar'; -- cgit v1.2.3-24-g4f1b From 82584355c38abd18b00878c8f860ea4e7e60bf12 Mon Sep 17 00:00:00 2001 From: tianhe1986 Date: Tue, 26 Jun 2018 08:54:57 +0800 Subject: Using `isset`. Signed-off-by: tianhe1986 --- system/core/Input.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/core/Input.php b/system/core/Input.php index 81209d704..7f5f2e91d 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -213,7 +213,7 @@ class CI_Input { public function post_get($index, $xss_clean = FALSE) { $output = $this->post($index, $xss_clean); - return ($output !== NULL) ? $output : $this->get($index, $xss_clean); + return isset($output) ? $output : $this->get($index, $xss_clean); } // -------------------------------------------------------------------- @@ -228,7 +228,7 @@ class CI_Input { public function get_post($index, $xss_clean = FALSE) { $output = $this->get($index, $xss_clean); - return ($output !== NULL) ? $output : $this->post($index, $xss_clean); + return isset($output) ? $output : $this->post($index, $xss_clean); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 20f21fdd01032f94023243db4639f0dd1c1dd85d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sun, 22 Jul 2018 16:40:15 +0300 Subject: [ci skip] Add changelog entry for PR #5531 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 766da7587..39d172cbe 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -31,6 +31,7 @@ Release Date: Not Released - Removed previously deprecated method ``is_cli_request()`` (use :php:func:`is_cli()` instead). - Changed the ``set_cookie()`` method's default expiry time to 0 (expires when browser is closed). - Changed the ``set_cookie()`` method to delete the cookie if a negative expiry time is passed to it. + - Allowed usage of nested array keys in ``get_post()``, ``post_get()`` methods. - Libraries -- cgit v1.2.3-24-g4f1b From ec8f1231438bad55fa78ad838b6969f16e877e7f Mon Sep 17 00:00:00 2001 From: Achraf Almouloudi Date: Mon, 13 Aug 2018 02:45:32 +0100 Subject: Update encryption.rst --- user_guide_src/source/libraries/encryption.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/libraries/encryption.rst b/user_guide_src/source/libraries/encryption.rst index 8b4fd7121..833a56c09 100644 --- a/user_guide_src/source/libraries/encryption.rst +++ b/user_guide_src/source/libraries/encryption.rst @@ -90,7 +90,7 @@ key security so you may want to think carefully before using it for anything that requires high security, like storing credit card numbers. Your encryption key **must** be as long as the encyption algorithm in use -allows. For AES-128, that's 128 bits or 16 bytes (charcters) long. +allows. For AES-128, that's 128 bits or 16 bytes (characters) long. You will find a table below that shows the supported key lengths of different ciphers. @@ -582,4 +582,4 @@ Class Reference 'authentication' ); - // $hmac_key is a pseudo-random key with a length of 64 bytes \ No newline at end of file + // $hmac_key is a pseudo-random key with a length of 64 bytes -- cgit v1.2.3-24-g4f1b From a58e77e6032913972593ac1b22c18d756431efcf Mon Sep 17 00:00:00 2001 From: Achraf Almouloudi Date: Wed, 15 Aug 2018 16:30:16 +0100 Subject: Update changelog.rst --- user_guide_src/source/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 39d172cbe..18a973ac5 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -438,7 +438,7 @@ Bug fixes for 3.1.0 - Fixed a bug (#4562) - :doc:`Cache Library ` didn't check if ``Memcached::quit()`` is available before calling it. - Fixed a bug (#4563) - :doc:`Input Library ` method ``request_headers()`` ignores ``$xss_clean`` parameter value after first call. - Fixed a bug (#4605) - :doc:`Config Library ` method ``site_url()`` stripped trailing slashes from relative URIs passed to it. -- Fixed a bug (#4613) - :doc:`Email Library ` failed to send multiple emails via SMTP due to "already authenticated" errors when keep-alive is enabled. +- Fixed a bug (#4613) - :doc:`Email Library ` failed to send multiple emails via SMTP due to "already authenticated" errors when keep-alive is enabled. - Fixed a bug (#4633) - :doc:`Form Validation Library ` ignored multiple "callback" rules for empty, non-required fields. - Fixed a bug (#4637) - :doc:`Database ` method ``error()`` returned ``FALSE`` with the 'oci8' driver if there was no error. - Fixed a bug (#4647) - :doc:`Query Builder ` method ``count_all_results()`` doesn't take into account ``GROUP BY`` clauses while deciding whether to do a subquery or not. -- cgit v1.2.3-24-g4f1b From 06907eb02dfd45eb50d6efc8ff7de3a61e70b5d8 Mon Sep 17 00:00:00 2001 From: Manuel Figueroa Date: Thu, 16 Aug 2018 10:56:45 -0400 Subject: Fix grammar mistakes in cli.rst --- user_guide_src/source/general/cli.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/general/cli.rst b/user_guide_src/source/general/cli.rst index e4f57aefb..aaeb47116 100644 --- a/user_guide_src/source/general/cli.rst +++ b/user_guide_src/source/general/cli.rst @@ -65,8 +65,8 @@ If you did it right, you should see *Hello World!* printed. $ php index.php tools message "John Smith" -Here we are passing it a argument in the same way that URL parameters -work. "John Smith" is passed as a argument and output is:: +Here we are passing it an argument in the same way that URL parameters +work. "John Smith" is passed as an argument and the output is:: Hello John Smith! -- cgit v1.2.3-24-g4f1b From da55e5c5608cfc7ea1703e7b9b0357dfe10c5ab7 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 22 Aug 2018 14:41:45 +0300 Subject: [ci skip] Add exceptions for 2 error cases in FV set_rules() --- system/libraries/Form_validation.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index bea51648e..35c984b72 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -198,13 +198,14 @@ class CI_Form_validation { // No fields or no rules? Nothing to do... if ( ! is_string($field) OR $field === '' OR empty($rules)) { - return $this; + throw new RuntimeException('Form_validation: set_rules() called with an empty $rules parameter'); } elseif ( ! is_array($rules)) { // BC: Convert pipe-separated rules string to an array if ( ! is_string($rules)) { + throw new InvalidArgumentException('Form_validation: set_rules() expect $rules to be string or array; '.gettype($rules).' given'); return $this; } -- cgit v1.2.3-24-g4f1b From 8537680955fbc045bf8011a2915e18583a91d52f Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 22 Aug 2018 15:28:20 +0300 Subject: [ci skip] Drop a dead return statement --- system/libraries/Form_validation.php | 1 - 1 file changed, 1 deletion(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 35c984b72..24769417d 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -206,7 +206,6 @@ class CI_Form_validation { if ( ! is_string($rules)) { throw new InvalidArgumentException('Form_validation: set_rules() expect $rules to be string or array; '.gettype($rules).' given'); - return $this; } $rules = preg_split('/\|(?![^\[]*\])/', $rules); -- cgit v1.2.3-24-g4f1b From c0c9ebf077e23b18bf94225154671feab1369466 Mon Sep 17 00:00:00 2001 From: John de Kroon Date: Mon, 3 Sep 2018 11:24:45 +0200 Subject: Documented undocumented feature The 'none' option is a valid option, which was documented in the 2.x documentation. I added it since it is still supported in 3.x. --- user_guide_src/source/database/query_builder.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/user_guide_src/source/database/query_builder.rst b/user_guide_src/source/database/query_builder.rst index 860b34d4c..a33c7073b 100644 --- a/user_guide_src/source/database/query_builder.rst +++ b/user_guide_src/source/database/query_builder.rst @@ -358,13 +358,14 @@ searches. // WHERE `title` LIKE '%match%' ESCAPE '!' AND `body` LIKE '%match% ESCAPE '!' If you want to control where the wildcard (%) is placed, you can use - an optional third argument. Your options are 'before', 'after' and + an optional third argument. Your options are 'before', 'after', 'none' and 'both' (which is the default). :: $this->db->like('title', 'match', 'before'); // Produces: WHERE `title` LIKE '%match' ESCAPE '!' $this->db->like('title', 'match', 'after'); // Produces: WHERE `title` LIKE 'match%' ESCAPE '!' + $this->db->like('title', 'match', 'none'); // Produces: WHERE `title` LIKE 'match' ESCAPE '!' $this->db->like('title', 'match', 'both'); // Produces: WHERE `title` LIKE '%match%' ESCAPE '!' #. **Associative array method:** -- cgit v1.2.3-24-g4f1b From 5c9b27c07d17a75fd197c2dcdd57afbf94977196 Mon Sep 17 00:00:00 2001 From: tusharmalik Date: Mon, 10 Sep 2018 17:21:05 +0530 Subject: corrected the serial number of 'source/installation/upgrade_319' and changed the heading size --- user_guide_src/source/installation/upgrade_319.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/user_guide_src/source/installation/upgrade_319.rst b/user_guide_src/source/installation/upgrade_319.rst index 3b8da3367..db56cac2a 100644 --- a/user_guide_src/source/installation/upgrade_319.rst +++ b/user_guide_src/source/installation/upgrade_319.rst @@ -13,9 +13,9 @@ Replace all files and directories in your *system/* directory. .. note:: If you have any custom developed files in these directories, please make copies of them first. -******************************** -Step 3: Replace config/mimes.php -******************************** + +Step 2: Replace config/mimes.php +================================ This config file has received some updates. Please copy it to *application/config/mimes.php*. -- cgit v1.2.3-24-g4f1b From fb464f184cc06df7ecaad19ba73b9e73110c2b17 Mon Sep 17 00:00:00 2001 From: Paweł Kłopotek-Główczewski Date: Sun, 9 Dec 2018 19:32:10 +0100 Subject: Test if cache file is writable before unlink it --- system/libraries/Cache/drivers/Cache_file.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index 56dbb9974..cc6018787 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -276,7 +276,7 @@ class CI_Cache_file extends CI_Driver { if ($data['ttl'] > 0 && time() > $data['time'] + $data['ttl']) { - unlink($this->_cache_path.$id); + file_exists($this->_cache_path.$id) && unlink($this->_cache_path.$id); return FALSE; } -- cgit v1.2.3-24-g4f1b From 48d617d9fa3ff61bcba85b90d07effc653faeb8d Mon Sep 17 00:00:00 2001 From: Khaled Date: Sun, 9 Dec 2018 14:11:45 -0700 Subject: Add px to width and height for inline style The image's width and height are always more than 0; so, adding "px" after the width and height is necessary for HTML validation. --- system/helpers/captcha_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index b58a19091..f53c90517 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -352,7 +352,7 @@ if ( ! function_exists('create_captcha')) $img_src = 'data:image/png;base64,'.base64_encode($img_src); } - $img = ''.$img_alt.''; + $img = ''.$img_alt.''; ImageDestroy($im); return array('word' => $word, 'time' => $now, 'image' => $img, 'filename' => $img_filename); -- cgit v1.2.3-24-g4f1b From eb8f21e8bf051c1a5cba0a08a07fef5d10132750 Mon Sep 17 00:00:00 2001 From: Paweł Kłopotek-Główczewski Date: Wed, 12 Dec 2018 21:03:52 +0100 Subject: Fix tabs --- system/libraries/Cache/drivers/Cache_file.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index cc6018787..c93064cd8 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -276,7 +276,7 @@ class CI_Cache_file extends CI_Driver { if ($data['ttl'] > 0 && time() > $data['time'] + $data['ttl']) { - file_exists($this->_cache_path.$id) && unlink($this->_cache_path.$id); + file_exists($this->_cache_path.$id) && unlink($this->_cache_path.$id); return FALSE; } -- cgit v1.2.3-24-g4f1b From 4478a23f7a43af0f02f5134a23745585fd319c3c Mon Sep 17 00:00:00 2001 From: Paweł Kłopotek-Główczewski Date: Mon, 17 Dec 2018 21:10:44 +0100 Subject: Change comparison operator to assignment, which it should be. --- system/helpers/html_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 3a478bf26..cd430d7fe 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -370,7 +370,7 @@ if ( ! function_exists('meta')) { if ($meta['type'] === 'equiv') { - $meta['type'] === 'http-equiv'; + $meta['type'] = 'http-equiv'; } elseif ( ! in_array($meta['type'], $allowed_types, TRUE)) { -- cgit v1.2.3-24-g4f1b From b84304303dcf06acd3382c5bd846e7e537f00edf Mon Sep 17 00:00:00 2001 From: Ahmad Anbar Date: Mon, 24 Dec 2018 19:00:43 +0200 Subject: if we are not validating an array & the post data contains an array then nullify the post data for the field --- system/libraries/Form_validation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 24769417d..b53069d81 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -587,7 +587,7 @@ class CI_Form_validation { { if ($row['is_array'] === FALSE) { - isset($data[$field]) && $data[$field] = $row['postdata']; + isset($data[$field]) && $data[$field] = is_array($row['postdata']) ? NULL : $row['postdata']; } else { -- cgit v1.2.3-24-g4f1b From a549de169a98bb0a91d2161de3c10823b33946a2 Mon Sep 17 00:00:00 2001 From: Takahiro Nishino Date: Thu, 27 Dec 2018 11:51:38 +0900 Subject: Add PHP 7.3 tests on Travis --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index f84b6f331..963d2cd2f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ php: - 7.0 - 7.1 - 7.2 + - 7.3 - master - hhvm @@ -45,6 +46,8 @@ matrix: env: DB=mysql - php: 7.2 env: DB=mysql + - php: 7.3 + env: DB=mysql - php: master env: DB=mysql -- cgit v1.2.3-24-g4f1b From 8bb638e392f5991c05ec9a1e57b882213844dc6f Mon Sep 17 00:00:00 2001 From: Jim Parry Date: Wed, 26 Dec 2018 21:03:09 -0800 Subject: Update copyright date to 2019 --- index.php | 4 ++-- license.txt | 2 +- system/core/Benchmark.php | 4 ++-- system/core/CodeIgniter.php | 4 ++-- system/core/Common.php | 4 ++-- system/core/Config.php | 4 ++-- system/core/Controller.php | 4 ++-- system/core/Exceptions.php | 4 ++-- system/core/Hooks.php | 4 ++-- system/core/Input.php | 4 ++-- system/core/Lang.php | 4 ++-- system/core/Loader.php | 4 ++-- system/core/Log.php | 4 ++-- system/core/Model.php | 4 ++-- system/core/Output.php | 4 ++-- system/core/Router.php | 4 ++-- system/core/Security.php | 4 ++-- system/core/URI.php | 4 ++-- system/core/Utf8.php | 4 ++-- system/core/compat/hash.php | 4 ++-- system/core/compat/mbstring.php | 4 ++-- system/core/compat/password.php | 4 ++-- system/core/compat/standard.php | 4 ++-- system/database/DB.php | 4 ++-- system/database/DB_cache.php | 4 ++-- system/database/DB_driver.php | 4 ++-- system/database/DB_forge.php | 4 ++-- system/database/DB_query_builder.php | 4 ++-- system/database/DB_result.php | 4 ++-- system/database/DB_utility.php | 4 ++-- system/database/drivers/cubrid/cubrid_driver.php | 4 ++-- system/database/drivers/cubrid/cubrid_forge.php | 4 ++-- system/database/drivers/cubrid/cubrid_result.php | 4 ++-- system/database/drivers/cubrid/cubrid_utility.php | 4 ++-- system/database/drivers/ibase/ibase_driver.php | 4 ++-- system/database/drivers/ibase/ibase_forge.php | 4 ++-- system/database/drivers/ibase/ibase_result.php | 4 ++-- system/database/drivers/ibase/ibase_utility.php | 4 ++-- system/database/drivers/mssql/mssql_driver.php | 4 ++-- system/database/drivers/mssql/mssql_forge.php | 4 ++-- system/database/drivers/mssql/mssql_result.php | 4 ++-- system/database/drivers/mssql/mssql_utility.php | 4 ++-- system/database/drivers/mysql/mysql_driver.php | 4 ++-- system/database/drivers/mysql/mysql_forge.php | 4 ++-- system/database/drivers/mysql/mysql_result.php | 4 ++-- system/database/drivers/mysql/mysql_utility.php | 4 ++-- system/database/drivers/mysqli/mysqli_driver.php | 4 ++-- system/database/drivers/mysqli/mysqli_forge.php | 4 ++-- system/database/drivers/mysqli/mysqli_result.php | 4 ++-- system/database/drivers/mysqli/mysqli_utility.php | 4 ++-- system/database/drivers/oci8/oci8_driver.php | 4 ++-- system/database/drivers/oci8/oci8_forge.php | 4 ++-- system/database/drivers/oci8/oci8_result.php | 4 ++-- system/database/drivers/oci8/oci8_utility.php | 4 ++-- system/database/drivers/odbc/odbc_driver.php | 4 ++-- system/database/drivers/odbc/odbc_forge.php | 4 ++-- system/database/drivers/odbc/odbc_result.php | 4 ++-- system/database/drivers/odbc/odbc_utility.php | 4 ++-- system/database/drivers/pdo/pdo_driver.php | 4 ++-- system/database/drivers/pdo/pdo_forge.php | 4 ++-- system/database/drivers/pdo/pdo_result.php | 4 ++-- system/database/drivers/pdo/pdo_utility.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_4d_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_4d_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_informix_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_informix_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_oci_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_oci_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php | 4 ++-- system/database/drivers/postgre/postgre_driver.php | 4 ++-- system/database/drivers/postgre/postgre_forge.php | 4 ++-- system/database/drivers/postgre/postgre_result.php | 4 ++-- system/database/drivers/postgre/postgre_utility.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_driver.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_forge.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_result.php | 4 ++-- system/database/drivers/sqlite3/sqlite3_utility.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_driver.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_forge.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_result.php | 4 ++-- system/database/drivers/sqlsrv/sqlsrv_utility.php | 4 ++-- system/helpers/array_helper.php | 4 ++-- system/helpers/captcha_helper.php | 4 ++-- system/helpers/cookie_helper.php | 4 ++-- system/helpers/date_helper.php | 4 ++-- system/helpers/directory_helper.php | 4 ++-- system/helpers/download_helper.php | 4 ++-- system/helpers/file_helper.php | 4 ++-- system/helpers/form_helper.php | 4 ++-- system/helpers/html_helper.php | 4 ++-- system/helpers/inflector_helper.php | 4 ++-- system/helpers/language_helper.php | 4 ++-- system/helpers/number_helper.php | 4 ++-- system/helpers/path_helper.php | 4 ++-- system/helpers/security_helper.php | 4 ++-- system/helpers/string_helper.php | 4 ++-- system/helpers/text_helper.php | 4 ++-- system/helpers/typography_helper.php | 4 ++-- system/helpers/url_helper.php | 4 ++-- system/helpers/xml_helper.php | 4 ++-- system/language/english/calendar_lang.php | 4 ++-- system/language/english/date_lang.php | 4 ++-- system/language/english/db_lang.php | 4 ++-- system/language/english/email_lang.php | 4 ++-- system/language/english/form_validation_lang.php | 4 ++-- system/language/english/ftp_lang.php | 4 ++-- system/language/english/imglib_lang.php | 4 ++-- system/language/english/migration_lang.php | 4 ++-- system/language/english/number_lang.php | 4 ++-- system/language/english/pagination_lang.php | 4 ++-- system/language/english/profiler_lang.php | 4 ++-- system/language/english/unit_test_lang.php | 4 ++-- system/language/english/upload_lang.php | 4 ++-- system/libraries/Cache/Cache.php | 4 ++-- system/libraries/Cache/drivers/Cache_apc.php | 4 ++-- system/libraries/Cache/drivers/Cache_apcu.php | 4 ++-- system/libraries/Cache/drivers/Cache_dummy.php | 4 ++-- system/libraries/Cache/drivers/Cache_file.php | 4 ++-- system/libraries/Cache/drivers/Cache_memcached.php | 4 ++-- system/libraries/Cache/drivers/Cache_redis.php | 4 ++-- system/libraries/Cache/drivers/Cache_wincache.php | 4 ++-- system/libraries/Calendar.php | 4 ++-- system/libraries/Driver.php | 4 ++-- system/libraries/Email.php | 4 ++-- system/libraries/Encrypt.php | 4 ++-- system/libraries/Encryption.php | 4 ++-- system/libraries/Form_validation.php | 4 ++-- system/libraries/Ftp.php | 4 ++-- system/libraries/Image_lib.php | 4 ++-- system/libraries/Migration.php | 4 ++-- system/libraries/Pagination.php | 4 ++-- system/libraries/Parser.php | 4 ++-- system/libraries/Profiler.php | 4 ++-- system/libraries/Session/Session.php | 4 ++-- system/libraries/Session/Session_driver.php | 4 ++-- system/libraries/Session/drivers/Session_database_driver.php | 4 ++-- system/libraries/Session/drivers/Session_files_driver.php | 4 ++-- system/libraries/Session/drivers/Session_memcached_driver.php | 4 ++-- system/libraries/Session/drivers/Session_redis_driver.php | 4 ++-- system/libraries/Table.php | 4 ++-- system/libraries/Trackback.php | 4 ++-- system/libraries/Typography.php | 4 ++-- system/libraries/Unit_test.php | 4 ++-- system/libraries/Upload.php | 4 ++-- system/libraries/User_agent.php | 4 ++-- system/libraries/Xmlrpc.php | 4 ++-- system/libraries/Xmlrpcs.php | 4 ++-- system/libraries/Zip.php | 4 ++-- user_guide_src/source/conf.py | 4 ++-- user_guide_src/source/license.rst | 2 +- 167 files changed, 332 insertions(+), 332 deletions(-) diff --git a/index.php b/index.php index b093c2774..e7aab3b03 100755 --- a/index.php +++ b/index.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/license.txt b/license.txt index dcac58588..274306a1c 100644 --- a/license.txt +++ b/license.txt @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014 - 2018, British Columbia Institute of Technology +Copyright (c) 2014 - 2019, British Columbia Institute of Technology Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/system/core/Benchmark.php b/system/core/Benchmark.php index 60ac75217..014220a44 100644 --- a/system/core/Benchmark.php +++ b/system/core/Benchmark.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 3b597f3b9..9bf60a4ac 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Common.php b/system/core/Common.php index 3063c123b..fadc0a0b1 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Config.php b/system/core/Config.php index 631de749f..13cc087d0 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Controller.php b/system/core/Controller.php index 24a62c860..2bb157802 100644 --- a/system/core/Controller.php +++ b/system/core/Controller.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php index 8dc6a8270..e8e7f6c29 100644 --- a/system/core/Exceptions.php +++ b/system/core/Exceptions.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Hooks.php b/system/core/Hooks.php index 8ed351c1a..353e22e21 100644 --- a/system/core/Hooks.php +++ b/system/core/Hooks.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Input.php b/system/core/Input.php index 7f5f2e91d..053970b01 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Lang.php b/system/core/Lang.php index d8226d36c..2c8654dcf 100644 --- a/system/core/Lang.php +++ b/system/core/Lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Loader.php b/system/core/Loader.php index f1e4bcdaf..0710b1611 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Log.php b/system/core/Log.php index da78e7ec0..d651e8abe 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Model.php b/system/core/Model.php index 328f4af3f..4c497d21e 100644 --- a/system/core/Model.php +++ b/system/core/Model.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Output.php b/system/core/Output.php index ba6b1a3a0..f386d3ad4 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Router.php b/system/core/Router.php index 3f7090104..dcdd1ed1f 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Security.php b/system/core/Security.php index e35170b17..27b4db69d 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/URI.php b/system/core/URI.php index 26b2cc844..3670ef29d 100644 --- a/system/core/URI.php +++ b/system/core/URI.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/core/Utf8.php b/system/core/Utf8.php index 37ca26353..39954c428 100644 --- a/system/core/Utf8.php +++ b/system/core/Utf8.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/core/compat/hash.php b/system/core/compat/hash.php index 532c58494..8d905ad68 100644 --- a/system/core/compat/hash.php +++ b/system/core/compat/hash.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/core/compat/mbstring.php b/system/core/compat/mbstring.php index 63a24da08..41c86376c 100644 --- a/system/core/compat/mbstring.php +++ b/system/core/compat/mbstring.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/core/compat/password.php b/system/core/compat/password.php index c12bc5c87..f6517b46d 100644 --- a/system/core/compat/password.php +++ b/system/core/compat/password.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php index e448b24dc..31c39ca25 100644 --- a/system/core/compat/standard.php +++ b/system/core/compat/standard.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/DB.php b/system/database/DB.php index 7248039b4..dddcf758c 100644 --- a/system/database/DB.php +++ b/system/database/DB.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php index 2225dbf30..afcfc4cf9 100644 --- a/system/database/DB_cache.php +++ b/system/database/DB_cache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index a7ae9420e..b6ab71784 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index 58ec991f3..dfc8a41b6 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 6848afc01..296a2eed5 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_result.php b/system/database/DB_result.php index 6f48ef3ff..0dbac1633 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php index 6b8c95e98..c2edfc9f3 100644 --- a/system/database/DB_utility.php +++ b/system/database/DB_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php index 65e0bee14..b3b436fed 100644 --- a/system/database/drivers/cubrid/cubrid_driver.php +++ b/system/database/drivers/cubrid/cubrid_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/cubrid/cubrid_forge.php b/system/database/drivers/cubrid/cubrid_forge.php index afa6c3f93..69b53dd49 100644 --- a/system/database/drivers/cubrid/cubrid_forge.php +++ b/system/database/drivers/cubrid/cubrid_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/cubrid/cubrid_result.php b/system/database/drivers/cubrid/cubrid_result.php index e3d82f0f2..75d702558 100644 --- a/system/database/drivers/cubrid/cubrid_result.php +++ b/system/database/drivers/cubrid/cubrid_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/cubrid/cubrid_utility.php b/system/database/drivers/cubrid/cubrid_utility.php index eef708533..ccf794b75 100644 --- a/system/database/drivers/cubrid/cubrid_utility.php +++ b/system/database/drivers/cubrid/cubrid_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/ibase/ibase_driver.php b/system/database/drivers/ibase/ibase_driver.php index dace7cf8d..27e87d427 100644 --- a/system/database/drivers/ibase/ibase_driver.php +++ b/system/database/drivers/ibase/ibase_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/ibase/ibase_forge.php b/system/database/drivers/ibase/ibase_forge.php index 933479c20..29a3acf69 100644 --- a/system/database/drivers/ibase/ibase_forge.php +++ b/system/database/drivers/ibase/ibase_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/ibase/ibase_result.php b/system/database/drivers/ibase/ibase_result.php index 10555ebc0..86530973b 100644 --- a/system/database/drivers/ibase/ibase_result.php +++ b/system/database/drivers/ibase/ibase_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/ibase/ibase_utility.php b/system/database/drivers/ibase/ibase_utility.php index 4daec93d6..a80874924 100644 --- a/system/database/drivers/ibase/ibase_utility.php +++ b/system/database/drivers/ibase/ibase_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php index 0f5b893df..51352e314 100644 --- a/system/database/drivers/mssql/mssql_driver.php +++ b/system/database/drivers/mssql/mssql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mssql/mssql_forge.php b/system/database/drivers/mssql/mssql_forge.php index c462625fd..07b93c24d 100644 --- a/system/database/drivers/mssql/mssql_forge.php +++ b/system/database/drivers/mssql/mssql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php index 929dcd664..5d7d3bedc 100644 --- a/system/database/drivers/mssql/mssql_result.php +++ b/system/database/drivers/mssql/mssql_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php index 7957462cf..5c9941aca 100644 --- a/system/database/drivers/mssql/mssql_utility.php +++ b/system/database/drivers/mssql/mssql_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php index e427d235f..388a46c82 100644 --- a/system/database/drivers/mysql/mysql_driver.php +++ b/system/database/drivers/mysql/mysql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysql/mysql_forge.php b/system/database/drivers/mysql/mysql_forge.php index 87881d143..b69aa36b4 100644 --- a/system/database/drivers/mysql/mysql_forge.php +++ b/system/database/drivers/mysql/mysql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php index e8ff10137..842d7d399 100644 --- a/system/database/drivers/mysql/mysql_result.php +++ b/system/database/drivers/mysql/mysql_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php index 8460a0891..a54892975 100644 --- a/system/database/drivers/mysql/mysql_utility.php +++ b/system/database/drivers/mysql/mysql_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index db455050f..f67b52507 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysqli/mysqli_forge.php b/system/database/drivers/mysqli/mysqli_forge.php index 2d8bc704b..92b1e94d1 100644 --- a/system/database/drivers/mysqli/mysqli_forge.php +++ b/system/database/drivers/mysqli/mysqli_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php index 5b65a3163..0856eca4e 100644 --- a/system/database/drivers/mysqli/mysqli_result.php +++ b/system/database/drivers/mysqli/mysqli_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php index 9b7d3b8ca..606424655 100644 --- a/system/database/drivers/mysqli/mysqli_utility.php +++ b/system/database/drivers/mysqli/mysqli_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index d5ea14f12..a825c4a38 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 5de0ea321..20217f2b8 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php index 261a460f8..3da49aa76 100644 --- a/system/database/drivers/oci8/oci8_result.php +++ b/system/database/drivers/oci8/oci8_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php index 6d8122907..3a7261c15 100644 --- a/system/database/drivers/oci8/oci8_utility.php +++ b/system/database/drivers/oci8/oci8_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.4.1 diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php index cb34ce2da..72289bf9f 100644 --- a/system/database/drivers/odbc/odbc_driver.php +++ b/system/database/drivers/odbc/odbc_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/odbc/odbc_forge.php b/system/database/drivers/odbc/odbc_forge.php index 7e6b183b7..05f9c76d4 100644 --- a/system/database/drivers/odbc/odbc_forge.php +++ b/system/database/drivers/odbc/odbc_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/odbc/odbc_result.php b/system/database/drivers/odbc/odbc_result.php index 66681f5fa..a06ac4b9e 100644 --- a/system/database/drivers/odbc/odbc_result.php +++ b/system/database/drivers/odbc/odbc_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php index 3fb7ec926..78720108d 100644 --- a/system/database/drivers/odbc/odbc_utility.php +++ b/system/database/drivers/odbc/odbc_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index 4087ec4ff..c5d120fd3 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/pdo_forge.php b/system/database/drivers/pdo/pdo_forge.php index cf4584a56..e512d3d60 100644 --- a/system/database/drivers/pdo/pdo_forge.php +++ b/system/database/drivers/pdo/pdo_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php index c6216e8c7..03c0f9f9d 100644 --- a/system/database/drivers/pdo/pdo_result.php +++ b/system/database/drivers/pdo/pdo_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/pdo_utility.php b/system/database/drivers/pdo/pdo_utility.php index 8c2906547..6c40cf32e 100644 --- a/system/database/drivers/pdo/pdo_utility.php +++ b/system/database/drivers/pdo/pdo_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.1.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php index c5ab206df..2e39bb236 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php index 938163f73..306150b9a 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php index 88da3c77f..9a6b643fc 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php index cd83277b0..f2ee3f5ea 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php index d27def7ba..09dbdf08f 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php index bd8eca2a5..f38ac99ba 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php index dde3ef36f..2c49f1216 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php index 50d9d3b77..54752f153 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php index 1bb67766a..00654d7c0 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php index 3379ea25c..99d75b645 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php index 237e36537..114eb7470 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php index c1602acd1..1f4bcd1af 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php index afc27126d..01ba15c1c 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php index a4f6cac56..01595a603 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php index b30fa3d64..dba49585c 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index 32a82edde..0abda5930 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php index 0922b01d7..93a6420e5 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php index 24b469daf..47226d7a2 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php index 01b795d56..b05d473ee 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php index f8e6ba9c4..d7b751999 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php index 36bb46b9a..396d10e61 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php index cc7361c3f..545b2a3d8 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php index e98fb62bf..84109ae30 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php index 733837d22..b23c6d44e 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php index af3006daa..19a09490c 100644 --- a/system/database/drivers/postgre/postgre_driver.php +++ b/system/database/drivers/postgre/postgre_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php index 751a05138..418376ab4 100644 --- a/system/database/drivers/postgre/postgre_forge.php +++ b/system/database/drivers/postgre/postgre_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php index 5fbd146ee..b0054ddae 100644 --- a/system/database/drivers/postgre/postgre_result.php +++ b/system/database/drivers/postgre/postgre_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php index 0836f26e1..450aa36e4 100644 --- a/system/database/drivers/postgre/postgre_utility.php +++ b/system/database/drivers/postgre/postgre_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.0 diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php index fbdcd7987..14d8349f4 100644 --- a/system/database/drivers/sqlite3/sqlite3_driver.php +++ b/system/database/drivers/sqlite3/sqlite3_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlite3/sqlite3_forge.php b/system/database/drivers/sqlite3/sqlite3_forge.php index 06eddfe12..4019a9523 100644 --- a/system/database/drivers/sqlite3/sqlite3_forge.php +++ b/system/database/drivers/sqlite3/sqlite3_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlite3/sqlite3_result.php b/system/database/drivers/sqlite3/sqlite3_result.php index 0bad4194e..d656fed12 100644 --- a/system/database/drivers/sqlite3/sqlite3_result.php +++ b/system/database/drivers/sqlite3/sqlite3_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlite3/sqlite3_utility.php b/system/database/drivers/sqlite3/sqlite3_utility.php index 62f2f0e30..1bdf3ae37 100644 --- a/system/database/drivers/sqlite3/sqlite3_utility.php +++ b/system/database/drivers/sqlite3/sqlite3_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php index 3caf5a8d5..a22a8b316 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_driver.php +++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/database/drivers/sqlsrv/sqlsrv_forge.php b/system/database/drivers/sqlsrv/sqlsrv_forge.php index 778685259..90c3120a5 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_forge.php +++ b/system/database/drivers/sqlsrv/sqlsrv_forge.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/database/drivers/sqlsrv/sqlsrv_result.php b/system/database/drivers/sqlsrv/sqlsrv_result.php index 864fba144..e2649c666 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_result.php +++ b/system/database/drivers/sqlsrv/sqlsrv_result.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/database/drivers/sqlsrv/sqlsrv_utility.php b/system/database/drivers/sqlsrv/sqlsrv_utility.php index b5d2d1783..6dd01a990 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_utility.php +++ b/system/database/drivers/sqlsrv/sqlsrv_utility.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.3 diff --git a/system/helpers/array_helper.php b/system/helpers/array_helper.php index 0c2c1e66a..cb7eca68b 100644 --- a/system/helpers/array_helper.php +++ b/system/helpers/array_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index f53c90517..c3ecf9079 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php index d19dcfc06..d9724932e 100644 --- a/system/helpers/cookie_helper.php +++ b/system/helpers/cookie_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/date_helper.php b/system/helpers/date_helper.php index 995cf5ea1..6ee3c3119 100644 --- a/system/helpers/date_helper.php +++ b/system/helpers/date_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php index 0a668adfc..73777bfb5 100644 --- a/system/helpers/directory_helper.php +++ b/system/helpers/directory_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index b1a1b0232..4d7829640 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php index 6d6f7fc51..ebc863bbc 100644 --- a/system/helpers/file_helper.php +++ b/system/helpers/file_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index 7383e4cb8..7a2dadaf3 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 3a478bf26..ca9e7f923 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index 2682649e9..04f2ac9d2 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/language_helper.php b/system/helpers/language_helper.php index c6862e812..2cefcc277 100644 --- a/system/helpers/language_helper.php +++ b/system/helpers/language_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index 68c77b496..15a53ff72 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/path_helper.php b/system/helpers/path_helper.php index 44f750fbf..543e4c078 100644 --- a/system/helpers/path_helper.php +++ b/system/helpers/path_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/security_helper.php b/system/helpers/security_helper.php index fb7be1ce8..dcf5b8b58 100644 --- a/system/helpers/security_helper.php +++ b/system/helpers/security_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/string_helper.php b/system/helpers/string_helper.php index 5bf387a60..7738bf97f 100644 --- a/system/helpers/string_helper.php +++ b/system/helpers/string_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/text_helper.php b/system/helpers/text_helper.php index 46b0faba5..e1c5e246e 100644 --- a/system/helpers/text_helper.php +++ b/system/helpers/text_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/typography_helper.php b/system/helpers/typography_helper.php index 867e4fae8..d308a57d5 100644 --- a/system/helpers/typography_helper.php +++ b/system/helpers/typography_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index f99343ff1..6a959f0e6 100644 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/helpers/xml_helper.php b/system/helpers/xml_helper.php index 3ded1a187..2639956fe 100644 --- a/system/helpers/xml_helper.php +++ b/system/helpers/xml_helper.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/calendar_lang.php b/system/language/english/calendar_lang.php index 4d820aff3..ce838142e 100644 --- a/system/language/english/calendar_lang.php +++ b/system/language/english/calendar_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/date_lang.php b/system/language/english/date_lang.php index 2735a765d..aa796b89f 100644 --- a/system/language/english/date_lang.php +++ b/system/language/english/date_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/db_lang.php b/system/language/english/db_lang.php index bda8dd060..4a680146d 100644 --- a/system/language/english/db_lang.php +++ b/system/language/english/db_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/email_lang.php b/system/language/english/email_lang.php index ea3f98cf8..df0fd29ce 100644 --- a/system/language/english/email_lang.php +++ b/system/language/english/email_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index 7c7360a36..e7215a066 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/ftp_lang.php b/system/language/english/ftp_lang.php index 23097121c..70f5b086d 100644 --- a/system/language/english/ftp_lang.php +++ b/system/language/english/ftp_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/imglib_lang.php b/system/language/english/imglib_lang.php index 55df7183c..c34b087c7 100644 --- a/system/language/english/imglib_lang.php +++ b/system/language/english/imglib_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/migration_lang.php b/system/language/english/migration_lang.php index e2fa2bd58..967d59cce 100644 --- a/system/language/english/migration_lang.php +++ b/system/language/english/migration_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/language/english/number_lang.php b/system/language/english/number_lang.php index 2f3579bbc..f1e50bd15 100644 --- a/system/language/english/number_lang.php +++ b/system/language/english/number_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/pagination_lang.php b/system/language/english/pagination_lang.php index 3cc452156..1d113dfb6 100644 --- a/system/language/english/pagination_lang.php +++ b/system/language/english/pagination_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/profiler_lang.php b/system/language/english/profiler_lang.php index 7461cfb96..157296725 100644 --- a/system/language/english/profiler_lang.php +++ b/system/language/english/profiler_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/unit_test_lang.php b/system/language/english/unit_test_lang.php index eb7f4a348..b5a9cc4da 100644 --- a/system/language/english/unit_test_lang.php +++ b/system/language/english/unit_test_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/language/english/upload_lang.php b/system/language/english/upload_lang.php index 924773c27..f5158a3f5 100644 --- a/system/language/english/upload_lang.php +++ b/system/language/english/upload_lang.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Cache/Cache.php b/system/libraries/Cache/Cache.php index 5f1d86f01..b12417660 100644 --- a/system/libraries/Cache/Cache.php +++ b/system/libraries/Cache/Cache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/libraries/Cache/drivers/Cache_apc.php b/system/libraries/Cache/drivers/Cache_apc.php index 598c073a5..8da8854ee 100644 --- a/system/libraries/Cache/drivers/Cache_apc.php +++ b/system/libraries/Cache/drivers/Cache_apc.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index b9e9b6cd7..0d84f8ee3 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.2.0 diff --git a/system/libraries/Cache/drivers/Cache_dummy.php b/system/libraries/Cache/drivers/Cache_dummy.php index d82b38009..fdb9042ef 100644 --- a/system/libraries/Cache/drivers/Cache_dummy.php +++ b/system/libraries/Cache/drivers/Cache_dummy.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php index c93064cd8..bde35141e 100644 --- a/system/libraries/Cache/drivers/Cache_file.php +++ b/system/libraries/Cache/drivers/Cache_file.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_memcached.php b/system/libraries/Cache/drivers/Cache_memcached.php index 17d205df6..24969e0bf 100644 --- a/system/libraries/Cache/drivers/Cache_memcached.php +++ b/system/libraries/Cache/drivers/Cache_memcached.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0 diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 55147005d..3bc3ccd6c 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Cache/drivers/Cache_wincache.php b/system/libraries/Cache/drivers/Cache_wincache.php index e22a8b2f0..e19c6ca99 100644 --- a/system/libraries/Cache/drivers/Cache_wincache.php +++ b/system/libraries/Cache/drivers/Cache_wincache.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php index 314ef66c9..a6bdae50a 100644 --- a/system/libraries/Calendar.php +++ b/system/libraries/Calendar.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Driver.php b/system/libraries/Driver.php index d6a30024f..7e6cf4fae 100644 --- a/system/libraries/Driver.php +++ b/system/libraries/Driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Email.php b/system/libraries/Email.php index e5d9706ac..1912e0442 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php index 17f4f6b7a..7ed185f1b 100644 --- a/system/libraries/Encrypt.php +++ b/system/libraries/Encrypt.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Encryption.php b/system/libraries/Encryption.php index fd6df9a7c..fd858cb29 100644 --- a/system/libraries/Encryption.php +++ b/system/libraries/Encryption.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 24769417d..98f79beb4 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php index e6cf05baa..4f0f5dfb3 100644 --- a/system/libraries/Ftp.php +++ b/system/libraries/Ftp.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index a41cd8850..9cd0d1dfa 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Migration.php b/system/libraries/Migration.php index d7550c918..1b7808923 100644 --- a/system/libraries/Migration.php +++ b/system/libraries/Migration.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 0994b84ea..11d63fe50 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Parser.php b/system/libraries/Parser.php index 874a49d1e..d3c6500ae 100644 --- a/system/libraries/Parser.php +++ b/system/libraries/Parser.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index 2e0b4661c..77af7b99b 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index 04855f65a..dfd0f432e 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 2.0.0 diff --git a/system/libraries/Session/Session_driver.php b/system/libraries/Session/Session_driver.php index 6ed365959..ed0f0cd82 100644 --- a/system/libraries/Session/Session_driver.php +++ b/system/libraries/Session/Session_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_database_driver.php b/system/libraries/Session/drivers/Session_database_driver.php index 1a0514b53..c626093f9 100644 --- a/system/libraries/Session/drivers/Session_database_driver.php +++ b/system/libraries/Session/drivers/Session_database_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_files_driver.php b/system/libraries/Session/drivers/Session_files_driver.php index 4a86ec9d6..a2d25cc8f 100644 --- a/system/libraries/Session/drivers/Session_files_driver.php +++ b/system/libraries/Session/drivers/Session_files_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index 3bde6514e..7e026ad52 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 0562301b2..6020a9ef9 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 3.0.0 diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 3c8cb05c9..055512698 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 diff --git a/system/libraries/Trackback.php b/system/libraries/Trackback.php index a306c244a..07f066d01 100644 --- a/system/libraries/Trackback.php +++ b/system/libraries/Trackback.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php index e0ce4e396..e67138c1a 100644 --- a/system/libraries/Typography.php +++ b/system/libraries/Typography.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Unit_test.php b/system/libraries/Unit_test.php index c3e4762bf..631d583ba 100644 --- a/system/libraries/Unit_test.php +++ b/system/libraries/Unit_test.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.3.1 diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 982959c75..8c891cff6 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/User_agent.php b/system/libraries/User_agent.php index 8255965fd..a70511fc3 100644 --- a/system/libraries/User_agent.php +++ b/system/libraries/User_agent.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 4500fdada..ffe0813f7 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php index 0909c2bdb..e70b80397 100644 --- a/system/libraries/Xmlrpcs.php +++ b/system/libraries/Xmlrpcs.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php index cc8045692..094f4c802 100644 --- a/system/libraries/Zip.php +++ b/system/libraries/Zip.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2018, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,7 +29,7 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2018, British Columbia Institute of Technology (https://bcit.ca/) + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 diff --git a/user_guide_src/source/conf.py b/user_guide_src/source/conf.py index f59660886..9be656d8e 100644 --- a/user_guide_src/source/conf.py +++ b/user_guide_src/source/conf.py @@ -41,7 +41,7 @@ master_doc = 'index' # General information about the project. project = u'CodeIgniter' -copyright = u'2014 - 2018, British Columbia Institute of Technology' +copyright = u'2014 - 2019, British Columbia Institute of Technology' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -229,7 +229,7 @@ man_pages = [ epub_title = u'CodeIgniter' epub_author = u'British Columbia Institute of Technology' epub_publisher = u'British Columbia Institute of Technology' -epub_copyright = u'2014 - 2018, British Columbia Institute of Technology' +epub_copyright = u'2014 - 2019, British Columbia Institute of Technology' # The language of the text. It defaults to the language option # or en if the language is not set. diff --git a/user_guide_src/source/license.rst b/user_guide_src/source/license.rst index d65b56431..3752307cf 100644 --- a/user_guide_src/source/license.rst +++ b/user_guide_src/source/license.rst @@ -2,7 +2,7 @@ The MIT License (MIT) ##################### -Copyright (c) 2014 - 2018, British Columbia Institute of Technology +Copyright (c) 2014 - 2019, British Columbia Institute of Technology Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal -- cgit v1.2.3-24-g4f1b From 67563c64025085e61598a83fef3e25bef38b32c4 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 8 Jan 2019 16:48:01 +0200 Subject: [ci skip] Fix #5674 --- system/helpers/captcha_helper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index c3ecf9079..94365adb5 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -83,6 +83,8 @@ if ( ! function_exists('create_captcha')) ) ); + $now = microtime(TRUE); + foreach ($defaults as $key => $val) { if ( ! is_array($data) && empty($$key)) @@ -110,8 +112,6 @@ if ( ! function_exists('create_captcha')) /** * Remove old images */ - $now = microtime(TRUE); - $current_dir = @opendir($img_path); while ($filename = @readdir($current_dir)) { -- cgit v1.2.3-24-g4f1b From 1c0e6cb695880bfb1ec0cc5a662e89305d36a5ca Mon Sep 17 00:00:00 2001 From: Albert Leao Date: Sun, 13 Jan 2019 00:40:30 -0500 Subject: Added mobile google bot to user agents --- application/config/user_agents.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/config/user_agents.php b/application/config/user_agents.php index 12585a065..9aa403eca 100644 --- a/application/config/user_agents.php +++ b/application/config/user_agents.php @@ -111,6 +111,7 @@ $mobiles = array( // Phones and Manufacturers 'motorola' => 'Motorola', 'nokia' => 'Nokia', + 'nexus' => 'Nexus', 'palm' => 'Palm', 'iphone' => 'Apple iPhone', 'ipad' => 'iPad', -- cgit v1.2.3-24-g4f1b From d14d85559266ab16b2261a10ab024276b3f3c226 Mon Sep 17 00:00:00 2001 From: jonsmith1982 Date: Mon, 28 Jan 2019 12:17:39 +0000 Subject: fixes #5648 Signed-off-by: jonsmith1982 --- application/config/config.php | 11 +++++++++++ system/core/Log.php | 12 +++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/application/config/config.php b/application/config/config.php index 782b19c74..6710a4b88 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -226,6 +226,17 @@ $config['log_threshold'] = 0; */ $config['log_path'] = ''; +/* +|-------------------------------------------------------------------------- +| Error Logging FILENAME +|-------------------------------------------------------------------------- +| +| Leave this BLANK unless you would like to set something other than the default +| 'log-'.date('Y-m-d') filename. No DIRECTORY_SEPARATOR(s) or file extension +| +*/ +$config['log_file'] = ''; + /* |-------------------------------------------------------------------------- | Log File Extension diff --git a/system/core/Log.php b/system/core/Log.php index d651e8abe..01407cfcf 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -54,6 +54,13 @@ class CI_Log { * @var string */ protected $_log_path; + + /** + * Filename of log + * + * @var string + */ + protected $_log_file; /** * File permissions @@ -127,6 +134,9 @@ class CI_Log { $this->_log_path = ($config['log_path'] !== '') ? rtrim($config['log_path'], '/\\').DIRECTORY_SEPARATOR : APPPATH.'logs'.DIRECTORY_SEPARATOR; + $this->_log_file = (isset($config['log_file']) && $config['log_file'] !== '') + ? $config['log_file'] : 'log-'.date('Y-m-d'); + $this->_file_ext = (isset($config['log_file_extension']) && $config['log_file_extension'] !== '') ? ltrim($config['log_file_extension'], '.') : 'php'; @@ -184,7 +194,7 @@ class CI_Log { return FALSE; } - $filepath = $this->_log_path.'log-'.date('Y-m-d').'.'.$this->_file_ext; + $filepath = $this->_log_path.$this->_log_file.'.'.$this->_file_ext; $message = ''; if ( ! file_exists($filepath)) -- cgit v1.2.3-24-g4f1b From 718b7c9dfb24ceb666eeeffaf63df5385ec28b71 Mon Sep 17 00:00:00 2001 From: Lohith J Date: Fri, 8 Feb 2019 13:46:40 +0530 Subject: corrected grammar --- application/config/config.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index 782b19c74..29a40c81d 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -13,9 +13,9 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | | WARNING: You MUST set this value! | -| If it is not set, then CodeIgniter will try guess the protocol and path -| your installation, but due to security concerns the hostname will be set -| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise. +| If it is not set, then CodeIgniter will try to guess the protocol and +| path your installation, but due to security concerns the hostname will +| be set to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise. | The auto-detection mechanism exists only for convenience during | development and MUST NOT be used in production! | -- cgit v1.2.3-24-g4f1b From b046d9751a1df09fe95e1773c770eb5e91e100d3 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Tue, 12 Feb 2019 17:34:11 +0900 Subject: feat: add _null property --- system/database/drivers/oci8/oci8_forge.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 20217f2b8..2f491d8f4 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -81,6 +81,13 @@ class CI_DB_oci8_forge extends CI_DB_forge { */ protected $_unsigned = FALSE; + /** + * NULL value representation in CREATE/ALTER TABLE statements + * + * @var string + */ + protected $_null = 'NULL'; + // -------------------------------------------------------------------- /** -- cgit v1.2.3-24-g4f1b From 38291e8e44ca5ccc6273d310127db332ace8f84a Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 14 Feb 2019 19:07:13 +0200 Subject: Close #4186, #5631, #5668 --- system/database/DB_query_builder.php | 25 ++++++++++--------------- user_guide_src/source/changelog.rst | 1 + 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 296a2eed5..eca9fb38b 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -717,7 +717,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - public function where_in($key = NULL, $values = NULL, $escape = NULL) + public function where_in($key, array $values, $escape = NULL) { return $this->_wh_in('qb_where', $key, $values, FALSE, 'AND ', $escape); } @@ -735,7 +735,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - public function or_where_in($key = NULL, $values = NULL, $escape = NULL) + public function or_where_in($key, array $values, $escape = NULL) { return $this->_wh_in('qb_where', $key, $values, FALSE, 'OR ', $escape); } @@ -753,7 +753,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - public function where_not_in($key = NULL, $values = NULL, $escape = NULL) + public function where_not_in($key, array $values, $escape = NULL) { return $this->_wh_in('qb_where', $key, $values, TRUE, 'AND ', $escape); } @@ -771,7 +771,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - public function or_where_not_in($key = NULL, $values = NULL, $escape = NULL) + public function or_where_not_in($key, array $values, $escape = NULL) { return $this->_wh_in('qb_where', $key, $values, TRUE, 'OR ', $escape); } @@ -789,7 +789,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - public function having_in($key = NULL, $values = NULL, $escape = NULL) + public function having_in($key, array $values, $escape = NULL) { return $this->_wh_in('qb_having', $key, $values, FALSE, 'AND ', $escape); } @@ -807,7 +807,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - public function or_having_in($key = NULL, $values = NULL, $escape = NULL) + public function or_having_in($key, array $values, $escape = NULL) { return $this->_wh_in('qb_having', $key, $values, FALSE, 'OR ', $escape); } @@ -825,7 +825,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - public function having_not_in($key = NULL, $values = NULL, $escape = NULL) + public function having_not_in($key, array $values, $escape = NULL) { return $this->_wh_in('qb_having', $key, $values, TRUE, 'AND ', $escape); } @@ -843,7 +843,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - public function or_having_not_in($key = NULL, $values = NULL, $escape = NULL) + public function or_having_not_in($key, array $values, $escape = NULL) { return $this->_wh_in('qb_having', $key, $values, TRUE, 'OR ', $escape); } @@ -870,20 +870,15 @@ abstract class CI_DB_query_builder extends CI_DB_driver { * @param bool $escape * @return CI_DB_query_builder */ - protected function _wh_in($qb_key, $key = NULL, $values = NULL, $not = FALSE, $type = 'AND ', $escape = NULL) + protected function _wh_in($qb_key, $key, array $values, $not = FALSE, $type = 'AND ', $escape = NULL) { $qb_cache_key = ($qb_key === 'qb_having') ? 'qb_cache_having' : 'qb_cache_where'; - if ($key === NULL OR $values === NULL) + if ($key === NULL) { return $this; } - if ( ! is_array($values)) - { - $values = array($values); - } - is_bool($escape) OR $escape = $this->_protect_identifiers; $not = ($not) ? ' NOT' : ''; diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 5a99dfe9c..7fcd72e8a 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -87,6 +87,7 @@ Release Date: Not Released - :doc:`Query Builder `: - Added methods ``having_in()``, ``or_having_in()``, ``not_having_in()``, ``or_not_having_in()``. + - Updated methods ``where_in()``, ``or_where_in()``, ``not_where_in()``, ``or_not_where_in()`` to reject non-array inputs for the second parameter. - Updated method ``join()`` to allow accepting ``NATURAL`` clauses in its third parameter. - Updated logic to allow dots in alias names. -- cgit v1.2.3-24-g4f1b From 5d30345236fbef3303d6852a5b28eab80c43fd18 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 14 Feb 2019 19:13:14 +0200 Subject: [ci skip] Updated QB reference docs for 38291e8e44ca5ccc6273d310127db332ace8f84a and #5017 --- user_guide_src/source/database/query_builder.rst | 52 ++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/user_guide_src/source/database/query_builder.rst b/user_guide_src/source/database/query_builder.rst index a33c7073b..3bc9ad8fb 100644 --- a/user_guide_src/source/database/query_builder.rst +++ b/user_guide_src/source/database/query_builder.rst @@ -1281,7 +1281,7 @@ Class Reference Generates the WHERE portion of the query. Separates multiple calls with 'OR'. - .. php:method:: or_where_in([$key = NULL[, $values = NULL[, $escape = NULL]]]) + .. php:method:: or_where_in([$key[, array $values[, $escape = NULL]]]) :param string $key: The field to search :param array $values: The values searched on @@ -1292,7 +1292,7 @@ Class Reference Generates a WHERE field IN('item', 'item') SQL query, joined with 'OR' if appropriate. - .. php:method:: or_where_not_in([$key = NULL[, $values = NULL[, $escape = NULL]]]) + .. php:method:: or_where_not_in([$key[, array $values[, $escape = NULL]]]) :param string $key: The field to search :param array $values: The values searched on @@ -1303,7 +1303,7 @@ Class Reference Generates a WHERE field NOT IN('item', 'item') SQL query, joined with 'OR' if appropriate. - .. php:method:: where_in([$key = NULL[, $values = NULL[, $escape = NULL]]]) + .. php:method:: where_in([$key[, array $values[, $escape = NULL]]]) :param string $key: Name of field to examine :param array $values: Array of target values @@ -1314,7 +1314,7 @@ Class Reference Generates a WHERE field IN('item', 'item') SQL query, joined with 'AND' if appropriate. - .. php:method:: where_not_in([$key = NULL[, $values = NULL[, $escape = NULL]]]) + .. php:method:: where_not_in([$key[, array $values[, $escape = NULL]]]) :param string $key: Name of field to examine :param array $values: Array of target values @@ -1424,6 +1424,50 @@ Class Reference Adds a HAVING clause to a query, separating multiple calls with OR. + .. php:method:: or_having_in([$key[, array $values[, $escape = NULL]]]) + + :param string $key: The field to search + :param array $values: The values searched on + :param bool $escape: Whether to escape values and identifiers + :returns: DB_query_builder instance + :rtype: object + + Generates a HAVING field IN('item', 'item') SQL query, + joined with 'OR' if appropriate. + + .. php:method:: or_having_not_in([$key[, array $values[, $escape = NULL]]]) + + :param string $key: The field to search + :param array $values: The values searched on + :param bool $escape: Whether to escape values and identifiers + :returns: DB_query_builder instance + :rtype: object + + Generates a HAVING field NOT IN('item', 'item') SQL query, + joined with 'OR' if appropriate. + + .. php:method:: having_in([$key[, array $values[, $escape = NULL]]]) + + :param string $key: Name of field to examine + :param array $values: Array of target values + :param bool $escape: Whether to escape values and identifiers + :returns: DB_query_builder instance + :rtype: object + + Generates a HAVING field IN('item', 'item') SQL query, + joined with 'AND' if appropriate. + + .. php:method:: having_not_in([$key[, array $values[, $escape = NULL]]]) + + :param string $key: Name of field to examine + :param array $values: Array of target values + :param bool $escape: Whether to escape values and identifiers + :returns: DB_query_builder instance + :rtype: object + + Generates a HAVING field NOT IN('item', 'item') SQL query, + joined with 'AND' if appropriate. + .. php:method:: group_by($by[, $escape = NULL]) :param mixed $by: Field(s) to group by; string or array -- cgit v1.2.3-24-g4f1b From 493ed6c472af3270cf995647a02c385c7f0500b3 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 14 Feb 2019 19:27:06 +0200 Subject: [ci skip] More on #4186 --- system/database/DB_query_builder.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index eca9fb38b..12949c7dc 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -874,9 +874,14 @@ abstract class CI_DB_query_builder extends CI_DB_driver { { $qb_cache_key = ($qb_key === 'qb_having') ? 'qb_cache_having' : 'qb_cache_where'; - if ($key === NULL) + if (empty($key) OR ! is_string($key)) { - return $this; + throw new InvalidArgumentException(sprintf('%s() expects $key to be a non-empty string', debug_backtrace(0, 2)[1]['function'])); + } + + if (empty($values)) + { + throw new InvalidArgumentException(sprintf('%s() expects $values to be a non-empty array', debug_backtrace(0, 2)[1]['function'])); } is_bool($escape) OR $escape = $this->_protect_identifiers; -- cgit v1.2.3-24-g4f1b From 2fbe1fa8e6515f603ac788f2f49c83ba24f485eb Mon Sep 17 00:00:00 2001 From: Michael Long Date: Sat, 2 Mar 2019 18:36:17 +0800 Subject: Resolve race condition in redis driven session key get_lock --- system/libraries/Session/drivers/Session_redis_driver.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 07511e555..7262a2300 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -389,8 +389,9 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle if ( ! $result) { - log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); - return FALSE; + // Sleep for 0.1s to wait for lock releases. + usleep(100000); + continue; } $this->_lock_key = $lock_key; -- cgit v1.2.3-24-g4f1b From 62277ad462d1054a98ccae2073f383f81698b3f5 Mon Sep 17 00:00:00 2001 From: Achraf Almouloudi Date: Tue, 12 Mar 2019 12:00:40 +0000 Subject: Corrected example mistake Corrected an example mistake where the input script tries to echo "

      fieldset content here

      \n" but the result in "Produces" is "

      form content here

      " which is clearly an inconsistant result. --- user_guide_src/source/helpers/form_helper.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/helpers/form_helper.rst b/user_guide_src/source/helpers/form_helper.rst index 43a20e18c..50cda2ed4 100644 --- a/user_guide_src/source/helpers/form_helper.rst +++ b/user_guide_src/source/helpers/form_helper.rst @@ -380,7 +380,7 @@ The following functions are available:
      Address Information -

      form content here

      +

      fieldset content here

      */ @@ -401,7 +401,7 @@ The following functions are available:
      Address Information -

      form content here

      +

      fieldset content here

      */ -- cgit v1.2.3-24-g4f1b From 7f8e0cd333176ee943e0c46eb9fe10d31b70d3ce Mon Sep 17 00:00:00 2001 From: Michael Long Date: Fri, 15 Mar 2019 10:47:49 +0800 Subject: Refactor behaviors with different ttl of lock_key --- system/libraries/Session/drivers/Session_redis_driver.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 7262a2300..c9a98b822 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -383,16 +383,16 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle continue; } - $result = ($ttl === -2) - ? $this->_redis->set($lock_key, time(), array('nx', 'ex' => 300)) - : $this->_redis->setex($lock_key, 300, time()); - - if ( ! $result) + if ($ttl === -2 && ! $this->_redis->set($lock_key, time(), array('nx', 'ex' => 300))) { - // Sleep for 0.1s to wait for lock releases. - usleep(100000); + // Sleep for 1s to wait for lock releases. + sleep(1); continue; } + elseif ($ttl === -1 && ! $this->_redis->setex($lock_key, 300, time())) { + log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); + return FALSE; + } $this->_lock_key = $lock_key; break; -- cgit v1.2.3-24-g4f1b From d3bdd3c973508ff89e6f6789521f2e2476099cfa Mon Sep 17 00:00:00 2001 From: Michael Long Date: Fri, 15 Mar 2019 11:38:30 +0800 Subject: Fix code style --- system/libraries/Session/drivers/Session_redis_driver.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index c9a98b822..08b299f9c 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -389,7 +389,8 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle sleep(1); continue; } - elseif ($ttl === -1 && ! $this->_redis->setex($lock_key, 300, time())) { + elseif ($ttl === -1 && ! $this->_redis->setex($lock_key, 300, time())) + { log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); return FALSE; } -- cgit v1.2.3-24-g4f1b From 06739bdc05f2fa5fc92db0675ec48f7374ae50cf Mon Sep 17 00:00:00 2001 From: Michael Long Date: Sat, 16 Mar 2019 00:17:06 +0800 Subject: Remove unnecessary code --- system/libraries/Session/drivers/Session_redis_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 08b299f9c..c90e94bd3 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -389,7 +389,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle sleep(1); continue; } - elseif ($ttl === -1 && ! $this->_redis->setex($lock_key, 300, time())) + elseif ( ! $this->_redis->setex($lock_key, 300, time())) { log_message('error', 'Session: Error while trying to obtain lock for '.$this->_key_prefix.$session_id); return FALSE; -- cgit v1.2.3-24-g4f1b From ae75be8cea6c4ac6fde85ff009c211fd0e8f3747 Mon Sep 17 00:00:00 2001 From: kevin moore Date: Sat, 16 Mar 2019 09:17:23 -0400 Subject: Punctuation error fixed (add apostrophe). --- user_guide_src/source/libraries/form_validation.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index fd2f3af94..a44310440 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -45,7 +45,7 @@ and tedious to implement. Form Validation Tutorial ************************ -What follows is a "hands on" tutorial for implementing CodeIgniters Form +What follows is a "hands on" tutorial for implementing CodeIgniter's Form Validation. In order to implement form validation you'll need three things: -- cgit v1.2.3-24-g4f1b From c7e8cf88b9759c16fd180fc037e5bf38e3160449 Mon Sep 17 00:00:00 2001 From: Muhammad Umer Farooq Date: Sun, 24 Mar 2019 10:58:09 +0500 Subject: Update user_agents.php --- application/config/user_agents.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/config/user_agents.php b/application/config/user_agents.php index 9aa403eca..3523528bf 100644 --- a/application/config/user_agents.php +++ b/application/config/user_agents.php @@ -152,6 +152,7 @@ $mobiles = array( 'wii' => 'Nintendo Wii', 'open web' => 'Open Web', 'openweb' => 'OpenWeb', + 'meizu' => 'Meizu', // Operating Systems 'android' => 'Android', -- cgit v1.2.3-24-g4f1b From d8c7f8d190b9215959b68a5272c76e9b79371999 Mon Sep 17 00:00:00 2001 From: Emrul Easir Date: Fri, 29 Mar 2019 03:29:17 +0600 Subject: NOT BETWEEN syntax error DB where() issue solved While creating a SQL query string using query builder, NOT BETWEEN operator adds a syntax error, Solution added to _has_operator() and _get_operator() method. --- system/database/DB_driver.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index b4f16b905..e901f2948 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -1476,7 +1476,7 @@ abstract class CI_DB_driver { */ protected function _has_operator($str) { - return (bool) preg_match('/(<|>|!|=|\sIS NULL|\sIS NOT NULL|\sEXISTS|\sBETWEEN|\sLIKE|\sIN\s*\(|\s)/i', trim($str)); + return (bool) preg_match('/(<|>|!|=|\sIS NULL|\sIS NOT NULL|\sEXISTS|\sBETWEEN|\s NOT BETWEEN|\sLIKE|\sIN\s*\(|\s)/i', trim($str)); } // -------------------------------------------------------------------- @@ -1505,6 +1505,7 @@ abstract class CI_DB_driver { '\s+EXISTS\s*\(.*\)', // EXISTS(sql) '\s+NOT EXISTS\s*\(.*\)', // NOT EXISTS(sql) '\s+BETWEEN\s+', // BETWEEN value AND value + '\s+NOT BETWEEN\s+', // NOT BETWEEN value AND value '\s+IN\s*\(.*\)', // IN(list) '\s+NOT IN\s*\(.*\)', // NOT IN (list) '\s+LIKE\s+\S.*('.$_les.')?', // LIKE 'expr'[ ESCAPE '%s'] -- cgit v1.2.3-24-g4f1b From 61db61473df738e2cdb9ec28727816b450a84b53 Mon Sep 17 00:00:00 2001 From: Emrul Easir Date: Fri, 29 Mar 2019 03:44:14 +0600 Subject: NOT BETWEEN update used \s NOT BETWEEN instead of \sNOT BETWEEN, so updated this patch --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index e901f2948..91777ce3a 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -1476,7 +1476,7 @@ abstract class CI_DB_driver { */ protected function _has_operator($str) { - return (bool) preg_match('/(<|>|!|=|\sIS NULL|\sIS NOT NULL|\sEXISTS|\sBETWEEN|\s NOT BETWEEN|\sLIKE|\sIN\s*\(|\s)/i', trim($str)); + return (bool) preg_match('/(<|>|!|=|\sIS NULL|\sIS NOT NULL|\sEXISTS|\sBETWEEN|\sNOT BETWEEN|\sLIKE|\sIN\s*\(|\s)/i', trim($str)); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 219d3b17d6a4e03d60e3441174d8e443be1f0551 Mon Sep 17 00:00:00 2001 From: Emrul Easir Date: Fri, 29 Mar 2019 19:33:46 +0600 Subject: reset _has_operator() & added to _get_operator() Removed the NOT BETWEEN from _has_operator() method. 'NOT BETWEEN' only needs to apply in _get_operator() method. Otherwise, query error still remaining. --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 91777ce3a..204dce528 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -1476,7 +1476,7 @@ abstract class CI_DB_driver { */ protected function _has_operator($str) { - return (bool) preg_match('/(<|>|!|=|\sIS NULL|\sIS NOT NULL|\sEXISTS|\sBETWEEN|\sNOT BETWEEN|\sLIKE|\sIN\s*\(|\s)/i', trim($str)); + return (bool) preg_match('/(<|>|!|=|\sIS NULL|\sIS NOT NULL|\sEXISTS|\sBETWEEN|\sLIKE|\sIN\s*\(|\s)/i', trim($str)); } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 330b85e82a25be522a8f99846fc115a1fffdb282 Mon Sep 17 00:00:00 2001 From: Om Mahato Date: Fri, 5 Apr 2019 17:02:28 +0530 Subject: class .wy-nav-content-wrap modied for responsive To solve the issue of main context getting offset from screen on mobile devices. The css class .wy-nav-content-wrap under media query has been modified. --- user_guide_src/source/_themes/sphinx_rtd_theme/static/css/theme.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/theme.css b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/theme.css index 64d41142a..fe7e2cbcc 100644 --- a/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/theme.css +++ b/user_guide_src/source/_themes/sphinx_rtd_theme/static/css/theme.css @@ -1,5 +1,5 @@ *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}[hidden]{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:hover,a:active{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;color:#000;text-decoration:none}mark{background:#ff0;color:#000;font-style:italic;font-weight:bold}pre,code,.rst-content tt,kbd,samp{font-family:monospace,serif;_font-family:"courier new",monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:before,q:after{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}ul,ol,dl{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:0;margin:0;padding:0}label{cursor:pointer}legend{border:0;*margin-left:-7px;padding:0;white-space:normal}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:0.2em 0;background:#ccc;color:#000;padding:0.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none !important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{html,body,section{background:none !important}*{box-shadow:none !important;text-shadow:none !important;filter:none !important;-ms-filter:none !important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:1.5cm 0.5cm 2.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.fa:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo,.btn,input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"],select,textarea,.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a,.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a,.wy-nav-top a{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}/*! * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.1.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff?v=4.1.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.1.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.icon{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.rst-content .pull-left.admonition-title,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content dl dt .pull-left.headerlink,.pull-left.icon{margin-right:.3em}.fa.pull-right,.rst-content .pull-right.admonition-title,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content dl dt .pull-right.headerlink,.pull-right.icon{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.rst-content .admonition-title:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.wy-dropdown .caret:before,.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-square:before,.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.icon,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context{font-family:inherit}.fa:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before{font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa,a .rst-content .admonition-title,.rst-content a .admonition-title,a .rst-content h1 .headerlink,.rst-content h1 a .headerlink,a .rst-content h2 .headerlink,.rst-content h2 a .headerlink,a .rst-content h3 .headerlink,.rst-content h3 a .headerlink,a .rst-content h4 .headerlink,.rst-content h4 a .headerlink,a .rst-content h5 .headerlink,.rst-content h5 a .headerlink,a .rst-content h6 .headerlink,.rst-content h6 a .headerlink,a .rst-content dl dt .headerlink,.rst-content dl dt a .headerlink,a .icon{display:inline-block;text-decoration:inherit}.btn .fa,.btn .rst-content .admonition-title,.rst-content .btn .admonition-title,.btn .rst-content h1 .headerlink,.rst-content h1 .btn .headerlink,.btn .rst-content h2 .headerlink,.rst-content h2 .btn .headerlink,.btn .rst-content h3 .headerlink,.rst-content h3 .btn .headerlink,.btn .rst-content h4 .headerlink,.rst-content h4 .btn .headerlink,.btn .rst-content h5 .headerlink,.rst-content h5 .btn .headerlink,.btn .rst-content h6 .headerlink,.rst-content h6 .btn .headerlink,.btn .rst-content dl dt .headerlink,.rst-content dl dt .btn .headerlink,.btn .icon,.nav .fa,.nav .rst-content .admonition-title,.rst-content .nav .admonition-title,.nav .rst-content h1 .headerlink,.rst-content h1 .nav .headerlink,.nav .rst-content h2 .headerlink,.rst-content h2 .nav .headerlink,.nav .rst-content h3 .headerlink,.rst-content h3 .nav .headerlink,.nav .rst-content h4 .headerlink,.rst-content h4 .nav .headerlink,.nav .rst-content h5 .headerlink,.rst-content h5 .nav .headerlink,.nav .rst-content h6 .headerlink,.rst-content h6 .nav .headerlink,.nav .rst-content dl dt .headerlink,.rst-content dl dt .nav .headerlink,.nav .icon{display:inline}.btn .fa.fa-large,.btn .rst-content .fa-large.admonition-title,.rst-content .btn .fa-large.admonition-title,.btn .rst-content h1 .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.btn .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .btn .fa-large.headerlink,.btn .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .fa-large.admonition-title,.rst-content .nav .fa-large.admonition-title,.nav .rst-content h1 .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.nav .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.nav .fa-large.icon{line-height:0.9em}.btn .fa.fa-spin,.btn .rst-content .fa-spin.admonition-title,.rst-content .btn .fa-spin.admonition-title,.btn .rst-content h1 .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.btn .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .btn .fa-spin.headerlink,.btn .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .fa-spin.admonition-title,.rst-content .nav .fa-spin.admonition-title,.nav .rst-content h1 .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.nav .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.nav .fa-spin.icon{display:inline-block}.btn.fa:before,.rst-content .btn.admonition-title:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content dl dt .btn.headerlink:before,.btn.icon:before{opacity:0.5;-webkit-transition:opacity 0.05s ease-in;-moz-transition:opacity 0.05s ease-in;transition:opacity 0.05s ease-in}.btn.fa:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.btn.icon:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .rst-content .admonition-title:before,.rst-content .btn-mini .admonition-title:before,.btn-mini .rst-content h1 .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.btn-mini .rst-content dl dt .headerlink:before,.rst-content dl dt .btn-mini .headerlink:before,.btn-mini .icon:before{font-size:14px;vertical-align:-15%}.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo{padding:12px;line-height:24px;margin-bottom:24px;background:#dedede}.wy-alert-title,.rst-content .admonition-title{color:#fff;font-weight:bold;display:block;color:#fff;background:#8ba8af;margin:-12px;padding:6px 12px;margin-bottom:12px}.wy-alert.wy-alert-danger,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.admonition-todo{background:#fdf3f2}.wy-alert.wy-alert-danger .wy-alert-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .danger .wy-alert-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title{background:#f29f97}.wy-alert.wy-alert-warning,.rst-content .wy-alert-warning.note,.rst-content .attention,.rst-content .caution,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.tip,.rst-content .warning,.rst-content .wy-alert-warning.seealso,.rst-content .admonition-todo{background:#ffedcc}.wy-alert.wy-alert-warning .wy-alert-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .attention .wy-alert-title,.rst-content .caution .wy-alert-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .admonition-todo .wy-alert-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .warning .admonition-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .admonition-todo .admonition-title{background:#f0b37e}.wy-alert.wy-alert-info,.rst-content .note,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.rst-content .seealso,.rst-content .wy-alert-info.admonition-todo{background:#dedede}.wy-alert.wy-alert-info .wy-alert-title,.rst-content .note .wy-alert-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.rst-content .note .admonition-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .seealso .admonition-title,.rst-content .wy-alert-info.admonition-todo .admonition-title{background:#8ba8af}.wy-alert.wy-alert-success,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.warning,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.admonition-todo{background:#dedede}.wy-alert.wy-alert-success .wy-alert-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .hint .wy-alert-title,.rst-content .important .wy-alert-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .hint .admonition-title,.rst-content .important .admonition-title,.rst-content .tip .admonition-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.admonition-todo .admonition-title{background:#dd4814}.wy-alert.wy-alert-neutral,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.admonition-todo{background:#f3f6f6}.wy-alert.wy-alert-neutral .wy-alert-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .admonition-title{color:#404040;background:#e1e4e5}.wy-alert.wy-alert-neutral a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.admonition-todo a{color:#dd4814}.wy-alert p:last-child,.rst-content .note p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.rst-content .seealso p:last-child,.rst-content .admonition-todo p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0px;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,0.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all 0.3s ease-in;-moz-transition:all 0.3s ease-in;transition:all 0.3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27AE60}.wy-tray-container li.wy-tray-item-info{background:#dd4814}.wy-tray-container li.wy-tray-item-warning{background:#E67E22}.wy-tray-container li.wy-tray-item-danger{background:#E74C3C}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width: 768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px 12px;color:#fff;border:1px solid rgba(0,0,0,0.1);background-color:#27AE60;text-decoration:none;font-weight:normal;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:0px 1px 2px -1px rgba(255,255,255,0.5) inset,0px -2px 0px 0px rgba(0,0,0,0.1) inset;outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all 0.1s linear;-moz-transition:all 0.1s linear;transition:all 0.1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:0px -1px 0px 0px rgba(0,0,0,0.05) inset,0px 2px 0px 0px rgba(0,0,0,0.1) inset;padding:8px 12px 6px 12px}.btn:visited{color:#fff}.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled:hover,.btn-disabled:focus,.btn-disabled:active{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#dd4814 !important}.btn-info:hover{background-color:#2e8ece !important}.btn-neutral{background-color:#f3f6f6 !important;color:#404040 !important}.btn-neutral:hover{background-color:#e5ebeb !important;color:#404040}.btn-neutral:visited{color:#404040 !important}.btn-success{background-color:#27AE60 !important}.btn-success:hover{background-color:#295 !important}.btn-danger{background-color:#E74C3C !important}.btn-danger:hover{background-color:#ea6153 !important}.btn-warning{background-color:#E67E22 !important}.btn-warning:hover{background-color:#e98b39 !important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f !important}.btn-link{background-color:transparent !important;color:#dd4814;box-shadow:none;border-color:transparent !important}.btn-link:hover{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:active{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:visited{color:#97310e}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:before,.wy-btn-group:after{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:solid 1px #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,0.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#dd4814;color:#fff}.wy-dropdown-menu>dd.divider{border-top:solid 1px #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type="search"]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#dd4814;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned input,.wy-form-aligned textarea,.wy-form-aligned select,.wy-form-aligned .wy-help-inline,.wy-form-aligned label{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{border:0;margin:0;padding:0}legend{display:block;width:100%;border:0;padding:0;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label{display:block;margin:0 0 0.3125em 0;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;*zoom:1;max-width:68em;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#E74C3C}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full input[type="text"],.wy-control-group .wy-form-full input[type="password"],.wy-control-group .wy-form-full input[type="email"],.wy-control-group .wy-form-full input[type="url"],.wy-control-group .wy-form-full input[type="date"],.wy-control-group .wy-form-full input[type="month"],.wy-control-group .wy-form-full input[type="time"],.wy-control-group .wy-form-full input[type="datetime"],.wy-control-group .wy-form-full input[type="datetime-local"],.wy-control-group .wy-form-full input[type="week"],.wy-control-group .wy-form-full input[type="number"],.wy-control-group .wy-form-full input[type="search"],.wy-control-group .wy-form-full input[type="tel"],.wy-control-group .wy-form-full input[type="color"],.wy-control-group .wy-form-halves input[type="text"],.wy-control-group .wy-form-halves input[type="password"],.wy-control-group .wy-form-halves input[type="email"],.wy-control-group .wy-form-halves input[type="url"],.wy-control-group .wy-form-halves input[type="date"],.wy-control-group .wy-form-halves input[type="month"],.wy-control-group .wy-form-halves input[type="time"],.wy-control-group .wy-form-halves input[type="datetime"],.wy-control-group .wy-form-halves input[type="datetime-local"],.wy-control-group .wy-form-halves input[type="week"],.wy-control-group .wy-form-halves input[type="number"],.wy-control-group .wy-form-halves input[type="search"],.wy-control-group .wy-form-halves input[type="tel"],.wy-control-group .wy-form-halves input[type="color"],.wy-control-group .wy-form-thirds input[type="text"],.wy-control-group .wy-form-thirds input[type="password"],.wy-control-group .wy-form-thirds input[type="email"],.wy-control-group .wy-form-thirds input[type="url"],.wy-control-group .wy-form-thirds input[type="date"],.wy-control-group .wy-form-thirds input[type="month"],.wy-control-group .wy-form-thirds input[type="time"],.wy-control-group .wy-form-thirds input[type="datetime"],.wy-control-group .wy-form-thirds input[type="datetime-local"],.wy-control-group .wy-form-thirds input[type="week"],.wy-control-group .wy-form-thirds input[type="number"],.wy-control-group .wy-form-thirds input[type="search"],.wy-control-group .wy-form-thirds input[type="tel"],.wy-control-group .wy-form-thirds input[type="color"]{width:100%}.wy-control-group .wy-form-full{float:left;display:block;margin-right:2.35765%;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child{margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n+1){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child{margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control{margin:6px 0 0 0;font-size:90%}.wy-control-no-input{display:inline-block;margin:6px 0 0 0;font-size:90%}.wy-control-group.fluid-input input[type="text"],.wy-control-group.fluid-input input[type="password"],.wy-control-group.fluid-input input[type="email"],.wy-control-group.fluid-input input[type="url"],.wy-control-group.fluid-input input[type="date"],.wy-control-group.fluid-input input[type="month"],.wy-control-group.fluid-input input[type="time"],.wy-control-group.fluid-input input[type="datetime"],.wy-control-group.fluid-input input[type="datetime-local"],.wy-control-group.fluid-input input[type="week"],.wy-control-group.fluid-input input[type="number"],.wy-control-group.fluid-input input[type="search"],.wy-control-group.fluid-input input[type="tel"],.wy-control-group.fluid-input input[type="color"]{width:100%}.wy-form-message-inline{display:inline-block;padding-left:0.3em;color:#666;vertical-align:middle;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:0.3125em;font-style:italic}input{line-height:normal}input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;*overflow:visible}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}input[type="datetime-local"]{padding:0.34375em 0.625em}input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin-right:0.3125em;*height:13px;*width:13px}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus{outline:0;outline:thin dotted \9;border-color:#333}input.no-focus:focus{border-color:#ccc !important}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}input[type="text"][disabled],input[type="password"][disabled],input[type="email"][disabled],input[type="url"][disabled],input[type="date"][disabled],input[type="month"][disabled],input[type="time"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="week"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="color"][disabled]{cursor:not-allowed;background-color:#f3f6f6;color:#cad2d3}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#E74C3C;border:1px solid #E74C3C}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#E74C3C}input[type="file"]:focus:invalid:focus,input[type="radio"]:focus:invalid:focus,input[type="checkbox"]:focus:invalid:focus{outline-color:#E74C3C}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif}select,textarea{padding:0.5em 0.625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#fff;color:#cad2d3;border-color:transparent}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:solid 1px #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#E74C3C}.wy-control-group.wy-control-group-error input[type="text"],.wy-control-group.wy-control-group-error input[type="password"],.wy-control-group.wy-control-group-error input[type="email"],.wy-control-group.wy-control-group-error input[type="url"],.wy-control-group.wy-control-group-error input[type="date"],.wy-control-group.wy-control-group-error input[type="month"],.wy-control-group.wy-control-group-error input[type="time"],.wy-control-group.wy-control-group-error input[type="datetime"],.wy-control-group.wy-control-group-error input[type="datetime-local"],.wy-control-group.wy-control-group-error input[type="week"],.wy-control-group.wy-control-group-error input[type="number"],.wy-control-group.wy-control-group-error input[type="search"],.wy-control-group.wy-control-group-error input[type="tel"],.wy-control-group.wy-control-group-error input[type="color"]{border:solid 1px #E74C3C}.wy-control-group.wy-control-group-error textarea{border:solid 1px #E74C3C}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:0.5em 0.625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27AE60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#E74C3C}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#E67E22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#dd4814}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width: 480px){.wy-form button[type="submit"]{margin:0.7em 0 0}.wy-form input[type="text"],.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0.3em;display:block}.wy-form label{margin-bottom:0.3em;display:block}.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:0.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0 0}.wy-form .wy-help-inline,.wy-form-message-inline,.wy-form-message{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width: 768px){.tablet-hide{display:none}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}}@media screen and (max-width: 480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.wy-table,.rst-content table.docutils,.rst-content table.field-list{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.wy-table caption,.rst-content table.docutils caption,.rst-content table.field-list caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td,.wy-table th,.rst-content table.docutils th,.rst-content table.field-list th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.wy-table td:first-child,.rst-content table.docutils td:first-child,.rst-content table.field-list td:first-child,.wy-table th:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list th:first-child{border-left-width:0}.wy-table thead,.rst-content table.docutils thead,.rst-content table.field-list thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.wy-table thead th,.rst-content table.docutils thead th,.rst-content table.field-list thead th{font-weight:bold;border-bottom:solid 2px #e1e4e5}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td{background-color:transparent;vertical-align:middle}.wy-table td p,.rst-content table.docutils td p,.rst-content table.field-list td p{line-height:18px}.wy-table td p:last-child,.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child{margin-bottom:0}.wy-table .wy-table-cell-min,.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min{width:1%;padding-right:0}.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:gray;font-size:90%}.wy-table-tertiary{color:gray;font-size:80%}.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td,.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td{background-color:#f3f6f6}.wy-table-backed{background-color:#f3f6f6}.wy-table-bordered-all,.rst-content table.docutils{border:1px solid #e1e4e5}.wy-table-bordered-all td,.rst-content table.docutils td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.wy-table-bordered-all tbody>tr:last-child td,.rst-content table.docutils tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0 !important}a{color:#dd4814;text-decoration:none;cursor:pointer}a:hover{color:#97310e}a:visited{color:#97310e}html{height:100%;overflow-x:hidden}body{font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;font-weight:normal;color:#404040;min-height:100%;overflow-x:hidden;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#E67E22 !important}a.wy-text-warning:hover{color:#eb9950 !important}.wy-text-info{color:#dd4814 !important}a.wy-text-info:hover{color:#409ad5 !important}.wy-text-success{color:#27AE60 !important}a.wy-text-success:hover{color:#36d278 !important}.wy-text-danger{color:#E74C3C !important}a.wy-text-danger:hover{color:#ed7669 !important}.wy-text-neutral{color:#404040 !important}a.wy-text-neutral:hover{color:#595959 !important}h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif}p{line-height:24px;margin:0;font-size:16px;margin-bottom:24px}h1{font-size:175%}h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}code,.rst-content tt{white-space:nowrap;max-width:100%;background:#fff;border:solid 1px #e1e4e5;font-size:75%;padding:0 5px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;color:#E74C3C;overflow-x:auto}code.code-large,.rst-content tt.code-large{font-size:90%}.wy-plain-list-disc,.rst-content .section ul,.rst-content .toctree-wrapper ul,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.wy-plain-list-disc li,.rst-content .section ul li,.rst-content .toctree-wrapper ul li,article ul li{list-style:disc;margin-left:24px}.wy-plain-list-disc li p:last-child,.rst-content .section ul li p:last-child,.rst-content .toctree-wrapper ul li p:last-child,article ul li p:last-child{margin-bottom:0}.wy-plain-list-disc li ul,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li ul,article ul li ul{margin-bottom:0}.wy-plain-list-disc li li,.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,article ul li li{list-style:circle}.wy-plain-list-disc li li li,.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,article ul li li li{list-style:square}.wy-plain-list-disc li ol li,.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,article ul li ol li{list-style:decimal}.wy-plain-list-decimal,.rst-content .section ol,.rst-content ol.arabic,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.wy-plain-list-decimal li,.rst-content .section ol li,.rst-content ol.arabic li,article ol li{list-style:decimal;margin-left:24px}.wy-plain-list-decimal li p:last-child,.rst-content .section ol li p:last-child,.rst-content ol.arabic li p:last-child,article ol li p:last-child{margin-bottom:0}.wy-plain-list-decimal li ul,.rst-content .section ol li ul,.rst-content ol.arabic li ul,article ol li ul{margin-bottom:0}.wy-plain-list-decimal li ul li,.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,article ol li ul li{list-style:disc}.codeblock-example{border:1px solid #e1e4e5;border-bottom:none;padding:24px;padding-top:48px;font-weight:500;background:#fff;position:relative}.codeblock-example:after{content:"Example";position:absolute;top:0px;left:0px;background:#97310e;color:#fff;padding:6px 12px}.codeblock-example.prettyprint-example-only{border:1px solid #e1e4e5;margin-bottom:24px}.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight']{border:1px solid #e1e4e5;padding:0px;overflow-x:auto;background:#fff;margin:1px 0 24px 0}.codeblock div[class^='highlight'],pre.literal-block div[class^='highlight'],.rst-content .literal-block div[class^='highlight'],div[class^='highlight'] div[class^='highlight']{border:none;background:none;margin:0}div[class^='highlight'] td.code{width:100%}.linenodiv pre{border-right:solid 1px #e6e9ea;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;color:#d9d9d9}div[class^='highlight'] pre{white-space:pre;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;display:block;overflow:auto;color:#404040}@media print{.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight'],div[class^='highlight'] pre{white-space:pre-wrap}}.hll{background-color:#ffc;margin:0 -12px;padding:0 12px;display:block}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{font-weight:bold}.o{font-weight:bold}.cm{color:#998;font-style:italic}.cp{color:#999;font-weight:bold}.c1{color:#998;font-style:italic}.cs{color:#999;font-weight:bold;font-style:italic}.gd{color:#000;background-color:#fdd}.gd .x{color:#000;background-color:#faa}.ge{font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.gi .x{color:#000;background-color:#afa}.go{color:#888}.gp{color:#555}.gs{font-weight:bold}.gu{color:purple;font-weight:bold}.gt{color:#a00}.kc{font-weight:bold}.kd{font-weight:bold}.kn{font-weight:bold}.kp{font-weight:bold}.kr{font-weight:bold}.kt{color:#458;font-weight:bold}.m{color:#099}.s{color:#d14}.n{color:#333}.na{color:teal}.nb{color:#0086b3}.nc{color:#458;font-weight:bold}.no{color:teal}.ni{color:purple}.ne{color:#900;font-weight:bold}.nf{color:#900;font-weight:bold}.nn{color:#555}.nt{color:navy}.nv{color:teal}.ow{font-weight:bold}.w{color:#bbb}.mf{color:#099}.mh{color:#099}.mi{color:#099}.mo{color:#099}.sb{color:#d14}.sc{color:#d14}.sd{color:#d14}.s2{color:#d14}.se{color:#d14}.sh{color:#d14}.si{color:#d14}.sx{color:#d14}.sr{color:#009926}.s1{color:#d14}.ss{color:#990073}.bp{color:#999}.vc{color:teal}.vg{color:teal}.vi{color:teal}.il{color:#099}.gc{color:#999;background-color:#EAF2F5}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width: 480px){.wy-breadcrumbs-extra{display:none}.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:before,.wy-menu-horiz:after{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz ul,.wy-menu-horiz li{display:inline-block}.wy-menu-horiz li:hover{background:rgba(255,255,255,0.1)}.wy-menu-horiz li.divide-left{border-left:solid 1px #404040}.wy-menu-horiz li.divide-right{border-right:solid 1px #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical header{height:32px;display:inline-block;line-height:32px;padding:0 1.618em;display:block;font-weight:bold;text-transform:uppercase;font-size:80%;color:#dd4814;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:solid 1px #404040}.wy-menu-vertical li.divide-bottom{border-bottom:solid 1px #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:gray;border-right:solid 1px #c9c9c9;padding:0.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a{color:#404040;padding:0.4045em 1.618em;font-weight:bold;position:relative;background:#fcfcfc;border:none;border-bottom:solid 1px #c9c9c9;border-top:solid 1px #c9c9c9;padding-left:1.618em -4px}.wy-menu-vertical li.on a:hover,.wy-menu-vertical li.current>a:hover{background:#fcfcfc}.wy-menu-vertical li.toctree-l2.current>a{background:#c9c9c9;padding:0.4045em 2.427em}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical .local-toc li ul{display:block}.wy-menu-vertical li ul li a{margin-bottom:0;color:#b3b3b3;font-weight:normal}.wy-menu-vertical a{display:inline-block;line-height:18px;padding:0.4045em 1.618em;display:block;position:relative;font-size:90%;color:#b3b3b3}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:active{background-color:#dd4814;cursor:pointer;color:#fff}.wy-side-nav-search{z-index:200;background-color:#dd4814;text-align:center;padding:0.809em;display:block;color:#fcfcfc;margin-bottom:0.809em}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#97310e}.wy-side-nav-search img{display:block;margin:auto auto 0.809em auto;height:45px;width:45px;background-color:#dd4814;padding:5px;border-radius:100%}.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a{color:#fcfcfc;font-size:100%;font-weight:bold;display:inline-block;padding:4px 6px;margin-bottom:0.809em}.wy-side-nav-search>a:hover,.wy-side-nav-search .wy-dropdown>a:hover{background:rgba(255,255,255,0.1)}.wy-nav .wy-menu-vertical header{color:#dd4814}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#dd4814;color:#fff}[data-menu-wrap]{-webkit-transition:all 0.2s ease-in;-moz-transition:all 0.2s ease-in;transition:all 0.2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:left repeat-y #fcfcfc;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC);background-size:300px 1px}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:absolute;top:0;left:0;width:300px;overflow:hidden;min-height:100%;background:#343131;z-index:200}.wy-nav-top{display:none;background:#dd4814;color:#fff;padding:0.4045em 0.809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:before,.wy-nav-top:after{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:bold}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#dd4814;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100x;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,0.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:#999}footer p{margin-bottom:12px}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:before,.rst-footer-buttons:after{display:table;content:""}.rst-footer-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:solid 1px #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:solid 1px #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:gray;font-size:90%}@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width: 1400px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,footer,.wy-nav-side{display:none}.wy-nav-content-wrap{margin-left:0}}nav.stickynav{position:fixed;top:0}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#dd4814;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .icon{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}img{width:100%;height:auto}}.rst-content img{max-width:100%;height:auto !important}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure.align-center{text-align:center}.rst-content .section>img,.rst-content .section>a>img{margin-bottom:24px}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content .note .last,.rst-content .attention .last,.rst-content .caution .last,.rst-content .danger .last,.rst-content .error .last,.rst-content .hint .last,.rst-content .important .last,.rst-content .tip .last,.rst-content .warning .last,.rst-content .seealso .last,.rst-content .admonition-todo .last{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,0.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent !important;border-color:rgba(0,0,0,0.1) !important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha li{list-style:upper-alpha}.rst-content .section ol p,.rst-content .section ul p{margin-bottom:12px}.rst-content .line-block{margin-left:24px}.rst-content .topic-title{font-weight:bold;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0px 0px 24px 24px}.rst-content .align-left{float:left;margin:0px 24px 24px 0px}.rst-content .align-center{margin:auto;display:block}.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink{display:none;visibility:hidden;font-size:14px}.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content dl dt .headerlink:after{visibility:visible;content:"";font-family:FontAwesome;display:inline-block}.rst-content h1:hover .headerlink,.rst-content h2:hover .headerlink,.rst-content h3:hover .headerlink,.rst-content h4:hover .headerlink,.rst-content h5:hover .headerlink,.rst-content h6:hover .headerlink,.rst-content dl dt:hover .headerlink{display:inline-block}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:solid 1px #e1e4e5}.rst-content .sidebar p,.rst-content .sidebar ul,.rst-content .sidebar dl{font-size:90%}.rst-content .sidebar .last{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif;font-weight:bold;background:#e1e4e5;padding:6px 12px;margin:-24px;margin-bottom:24px;font-size:100%}.rst-content .highlighted{background:#F1C40F;display:inline-block;font-weight:bold;padding:0 6px}.rst-content .footnote-reference,.rst-content .citation-reference{vertical-align:super;font-size:90%}.rst-content table.docutils.citation,.rst-content table.docutils.footnote{background:none;border:none;color:#999}.rst-content table.docutils.citation td,.rst-content table.docutils.citation tr,.rst-content table.docutils.footnote td,.rst-content table.docutils.footnote tr{border:none;background-color:transparent !important;white-space:normal}.rst-content table.docutils.citation td.label,.rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}.rst-content table.field-list{border:none}.rst-content table.field-list td{border:none;padding-top:5px}.rst-content table.field-list td>strong{display:inline-block;margin-top:3px}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left;padding-left:0}.rst-content tt{color:#000}.rst-content tt big,.rst-content tt em{font-size:100% !important;line-height:normal}.rst-content tt .xref,a .rst-content tt{font-weight:bold}.rst-content a tt{color:#dd4814}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:bold}.rst-content dl p,.rst-content dl table,.rst-content dl ul,.rst-content dl ol{margin-bottom:12px !important}.rst-content dl dd{margin:0 0 12px 24px}.rst-content dl:not(.docutils){margin-bottom:24px}.rst-content dl:not(.docutils) dt{display:inline-block;margin:6px 0;font-size:90%;line-height:normal;background:#dedede;color:#dd4814;border-top:solid 3px #8ba8af;padding:6px;position:relative}.rst-content dl:not(.docutils) dt:before{color:#8ba8af}.rst-content dl:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:gray}.rst-content dl:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dt:first-child{margin-top:0}.rst-content dl:not(.docutils) tt{font-weight:bold}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}.rst-content dl:not(.docutils) tt.descname{font-weight:bold}.rst-content dl:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}.rst-content dl:not(.docutils) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-link,.rst-content .viewcode-back{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:bold}@media screen and (max-width: 480px){.rst-content .sidebar{width:100%}}span[id*='MathJax-Span']{color:#404040}.math{text-align:center} + */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.1.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff?v=4.1.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.1.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.icon{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.rst-content .pull-left.admonition-title,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content dl dt .pull-left.headerlink,.pull-left.icon{margin-right:.3em}.fa.pull-right,.rst-content .pull-right.admonition-title,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content dl dt .pull-right.headerlink,.pull-right.icon{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.rst-content .admonition-title:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.wy-dropdown .caret:before,.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-square:before,.fa-pied-piper:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.icon,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context{font-family:inherit}.fa:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before{font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa,a .rst-content .admonition-title,.rst-content a .admonition-title,a .rst-content h1 .headerlink,.rst-content h1 a .headerlink,a .rst-content h2 .headerlink,.rst-content h2 a .headerlink,a .rst-content h3 .headerlink,.rst-content h3 a .headerlink,a .rst-content h4 .headerlink,.rst-content h4 a .headerlink,a .rst-content h5 .headerlink,.rst-content h5 a .headerlink,a .rst-content h6 .headerlink,.rst-content h6 a .headerlink,a .rst-content dl dt .headerlink,.rst-content dl dt a .headerlink,a .icon{display:inline-block;text-decoration:inherit}.btn .fa,.btn .rst-content .admonition-title,.rst-content .btn .admonition-title,.btn .rst-content h1 .headerlink,.rst-content h1 .btn .headerlink,.btn .rst-content h2 .headerlink,.rst-content h2 .btn .headerlink,.btn .rst-content h3 .headerlink,.rst-content h3 .btn .headerlink,.btn .rst-content h4 .headerlink,.rst-content h4 .btn .headerlink,.btn .rst-content h5 .headerlink,.rst-content h5 .btn .headerlink,.btn .rst-content h6 .headerlink,.rst-content h6 .btn .headerlink,.btn .rst-content dl dt .headerlink,.rst-content dl dt .btn .headerlink,.btn .icon,.nav .fa,.nav .rst-content .admonition-title,.rst-content .nav .admonition-title,.nav .rst-content h1 .headerlink,.rst-content h1 .nav .headerlink,.nav .rst-content h2 .headerlink,.rst-content h2 .nav .headerlink,.nav .rst-content h3 .headerlink,.rst-content h3 .nav .headerlink,.nav .rst-content h4 .headerlink,.rst-content h4 .nav .headerlink,.nav .rst-content h5 .headerlink,.rst-content h5 .nav .headerlink,.nav .rst-content h6 .headerlink,.rst-content h6 .nav .headerlink,.nav .rst-content dl dt .headerlink,.rst-content dl dt .nav .headerlink,.nav .icon{display:inline}.btn .fa.fa-large,.btn .rst-content .fa-large.admonition-title,.rst-content .btn .fa-large.admonition-title,.btn .rst-content h1 .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.btn .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .btn .fa-large.headerlink,.btn .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .fa-large.admonition-title,.rst-content .nav .fa-large.admonition-title,.nav .rst-content h1 .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.nav .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.nav .fa-large.icon{line-height:0.9em}.btn .fa.fa-spin,.btn .rst-content .fa-spin.admonition-title,.rst-content .btn .fa-spin.admonition-title,.btn .rst-content h1 .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.btn .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .btn .fa-spin.headerlink,.btn .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .fa-spin.admonition-title,.rst-content .nav .fa-spin.admonition-title,.nav .rst-content h1 .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.nav .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.nav .fa-spin.icon{display:inline-block}.btn.fa:before,.rst-content .btn.admonition-title:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content dl dt .btn.headerlink:before,.btn.icon:before{opacity:0.5;-webkit-transition:opacity 0.05s ease-in;-moz-transition:opacity 0.05s ease-in;transition:opacity 0.05s ease-in}.btn.fa:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.btn.icon:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .rst-content .admonition-title:before,.rst-content .btn-mini .admonition-title:before,.btn-mini .rst-content h1 .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.btn-mini .rst-content dl dt .headerlink:before,.rst-content dl dt .btn-mini .headerlink:before,.btn-mini .icon:before{font-size:14px;vertical-align:-15%}.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo{padding:12px;line-height:24px;margin-bottom:24px;background:#dedede}.wy-alert-title,.rst-content .admonition-title{color:#fff;font-weight:bold;display:block;color:#fff;background:#8ba8af;margin:-12px;padding:6px 12px;margin-bottom:12px}.wy-alert.wy-alert-danger,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.admonition-todo{background:#fdf3f2}.wy-alert.wy-alert-danger .wy-alert-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .danger .wy-alert-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title{background:#f29f97}.wy-alert.wy-alert-warning,.rst-content .wy-alert-warning.note,.rst-content .attention,.rst-content .caution,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.tip,.rst-content .warning,.rst-content .wy-alert-warning.seealso,.rst-content .admonition-todo{background:#ffedcc}.wy-alert.wy-alert-warning .wy-alert-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .attention .wy-alert-title,.rst-content .caution .wy-alert-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .admonition-todo .wy-alert-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .warning .admonition-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .admonition-todo .admonition-title{background:#f0b37e}.wy-alert.wy-alert-info,.rst-content .note,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.rst-content .seealso,.rst-content .wy-alert-info.admonition-todo{background:#dedede}.wy-alert.wy-alert-info .wy-alert-title,.rst-content .note .wy-alert-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.rst-content .note .admonition-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .seealso .admonition-title,.rst-content .wy-alert-info.admonition-todo .admonition-title{background:#8ba8af}.wy-alert.wy-alert-success,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.warning,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.admonition-todo{background:#dedede}.wy-alert.wy-alert-success .wy-alert-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .hint .wy-alert-title,.rst-content .important .wy-alert-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .hint .admonition-title,.rst-content .important .admonition-title,.rst-content .tip .admonition-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.admonition-todo .admonition-title{background:#dd4814}.wy-alert.wy-alert-neutral,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.admonition-todo{background:#f3f6f6}.wy-alert.wy-alert-neutral .wy-alert-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .admonition-title{color:#404040;background:#e1e4e5}.wy-alert.wy-alert-neutral a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.admonition-todo a{color:#dd4814}.wy-alert p:last-child,.rst-content .note p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.rst-content .seealso p:last-child,.rst-content .admonition-todo p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0px;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,0.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all 0.3s ease-in;-moz-transition:all 0.3s ease-in;transition:all 0.3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27AE60}.wy-tray-container li.wy-tray-item-info{background:#dd4814}.wy-tray-container li.wy-tray-item-warning{background:#E67E22}.wy-tray-container li.wy-tray-item-danger{background:#E74C3C}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width: 768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px 12px;color:#fff;border:1px solid rgba(0,0,0,0.1);background-color:#27AE60;text-decoration:none;font-weight:normal;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:0px 1px 2px -1px rgba(255,255,255,0.5) inset,0px -2px 0px 0px rgba(0,0,0,0.1) inset;outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all 0.1s linear;-moz-transition:all 0.1s linear;transition:all 0.1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:0px -1px 0px 0px rgba(0,0,0,0.05) inset,0px 2px 0px 0px rgba(0,0,0,0.1) inset;padding:8px 12px 6px 12px}.btn:visited{color:#fff}.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn-disabled:hover,.btn-disabled:focus,.btn-disabled:active{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:0.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#dd4814 !important}.btn-info:hover{background-color:#2e8ece !important}.btn-neutral{background-color:#f3f6f6 !important;color:#404040 !important}.btn-neutral:hover{background-color:#e5ebeb !important;color:#404040}.btn-neutral:visited{color:#404040 !important}.btn-success{background-color:#27AE60 !important}.btn-success:hover{background-color:#295 !important}.btn-danger{background-color:#E74C3C !important}.btn-danger:hover{background-color:#ea6153 !important}.btn-warning{background-color:#E67E22 !important}.btn-warning:hover{background-color:#e98b39 !important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f !important}.btn-link{background-color:transparent !important;color:#dd4814;box-shadow:none;border-color:transparent !important}.btn-link:hover{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:active{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:visited{color:#97310e}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:before,.wy-btn-group:after{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:solid 1px #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,0.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#dd4814;color:#fff}.wy-dropdown-menu>dd.divider{border-top:solid 1px #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type="search"]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#dd4814;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned input,.wy-form-aligned textarea,.wy-form-aligned select,.wy-form-aligned .wy-help-inline,.wy-form-aligned label{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{border:0;margin:0;padding:0}legend{display:block;width:100%;border:0;padding:0;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label{display:block;margin:0 0 0.3125em 0;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;*zoom:1;max-width:68em;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#E74C3C}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full input[type="text"],.wy-control-group .wy-form-full input[type="password"],.wy-control-group .wy-form-full input[type="email"],.wy-control-group .wy-form-full input[type="url"],.wy-control-group .wy-form-full input[type="date"],.wy-control-group .wy-form-full input[type="month"],.wy-control-group .wy-form-full input[type="time"],.wy-control-group .wy-form-full input[type="datetime"],.wy-control-group .wy-form-full input[type="datetime-local"],.wy-control-group .wy-form-full input[type="week"],.wy-control-group .wy-form-full input[type="number"],.wy-control-group .wy-form-full input[type="search"],.wy-control-group .wy-form-full input[type="tel"],.wy-control-group .wy-form-full input[type="color"],.wy-control-group .wy-form-halves input[type="text"],.wy-control-group .wy-form-halves input[type="password"],.wy-control-group .wy-form-halves input[type="email"],.wy-control-group .wy-form-halves input[type="url"],.wy-control-group .wy-form-halves input[type="date"],.wy-control-group .wy-form-halves input[type="month"],.wy-control-group .wy-form-halves input[type="time"],.wy-control-group .wy-form-halves input[type="datetime"],.wy-control-group .wy-form-halves input[type="datetime-local"],.wy-control-group .wy-form-halves input[type="week"],.wy-control-group .wy-form-halves input[type="number"],.wy-control-group .wy-form-halves input[type="search"],.wy-control-group .wy-form-halves input[type="tel"],.wy-control-group .wy-form-halves input[type="color"],.wy-control-group .wy-form-thirds input[type="text"],.wy-control-group .wy-form-thirds input[type="password"],.wy-control-group .wy-form-thirds input[type="email"],.wy-control-group .wy-form-thirds input[type="url"],.wy-control-group .wy-form-thirds input[type="date"],.wy-control-group .wy-form-thirds input[type="month"],.wy-control-group .wy-form-thirds input[type="time"],.wy-control-group .wy-form-thirds input[type="datetime"],.wy-control-group .wy-form-thirds input[type="datetime-local"],.wy-control-group .wy-form-thirds input[type="week"],.wy-control-group .wy-form-thirds input[type="number"],.wy-control-group .wy-form-thirds input[type="search"],.wy-control-group .wy-form-thirds input[type="tel"],.wy-control-group .wy-form-thirds input[type="color"]{width:100%}.wy-control-group .wy-form-full{float:left;display:block;margin-right:2.35765%;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child{margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n+1){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child{margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control{margin:6px 0 0 0;font-size:90%}.wy-control-no-input{display:inline-block;margin:6px 0 0 0;font-size:90%}.wy-control-group.fluid-input input[type="text"],.wy-control-group.fluid-input input[type="password"],.wy-control-group.fluid-input input[type="email"],.wy-control-group.fluid-input input[type="url"],.wy-control-group.fluid-input input[type="date"],.wy-control-group.fluid-input input[type="month"],.wy-control-group.fluid-input input[type="time"],.wy-control-group.fluid-input input[type="datetime"],.wy-control-group.fluid-input input[type="datetime-local"],.wy-control-group.fluid-input input[type="week"],.wy-control-group.fluid-input input[type="number"],.wy-control-group.fluid-input input[type="search"],.wy-control-group.fluid-input input[type="tel"],.wy-control-group.fluid-input input[type="color"]{width:100%}.wy-form-message-inline{display:inline-block;padding-left:0.3em;color:#666;vertical-align:middle;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:0.3125em;font-style:italic}input{line-height:normal}input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;*overflow:visible}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}input[type="datetime-local"]{padding:0.34375em 0.625em}input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin-right:0.3125em;*height:13px;*width:13px}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus{outline:0;outline:thin dotted \9;border-color:#333}input.no-focus:focus{border-color:#ccc !important}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}input[type="text"][disabled],input[type="password"][disabled],input[type="email"][disabled],input[type="url"][disabled],input[type="date"][disabled],input[type="month"][disabled],input[type="time"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="week"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="color"][disabled]{cursor:not-allowed;background-color:#f3f6f6;color:#cad2d3}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#E74C3C;border:1px solid #E74C3C}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#E74C3C}input[type="file"]:focus:invalid:focus,input[type="radio"]:focus:invalid:focus,input[type="checkbox"]:focus:invalid:focus{outline-color:#E74C3C}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif}select,textarea{padding:0.5em 0.625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border 0.3s linear;-moz-transition:border 0.3s linear;transition:border 0.3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#fff;color:#cad2d3;border-color:transparent}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:solid 1px #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#E74C3C}.wy-control-group.wy-control-group-error input[type="text"],.wy-control-group.wy-control-group-error input[type="password"],.wy-control-group.wy-control-group-error input[type="email"],.wy-control-group.wy-control-group-error input[type="url"],.wy-control-group.wy-control-group-error input[type="date"],.wy-control-group.wy-control-group-error input[type="month"],.wy-control-group.wy-control-group-error input[type="time"],.wy-control-group.wy-control-group-error input[type="datetime"],.wy-control-group.wy-control-group-error input[type="datetime-local"],.wy-control-group.wy-control-group-error input[type="week"],.wy-control-group.wy-control-group-error input[type="number"],.wy-control-group.wy-control-group-error input[type="search"],.wy-control-group.wy-control-group-error input[type="tel"],.wy-control-group.wy-control-group-error input[type="color"]{border:solid 1px #E74C3C}.wy-control-group.wy-control-group-error textarea{border:solid 1px #E74C3C}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:0.5em 0.625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27AE60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#E74C3C}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#E67E22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#dd4814}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width: 480px){.wy-form button[type="submit"]{margin:0.7em 0 0}.wy-form input[type="text"],.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0.3em;display:block}.wy-form label{margin-bottom:0.3em;display:block}.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:0.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0 0}.wy-form .wy-help-inline,.wy-form-message-inline,.wy-form-message{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width: 768px){.tablet-hide{display:none}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}}@media screen and (max-width: 480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.wy-table,.rst-content table.docutils,.rst-content table.field-list{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.wy-table caption,.rst-content table.docutils caption,.rst-content table.field-list caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td,.wy-table th,.rst-content table.docutils th,.rst-content table.field-list th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.wy-table td:first-child,.rst-content table.docutils td:first-child,.rst-content table.field-list td:first-child,.wy-table th:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list th:first-child{border-left-width:0}.wy-table thead,.rst-content table.docutils thead,.rst-content table.field-list thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.wy-table thead th,.rst-content table.docutils thead th,.rst-content table.field-list thead th{font-weight:bold;border-bottom:solid 2px #e1e4e5}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td{background-color:transparent;vertical-align:middle}.wy-table td p,.rst-content table.docutils td p,.rst-content table.field-list td p{line-height:18px}.wy-table td p:last-child,.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child{margin-bottom:0}.wy-table .wy-table-cell-min,.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min{width:1%;padding-right:0}.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:gray;font-size:90%}.wy-table-tertiary{color:gray;font-size:80%}.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td,.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td{background-color:#f3f6f6}.wy-table-backed{background-color:#f3f6f6}.wy-table-bordered-all,.rst-content table.docutils{border:1px solid #e1e4e5}.wy-table-bordered-all td,.rst-content table.docutils td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.wy-table-bordered-all tbody>tr:last-child td,.rst-content table.docutils tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0 !important}a{color:#dd4814;text-decoration:none;cursor:pointer}a:hover{color:#97310e}a:visited{color:#97310e}html{height:100%;overflow-x:hidden}body{font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;font-weight:normal;color:#404040;min-height:100%;overflow-x:hidden;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#E67E22 !important}a.wy-text-warning:hover{color:#eb9950 !important}.wy-text-info{color:#dd4814 !important}a.wy-text-info:hover{color:#409ad5 !important}.wy-text-success{color:#27AE60 !important}a.wy-text-success:hover{color:#36d278 !important}.wy-text-danger{color:#E74C3C !important}a.wy-text-danger:hover{color:#ed7669 !important}.wy-text-neutral{color:#404040 !important}a.wy-text-neutral:hover{color:#595959 !important}h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif}p{line-height:24px;margin:0;font-size:16px;margin-bottom:24px}h1{font-size:175%}h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}code,.rst-content tt{white-space:nowrap;max-width:100%;background:#fff;border:solid 1px #e1e4e5;font-size:75%;padding:0 5px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;color:#E74C3C;overflow-x:auto}code.code-large,.rst-content tt.code-large{font-size:90%}.wy-plain-list-disc,.rst-content .section ul,.rst-content .toctree-wrapper ul,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.wy-plain-list-disc li,.rst-content .section ul li,.rst-content .toctree-wrapper ul li,article ul li{list-style:disc;margin-left:24px}.wy-plain-list-disc li p:last-child,.rst-content .section ul li p:last-child,.rst-content .toctree-wrapper ul li p:last-child,article ul li p:last-child{margin-bottom:0}.wy-plain-list-disc li ul,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li ul,article ul li ul{margin-bottom:0}.wy-plain-list-disc li li,.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,article ul li li{list-style:circle}.wy-plain-list-disc li li li,.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,article ul li li li{list-style:square}.wy-plain-list-disc li ol li,.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,article ul li ol li{list-style:decimal}.wy-plain-list-decimal,.rst-content .section ol,.rst-content ol.arabic,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.wy-plain-list-decimal li,.rst-content .section ol li,.rst-content ol.arabic li,article ol li{list-style:decimal;margin-left:24px}.wy-plain-list-decimal li p:last-child,.rst-content .section ol li p:last-child,.rst-content ol.arabic li p:last-child,article ol li p:last-child{margin-bottom:0}.wy-plain-list-decimal li ul,.rst-content .section ol li ul,.rst-content ol.arabic li ul,article ol li ul{margin-bottom:0}.wy-plain-list-decimal li ul li,.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,article ol li ul li{list-style:disc}.codeblock-example{border:1px solid #e1e4e5;border-bottom:none;padding:24px;padding-top:48px;font-weight:500;background:#fff;position:relative}.codeblock-example:after{content:"Example";position:absolute;top:0px;left:0px;background:#97310e;color:#fff;padding:6px 12px}.codeblock-example.prettyprint-example-only{border:1px solid #e1e4e5;margin-bottom:24px}.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight']{border:1px solid #e1e4e5;padding:0px;overflow-x:auto;background:#fff;margin:1px 0 24px 0}.codeblock div[class^='highlight'],pre.literal-block div[class^='highlight'],.rst-content .literal-block div[class^='highlight'],div[class^='highlight'] div[class^='highlight']{border:none;background:none;margin:0}div[class^='highlight'] td.code{width:100%}.linenodiv pre{border-right:solid 1px #e6e9ea;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;color:#d9d9d9}div[class^='highlight'] pre{white-space:pre;margin:0;padding:12px 12px;font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace;font-size:12px;line-height:1.5;display:block;overflow:auto;color:#404040}@media print{.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight'],div[class^='highlight'] pre{white-space:pre-wrap}}.hll{background-color:#ffc;margin:0 -12px;padding:0 12px;display:block}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{font-weight:bold}.o{font-weight:bold}.cm{color:#998;font-style:italic}.cp{color:#999;font-weight:bold}.c1{color:#998;font-style:italic}.cs{color:#999;font-weight:bold;font-style:italic}.gd{color:#000;background-color:#fdd}.gd .x{color:#000;background-color:#faa}.ge{font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.gi .x{color:#000;background-color:#afa}.go{color:#888}.gp{color:#555}.gs{font-weight:bold}.gu{color:purple;font-weight:bold}.gt{color:#a00}.kc{font-weight:bold}.kd{font-weight:bold}.kn{font-weight:bold}.kp{font-weight:bold}.kr{font-weight:bold}.kt{color:#458;font-weight:bold}.m{color:#099}.s{color:#d14}.n{color:#333}.na{color:teal}.nb{color:#0086b3}.nc{color:#458;font-weight:bold}.no{color:teal}.ni{color:purple}.ne{color:#900;font-weight:bold}.nf{color:#900;font-weight:bold}.nn{color:#555}.nt{color:navy}.nv{color:teal}.ow{font-weight:bold}.w{color:#bbb}.mf{color:#099}.mh{color:#099}.mi{color:#099}.mo{color:#099}.sb{color:#d14}.sc{color:#d14}.sd{color:#d14}.s2{color:#d14}.se{color:#d14}.sh{color:#d14}.si{color:#d14}.sx{color:#d14}.sr{color:#009926}.s1{color:#d14}.ss{color:#990073}.bp{color:#999}.vc{color:teal}.vg{color:teal}.vi{color:teal}.il{color:#099}.gc{color:#999;background-color:#EAF2F5}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width: 480px){.wy-breadcrumbs-extra{display:none}.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:before,.wy-menu-horiz:after{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz ul,.wy-menu-horiz li{display:inline-block}.wy-menu-horiz li:hover{background:rgba(255,255,255,0.1)}.wy-menu-horiz li.divide-left{border-left:solid 1px #404040}.wy-menu-horiz li.divide-right{border-right:solid 1px #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical header{height:32px;display:inline-block;line-height:32px;padding:0 1.618em;display:block;font-weight:bold;text-transform:uppercase;font-size:80%;color:#dd4814;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:solid 1px #404040}.wy-menu-vertical li.divide-bottom{border-bottom:solid 1px #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:gray;border-right:solid 1px #c9c9c9;padding:0.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a{color:#404040;padding:0.4045em 1.618em;font-weight:bold;position:relative;background:#fcfcfc;border:none;border-bottom:solid 1px #c9c9c9;border-top:solid 1px #c9c9c9;padding-left:1.618em -4px}.wy-menu-vertical li.on a:hover,.wy-menu-vertical li.current>a:hover{background:#fcfcfc}.wy-menu-vertical li.toctree-l2.current>a{background:#c9c9c9;padding:0.4045em 2.427em}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical .local-toc li ul{display:block}.wy-menu-vertical li ul li a{margin-bottom:0;color:#b3b3b3;font-weight:normal}.wy-menu-vertical a{display:inline-block;line-height:18px;padding:0.4045em 1.618em;display:block;position:relative;font-size:90%;color:#b3b3b3}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:active{background-color:#dd4814;cursor:pointer;color:#fff}.wy-side-nav-search{z-index:200;background-color:#dd4814;text-align:center;padding:0.809em;display:block;color:#fcfcfc;margin-bottom:0.809em}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#97310e}.wy-side-nav-search img{display:block;margin:auto auto 0.809em auto;height:45px;width:45px;background-color:#dd4814;padding:5px;border-radius:100%}.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a{color:#fcfcfc;font-size:100%;font-weight:bold;display:inline-block;padding:4px 6px;margin-bottom:0.809em}.wy-side-nav-search>a:hover,.wy-side-nav-search .wy-dropdown>a:hover{background:rgba(255,255,255,0.1)}.wy-nav .wy-menu-vertical header{color:#dd4814}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#dd4814;color:#fff}[data-menu-wrap]{-webkit-transition:all 0.2s ease-in;-moz-transition:all 0.2s ease-in;transition:all 0.2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:left repeat-y #fcfcfc;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC);background-size:300px 1px}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:absolute;top:0;left:0;width:300px;overflow:hidden;min-height:100%;background:#343131;z-index:200}.wy-nav-top{display:none;background:#dd4814;color:#fff;padding:0.4045em 0.809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:before,.wy-nav-top:after{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:bold}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#dd4814;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100x;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,0.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:#999}footer p{margin-bottom:12px}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:before,.rst-footer-buttons:after{display:table;content:""}.rst-footer-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:solid 1px #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:solid 1px #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:gray;font-size:90%}@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-nav-content-wrap{margin-left:0!important}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width: 1400px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,footer,.wy-nav-side{display:none}.wy-nav-content-wrap{margin-left:0}}nav.stickynav{position:fixed;top:0}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#dd4814;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .icon{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}img{width:100%;height:auto}}.rst-content img{max-width:100%;height:auto !important}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure.align-center{text-align:center}.rst-content .section>img,.rst-content .section>a>img{margin-bottom:24px}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content .note .last,.rst-content .attention .last,.rst-content .caution .last,.rst-content .danger .last,.rst-content .error .last,.rst-content .hint .last,.rst-content .important .last,.rst-content .tip .last,.rst-content .warning .last,.rst-content .seealso .last,.rst-content .admonition-todo .last{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,0.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent !important;border-color:rgba(0,0,0,0.1) !important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha li{list-style:upper-alpha}.rst-content .section ol p,.rst-content .section ul p{margin-bottom:12px}.rst-content .line-block{margin-left:24px}.rst-content .topic-title{font-weight:bold;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0px 0px 24px 24px}.rst-content .align-left{float:left;margin:0px 24px 24px 0px}.rst-content .align-center{margin:auto;display:block}.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink{display:none;visibility:hidden;font-size:14px}.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content dl dt .headerlink:after{visibility:visible;content:"";font-family:FontAwesome;display:inline-block}.rst-content h1:hover .headerlink,.rst-content h2:hover .headerlink,.rst-content h3:hover .headerlink,.rst-content h4:hover .headerlink,.rst-content h5:hover .headerlink,.rst-content h6:hover .headerlink,.rst-content dl dt:hover .headerlink{display:inline-block}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:solid 1px #e1e4e5}.rst-content .sidebar p,.rst-content .sidebar ul,.rst-content .sidebar dl{font-size:90%}.rst-content .sidebar .last{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif;font-weight:bold;background:#e1e4e5;padding:6px 12px;margin:-24px;margin-bottom:24px;font-size:100%}.rst-content .highlighted{background:#F1C40F;display:inline-block;font-weight:bold;padding:0 6px}.rst-content .footnote-reference,.rst-content .citation-reference{vertical-align:super;font-size:90%}.rst-content table.docutils.citation,.rst-content table.docutils.footnote{background:none;border:none;color:#999}.rst-content table.docutils.citation td,.rst-content table.docutils.citation tr,.rst-content table.docutils.footnote td,.rst-content table.docutils.footnote tr{border:none;background-color:transparent !important;white-space:normal}.rst-content table.docutils.citation td.label,.rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}.rst-content table.field-list{border:none}.rst-content table.field-list td{border:none;padding-top:5px}.rst-content table.field-list td>strong{display:inline-block;margin-top:3px}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left;padding-left:0}.rst-content tt{color:#000}.rst-content tt big,.rst-content tt em{font-size:100% !important;line-height:normal}.rst-content tt .xref,a .rst-content tt{font-weight:bold}.rst-content a tt{color:#dd4814}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:bold}.rst-content dl p,.rst-content dl table,.rst-content dl ul,.rst-content dl ol{margin-bottom:12px !important}.rst-content dl dd{margin:0 0 12px 24px}.rst-content dl:not(.docutils){margin-bottom:24px}.rst-content dl:not(.docutils) dt{display:inline-block;margin:6px 0;font-size:90%;line-height:normal;background:#dedede;color:#dd4814;border-top:solid 3px #8ba8af;padding:6px;position:relative}.rst-content dl:not(.docutils) dt:before{color:#8ba8af}.rst-content dl:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:gray}.rst-content dl:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dt:first-child{margin-top:0}.rst-content dl:not(.docutils) tt{font-weight:bold}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}.rst-content dl:not(.docutils) tt.descname{font-weight:bold}.rst-content dl:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}.rst-content dl:not(.docutils) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-link,.rst-content .viewcode-back{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:bold}@media screen and (max-width: 480px){.rst-content .sidebar{width:100%}}span[id*='MathJax-Span']{color:#404040}.math{text-align:center} /*# sourceMappingURL=theme.css.map */ -- cgit v1.2.3-24-g4f1b From 2151449cd1500919ac7cc966826e83e6bb2c1b7d Mon Sep 17 00:00:00 2001 From: 澤崎成実 Date: Fri, 19 Apr 2019 01:24:01 +0900 Subject: fix typo --- user_guide_src/source/tutorial/static_pages.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/tutorial/static_pages.rst b/user_guide_src/source/tutorial/static_pages.rst index 5daaa958f..561082a48 100644 --- a/user_guide_src/source/tutorial/static_pages.rst +++ b/user_guide_src/source/tutorial/static_pages.rst @@ -162,7 +162,7 @@ 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 +Here, the second rule in the ``$route`` array matches **any** request using the wildcard string ``(:any)``. and passes the parameter to the ``view()`` method of the ``Pages`` class. -- cgit v1.2.3-24-g4f1b From adc1f27ba2d330c760703a00ee12f82ddd216350 Mon Sep 17 00:00:00 2001 From: Sharad Soni Date: Tue, 23 Apr 2019 00:07:35 +0530 Subject: Adding support for proper CRLF Window's Notepad doesn't recognize `\n` linebreak it has to be `\r\n` --- system/core/Log.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/core/Log.php b/system/core/Log.php index d651e8abe..3f7fc783f 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -249,11 +249,11 @@ class CI_Log { * @param string $level The error level * @param string $date Formatted date string * @param string $message The log message - * @return string Formatted log line with a new line character '\n' at the end + * @return string Formatted log line with a new line character '\r\n' at the end */ protected function _format_line($level, $date, $message) { - return $level.' - '.$date.' --> '.$message."\n"; + return $level.' - '.$date.' --> '.$message."\r\n"; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From b08cacacb7385671b275ee7a1f7d4f6c6867ee20 Mon Sep 17 00:00:00 2001 From: Sharad Soni Date: Tue, 23 Apr 2019 16:58:42 +0530 Subject: Updated test case for Log Class Also added `\r\n` to pass the test case --- tests/codeigniter/core/Log_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index 103af342b..de0f3800d 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -57,7 +57,7 @@ class Log_test extends CI_TestCase { $format_line->setAccessible(TRUE); $this->assertEquals( $format_line->invoke($instance, 'LEVEL', 'Timestamp', 'Message'), - "LEVEL - Timestamp --> Message\n" + "LEVEL - Timestamp --> Message\r\n" ); } } -- cgit v1.2.3-24-g4f1b From 346a59f87e6b72678a492c249fd7284cc3abc9f0 Mon Sep 17 00:00:00 2001 From: Sharad Soni Date: Wed, 24 Apr 2019 02:34:20 +0530 Subject: Update Log_test.php Changed to use PHP_EOL instead of `/r/n` --- tests/codeigniter/core/Log_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index de0f3800d..bdff25bdc 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -57,7 +57,7 @@ class Log_test extends CI_TestCase { $format_line->setAccessible(TRUE); $this->assertEquals( $format_line->invoke($instance, 'LEVEL', 'Timestamp', 'Message'), - "LEVEL - Timestamp --> Message\r\n" + "LEVEL - Timestamp --> Message" . PHP_EOL ); } } -- cgit v1.2.3-24-g4f1b From 1c35505d92fd502b6fbfbbdf6f7a462ad92c6273 Mon Sep 17 00:00:00 2001 From: Sharad Soni Date: Wed, 24 Apr 2019 02:35:24 +0530 Subject: Update Log.php Changed to use PHP_EOL instead of '/r/n' --- system/core/Log.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Log.php b/system/core/Log.php index 3f7fc783f..cfc0f36a2 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -253,7 +253,7 @@ class CI_Log { */ protected function _format_line($level, $date, $message) { - return $level.' - '.$date.' --> '.$message."\r\n"; + return $level.' - '.$date.' --> '.$message. PHP_EOL; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From b5e4b30ff267fe03273c859ba110cca0d8e72dac Mon Sep 17 00:00:00 2001 From: Sharad Soni Date: Wed, 24 Apr 2019 14:06:33 +0530 Subject: Update Log.php Removed extra space. --- system/core/Log.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Log.php b/system/core/Log.php index cfc0f36a2..3c9a89a5f 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -253,7 +253,7 @@ class CI_Log { */ protected function _format_line($level, $date, $message) { - return $level.' - '.$date.' --> '.$message. PHP_EOL; + return $level.' - '.$date.' --> '.$message.PHP_EOL; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 5be3b68b03334c0218752968417a7a3778ac58cf Mon Sep 17 00:00:00 2001 From: Sharad Soni Date: Wed, 24 Apr 2019 14:08:32 +0530 Subject: Update Log_test.php Removed extra space, before and after concatenation. --- tests/codeigniter/core/Log_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index bdff25bdc..927984385 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -57,7 +57,7 @@ class Log_test extends CI_TestCase { $format_line->setAccessible(TRUE); $this->assertEquals( $format_line->invoke($instance, 'LEVEL', 'Timestamp', 'Message'), - "LEVEL - Timestamp --> Message" . PHP_EOL + "LEVEL - Timestamp --> Message".PHP_EOL ); } } -- cgit v1.2.3-24-g4f1b From ab658b3ae8799915f3b6ab1cd71a3d4932ffd9d5 Mon Sep 17 00:00:00 2001 From: Sharad Soni Date: Wed, 8 May 2019 00:26:19 +0530 Subject: Update Log.php Removed \n as now we are adding PHP_EOL --- system/core/Log.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Log.php b/system/core/Log.php index 3c9a89a5f..fde0bebf2 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -249,7 +249,7 @@ class CI_Log { * @param string $level The error level * @param string $date Formatted date string * @param string $message The log message - * @return string Formatted log line with a new line character '\r\n' at the end + * @return string Formatted log line with a new line character at the end */ protected function _format_line($level, $date, $message) { -- cgit v1.2.3-24-g4f1b From 73cde1994aad64a32d19d8b2e11f1b82ccaad19d Mon Sep 17 00:00:00 2001 From: Brendan Corazzin Date: Mon, 13 May 2019 09:32:29 -0500 Subject: Fixed broken 'Send a pull request' link and added links to official GitHub documentation for other steps in the 'How-to Guide'. Additional links were added to make the How-to Guide a little more user friendly for those who are unfamilar to GitHub. --- contributing.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/contributing.md b/contributing.md index 65ff9501a..46ce0190e 100644 --- a/contributing.md +++ b/contributing.md @@ -1,6 +1,5 @@ # 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. 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: @@ -59,7 +58,6 @@ If you are using [Tower](https://www.git-tower.com/) there is a "Sign-Off" check By signing your work in this manner, you certify to a "Developer's Certificate of Origin". The current version of this certificate is in the `DCO.txt` file in the root of this repository. - ## How-to Guide There are two ways to make changes, the easy way and the hard way. Either way you will need to [create a GitHub account](https://github.com/signup/free). @@ -68,15 +66,15 @@ Easy way GitHub allows in-line editing of files for making simple typo changes a Hard way The best way to contribute is to "clone" your fork of CodeIgniter to your development area. That sounds like some jargon, but "forking" on GitHub means "making a copy of that repo to your account" and "cloning" means "copying that code to your environment so you can work on it". -1. Set up Git (Windows, Mac & Linux) -2. Go to the CodeIgniter repo -3. Fork it -4. Clone your CodeIgniter repo: git@github.com:/CodeIgniter.git -5. Checkout the "develop" branch At this point you are ready to start making changes. +1. [Set up Git](https://help.github.com/en/articles/set-up-git) (Windows, Mac & Linux) +2. Go to the [CodeIgniter repo](https://github.com/bcit-ci/CodeIgniter) +3. [Fork it](https://help.github.com/en/articles/fork-a-repo) +4. [Clone](https://help.github.com/en/articles/fetching-a-remote#clone) your forked CodeIgniter repo. +5. Checkout the "develop" branch. At this point you are ready to start making changes. 6. Fix existing bugs on the Issue tracker after taking a look to see nobody else is working on them. -7. Commit the files -8. Push your develop branch to your fork -9. Send a pull request [http://help.github.com/send-pull-requests/](http://help.github.com/send-pull-requests/) +7. [Commit](https://help.github.com/en/articles/adding-a-file-to-a-repository-using-the-command-line) the files +8. [Push](https://help.github.com/en/articles/pushing-to-a-remote) your develop branch to your fork +9. [Send a pull request](https://help.github.com/en/articles/creating-a-pull-request) The Reactor Engineers will now be alerted about the change and at least one of the team will respond. If your change fails to meet the guidelines it will be bounced, or feedback will be provided to help you improve it. -- cgit v1.2.3-24-g4f1b From 2eff8a25cc06f35ae8a5e5efebfc7fa739ed7fae Mon Sep 17 00:00:00 2001 From: Brendan Corazzin Date: Tue, 28 May 2019 14:43:44 -0500 Subject: Adding back 'git@github.com:/CodeIgniter.git' to step 4 in the how-to guide --- contributing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contributing.md b/contributing.md index 46ce0190e..8f43c45a6 100644 --- a/contributing.md +++ b/contributing.md @@ -69,7 +69,7 @@ Hard way The best way to contribute is to "clone" your fork of CodeIgniter to yo 1. [Set up Git](https://help.github.com/en/articles/set-up-git) (Windows, Mac & Linux) 2. Go to the [CodeIgniter repo](https://github.com/bcit-ci/CodeIgniter) 3. [Fork it](https://help.github.com/en/articles/fork-a-repo) -4. [Clone](https://help.github.com/en/articles/fetching-a-remote#clone) your forked CodeIgniter repo. +4. [Clone](https://help.github.com/en/articles/fetching-a-remote#clone) your forked CodeIgniter repo: git@github.com:/CodeIgniter.git. 5. Checkout the "develop" branch. At this point you are ready to start making changes. 6. Fix existing bugs on the Issue tracker after taking a look to see nobody else is working on them. 7. [Commit](https://help.github.com/en/articles/adding-a-file-to-a-repository-using-the-command-line) the files -- cgit v1.2.3-24-g4f1b From e0bdd367067a8231a4c2a8c9589c2e286b6fde6f Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Tue, 18 Jun 2019 21:38:53 +0300 Subject: Calling php5_validate_id() in the right place, for Redis session driver --- system/libraries/Session/drivers/Session_redis_driver.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index c90e94bd3..9ff6a0e1f 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -168,6 +168,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle } else { + $this->php5_validate_id(); $this->_redis = $redis; return $this->_success; } @@ -177,8 +178,6 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle log_message('error', 'Session: Unable to connect to Redis with the configured settings.'); } - $this->php5_validate_id(); - return $this->_fail(); } -- cgit v1.2.3-24-g4f1b From 4912ef2d1c44e1b314dcfcc932674d517f0999b0 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 23 Jun 2019 01:48:50 +0300 Subject: Session files driver to return failure status code (+logging) instead of Exception throwing --- system/libraries/Session/drivers/Session_files_driver.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_files_driver.php b/system/libraries/Session/drivers/Session_files_driver.php index 467059434..2899b7dec 100644 --- a/system/libraries/Session/drivers/Session_files_driver.php +++ b/system/libraries/Session/drivers/Session_files_driver.php @@ -135,12 +135,14 @@ class CI_Session_files_driver extends CI_Session_driver implements SessionHandle { if ( ! mkdir($save_path, 0700, TRUE)) { - throw new Exception("Session: Configured save path '".$this->_config['save_path']."' is not a directory, doesn't exist or cannot be created."); + log_message('error', "Session: Configured save path '".$this->_config['save_path']."' is not a directory, doesn't exist or cannot be created."); + return $this->_failure; } } elseif ( ! is_writable($save_path)) { - throw new Exception("Session: Configured save path '".$this->_config['save_path']."' is not writable by the PHP process."); + log_message('error', "Session: Configured save path '".$this->_config['save_path']."' is not writable by the PHP process."); + return $this->_failure; } $this->_config['save_path'] = $save_path; -- cgit v1.2.3-24-g4f1b From 3c488678933cbf7f3805e6ceecd64434e4540edb Mon Sep 17 00:00:00 2001 From: "harrys.revis" Date: Wed, 31 Jul 2019 01:42:38 +0300 Subject: Added some greek characters and corrected some of them that showed up wrong --- application/config/foreign_chars.php | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/application/config/foreign_chars.php b/application/config/foreign_chars.php index 995f48304..0231f3592 100644 --- a/application/config/foreign_chars.php +++ b/application/config/foreign_chars.php @@ -22,10 +22,10 @@ $foreign_characters = array( '/б/' => 'b', '/Ç|Ć|Ĉ|Ċ|Č/' => 'C', '/ç|ć|ĉ|ċ|č/' => 'c', - '/Д/' => 'D', - '/д/' => 'd', - '/Ð|Ď|Đ|Δ/' => 'Dj', - '/ð|ď|đ|δ/' => 'dj', + '/Д|Δ/' => 'D', + '/д|δ/' => 'd', + '/Ð|Ď|Đ/' => 'Dj', + '/ð|ď|đ/' => 'dj', '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Ε|Έ|Ẽ|Ẻ|Ẹ|Ề|Ế|Ễ|Ể|Ệ|Е|Э/' => 'E', '/è|é|ê|ë|ē|ĕ|ė|ę|ě|έ|ε|ẽ|ẻ|ẹ|ề|ế|ễ|ể|ệ|е|э/' => 'e', '/Ф/' => 'F', @@ -38,6 +38,8 @@ $foreign_characters = array( '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|η|ή|ί|ι|ϊ|ỉ|ị|и|ы|ї/' => 'i', '/Ĵ/' => 'J', '/ĵ/' => 'j', + '/Θ/' => 'TH', + '/θ/' => 'th', '/Ķ|Κ|К/' => 'K', '/ķ|κ|к/' => 'k', '/Ĺ|Ļ|Ľ|Ŀ|Ł|Λ|Л/' => 'L', @@ -54,8 +56,8 @@ $foreign_characters = array( '/ŕ|ŗ|ř|ρ|р/' => 'r', '/Ś|Ŝ|Ş|Ș|Š|Σ|С/' => 'S', '/ś|ŝ|ş|ș|š|ſ|σ|ς|с/' => 's', - '/Ț|Ţ|Ť|Ŧ|τ|Т/' => 'T', - '/ț|ţ|ť|ŧ|т/' => 't', + '/Ț|Ţ|Ť|Ŧ|Τ|Т/' => 'T', + '/ț|ţ|ť|ŧ|τ|т/' => 't', '/Þ|þ/' => 'th', '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U', '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u', @@ -65,6 +67,10 @@ $foreign_characters = array( '/в/' => 'v', '/Ŵ/' => 'W', '/ŵ/' => 'w', + '/Φ/' => 'F', + '/φ/' => 'f', + '/Χ/' => 'CH', + '/χ/' => 'ch', '/Ź|Ż|Ž|Ζ|З/' => 'Z', '/ź|ż|ž|ζ|з/' => 'z', '/Æ|Ǽ/' => 'AE', @@ -73,10 +79,15 @@ $foreign_characters = array( '/ij/' => 'ij', '/Œ/' => 'OE', '/ƒ/' => 'f', + '/Ξ/' => 'KS', '/ξ/' => 'ks', + '/Π/' => 'P', '/π/' => 'p', + '/Β/' => 'V', '/β/' => 'v', + '/Μ/' => 'M', '/μ/' => 'm', + '/Ψ/' => 'PS', '/ψ/' => 'ps', '/Ё/' => 'Yo', '/ё/' => 'yo', -- cgit v1.2.3-24-g4f1b From d267b0660926228940cf010449fb4eb832fc36b5 Mon Sep 17 00:00:00 2001 From: "Kamas \"Iceberg\" Lau" Date: Sun, 11 Aug 2019 06:24:44 +0800 Subject: Fix .aac file mime type --- application/config/mimes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index 0ec9db0a0..7aa5c9e4e 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -140,7 +140,7 @@ return array( 'f4v' => array('video/mp4', 'video/x-f4v'), 'flv' => 'video/x-flv', 'webm' => 'video/webm', - 'aac' => 'audio/x-acc', + 'aac' => array('audio/x-aac', 'audio/aac'), 'm4u' => 'application/vnd.mpegurl', 'm3u' => 'text/plain', 'xspf' => 'application/xspf+xml', -- cgit v1.2.3-24-g4f1b From 7d741c2ba0cc694b57469c692bb0b197e0127e95 Mon Sep 17 00:00:00 2001 From: Michael Long Date: Mon, 12 Aug 2019 11:58:40 +0800 Subject: Adapt to new version of php-redis --- .../Session/drivers/Session_redis_driver.php | 45 +++++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 9ff6a0e1f..4976e9473 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -240,7 +240,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle $this->_session_id = $session_id; } - $this->_redis->setTimeout($this->_lock_key, 300); + $this->_expire($this->_lock_key, 300); if ($this->_fingerprint !== ($fingerprint = md5($session_data)) OR $this->_key_exists === FALSE) { if ($this->_redis->set($this->_key_prefix.$session_id, $session_data, $this->_config['expiration'])) @@ -253,7 +253,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return $this->_fail(); } - return ($this->_redis->setTimeout($this->_key_prefix.$session_id, $this->_config['expiration'])) + return ($this->_expire($this->_key_prefix.$session_id, $this->_config['expiration'])) ? $this->_success : $this->_fail(); } @@ -272,7 +272,8 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle if (isset($this->_redis)) { try { - if ($this->_redis->ping() === '+PONG') + $ping = $this->_redis->ping(); + if ($ping === '+PONG' || $ping === TRUE) { $this->_release_lock(); if ($this->_redis->close() === FALSE) @@ -307,9 +308,9 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { if (isset($this->_redis, $this->_lock_key)) { - if (($result = $this->_redis->delete($this->_key_prefix.$session_id)) !== 1) + if (($result = $this->_delete($this->_key_prefix.$session_id)) !== 1) { - log_message('debug', 'Session: Redis::delete() expected to return 1, got '.var_export($result, TRUE).' instead.'); + log_message('debug', 'Session: Redis::del() expected to return 1, got '.var_export($result, TRUE).' instead.'); } $this->_cookie_destroy(); @@ -368,7 +369,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle // correct session ID. if ($this->_lock_key === $this->_key_prefix.$session_id.':lock') { - return $this->_redis->setTimeout($this->_lock_key, 300); + return $this->_expire($this->_lock_key, 300); } // 30 attempts to obtain a lock, in case another request already has it @@ -439,4 +440,36 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return TRUE; } + // ------------------------------------------------------------------------ + + /** + * Expire + * + * Sets expiration for a key + * + * @return bool + */ + protected function _expire($key, $timeout) + { + if (method_exists($this->_redis, 'expire')) + return $this->_redis->expire($key, $timeout); + return $this->_redis->setTimeout($key, $timeout); + } + + // ------------------------------------------------------------------------ + + /** + * Delete + * + * Deletes a key + * + * @return bool + */ + protected function _delete($key) + { + if (method_exists($this->_redis, 'del')) + return $this->_redis->del($key); + return $this->_redis->delete($key); + } + } -- cgit v1.2.3-24-g4f1b From 4aec0ed32942b52535b69bfbe33ff9e8e957b245 Mon Sep 17 00:00:00 2001 From: Michael Long Date: Mon, 12 Aug 2019 12:25:22 +0800 Subject: Add parameter description --- system/libraries/Session/drivers/Session_redis_driver.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 4976e9473..1f1004fb9 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -447,13 +447,15 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle * * Sets expiration for a key * + * @param string $key Redis key + * @param int $ttl The key's remaining Time To Live, in seconds. * @return bool */ - protected function _expire($key, $timeout) + protected function _expire($key, $ttl) { if (method_exists($this->_redis, 'expire')) - return $this->_redis->expire($key, $timeout); - return $this->_redis->setTimeout($key, $timeout); + return $this->_redis->expire($key, $ttl); + return $this->_redis->setTimeout($key, $ttl); } // ------------------------------------------------------------------------ @@ -463,6 +465,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle * * Deletes a key * + * @param string $key Redis key * @return bool */ protected function _delete($key) -- cgit v1.2.3-24-g4f1b From 8535d803b8feb252c6f4a14b5e87a47111f1d4a8 Mon Sep 17 00:00:00 2001 From: Michael Long Date: Wed, 14 Aug 2019 03:13:10 +0800 Subject: Adapt to styleguide --- .../Session/drivers/Session_redis_driver.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 1f1004fb9..3323ca6cf 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -240,7 +240,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle $this->_session_id = $session_id; } - $this->_expire($this->_lock_key, 300); + $this->_expire_key($this->_lock_key, 300); if ($this->_fingerprint !== ($fingerprint = md5($session_data)) OR $this->_key_exists === FALSE) { if ($this->_redis->set($this->_key_prefix.$session_id, $session_data, $this->_config['expiration'])) @@ -253,7 +253,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return $this->_fail(); } - return ($this->_expire($this->_key_prefix.$session_id, $this->_config['expiration'])) + return ($this->_expire_key($this->_key_prefix.$session_id, $this->_config['expiration'])) ? $this->_success : $this->_fail(); } @@ -273,7 +273,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { try { $ping = $this->_redis->ping(); - if ($ping === '+PONG' || $ping === TRUE) + if ($ping === '+PONG' OR $ping === TRUE) { $this->_release_lock(); if ($this->_redis->close() === FALSE) @@ -308,7 +308,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { if (isset($this->_redis, $this->_lock_key)) { - if (($result = $this->_delete($this->_key_prefix.$session_id)) !== 1) + if (($result = $this->_delete_key($this->_key_prefix.$session_id)) !== 1) { log_message('debug', 'Session: Redis::del() expected to return 1, got '.var_export($result, TRUE).' instead.'); } @@ -369,7 +369,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle // correct session ID. if ($this->_lock_key === $this->_key_prefix.$session_id.':lock') { - return $this->_expire($this->_lock_key, 300); + return $this->_expire_key($this->_lock_key, 300); } // 30 attempts to obtain a lock, in case another request already has it @@ -443,15 +443,15 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle // ------------------------------------------------------------------------ /** - * Expire + * Expire key * * Sets expiration for a key * * @param string $key Redis key - * @param int $ttl The key's remaining Time To Live, in seconds. + * @param int $ttl The key's remaining Time To Live, in seconds. * @return bool */ - protected function _expire($key, $ttl) + protected function _expire_key($key, $ttl) { if (method_exists($this->_redis, 'expire')) return $this->_redis->expire($key, $ttl); @@ -461,14 +461,14 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle // ------------------------------------------------------------------------ /** - * Delete + * Delete key * * Deletes a key * * @param string $key Redis key * @return bool */ - protected function _delete($key) + protected function _delete_key($key) { if (method_exists($this->_redis, 'del')) return $this->_redis->del($key); -- cgit v1.2.3-24-g4f1b From 1f90f7b985214319b1363d0fa2b497d2a1cd9a8d Mon Sep 17 00:00:00 2001 From: Michael Long Date: Wed, 14 Aug 2019 03:22:16 +0800 Subject: Use version_compare to avoid method checks --- system/libraries/Session/drivers/Session_redis_driver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 3323ca6cf..66a28ffdc 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -453,7 +453,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle */ protected function _expire_key($key, $ttl) { - if (method_exists($this->_redis, 'expire')) + if (version_compare(phpversion('redis'), '5', '>=')) return $this->_redis->expire($key, $ttl); return $this->_redis->setTimeout($key, $ttl); } @@ -470,7 +470,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle */ protected function _delete_key($key) { - if (method_exists($this->_redis, 'del')) + if (version_compare(phpversion('redis'), '5', '>=')) return $this->_redis->del($key); return $this->_redis->delete($key); } -- cgit v1.2.3-24-g4f1b From 940819167f58bad7efb87b9dacd91ba44029ab4d Mon Sep 17 00:00:00 2001 From: Michael Long Date: Wed, 14 Aug 2019 18:36:38 +0800 Subject: Define constant PHPREDIS_VERSION --- system/libraries/Session/drivers/Session_redis_driver.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 66a28ffdc..1215b3afd 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -37,6 +37,8 @@ */ defined('BASEPATH') OR exit('No direct script access allowed'); +define('PHPREDIS_VERSION', phpversion('redis')); + /** * CodeIgniter Session Redis Driver * @@ -453,7 +455,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle */ protected function _expire_key($key, $ttl) { - if (version_compare(phpversion('redis'), '5', '>=')) + if (version_compare(PHPREDIS_VERSION, '5', '>=')) return $this->_redis->expire($key, $ttl); return $this->_redis->setTimeout($key, $ttl); } @@ -470,7 +472,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle */ protected function _delete_key($key) { - if (version_compare(phpversion('redis'), '5', '>=')) + if (version_compare(PHPREDIS_VERSION, '5', '>=')) return $this->_redis->del($key); return $this->_redis->delete($key); } -- cgit v1.2.3-24-g4f1b From 8ae161944fe2c25e1fc56e845cf66b07d65805dd Mon Sep 17 00:00:00 2001 From: Michael Long Date: Fri, 23 Aug 2019 22:07:43 +0800 Subject: Refactor implementation of #5816 --- .../Session/drivers/Session_redis_driver.php | 77 ++++++++++++++++------ 1 file changed, 56 insertions(+), 21 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 1215b3afd..3ee59a4a2 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -37,8 +37,6 @@ */ defined('BASEPATH') OR exit('No direct script access allowed'); -define('PHPREDIS_VERSION', phpversion('redis')); - /** * CodeIgniter Session Redis Driver * @@ -78,6 +76,33 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle */ protected $_key_exists = FALSE; + /** + * Name of setTimeout() method in phpRedis + * + * Due to some deprecated methods in phpRedis, we need to call the + * specific methods depending on the version of phpRedis. + * + * @var string + */ + protected $_setTimeout_name; + + /** + * Name of delete() method in phpRedis + * + * Due to some deprecated methods in phpRedis, we need to call the + * specific methods depending on the version of phpRedis. + * + * @var string + */ + protected $_delete_name; + + /** + * Response of ping() method in phpRedis + * + * @var mixed + */ + protected $_ping_response; + // ------------------------------------------------------------------------ /** @@ -90,6 +115,20 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { parent::__construct($params); + // Detect the names of some methods in phpRedis instance + if (version_compare(phpversion('redis'), '5', '>=')) + { + $this->_setTimeout_name = 'expire'; + $this->_delete_name = 'del'; + $this->_ping_response = TRUE; + } + else + { + $this->_setTimeout_name = 'setTimeout'; + $this->_delete_name = 'delete'; + $this->_ping_response = '+PONG'; + } + if (empty($this->_config['save_path'])) { log_message('error', 'Session: No Redis save path configured.'); @@ -170,8 +209,8 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle } else { - $this->php5_validate_id(); $this->_redis = $redis; + $this->php5_validate_id(); return $this->_success; } } @@ -242,7 +281,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle $this->_session_id = $session_id; } - $this->_expire_key($this->_lock_key, 300); + $this->_setTimeout($this->_lock_key, 300); if ($this->_fingerprint !== ($fingerprint = md5($session_data)) OR $this->_key_exists === FALSE) { if ($this->_redis->set($this->_key_prefix.$session_id, $session_data, $this->_config['expiration'])) @@ -255,7 +294,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return $this->_fail(); } - return ($this->_expire_key($this->_key_prefix.$session_id, $this->_config['expiration'])) + return ($this->_setTimeout($this->_key_prefix.$session_id, $this->_config['expiration'])) ? $this->_success : $this->_fail(); } @@ -275,7 +314,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { try { $ping = $this->_redis->ping(); - if ($ping === '+PONG' OR $ping === TRUE) + if ($ping === $this->_ping_response) { $this->_release_lock(); if ($this->_redis->close() === FALSE) @@ -310,9 +349,9 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { if (isset($this->_redis, $this->_lock_key)) { - if (($result = $this->_delete_key($this->_key_prefix.$session_id)) !== 1) + if (($result = $this->_delete($this->_key_prefix.$session_id)) !== 1) { - log_message('debug', 'Session: Redis::del() expected to return 1, got '.var_export($result, TRUE).' instead.'); + log_message('debug', 'Session: Redis::'.$this->_delete_name.'() expected to return 1, got '.var_export($result, TRUE).' instead.'); } $this->_cookie_destroy(); @@ -371,7 +410,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle // correct session ID. if ($this->_lock_key === $this->_key_prefix.$session_id.':lock') { - return $this->_expire_key($this->_lock_key, 300); + return $this->_setTimeout($this->_lock_key, 300); } // 30 attempts to obtain a lock, in case another request already has it @@ -429,7 +468,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { if (isset($this->_redis, $this->_lock_key) && $this->_lock) { - if ( ! $this->_redis->delete($this->_lock_key)) + if ( ! $this->_delete($this->_lock_key)) { log_message('error', 'Session: Error while trying to free lock for '.$this->_lock_key); return FALSE; @@ -445,7 +484,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle // ------------------------------------------------------------------------ /** - * Expire key + * Set timeout * * Sets expiration for a key * @@ -453,28 +492,24 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle * @param int $ttl The key's remaining Time To Live, in seconds. * @return bool */ - protected function _expire_key($key, $ttl) + protected function _setTimeout($key, $ttl) { - if (version_compare(PHPREDIS_VERSION, '5', '>=')) - return $this->_redis->expire($key, $ttl); - return $this->_redis->setTimeout($key, $ttl); + return $this->_redis->{$this->_setTimeout_name}($key, $ttl); } // ------------------------------------------------------------------------ /** - * Delete key + * Delete * * Deletes a key * - * @param string $key Redis key + * @param string $key Redis key * @return bool */ - protected function _delete_key($key) + protected function _delete($key) { - if (version_compare(PHPREDIS_VERSION, '5', '>=')) - return $this->_redis->del($key); - return $this->_redis->delete($key); + return $this->_redis->{$this->_delete_name}($key); } } -- cgit v1.2.3-24-g4f1b From a9f13251df09ceb179ce6a9f6440a6869e779bba Mon Sep 17 00:00:00 2001 From: Michael Long Date: Wed, 4 Sep 2019 01:11:04 +0800 Subject: Delete unnecessary functions --- .../Session/drivers/Session_redis_driver.php | 44 +++------------------- 1 file changed, 6 insertions(+), 38 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 3ee59a4a2..ea70e4946 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -281,7 +281,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle $this->_session_id = $session_id; } - $this->_setTimeout($this->_lock_key, 300); + $this->_redis->{$this->_setTimeout_name}($this->_lock_key, 300); if ($this->_fingerprint !== ($fingerprint = md5($session_data)) OR $this->_key_exists === FALSE) { if ($this->_redis->set($this->_key_prefix.$session_id, $session_data, $this->_config['expiration'])) @@ -294,7 +294,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return $this->_fail(); } - return ($this->_setTimeout($this->_key_prefix.$session_id, $this->_config['expiration'])) + return ($this->_redis->{$this->_setTimeout_name}($this->_key_prefix.$session_id, $this->_config['expiration'])) ? $this->_success : $this->_fail(); } @@ -313,8 +313,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle if (isset($this->_redis)) { try { - $ping = $this->_redis->ping(); - if ($ping === $this->_ping_response) + if ($this->_redis->ping() === $this->_ping_response) { $this->_release_lock(); if ($this->_redis->close() === FALSE) @@ -349,7 +348,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { if (isset($this->_redis, $this->_lock_key)) { - if (($result = $this->_delete($this->_key_prefix.$session_id)) !== 1) + if (($result = $this->_redis->{$this->_delete_name}($this->_key_prefix.$session_id)) !== 1) { log_message('debug', 'Session: Redis::'.$this->_delete_name.'() expected to return 1, got '.var_export($result, TRUE).' instead.'); } @@ -410,7 +409,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle // correct session ID. if ($this->_lock_key === $this->_key_prefix.$session_id.':lock') { - return $this->_setTimeout($this->_lock_key, 300); + return $this->_redis->{$this->_setTimeout_name}($this->_lock_key, 300); } // 30 attempts to obtain a lock, in case another request already has it @@ -468,7 +467,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { if (isset($this->_redis, $this->_lock_key) && $this->_lock) { - if ( ! $this->_delete($this->_lock_key)) + if ( ! $this->_redis->{$this->_delete_name}($this->_lock_key)) { log_message('error', 'Session: Error while trying to free lock for '.$this->_lock_key); return FALSE; @@ -481,35 +480,4 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle return TRUE; } - // ------------------------------------------------------------------------ - - /** - * Set timeout - * - * Sets expiration for a key - * - * @param string $key Redis key - * @param int $ttl The key's remaining Time To Live, in seconds. - * @return bool - */ - protected function _setTimeout($key, $ttl) - { - return $this->_redis->{$this->_setTimeout_name}($key, $ttl); - } - - // ------------------------------------------------------------------------ - - /** - * Delete - * - * Deletes a key - * - * @param string $key Redis key - * @return bool - */ - protected function _delete($key) - { - return $this->_redis->{$this->_delete_name}($key); - } - } -- cgit v1.2.3-24-g4f1b From b373b9b099a5df0b180128d83fb3bf3f44877280 Mon Sep 17 00:00:00 2001 From: Michael Long Date: Wed, 4 Sep 2019 01:13:50 +0800 Subject: Rename to _ping_success --- system/libraries/Session/drivers/Session_redis_driver.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index ea70e4946..cb6bf3645 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -97,11 +97,11 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle protected $_delete_name; /** - * Response of ping() method in phpRedis + * Success return value of ping() method in phpRedis * * @var mixed */ - protected $_ping_response; + protected $_ping_success; // ------------------------------------------------------------------------ @@ -120,13 +120,13 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { $this->_setTimeout_name = 'expire'; $this->_delete_name = 'del'; - $this->_ping_response = TRUE; + $this->_ping_success = TRUE; } else { $this->_setTimeout_name = 'setTimeout'; $this->_delete_name = 'delete'; - $this->_ping_response = '+PONG'; + $this->_ping_success = '+PONG'; } if (empty($this->_config['save_path'])) @@ -313,7 +313,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle if (isset($this->_redis)) { try { - if ($this->_redis->ping() === $this->_ping_response) + if ($this->_redis->ping() === $this->_ping_success) { $this->_release_lock(); if ($this->_redis->close() === FALSE) -- cgit v1.2.3-24-g4f1b From e5175991d6b8488f7e6ef37dbd2771b4f210a574 Mon Sep 17 00:00:00 2001 From: Michael Long Date: Wed, 4 Sep 2019 01:14:49 +0800 Subject: revert: Alter php_validate_id() --- system/libraries/Session/drivers/Session_redis_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index cb6bf3645..3a5b34e69 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -209,8 +209,8 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle } else { - $this->_redis = $redis; $this->php5_validate_id(); + $this->_redis = $redis; return $this->_success; } } -- cgit v1.2.3-24-g4f1b From b83c5072d8a359c09dbb99d280193608b802ac3f Mon Sep 17 00:00:00 2001 From: Michael Long Date: Wed, 4 Sep 2019 01:25:03 +0800 Subject: Alter php5_validate_id() --- system/libraries/Session/drivers/Session_redis_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 9ff6a0e1f..33295cb45 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -168,8 +168,8 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle } else { - $this->php5_validate_id(); $this->_redis = $redis; + $this->php5_validate_id(); return $this->_success; } } -- cgit v1.2.3-24-g4f1b From dd4c143ef12ccab9dd57991677ced85a4756ce1e Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 5 Sep 2019 15:48:28 +0300 Subject: [ci skip] Remove a few leftover trailing spaces from PR #5816 --- system/libraries/Session/drivers/Session_redis_driver.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index cb6bf3645..cba8c4f1d 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -78,27 +78,27 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle /** * Name of setTimeout() method in phpRedis - * + * * Due to some deprecated methods in phpRedis, we need to call the * specific methods depending on the version of phpRedis. - * + * * @var string */ protected $_setTimeout_name; /** * Name of delete() method in phpRedis - * + * * Due to some deprecated methods in phpRedis, we need to call the * specific methods depending on the version of phpRedis. - * + * * @var string */ protected $_delete_name; /** * Success return value of ping() method in phpRedis - * + * * @var mixed */ protected $_ping_success; -- cgit v1.2.3-24-g4f1b From d57878699f21a59aaa8644e5d09b1fbbff43d22c Mon Sep 17 00:00:00 2001 From: DeanWunder <30644242+DeanWunder@users.noreply.github.com> Date: Sun, 8 Sep 2019 16:33:25 +1000 Subject: Fixed HTML type attribute for input field. Input is not a valid value for the type attribute for an input tag. Replaced with text, a valid value. https://www.w3schools.com/tags/att_input_type.asp --- user_guide_src/source/tutorial/create_news_items.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/tutorial/create_news_items.rst b/user_guide_src/source/tutorial/create_news_items.rst index cde52fde8..b53ef2d68 100644 --- a/user_guide_src/source/tutorial/create_news_items.rst +++ b/user_guide_src/source/tutorial/create_news_items.rst @@ -25,7 +25,7 @@ the slug from our title in the model. Create the new view at -
      +

      -- cgit v1.2.3-24-g4f1b From 98baf38d5384b316fc443f764d01041c8912d31e Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 8 Sep 2019 15:58:36 +0300 Subject: improve create_captcha logging --- system/helpers/captcha_helper.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 94365adb5..ca9b86540 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -99,13 +99,19 @@ if ( ! function_exists('create_captcha')) if ( ! extension_loaded('gd')) { + log_message('error', 'create_captcha(): GD extension is not loaded.'); return FALSE; } if ($img_url !== '' OR $img_path !== '') { - if ($img_path === '' OR $img_url === '' OR ! is_dir($img_path) OR ! is_really_writable($img_path)) + if ($img_path === '' OR $img_url === '') { + log_message('error', 'create_captcha(): "img_path" and "img_url" are required.'); + return FALSE; + } elseif ( ! is_dir($img_path) OR ! is_really_writable($img_path)) + { + log_message('error', "create_captcha(): '$img_path' is not a dir, nor it's writable."); return FALSE; } -- cgit v1.2.3-24-g4f1b From 304752dfa33e65e5fab722b5f4799f6c5bf16560 Mon Sep 17 00:00:00 2001 From: Najdanovic Ivan Date: Fri, 13 Sep 2019 15:47:14 +0200 Subject: Fix count_all_result if QB query contains Having Signed-off-by: Najdanovic Ivan --- system/database/DB_query_builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 12949c7dc..78e8018c7 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1484,7 +1484,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $qb_cache_orderby = $this->qb_cache_orderby; $this->qb_orderby = $this->qb_cache_orderby = array(); - $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby) OR $this->qb_limit OR $this->qb_offset) + $result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby) OR ! empty($this->qb_having) OR $this->qb_limit OR $this->qb_offset) ? $this->query($this->_count_string.$this->protect_identifiers('numrows')."\nFROM (\n".$this->_compile_select()."\n) CI_count_all_results") : $this->query($this->_compile_select($this->_count_string.$this->protect_identifiers('numrows'))); -- cgit v1.2.3-24-g4f1b From 9951a04ab6de7d25015d97f7a5d77411f7c07ba0 Mon Sep 17 00:00:00 2001 From: Abdul Haq Sheikh <27726982+dangereyes88@users.noreply.github.com> Date: Tue, 17 Sep 2019 13:07:04 +0500 Subject: Update typography.rst Corrected Typo --- user_guide_src/source/libraries/typography.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/typography.rst b/user_guide_src/source/libraries/typography.rst index 9e1386835..321b064ba 100644 --- a/user_guide_src/source/libraries/typography.rst +++ b/user_guide_src/source/libraries/typography.rst @@ -47,7 +47,7 @@ Class Reference .. php:method:: auto_typography($str[, $reduce_linebreaks = FALSE]) :param string $str: Input string - :param bool $reduce_linebreaks: Whether to reduce consequitive linebreaks + :param bool $reduce_linebreaks: Whether to reduce consecutive linebreaks :returns: HTML typography-safe string :rtype: string -- cgit v1.2.3-24-g4f1b From f15e51bc3450a1002d545ac61bdca2a087ad043d Mon Sep 17 00:00:00 2001 From: sapics Date: Thu, 19 Sep 2019 09:03:08 +0900 Subject: Update Ubuntu from Precise to Trusty on Travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 963d2cd2f..858e1d1eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: php -dist: precise +dist: trusty php: - 5.4 -- cgit v1.2.3-24-g4f1b From 2648cb67668d952495a8deea34c871017218dc5b Mon Sep 17 00:00:00 2001 From: sapics Date: Thu, 19 Sep 2019 09:09:02 +0900 Subject: Add PHP 7.4snapshot tests on Travis --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 858e1d1eb..6e056de53 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ php: - 7.1 - 7.2 - 7.3 + - 7.4snapshot - master - hhvm @@ -33,6 +34,7 @@ script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 matrix: allow_failures: + - php: 7.4snapshot - php: hhvm - php: master exclude: @@ -48,6 +50,8 @@ matrix: env: DB=mysql - php: 7.3 env: DB=mysql + - php: 7.4snapshot + env: DB=mysql - php: master env: DB=mysql -- cgit v1.2.3-24-g4f1b From 9e3f9fbb381ca2fcc546db10a0523d34d5d020bb Mon Sep 17 00:00:00 2001 From: sapics Date: Thu, 19 Sep 2019 09:12:40 +0900 Subject: Replace hhvm to hhvm-3.30 on Travis Composer is not support hhvm any more, thus, composer cause error in hhvm-4.x. hhvm-3.30 is the last php support version as https://hhvm.com/blog/2018/12/17/hhvm-3.30.html --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6e056de53..bf16d38f8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ php: - 7.3 - 7.4snapshot - master - - hhvm + - hhvm-3.30 env: - DB=mysql @@ -35,12 +35,12 @@ script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 matrix: allow_failures: - php: 7.4snapshot - - php: hhvm - php: master + - php: hhvm-3.30 exclude: - - php: hhvm + - php: hhvm-3.30 env: DB=pgsql - - php: hhvm + - php: hhvm-3.30 env: DB=pdo/pgsql - php: 7.0 env: DB=mysql -- cgit v1.2.3-24-g4f1b From b8d7c9a9aadfe14d2382ea5819900dd5bffa20f4 Mon Sep 17 00:00:00 2001 From: sapics Date: Thu, 19 Sep 2019 09:57:12 +0900 Subject: Replace mikey179/vfsStream to mikey179/vfsstream This fixes following deprecation warning. Deprecation warning: require-dev.mikey179/vfsStream is invalid, it should not contain uppercase characters. Please use mikey179/vfsstream instead. Make sure you fix this as Composer 2.0 will error. --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 6769e9545..39c7e77c4 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ "paragonie/random_compat": "Provides better randomness in PHP 5.x" }, "require-dev": { - "mikey179/vfsStream": "1.1.*", + "mikey179/vfsstream": "1.1.*", "phpunit/phpunit": "4.* || 5.*" } } -- cgit v1.2.3-24-g4f1b From 3291dd45518c38909239aacc71eeed272f89dedd Mon Sep 17 00:00:00 2001 From: sapics Date: Thu, 19 Sep 2019 10:32:08 +0900 Subject: Replace master to nightly on Travis From the reference of the travis, nightly is the recommended one. https://docs.travis-ci.com/user/languages/php/ It also updates built version. `master`: version 8.0.0-dev (built: Feb 11 2019 07:59:12) `nightly`: version 8.0.0-dev (built: Sep 3 2019 09:50:37) --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index bf16d38f8..8525d5f6c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ php: - 7.2 - 7.3 - 7.4snapshot - - master + - nightly - hhvm-3.30 env: @@ -35,7 +35,7 @@ script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 matrix: allow_failures: - php: 7.4snapshot - - php: master + - php: nightly - php: hhvm-3.30 exclude: - php: hhvm-3.30 @@ -52,7 +52,7 @@ matrix: env: DB=mysql - php: 7.4snapshot env: DB=mysql - - php: master + - php: nightly env: DB=mysql branches: -- cgit v1.2.3-24-g4f1b From 25931b0d5e639cf48dd8488b46975787ee5e5ed2 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 22 Sep 2019 20:56:55 +0300 Subject: if+elseif => if + if --- system/helpers/captcha_helper.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index ca9b86540..4552225ef 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -109,7 +109,9 @@ if ( ! function_exists('create_captcha')) { log_message('error', 'create_captcha(): "img_path" and "img_url" are required.'); return FALSE; - } elseif ( ! is_dir($img_path) OR ! is_really_writable($img_path)) + } + + if ( ! is_dir($img_path) OR ! is_really_writable($img_path)) { log_message('error', "create_captcha(): '$img_path' is not a dir, nor it's writable."); return FALSE; -- cgit v1.2.3-24-g4f1b From 24ff922ccb2cd647f997a7bc074d8863ea34fb10 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 22 Sep 2019 20:57:54 +0300 Subject: adding $img_path in curly; fixing words order --- system/helpers/captcha_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 4552225ef..a71148c97 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -113,7 +113,7 @@ if ( ! function_exists('create_captcha')) if ( ! is_dir($img_path) OR ! is_really_writable($img_path)) { - log_message('error', "create_captcha(): '$img_path' is not a dir, nor it's writable."); + log_message('error', "create_captcha(): '{$img_path}' is not a dir, nor is it writable."); return FALSE; } -- cgit v1.2.3-24-g4f1b From 6c6742cfe6b259e4e675b77c5e42c4e21dbd5104 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 22 Sep 2019 21:04:41 +0300 Subject: adding $ to var names in the log message --- system/helpers/captcha_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index a71148c97..1d87b80e5 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -107,7 +107,7 @@ if ( ! function_exists('create_captcha')) { if ($img_path === '' OR $img_url === '') { - log_message('error', 'create_captcha(): "img_path" and "img_url" are required.'); + log_message('error', 'create_captcha(): "$img_path" and "$img_url" are required.'); return FALSE; } -- cgit v1.2.3-24-g4f1b From 505f8491b056c3cd93fc73d61730963eddab6502 Mon Sep 17 00:00:00 2001 From: sapics Date: Wed, 25 Sep 2019 13:50:31 +0900 Subject: Fix indent --- application/views/welcome_message.php | 6 +++--- system/database/DB.php | 2 +- system/database/drivers/ibase/ibase_forge.php | 4 ++-- system/database/drivers/pdo/pdo_driver.php | 2 +- .../database/drivers/pdo/subdrivers/pdo_firebird_forge.php | 4 ++-- system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php | 4 ++-- system/database/drivers/postgre/postgre_forge.php | 4 ++-- system/libraries/Cache/drivers/Cache_apc.php | 8 ++++---- system/libraries/Cache/drivers/Cache_apcu.php | 8 ++++---- system/libraries/Cache/drivers/Cache_dummy.php | 8 ++++---- system/libraries/Cache/drivers/Cache_wincache.php | 8 ++++---- system/libraries/Profiler.php | 12 ++++++------ tests/codeigniter/helpers/file_helper_test.php | 6 +++--- tests/mocks/autoloader.php | 4 ++-- tests/mocks/ci_testcase.php | 2 +- 15 files changed, 41 insertions(+), 41 deletions(-) diff --git a/application/views/welcome_message.php b/application/views/welcome_message.php index bc5b441a9..dae768bc8 100644 --- a/application/views/welcome_message.php +++ b/application/views/welcome_message.php @@ -27,7 +27,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); } a:hover { - color: #97310e; + color: #97310e; } h1 { @@ -69,8 +69,8 @@ defined('BASEPATH') OR exit('No direct script access allowed'); } p { - margin: 0 0 10px; - padding:0; + margin: 0 0 10px; + padding:0; } p.footer { diff --git a/system/database/DB.php b/system/database/DB.php index dddcf758c..558212718 100644 --- a/system/database/DB.php +++ b/system/database/DB.php @@ -185,7 +185,7 @@ function &DB($params = '', $query_builder_override = NULL) elseif ( ! class_exists('CI_DB', FALSE)) { /** - * @ignore + * @ignore */ class CI_DB extends CI_DB_driver { } } diff --git a/system/database/drivers/ibase/ibase_forge.php b/system/database/drivers/ibase/ibase_forge.php index 29a3acf69..ad3382042 100644 --- a/system/database/drivers/ibase/ibase_forge.php +++ b/system/database/drivers/ibase/ibase_forge.php @@ -140,7 +140,7 @@ class CI_DB_ibase_forge extends CI_DB_forge { * @return string|string[] */ protected function _alter_table($alter_type, $table, $field) - { + { if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) { return parent::_alter_table($alter_type, $table, $field); @@ -183,7 +183,7 @@ class CI_DB_ibase_forge extends CI_DB_forge { } return $sqls; - } + } // -------------------------------------------------------------------- diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index c5d120fd3..614d35096 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -302,7 +302,7 @@ class CI_DB_pdo_driver extends CI_DB { $error['code'] = isset($pdo_error[1]) ? $pdo_error[0].'/'.$pdo_error[1] : $pdo_error[0]; if (isset($pdo_error[2])) { - $error['message'] = $pdo_error[2]; + $error['message'] = $pdo_error[2]; } return $error; diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php index eceb59796..db7936631 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php @@ -126,7 +126,7 @@ class CI_DB_pdo_firebird_forge extends CI_DB_pdo_forge { * @return string|string[] */ protected function _alter_table($alter_type, $table, $field) - { + { if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) { return parent::_alter_table($alter_type, $table, $field); @@ -169,7 +169,7 @@ class CI_DB_pdo_firebird_forge extends CI_DB_pdo_forge { } return $sqls; - } + } // -------------------------------------------------------------------- diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php index a4ccff407..4e19e9c57 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -106,7 +106,7 @@ class CI_DB_pdo_pgsql_forge extends CI_DB_pdo_forge { * @return string|string[] */ protected function _alter_table($alter_type, $table, $field) - { + { if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) { return parent::_alter_table($alter_type, $table, $field); @@ -154,7 +154,7 @@ class CI_DB_pdo_pgsql_forge extends CI_DB_pdo_forge { } return $sqls; - } + } // -------------------------------------------------------------------- diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php index 481e222b8..a378d146b 100644 --- a/system/database/drivers/postgre/postgre_forge.php +++ b/system/database/drivers/postgre/postgre_forge.php @@ -101,7 +101,7 @@ class CI_DB_postgre_forge extends CI_DB_forge { * @return string|string[] */ protected function _alter_table($alter_type, $table, $field) - { + { if (in_array($alter_type, array('DROP', 'ADD'), TRUE)) { return parent::_alter_table($alter_type, $table, $field); @@ -149,7 +149,7 @@ class CI_DB_postgre_forge extends CI_DB_forge { } return $sqls; - } + } // -------------------------------------------------------------------- diff --git a/system/libraries/Cache/drivers/Cache_apc.php b/system/libraries/Cache/drivers/Cache_apc.php index 8da8854ee..c0527e665 100644 --- a/system/libraries/Cache/drivers/Cache_apc.php +++ b/system/libraries/Cache/drivers/Cache_apc.php @@ -160,10 +160,10 @@ class CI_Cache_apc extends CI_Driver { * @param string user/filehits * @return mixed array on success, false on failure */ - public function cache_info($type = NULL) - { - return apc_cache_info($type); - } + public function cache_info($type = NULL) + { + return apc_cache_info($type); + } // ------------------------------------------------------------------------ diff --git a/system/libraries/Cache/drivers/Cache_apcu.php b/system/libraries/Cache/drivers/Cache_apcu.php index 0d84f8ee3..01f80e79b 100644 --- a/system/libraries/Cache/drivers/Cache_apcu.php +++ b/system/libraries/Cache/drivers/Cache_apcu.php @@ -171,10 +171,10 @@ class CI_Cache_apcu extends CI_Driver { * * @return mixed array on success, false on failure */ - public function cache_info() - { - return apcu_cache_info(); - } + public function cache_info() + { + return apcu_cache_info(); + } // ------------------------------------------------------------------------ diff --git a/system/libraries/Cache/drivers/Cache_dummy.php b/system/libraries/Cache/drivers/Cache_dummy.php index fdb9042ef..0a90d0692 100644 --- a/system/libraries/Cache/drivers/Cache_dummy.php +++ b/system/libraries/Cache/drivers/Cache_dummy.php @@ -138,10 +138,10 @@ class CI_Cache_dummy extends CI_Driver { * @param string user/filehits * @return bool FALSE */ - public function cache_info($type = NULL) - { - return FALSE; - } + public function cache_info($type = NULL) + { + return FALSE; + } // ------------------------------------------------------------------------ diff --git a/system/libraries/Cache/drivers/Cache_wincache.php b/system/libraries/Cache/drivers/Cache_wincache.php index e19c6ca99..703fece7a 100644 --- a/system/libraries/Cache/drivers/Cache_wincache.php +++ b/system/libraries/Cache/drivers/Cache_wincache.php @@ -169,10 +169,10 @@ class CI_Cache_wincache extends CI_Driver { * * @return mixed array on success, false on failure */ - public function cache_info() - { - return wincache_ucache_info(TRUE); - } + public function cache_info() + { + return wincache_ucache_info(TRUE); + } // ------------------------------------------------------------------------ diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index 77af7b99b..d7a171f26 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -486,13 +486,13 @@ class CI_Profiler { { $pre = ''; $pre_close = ''; - + if (is_array($val) OR is_object($val)) { $val = print_r($val, TRUE); - + $pre = '
      ' ;
      - 				$pre_close = '
      '; + $pre_close = '
      '; } $output .= '' @@ -524,13 +524,13 @@ class CI_Profiler { { $pre = ''; $pre_close = ''; - + if (is_array($val) OR is_object($val)) { $val = print_r($val, TRUE); - + $pre = '
      ' ;
      - 				$pre_close = '
      '; + $pre_close = '
      '; } $output .= '' diff --git a/tests/codeigniter/helpers/file_helper_test.php b/tests/codeigniter/helpers/file_helper_test.php index 5ed8cb5c0..dd74ee46b 100644 --- a/tests/codeigniter/helpers/file_helper_test.php +++ b/tests/codeigniter/helpers/file_helper_test.php @@ -119,8 +119,8 @@ class File_helper_Test extends CI_TestCase { // -------------------------------------------------------------------- - public function test_write_file() - { + public function test_write_file() + { $content = 'Jack and Jill went up the mountain to fight a billy goat.'; $file = vfsStream::newFile('write.txt', 0777) @@ -129,6 +129,6 @@ class File_helper_Test extends CI_TestCase { ->at($this->_test_dir); $this->assertTrue(write_file(vfsStream::url('write.txt'), $content)); - } + } } diff --git a/tests/mocks/autoloader.php b/tests/mocks/autoloader.php index a912327ca..4dd53d4af 100644 --- a/tests/mocks/autoloader.php +++ b/tests/mocks/autoloader.php @@ -47,10 +47,10 @@ function autoload($class) 'Profiler', 'Table', 'Trackback', - 'Typography', + 'Typography', 'Unit_test', 'Upload', - 'User_agent', + 'User_agent', 'Xmlrpc', 'Zip' ); diff --git a/tests/mocks/ci_testcase.php b/tests/mocks/ci_testcase.php index 4f478fb4e..8dc4682ef 100644 --- a/tests/mocks/ci_testcase.php +++ b/tests/mocks/ci_testcase.php @@ -241,7 +241,7 @@ class CI_TestCase extends PHPUnit_Framework_TestCase { $dir_root = $root->getChild($dir); if ($dir_root) { - // Yes - recurse into subdir + // Yes - recurse into subdir $root = $dir_root; } else -- cgit v1.2.3-24-g4f1b From 2229e5c96174171d9eec0d595e7693b987374e95 Mon Sep 17 00:00:00 2001 From: Muhammad Umer Farooq Date: Wed, 2 Oct 2019 08:16:54 +0500 Subject: Update user_agents.php --- application/config/user_agents.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/config/user_agents.php b/application/config/user_agents.php index 3523528bf..1a1111be8 100644 --- a/application/config/user_agents.php +++ b/application/config/user_agents.php @@ -153,6 +153,7 @@ $mobiles = array( 'open web' => 'Open Web', 'openweb' => 'OpenWeb', 'meizu' => 'Meizu', + 'infinix' => 'Infinix', // Operating Systems 'android' => 'Android', -- cgit v1.2.3-24-g4f1b From 315acfa47757aef9355a4658a59269530183819d Mon Sep 17 00:00:00 2001 From: Ossama Mehmood <40134503+ossamamehmood@users.noreply.github.com> Date: Sat, 5 Oct 2019 09:20:04 +0500 Subject: Update user_agents.php --- application/config/user_agents.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/application/config/user_agents.php b/application/config/user_agents.php index 3523528bf..48d5ab526 100644 --- a/application/config/user_agents.php +++ b/application/config/user_agents.php @@ -153,6 +153,10 @@ $mobiles = array( 'open web' => 'Open Web', 'openweb' => 'OpenWeb', 'meizu' => 'Meizu', + 'huawei' => 'Huawei', + 'xiaomi' => 'Xiaomi', + 'oppo' => 'Oppo', + 'vivo' => 'Vivo', // Operating Systems 'android' => 'Android', -- cgit v1.2.3-24-g4f1b From fa5ab87854124729e83b33470fec1030a61d1b97 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Tue, 8 Oct 2019 10:11:47 +0300 Subject: removes double quotes --- system/helpers/captcha_helper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 1d87b80e5..642ff3a50 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -107,7 +107,7 @@ if ( ! function_exists('create_captcha')) { if ($img_path === '' OR $img_url === '') { - log_message('error', 'create_captcha(): "$img_path" and "$img_url" are required.'); + log_message('error', 'create_captcha(): $img_path and $img_url are required.'); return FALSE; } -- cgit v1.2.3-24-g4f1b From 092da7f915e283ca554bfa2149f9edead75d4031 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Mon, 14 Oct 2019 17:17:26 +0900 Subject: feat: support auto_increment for orace 12.1 --- system/database/drivers/oci8/oci8_forge.php | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index 58f3c3913..a73899888 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -159,7 +159,29 @@ class CI_DB_oci8_forge extends CI_DB_forge { */ protected function _attr_auto_increment(&$attributes, &$field) { - // Not supported - sequences and triggers must be used instead + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'number') !== FALSE && version_compare($this->db->version(), '12.1', '>=')) + { + $field['auto_increment'] = ' GENERATED ALWAYS AS IDENTITY'; + } + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['default'] + .$field['auto_increment'] + .$field['null'] + .$field['unique']; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 9369f565f86404ecfb2fba4b306e1bb32e873384 Mon Sep 17 00:00:00 2001 From: Indra Kurniawan Date: Fri, 18 Oct 2019 15:49:57 +0700 Subject: Include user_guide into .gitattributes See https://github.com/bcit-ci/CodeIgniter/issues/5843 --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index 51fea4174..471dff1e8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -20,3 +20,4 @@ tests/travis/ export-ignore # User Guide Source Files user_guide_src +user_guide -- cgit v1.2.3-24-g4f1b From 493a44857629af3e4f9616d8938b260ae5557782 Mon Sep 17 00:00:00 2001 From: Indra Kurniawan Date: Fri, 18 Oct 2019 16:03:56 +0700 Subject: Fix typo on .gitattributes I forgot to put `export-ignore` statement. --- .gitattributes | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 471dff1e8..a4296d591 100644 --- a/.gitattributes +++ b/.gitattributes @@ -20,4 +20,6 @@ tests/travis/ export-ignore # User Guide Source Files user_guide_src -user_guide + +# User Guide Compiled Files +user_guide export-ignore -- cgit v1.2.3-24-g4f1b From 8096d02e8f9bef0fd26a276c4d93a715dcec19a2 Mon Sep 17 00:00:00 2001 From: Nebojsa Cvetkovic Date: Mon, 21 Oct 2019 16:41:12 +0100 Subject: cache: redis: Check version of redis not phpredis PhpRedis is installed as redis. Change matches the check in the Redis session driver. --- system/libraries/Cache/drivers/Cache_redis.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 3c4c23d3b..9dbe52844 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -98,7 +98,7 @@ class CI_Cache_redis extends CI_Driver return; } - isset(static::$_delete_name) OR static::$_delete_name = version_compare(phpversion('phpredis'), '5', '>=') + isset(static::$_delete_name) OR static::$_delete_name = version_compare(phpversion('redis'), '5', '>=') ? 'del' : 'delete'; -- cgit v1.2.3-24-g4f1b From 8887b3e684aef0121ba75e1fd9d4cc764167648a Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Mon, 28 Oct 2019 13:46:24 +0900 Subject: fix: Fixed a bug that could not get the version number when first call. --- system/database/drivers/pdo/subdrivers/pdo_oci_driver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php index dba49585c..41f7a6485 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php @@ -142,9 +142,9 @@ class CI_DB_pdo_oci_driver extends CI_DB_pdo_driver { } $version_string = parent::version(); - if (preg_match('#Release\s(?\d+(?:\.\d+)+)#', $version_string, $match)) + if (preg_match('#(Release\s)?(?\d+(?:\.\d+)+)#', $version_string, $match)) { - return $this->data_cache['version'] = $match[1]; + return $this->data_cache['version'] = $match['version']; } return FALSE; -- cgit v1.2.3-24-g4f1b From 187c8833635f67c5891e3fb365561f82d5a50dc2 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Mon, 28 Oct 2019 13:47:43 +0900 Subject: feat: Modified to useable auto increment. --- .../drivers/pdo/subdrivers/pdo_oci_forge.php | 26 +++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index b5d3eb143..aa78461df 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -150,9 +150,33 @@ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge { */ protected function _attr_auto_increment(&$attributes, &$field) { - // Not supported - sequences and triggers must be used instead + if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'number') !== FALSE && version_compare($this->db->version(), '12.1', '>=')) + { + $field['auto_increment'] = ' GENERATED ALWAYS AS IDENTITY'; + } + } + + // -------------------------------------------------------------------- + + /** + * Process column + * + * @param array $field + * @return string + */ + protected function _process_column($field) + { + return $this->db->escape_identifiers($field['name']) + .' '.$field['type'].$field['length'] + .$field['unsigned'] + .$field['default'] + .$field['auto_increment'] + .$field['null'] + .$field['unique']; } + // -------------------------------------------------------------------- + /** * Field attribute TYPE * -- cgit v1.2.3-24-g4f1b From 9494f0d758e28facc867e9bb467aa33075cce559 Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Thu, 2 Jan 2020 11:17:38 +0100 Subject: Added FULL [OUTER] JOIN to CI_DB_query_builder --- system/database/DB_query_builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 78e8018c7..357a2e359 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -526,7 +526,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { public function join($table, $cond, $type = '', $escape = NULL) { $type = trim(strtoupper($type).' JOIN'); - preg_match('#^(NATURAL\s+)?((LEFT|RIGHT)\s+)?((INNER|OUTER)\s+)?JOIN$#', $type) OR $type = 'JOIN'; + preg_match('#^(NATURAL\s+)?((LEFT|RIGHT|FULL)\s+)?((INNER|OUTER)\s+)?JOIN$#', $type) OR $type = 'JOIN'; // Extract any aliases that might exist. We use this information // in the protect_identifiers to know whether to add a table prefix -- cgit v1.2.3-24-g4f1b From f0a6de54ae1f5ffb9ae7d2c20e92749e396e2b17 Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Wed, 8 Jan 2020 12:26:16 -0300 Subject: Change Upload.php for image/webp --- system/libraries/Upload.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 8c891cff6..39045c772 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -867,7 +867,7 @@ class CI_Upload { $this->file_type = 'image/jpeg'; } - $img_mimes = array('image/gif', 'image/jpeg', 'image/png'); + $img_mimes = array('image/gif', 'image/jpeg', 'image/png', 'image/webp'); return in_array($this->file_type, $img_mimes, TRUE); } @@ -901,8 +901,7 @@ class CI_Upload { } // Images get some additional checks - if (in_array($ext, array('gif', 'jpg', 'jpeg', 'jpe', 'png'), TRUE) && @getimagesize($this->file_temp) === FALSE) - { + if (in_array($ext, array('gif', 'jpg', 'jpeg', 'jpe', 'png','webp'), TRUE) && @getimagesize($this->file_temp) === FALSE){ return FALSE; } -- cgit v1.2.3-24-g4f1b From ce5815d9b3e99c99b75eace703e52d2b236b6392 Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Wed, 8 Jan 2020 12:27:55 -0300 Subject: change appliation/config.php for webp mime --- application/config/mimes.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index 7aa5c9e4e..9c76b87f1 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -74,9 +74,9 @@ return array( 'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'), 'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'), 'gif' => 'image/gif', - 'jpeg' => array('image/jpeg', 'image/pjpeg'), - 'jpg' => array('image/jpeg', 'image/pjpeg'), - 'jpe' => array('image/jpeg', 'image/pjpeg'), + 'jpeg' => array('image/jpeg', 'image/pjpeg','image/webp'), + 'jpg' => array('image/jpeg', 'image/pjpeg','image/webp'), + 'jpe' => array('image/jpeg', 'image/pjpeg','image/webp'), 'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), @@ -140,6 +140,7 @@ return array( 'f4v' => array('video/mp4', 'video/x-f4v'), 'flv' => 'video/x-flv', 'webm' => 'video/webm', + 'webp' => 'image/webp', 'aac' => array('audio/x-aac', 'audio/aac'), 'm4u' => 'application/vnd.mpegurl', 'm3u' => 'text/plain', -- cgit v1.2.3-24-g4f1b From b8480e5edee881d06a4fded52598917bf509223c Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Wed, 8 Jan 2020 13:45:45 -0300 Subject: Update Image_lib.php --- system/libraries/Image_lib.php | 52 +++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 9cd0d1dfa..b595d0f63 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2019, British Columbia Institute of Technology + * Copyright (c) 2014 - 2017, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) - * @license https://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) + * @license http://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -835,10 +835,7 @@ class CI_Image_lib { imagedestroy($dst_img); imagedestroy($src_img); - if ($this->dynamic_output !== TRUE) - { - chmod($this->full_dst_path, $this->file_permissions); - } + chmod($this->full_dst_path, $this->file_permissions); return TRUE; } @@ -946,6 +943,10 @@ class CI_Image_lib { $cmd_in = 'pngtopnm'; $cmd_out = 'ppmtopng'; break; + case 18 : + $cmd_in = 'webptopnm'; + $cmd_out = 'ppmtowebp'; + break; } if ($action === 'crop') @@ -975,7 +976,7 @@ class CI_Image_lib { $cmd_inner = 'pnmscale -xysize '.$this->width.' '.$this->height; } - $cmd = $this->library_path.$cmd_in.' '.escapeshellarg($this->full_src_path).' | '.$cmd_inner.' | '.$cmd_out.' > '.$this->dest_folder.'netpbm.tmp'; + $cmd = $this->library_path.$cmd_in.' '.$this->full_src_path.' | '.$cmd_inner.' | '.$cmd_out.' > '.$this->dest_folder.'netpbm.tmp'; $retval = 1; // exec() might be disabled @@ -1207,7 +1208,7 @@ class CI_Image_lib { } // Build the finalized image - if ($wm_img_type === 3) + if ($wm_img_type === 3 && function_exists('imagealphablending')) { @imagealphablending($src_img, TRUE); } @@ -1472,6 +1473,13 @@ class CI_Image_lib { } return imagecreatefrompng($path); + case 18: + if ( ! function_exists('imagecreatefromwebp')) + { + $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_webp_not_supported')); + return FALSE; + } + return imagecreatefromwebp($path); default: $this->set_error(array('imglib_unsupported_imagecreate')); return FALSE; @@ -1532,6 +1540,19 @@ class CI_Image_lib { return FALSE; } break; + case 18: + if ( ! function_exists('imagewebp')) + { + $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_webp_not_supported')); + return FALSE; + } + + if ( ! @imagewebp($resource, $this->full_dst_path)) + { + $this->set_error('imglib_save_failed'); + return FALSE; + } + break; default: $this->set_error(array('imglib_unsupported_imagecreate')); return FALSE; @@ -1551,16 +1572,7 @@ class CI_Image_lib { */ public function image_display_gd($resource) { - // RFC 6266 allows for multibyte filenames, but only in UTF-8, - // so we have to make it conditional ... - $filename = basename(empty($this->new_image) ? $this->source_image : $this->new_image); - $charset = strtoupper(config_item('charset')); - $utf8_filename = ($charset !== 'UTF-8') - ? get_instance()->utf8->convert_to_utf8($filename, $charset) - : $filename; - isset($utf8_filename[0]) && $utf8_filename = " filename*=UTF-8''".rawurlencode($utf8_filename); - - header('Content-Disposition: filename="'.$filename.'";'.$utf8_filename); + header('Content-Disposition: filename='.$this->source_image.';'); header('Content-Type: '.$this->mime_type); header('Content-Transfer-Encoding: binary'); header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT'); @@ -1573,6 +1585,8 @@ class CI_Image_lib { break; case 3 : imagepng($resource); break; + case 18 : imagewebp($resource); + break; default: echo 'Unable to display the image'; break; } -- cgit v1.2.3-24-g4f1b From f76eee651ae4fbcfffdca2e073209201131ef6a4 Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Wed, 8 Jan 2020 13:47:37 -0300 Subject: Update imglib_lang.php --- system/language/english/imglib_lang.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/language/english/imglib_lang.php b/system/language/english/imglib_lang.php index c34b087c7..9a26b8a9b 100644 --- a/system/language/english/imglib_lang.php +++ b/system/language/english/imglib_lang.php @@ -44,6 +44,7 @@ $lang['imglib_unsupported_imagecreate'] = 'Your server does not support the GD f $lang['imglib_gif_not_supported'] = 'GIF images are often not supported due to licensing restrictions. You may have to use JPG or PNG images instead.'; $lang['imglib_jpg_not_supported'] = 'JPG images are not supported.'; $lang['imglib_png_not_supported'] = 'PNG images are not supported.'; +$lang['imglib_webp_not_supported'] = 'WEBP images are not supported.'; $lang['imglib_jpg_or_png_required'] = 'The image resize protocol specified in your preferences only works with JPEG or PNG image types.'; $lang['imglib_copy_error'] = 'An error was encountered while attempting to replace the file. Please make sure your file directory is writable.'; $lang['imglib_rotate_unsupported'] = 'Image rotation does not appear to be supported by your server.'; -- cgit v1.2.3-24-g4f1b From 5e0cfd96233b84478682053aed29c38e24774a0e Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Wed, 8 Jan 2020 14:04:14 -0300 Subject: Update Image_lib.php --- system/libraries/Image_lib.php | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index b595d0f63..0d9fa4420 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -6,7 +6,7 @@ * * This content is released under the MIT License (MIT) * - * Copyright (c) 2014 - 2017, British Columbia Institute of Technology + * Copyright (c) 2014 - 2019, British Columbia Institute of Technology * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -29,8 +29,8 @@ * @package CodeIgniter * @author EllisLab Dev Team * @copyright Copyright (c) 2008 - 2014, EllisLab, Inc. (https://ellislab.com/) - * @copyright Copyright (c) 2014 - 2017, British Columbia Institute of Technology (http://bcit.ca/) - * @license http://opensource.org/licenses/MIT MIT License + * @copyright Copyright (c) 2014 - 2019, British Columbia Institute of Technology (https://bcit.ca/) + * @license https://opensource.org/licenses/MIT MIT License * @link https://codeigniter.com * @since Version 1.0.0 * @filesource @@ -835,7 +835,10 @@ class CI_Image_lib { imagedestroy($dst_img); imagedestroy($src_img); - chmod($this->full_dst_path, $this->file_permissions); + if ($this->dynamic_output !== TRUE) + { + chmod($this->full_dst_path, $this->file_permissions); + } return TRUE; } @@ -976,7 +979,7 @@ class CI_Image_lib { $cmd_inner = 'pnmscale -xysize '.$this->width.' '.$this->height; } - $cmd = $this->library_path.$cmd_in.' '.$this->full_src_path.' | '.$cmd_inner.' | '.$cmd_out.' > '.$this->dest_folder.'netpbm.tmp'; + $cmd = $this->library_path.$cmd_in.' '.escapeshellarg($this->full_src_path).' | '.$cmd_inner.' | '.$cmd_out.' > '.$this->dest_folder.'netpbm.tmp'; $retval = 1; // exec() might be disabled @@ -1208,7 +1211,7 @@ class CI_Image_lib { } // Build the finalized image - if ($wm_img_type === 3 && function_exists('imagealphablending')) + if ($wm_img_type === 3) { @imagealphablending($src_img, TRUE); } @@ -1471,8 +1474,6 @@ class CI_Image_lib { $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_png_not_supported')); return FALSE; } - - return imagecreatefrompng($path); case 18: if ( ! function_exists('imagecreatefromwebp')) { @@ -1480,6 +1481,8 @@ class CI_Image_lib { return FALSE; } return imagecreatefromwebp($path); + + return imagecreatefrompng($path); default: $this->set_error(array('imglib_unsupported_imagecreate')); return FALSE; @@ -1572,7 +1575,16 @@ class CI_Image_lib { */ public function image_display_gd($resource) { - header('Content-Disposition: filename='.$this->source_image.';'); + // RFC 6266 allows for multibyte filenames, but only in UTF-8, + // so we have to make it conditional ... + $filename = basename(empty($this->new_image) ? $this->source_image : $this->new_image); + $charset = strtoupper(config_item('charset')); + $utf8_filename = ($charset !== 'UTF-8') + ? get_instance()->utf8->convert_to_utf8($filename, $charset) + : $filename; + isset($utf8_filename[0]) && $utf8_filename = " filename*=UTF-8''".rawurlencode($utf8_filename); + + header('Content-Disposition: filename="'.$filename.'";'.$utf8_filename); header('Content-Type: '.$this->mime_type); header('Content-Transfer-Encoding: binary'); header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT'); -- cgit v1.2.3-24-g4f1b From e255e77748ca27a11ae4f143ba97d978cb4d99e5 Mon Sep 17 00:00:00 2001 From: etrianag <57193408+etrianag@users.noreply.github.com> Date: Mon, 13 Jan 2020 11:45:08 +0000 Subject: Update documentation for method parse_string Fix description of parameter $template in method parse_string. --- user_guide_src/source/libraries/parser.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user_guide_src/source/libraries/parser.rst b/user_guide_src/source/libraries/parser.rst index 6c9d28959..923446dd4 100644 --- a/user_guide_src/source/libraries/parser.rst +++ b/user_guide_src/source/libraries/parser.rst @@ -290,7 +290,7 @@ Class Reference .. php:method:: parse_string($template, $data[, $return = FALSE]) - :param string $template: Path to view file + :param string $template: String content to parse :param array $data: Variable data :param bool $return: Whether to only return the parsed template :returns: Parsed template string @@ -306,4 +306,4 @@ Class Reference :rtype: void Sets the delimiters (opening and closing) for a - pseudo-variable "tag" in a template. \ No newline at end of file + pseudo-variable "tag" in a template. -- cgit v1.2.3-24-g4f1b From a1151310b899134562cb98cc1603ee6823ad4cbd Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Tue, 14 Jan 2020 14:49:20 -0300 Subject: Update mimes.php --- application/config/mimes.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index 9c76b87f1..ae4d02a74 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -74,9 +74,9 @@ return array( 'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'), 'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'), 'gif' => 'image/gif', - 'jpeg' => array('image/jpeg', 'image/pjpeg','image/webp'), - 'jpg' => array('image/jpeg', 'image/pjpeg','image/webp'), - 'jpe' => array('image/jpeg', 'image/pjpeg','image/webp'), + 'jpeg' => array('image/jpeg', 'image/pjpeg'), + 'jpg' => array('image/jpeg', 'image/pjpeg'), + 'jpe' => array('image/jpeg', 'image/pjpeg'), 'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), -- cgit v1.2.3-24-g4f1b From d88fdc92c9a608fd92c124b7f078238b7d4f3eee Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Tue, 14 Jan 2020 14:49:52 -0300 Subject: Update Upload.php --- system/libraries/Upload.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 39045c772..2e17b1463 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -901,7 +901,7 @@ class CI_Upload { } // Images get some additional checks - if (in_array($ext, array('gif', 'jpg', 'jpeg', 'jpe', 'png','webp'), TRUE) && @getimagesize($this->file_temp) === FALSE){ + if (in_array($ext, array('gif', 'jpg', 'jpeg', 'jpe', 'png', 'webp'), TRUE) && @getimagesize($this->file_temp) === FALSE){ return FALSE; } -- cgit v1.2.3-24-g4f1b From 30e6bab491f3870d46af5f22432d829f083c3bd8 Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Tue, 14 Jan 2020 14:51:21 -0300 Subject: Delete mimes.php --- application/config/mimes.php | 185 ------------------------------------------- 1 file changed, 185 deletions(-) delete mode 100644 application/config/mimes.php diff --git a/application/config/mimes.php b/application/config/mimes.php deleted file mode 100644 index 9c76b87f1..000000000 --- a/application/config/mimes.php +++ /dev/null @@ -1,185 +0,0 @@ - array('application/mac-binhex40', 'application/mac-binhex', 'application/x-binhex40', 'application/x-mac-binhex40'), - 'cpt' => 'application/mac-compactpro', - 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'), - 'bin' => array('application/macbinary', 'application/mac-binary', 'application/octet-stream', 'application/x-binary', 'application/x-macbinary'), - 'dms' => 'application/octet-stream', - 'lha' => 'application/octet-stream', - 'lzh' => 'application/octet-stream', - 'exe' => array('application/octet-stream', 'application/x-msdownload'), - 'class' => 'application/octet-stream', - 'psd' => array('application/x-photoshop', 'image/vnd.adobe.photoshop'), - 'so' => 'application/octet-stream', - 'sea' => 'application/octet-stream', - 'dll' => 'application/octet-stream', - 'oda' => 'application/oda', - 'pdf' => array('application/pdf', 'application/force-download', 'application/x-download', 'binary/octet-stream'), - 'ai' => array('application/pdf', 'application/postscript'), - 'eps' => 'application/postscript', - 'ps' => 'application/postscript', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'mif' => 'application/vnd.mif', - 'xls' => array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'), - 'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-office', 'application/msword'), - 'pptx' => array('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/x-zip', 'application/zip'), - 'wbxml' => 'application/wbxml', - 'wmlc' => 'application/wmlc', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dxr' => 'application/x-director', - 'dvi' => 'application/x-dvi', - 'gtar' => 'application/x-gtar', - 'gz' => 'application/x-gzip', - 'gzip' => 'application/x-gzip', - 'php' => array('application/x-httpd-php', 'application/php', 'application/x-php', 'text/php', 'text/x-php', 'application/x-httpd-php-source'), - 'php4' => 'application/x-httpd-php', - 'php3' => 'application/x-httpd-php', - 'phtml' => 'application/x-httpd-php', - 'phps' => 'application/x-httpd-php-source', - 'js' => array('application/x-javascript', 'text/plain'), - 'swf' => 'application/x-shockwave-flash', - 'sit' => 'application/x-stuffit', - 'tar' => 'application/x-tar', - 'tgz' => array('application/x-tar', 'application/x-gzip-compressed'), - 'z' => 'application/x-compress', - 'xhtml' => 'application/xhtml+xml', - 'xht' => 'application/xhtml+xml', - 'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/s-compressed', 'multipart/x-zip'), - 'rar' => array('application/x-rar', 'application/rar', 'application/x-rar-compressed'), - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mpga' => 'audio/mpeg', - 'mp2' => 'audio/mpeg', - 'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'), - 'aif' => array('audio/x-aiff', 'audio/aiff'), - 'aiff' => array('audio/x-aiff', 'audio/aiff'), - 'aifc' => 'audio/x-aiff', - 'ram' => 'audio/x-pn-realaudio', - 'rm' => 'audio/x-pn-realaudio', - 'rpm' => 'audio/x-pn-realaudio-plugin', - 'ra' => 'audio/x-realaudio', - 'rv' => 'video/vnd.rn-realvideo', - 'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'), - 'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'), - 'gif' => 'image/gif', - 'jpeg' => array('image/jpeg', 'image/pjpeg','image/webp'), - 'jpg' => array('image/jpeg', 'image/pjpeg','image/webp'), - 'jpe' => array('image/jpeg', 'image/pjpeg','image/webp'), - 'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'png' => array('image/png', 'image/x-png'), - 'tiff' => 'image/tiff', - 'tif' => 'image/tiff', - 'css' => array('text/css', 'text/plain'), - 'html' => array('text/html', 'text/plain'), - 'htm' => array('text/html', 'text/plain'), - 'shtml' => array('text/html', 'text/plain'), - 'txt' => 'text/plain', - 'text' => 'text/plain', - 'log' => array('text/plain', 'text/x-log'), - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'xml' => array('application/xml', 'text/xml', 'text/plain'), - 'xsl' => array('application/xml', 'text/xsl', 'text/xml'), - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpe' => 'video/mpeg', - 'qt' => 'video/quicktime', - 'mov' => 'video/quicktime', - 'avi' => array('video/x-msvideo', 'video/msvideo', 'video/avi', 'application/x-troff-msvideo'), - 'movie' => 'video/x-sgi-movie', - 'doc' => array('application/msword', 'application/vnd.ms-office'), - 'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword', 'application/x-zip'), - 'dot' => array('application/msword', 'application/vnd.ms-office'), - 'dotx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword'), - 'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'), - 'word' => array('application/msword', 'application/octet-stream'), - 'xl' => 'application/excel', - 'eml' => 'message/rfc822', - 'json' => array('application/json', 'text/json'), - 'pem' => array('application/x-x509-user-cert', 'application/x-pem-file', 'application/octet-stream'), - 'p10' => array('application/x-pkcs10', 'application/pkcs10'), - 'p12' => 'application/x-pkcs12', - 'p7a' => 'application/x-pkcs7-signature', - 'p7c' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'), - 'p7m' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'), - 'p7r' => 'application/x-pkcs7-certreqresp', - 'p7s' => 'application/pkcs7-signature', - 'crt' => array('application/x-x509-ca-cert', 'application/x-x509-user-cert', 'application/pkix-cert'), - 'crl' => array('application/pkix-crl', 'application/pkcs-crl'), - 'der' => 'application/x-x509-ca-cert', - 'kdb' => 'application/octet-stream', - 'pgp' => 'application/pgp', - 'gpg' => 'application/gpg-keys', - 'sst' => 'application/octet-stream', - 'csr' => 'application/octet-stream', - 'rsa' => 'application/x-pkcs7', - 'cer' => array('application/pkix-cert', 'application/x-x509-ca-cert'), - '3g2' => 'video/3gpp2', - '3gp' => array('video/3gp', 'video/3gpp'), - 'mp4' => 'video/mp4', - 'm4a' => 'audio/x-m4a', - 'f4v' => array('video/mp4', 'video/x-f4v'), - 'flv' => 'video/x-flv', - 'webm' => 'video/webm', - 'webp' => 'image/webp', - 'aac' => array('audio/x-aac', 'audio/aac'), - 'm4u' => 'application/vnd.mpegurl', - 'm3u' => 'text/plain', - 'xspf' => 'application/xspf+xml', - 'vlc' => 'application/videolan', - 'wmv' => array('video/x-ms-wmv', 'video/x-ms-asf'), - 'au' => 'audio/x-au', - 'ac3' => 'audio/ac3', - 'flac' => 'audio/x-flac', - 'ogg' => array('audio/ogg', 'video/ogg', 'application/ogg'), - 'kmz' => array('application/vnd.google-earth.kmz', 'application/zip', 'application/x-zip'), - 'kml' => array('application/vnd.google-earth.kml+xml', 'application/xml', 'text/xml'), - 'ics' => 'text/calendar', - 'ical' => 'text/calendar', - 'zsh' => 'text/x-scriptzsh', - '7z' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), - '7zip' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), - 'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'), - 'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'), - 'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'), - 'svg' => array('image/svg+xml', 'application/xml', 'text/xml'), - 'vcf' => 'text/x-vcard', - 'srt' => array('text/srt', 'text/plain'), - 'vtt' => array('text/vtt', 'text/plain'), - 'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon'), - 'odc' => 'application/vnd.oasis.opendocument.chart', - 'otc' => 'application/vnd.oasis.opendocument.chart-template', - 'odf' => 'application/vnd.oasis.opendocument.formula', - 'otf' => 'application/vnd.oasis.opendocument.formula-template', - 'odg' => 'application/vnd.oasis.opendocument.graphics', - 'otg' => 'application/vnd.oasis.opendocument.graphics-template', - 'odi' => 'application/vnd.oasis.opendocument.image', - 'oti' => 'application/vnd.oasis.opendocument.image-template', - 'odp' => 'application/vnd.oasis.opendocument.presentation', - 'otp' => 'application/vnd.oasis.opendocument.presentation-template', - 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', - 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', - 'odt' => 'application/vnd.oasis.opendocument.text', - 'odm' => 'application/vnd.oasis.opendocument.text-master', - 'ott' => 'application/vnd.oasis.opendocument.text-template', - 'oth' => 'application/vnd.oasis.opendocument.text-web' -); -- cgit v1.2.3-24-g4f1b From 5c0101e1c9d8831f0167a1ba9724e7741b439e30 Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Tue, 14 Jan 2020 14:56:18 -0300 Subject: Revert "Delete mimes.php" This reverts commit 30e6bab491f3870d46af5f22432d829f083c3bd8. --- application/config/mimes.php | 185 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 application/config/mimes.php diff --git a/application/config/mimes.php b/application/config/mimes.php new file mode 100644 index 000000000..9c76b87f1 --- /dev/null +++ b/application/config/mimes.php @@ -0,0 +1,185 @@ + array('application/mac-binhex40', 'application/mac-binhex', 'application/x-binhex40', 'application/x-mac-binhex40'), + 'cpt' => 'application/mac-compactpro', + 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'), + 'bin' => array('application/macbinary', 'application/mac-binary', 'application/octet-stream', 'application/x-binary', 'application/x-macbinary'), + 'dms' => 'application/octet-stream', + 'lha' => 'application/octet-stream', + 'lzh' => 'application/octet-stream', + 'exe' => array('application/octet-stream', 'application/x-msdownload'), + 'class' => 'application/octet-stream', + 'psd' => array('application/x-photoshop', 'image/vnd.adobe.photoshop'), + 'so' => 'application/octet-stream', + 'sea' => 'application/octet-stream', + 'dll' => 'application/octet-stream', + 'oda' => 'application/oda', + 'pdf' => array('application/pdf', 'application/force-download', 'application/x-download', 'binary/octet-stream'), + 'ai' => array('application/pdf', 'application/postscript'), + 'eps' => 'application/postscript', + 'ps' => 'application/postscript', + 'smi' => 'application/smil', + 'smil' => 'application/smil', + 'mif' => 'application/vnd.mif', + 'xls' => array('application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'application/x-ms-excel', 'application/x-excel', 'application/x-dos_ms_excel', 'application/xls', 'application/x-xls', 'application/excel', 'application/download', 'application/vnd.ms-office', 'application/msword'), + 'ppt' => array('application/powerpoint', 'application/vnd.ms-powerpoint', 'application/vnd.ms-office', 'application/msword'), + 'pptx' => array('application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/x-zip', 'application/zip'), + 'wbxml' => 'application/wbxml', + 'wmlc' => 'application/wmlc', + 'dcr' => 'application/x-director', + 'dir' => 'application/x-director', + 'dxr' => 'application/x-director', + 'dvi' => 'application/x-dvi', + 'gtar' => 'application/x-gtar', + 'gz' => 'application/x-gzip', + 'gzip' => 'application/x-gzip', + 'php' => array('application/x-httpd-php', 'application/php', 'application/x-php', 'text/php', 'text/x-php', 'application/x-httpd-php-source'), + 'php4' => 'application/x-httpd-php', + 'php3' => 'application/x-httpd-php', + 'phtml' => 'application/x-httpd-php', + 'phps' => 'application/x-httpd-php-source', + 'js' => array('application/x-javascript', 'text/plain'), + 'swf' => 'application/x-shockwave-flash', + 'sit' => 'application/x-stuffit', + 'tar' => 'application/x-tar', + 'tgz' => array('application/x-tar', 'application/x-gzip-compressed'), + 'z' => 'application/x-compress', + 'xhtml' => 'application/xhtml+xml', + 'xht' => 'application/xhtml+xml', + 'zip' => array('application/x-zip', 'application/zip', 'application/x-zip-compressed', 'application/s-compressed', 'multipart/x-zip'), + 'rar' => array('application/x-rar', 'application/rar', 'application/x-rar-compressed'), + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mpga' => 'audio/mpeg', + 'mp2' => 'audio/mpeg', + 'mp3' => array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'), + 'aif' => array('audio/x-aiff', 'audio/aiff'), + 'aiff' => array('audio/x-aiff', 'audio/aiff'), + 'aifc' => 'audio/x-aiff', + 'ram' => 'audio/x-pn-realaudio', + 'rm' => 'audio/x-pn-realaudio', + 'rpm' => 'audio/x-pn-realaudio-plugin', + 'ra' => 'audio/x-realaudio', + 'rv' => 'video/vnd.rn-realvideo', + 'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'), + 'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'), + 'gif' => 'image/gif', + 'jpeg' => array('image/jpeg', 'image/pjpeg','image/webp'), + 'jpg' => array('image/jpeg', 'image/pjpeg','image/webp'), + 'jpe' => array('image/jpeg', 'image/pjpeg','image/webp'), + 'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpg2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpx' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), + 'png' => array('image/png', 'image/x-png'), + 'tiff' => 'image/tiff', + 'tif' => 'image/tiff', + 'css' => array('text/css', 'text/plain'), + 'html' => array('text/html', 'text/plain'), + 'htm' => array('text/html', 'text/plain'), + 'shtml' => array('text/html', 'text/plain'), + 'txt' => 'text/plain', + 'text' => 'text/plain', + 'log' => array('text/plain', 'text/x-log'), + 'rtx' => 'text/richtext', + 'rtf' => 'text/rtf', + 'xml' => array('application/xml', 'text/xml', 'text/plain'), + 'xsl' => array('application/xml', 'text/xsl', 'text/xml'), + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mpe' => 'video/mpeg', + 'qt' => 'video/quicktime', + 'mov' => 'video/quicktime', + 'avi' => array('video/x-msvideo', 'video/msvideo', 'video/avi', 'application/x-troff-msvideo'), + 'movie' => 'video/x-sgi-movie', + 'doc' => array('application/msword', 'application/vnd.ms-office'), + 'docx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword', 'application/x-zip'), + 'dot' => array('application/msword', 'application/vnd.ms-office'), + 'dotx' => array('application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip', 'application/msword'), + 'xlsx' => array('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip', 'application/vnd.ms-excel', 'application/msword', 'application/x-zip'), + 'word' => array('application/msword', 'application/octet-stream'), + 'xl' => 'application/excel', + 'eml' => 'message/rfc822', + 'json' => array('application/json', 'text/json'), + 'pem' => array('application/x-x509-user-cert', 'application/x-pem-file', 'application/octet-stream'), + 'p10' => array('application/x-pkcs10', 'application/pkcs10'), + 'p12' => 'application/x-pkcs12', + 'p7a' => 'application/x-pkcs7-signature', + 'p7c' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'), + 'p7m' => array('application/pkcs7-mime', 'application/x-pkcs7-mime'), + 'p7r' => 'application/x-pkcs7-certreqresp', + 'p7s' => 'application/pkcs7-signature', + 'crt' => array('application/x-x509-ca-cert', 'application/x-x509-user-cert', 'application/pkix-cert'), + 'crl' => array('application/pkix-crl', 'application/pkcs-crl'), + 'der' => 'application/x-x509-ca-cert', + 'kdb' => 'application/octet-stream', + 'pgp' => 'application/pgp', + 'gpg' => 'application/gpg-keys', + 'sst' => 'application/octet-stream', + 'csr' => 'application/octet-stream', + 'rsa' => 'application/x-pkcs7', + 'cer' => array('application/pkix-cert', 'application/x-x509-ca-cert'), + '3g2' => 'video/3gpp2', + '3gp' => array('video/3gp', 'video/3gpp'), + 'mp4' => 'video/mp4', + 'm4a' => 'audio/x-m4a', + 'f4v' => array('video/mp4', 'video/x-f4v'), + 'flv' => 'video/x-flv', + 'webm' => 'video/webm', + 'webp' => 'image/webp', + 'aac' => array('audio/x-aac', 'audio/aac'), + 'm4u' => 'application/vnd.mpegurl', + 'm3u' => 'text/plain', + 'xspf' => 'application/xspf+xml', + 'vlc' => 'application/videolan', + 'wmv' => array('video/x-ms-wmv', 'video/x-ms-asf'), + 'au' => 'audio/x-au', + 'ac3' => 'audio/ac3', + 'flac' => 'audio/x-flac', + 'ogg' => array('audio/ogg', 'video/ogg', 'application/ogg'), + 'kmz' => array('application/vnd.google-earth.kmz', 'application/zip', 'application/x-zip'), + 'kml' => array('application/vnd.google-earth.kml+xml', 'application/xml', 'text/xml'), + 'ics' => 'text/calendar', + 'ical' => 'text/calendar', + 'zsh' => 'text/x-scriptzsh', + '7z' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), + '7zip' => array('application/x-7z-compressed', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip', 'multipart/x-zip'), + 'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'), + 'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'), + 'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'), + 'svg' => array('image/svg+xml', 'application/xml', 'text/xml'), + 'vcf' => 'text/x-vcard', + 'srt' => array('text/srt', 'text/plain'), + 'vtt' => array('text/vtt', 'text/plain'), + 'ico' => array('image/x-icon', 'image/x-ico', 'image/vnd.microsoft.icon'), + 'odc' => 'application/vnd.oasis.opendocument.chart', + 'otc' => 'application/vnd.oasis.opendocument.chart-template', + 'odf' => 'application/vnd.oasis.opendocument.formula', + 'otf' => 'application/vnd.oasis.opendocument.formula-template', + 'odg' => 'application/vnd.oasis.opendocument.graphics', + 'otg' => 'application/vnd.oasis.opendocument.graphics-template', + 'odi' => 'application/vnd.oasis.opendocument.image', + 'oti' => 'application/vnd.oasis.opendocument.image-template', + 'odp' => 'application/vnd.oasis.opendocument.presentation', + 'otp' => 'application/vnd.oasis.opendocument.presentation-template', + 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', + 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', + 'odt' => 'application/vnd.oasis.opendocument.text', + 'odm' => 'application/vnd.oasis.opendocument.text-master', + 'ott' => 'application/vnd.oasis.opendocument.text-template', + 'oth' => 'application/vnd.oasis.opendocument.text-web' +); -- cgit v1.2.3-24-g4f1b From a4fb657a156234127706bf44c24b310857c5990e Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Tue, 14 Jan 2020 14:58:14 -0300 Subject: Update mimes.php --- application/config/mimes.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index 9c76b87f1..7aa5c9e4e 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -74,9 +74,9 @@ return array( 'wav' => array('audio/x-wav', 'audio/wave', 'audio/wav'), 'bmp' => array('image/bmp', 'image/x-bmp', 'image/x-bitmap', 'image/x-xbitmap', 'image/x-win-bitmap', 'image/x-windows-bmp', 'image/ms-bmp', 'image/x-ms-bmp', 'application/bmp', 'application/x-bmp', 'application/x-win-bitmap'), 'gif' => 'image/gif', - 'jpeg' => array('image/jpeg', 'image/pjpeg','image/webp'), - 'jpg' => array('image/jpeg', 'image/pjpeg','image/webp'), - 'jpe' => array('image/jpeg', 'image/pjpeg','image/webp'), + 'jpeg' => array('image/jpeg', 'image/pjpeg'), + 'jpg' => array('image/jpeg', 'image/pjpeg'), + 'jpe' => array('image/jpeg', 'image/pjpeg'), 'jp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'j2k' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'jpf' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), @@ -140,7 +140,6 @@ return array( 'f4v' => array('video/mp4', 'video/x-f4v'), 'flv' => 'video/x-flv', 'webm' => 'video/webm', - 'webp' => 'image/webp', 'aac' => array('audio/x-aac', 'audio/aac'), 'm4u' => 'application/vnd.mpegurl', 'm3u' => 'text/plain', -- cgit v1.2.3-24-g4f1b From e19e0ee4e541f3084fb2f1ce0e8d2afc7ea4508a Mon Sep 17 00:00:00 2001 From: Christian Mohr Date: Thu, 23 Jan 2020 18:24:34 +0100 Subject: added FULL OUTER join option to documentation --- user_guide_src/source/database/query_builder.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/database/query_builder.rst b/user_guide_src/source/database/query_builder.rst index 3bc9ad8fb..a085de293 100644 --- a/user_guide_src/source/database/query_builder.rst +++ b/user_guide_src/source/database/query_builder.rst @@ -199,7 +199,7 @@ query. If you need a specific type of JOIN you can specify it via the third parameter of the function. Options are: left, right, outer, inner, left -outer, and right outer. +outer, right outer and full outer. :: -- cgit v1.2.3-24-g4f1b From f43a8fb104152f9fc2953967efb01cf542c1b338 Mon Sep 17 00:00:00 2001 From: jerkob Date: Thu, 23 Jan 2020 18:48:28 -0500 Subject: Add a trans_depth function Enables retrieval of the current _trans_depth --- system/database/DB_driver.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index b4f16b905..733522284 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -825,6 +825,18 @@ abstract class CI_DB_driver { { return $this->_trans_status; } + + // -------------------------------------------------------------------- + + /** + * Lets you retrieve the transaction depth + * + * @return int + */ + public function trans_depth() + { + return $this->_trans_depth; + } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From dc8ebd3a5abaabe69e23f95097594ab4d431944f Mon Sep 17 00:00:00 2001 From: jerkob Date: Fri, 24 Jan 2020 10:00:45 -0500 Subject: Add documentation for trans_depth function --- user_guide_src/source/database/db_driver_reference.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/user_guide_src/source/database/db_driver_reference.rst b/user_guide_src/source/database/db_driver_reference.rst index c240526e0..f1fbc1c87 100644 --- a/user_guide_src/source/database/db_driver_reference.rst +++ b/user_guide_src/source/database/db_driver_reference.rst @@ -161,6 +161,14 @@ This article is intended to be a reference for them. Lets you retrieve the transaction status flag to determine if it has failed. + + .. php:method:: trans_depth() + + :returns: The current transaction depth + :rtype: int + + Lets you retrieve the transaction depth value which + will be 1 or greater if a transaction is active. .. php:method:: compile_binds($sql, $binds) -- cgit v1.2.3-24-g4f1b From 2a80014590526ceaca427d9f9c1f5260b7b0de13 Mon Sep 17 00:00:00 2001 From: Francisco Javier Llanquipichun Garcia Date: Sat, 25 Jan 2020 12:51:09 -0300 Subject: inserted required attribute in html tag Signed-off-by: Francisco Javier Llanquipichun Garcia --- application/cache/index.html | 2 +- application/config/index.html | 2 +- application/controllers/index.html | 2 +- application/core/index.html | 2 +- application/helpers/index.html | 2 +- application/hooks/index.html | 2 +- application/index.html | 2 +- application/language/english/index.html | 2 +- application/language/index.html | 2 +- application/libraries/index.html | 2 +- application/logs/index.html | 2 +- application/models/index.html | 2 +- application/third_party/index.html | 2 +- application/views/errors/cli/index.html | 2 +- application/views/errors/html/index.html | 2 +- application/views/errors/index.html | 2 +- application/views/index.html | 2 +- system/core/compat/index.html | 2 +- system/core/index.html | 2 +- system/database/drivers/cubrid/index.html | 2 +- system/database/drivers/ibase/index.html | 2 +- system/database/drivers/index.html | 2 +- system/database/drivers/mssql/index.html | 2 +- system/database/drivers/mysql/index.html | 2 +- system/database/drivers/mysqli/index.html | 2 +- system/database/drivers/oci8/index.html | 2 +- system/database/drivers/odbc/index.html | 2 +- system/database/drivers/pdo/index.html | 2 +- system/database/drivers/pdo/subdrivers/index.html | 2 +- system/database/drivers/postgre/index.html | 2 +- system/database/drivers/sqlite3/index.html | 2 +- system/database/drivers/sqlsrv/index.html | 2 +- system/database/index.html | 2 +- system/fonts/index.html | 2 +- system/helpers/index.html | 2 +- system/index.html | 2 +- system/language/english/index.html | 2 +- system/language/index.html | 2 +- system/libraries/Cache/drivers/index.html | 2 +- system/libraries/Cache/index.html | 2 +- system/libraries/Session/drivers/index.html | 2 +- system/libraries/Session/index.html | 2 +- system/libraries/index.html | 2 +- 43 files changed, 43 insertions(+), 43 deletions(-) diff --git a/application/cache/index.html b/application/cache/index.html index b702fbc39..bcb7cae34 100644 --- a/application/cache/index.html +++ b/application/cache/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/config/index.html b/application/config/index.html index b702fbc39..bcb7cae34 100644 --- a/application/config/index.html +++ b/application/config/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/controllers/index.html b/application/controllers/index.html index b702fbc39..bcb7cae34 100644 --- a/application/controllers/index.html +++ b/application/controllers/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/core/index.html b/application/core/index.html index b702fbc39..bcb7cae34 100644 --- a/application/core/index.html +++ b/application/core/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/helpers/index.html b/application/helpers/index.html index b702fbc39..bcb7cae34 100644 --- a/application/helpers/index.html +++ b/application/helpers/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/hooks/index.html b/application/hooks/index.html index b702fbc39..bcb7cae34 100644 --- a/application/hooks/index.html +++ b/application/hooks/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/index.html b/application/index.html index b702fbc39..bcb7cae34 100644 --- a/application/index.html +++ b/application/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/language/english/index.html b/application/language/english/index.html index b702fbc39..bcb7cae34 100644 --- a/application/language/english/index.html +++ b/application/language/english/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/language/index.html b/application/language/index.html index b702fbc39..bcb7cae34 100644 --- a/application/language/index.html +++ b/application/language/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/libraries/index.html b/application/libraries/index.html index b702fbc39..bcb7cae34 100644 --- a/application/libraries/index.html +++ b/application/libraries/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/logs/index.html b/application/logs/index.html index b702fbc39..bcb7cae34 100644 --- a/application/logs/index.html +++ b/application/logs/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/models/index.html b/application/models/index.html index b702fbc39..bcb7cae34 100644 --- a/application/models/index.html +++ b/application/models/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/third_party/index.html b/application/third_party/index.html index b702fbc39..bcb7cae34 100644 --- a/application/third_party/index.html +++ b/application/third_party/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/views/errors/cli/index.html b/application/views/errors/cli/index.html index b702fbc39..bcb7cae34 100644 --- a/application/views/errors/cli/index.html +++ b/application/views/errors/cli/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/views/errors/html/index.html b/application/views/errors/html/index.html index b702fbc39..bcb7cae34 100644 --- a/application/views/errors/html/index.html +++ b/application/views/errors/html/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/views/errors/index.html b/application/views/errors/index.html index b702fbc39..bcb7cae34 100644 --- a/application/views/errors/index.html +++ b/application/views/errors/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/application/views/index.html b/application/views/index.html index b702fbc39..bcb7cae34 100644 --- a/application/views/index.html +++ b/application/views/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/core/compat/index.html b/system/core/compat/index.html index b702fbc39..bcb7cae34 100644 --- a/system/core/compat/index.html +++ b/system/core/compat/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/core/index.html b/system/core/index.html index b702fbc39..bcb7cae34 100644 --- a/system/core/index.html +++ b/system/core/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/cubrid/index.html b/system/database/drivers/cubrid/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/cubrid/index.html +++ b/system/database/drivers/cubrid/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/ibase/index.html b/system/database/drivers/ibase/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/ibase/index.html +++ b/system/database/drivers/ibase/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/index.html b/system/database/drivers/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/index.html +++ b/system/database/drivers/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/mssql/index.html b/system/database/drivers/mssql/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/mssql/index.html +++ b/system/database/drivers/mssql/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/mysql/index.html b/system/database/drivers/mysql/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/mysql/index.html +++ b/system/database/drivers/mysql/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/mysqli/index.html b/system/database/drivers/mysqli/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/mysqli/index.html +++ b/system/database/drivers/mysqli/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/oci8/index.html b/system/database/drivers/oci8/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/oci8/index.html +++ b/system/database/drivers/oci8/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/odbc/index.html b/system/database/drivers/odbc/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/odbc/index.html +++ b/system/database/drivers/odbc/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/pdo/index.html b/system/database/drivers/pdo/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/pdo/index.html +++ b/system/database/drivers/pdo/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/pdo/subdrivers/index.html b/system/database/drivers/pdo/subdrivers/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/pdo/subdrivers/index.html +++ b/system/database/drivers/pdo/subdrivers/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/postgre/index.html b/system/database/drivers/postgre/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/postgre/index.html +++ b/system/database/drivers/postgre/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/sqlite3/index.html b/system/database/drivers/sqlite3/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/sqlite3/index.html +++ b/system/database/drivers/sqlite3/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/drivers/sqlsrv/index.html b/system/database/drivers/sqlsrv/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/drivers/sqlsrv/index.html +++ b/system/database/drivers/sqlsrv/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/database/index.html b/system/database/index.html index b702fbc39..bcb7cae34 100644 --- a/system/database/index.html +++ b/system/database/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/fonts/index.html b/system/fonts/index.html index b702fbc39..bcb7cae34 100644 --- a/system/fonts/index.html +++ b/system/fonts/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/helpers/index.html b/system/helpers/index.html index b702fbc39..bcb7cae34 100644 --- a/system/helpers/index.html +++ b/system/helpers/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/index.html b/system/index.html index b702fbc39..bcb7cae34 100644 --- a/system/index.html +++ b/system/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/language/english/index.html b/system/language/english/index.html index b702fbc39..bcb7cae34 100644 --- a/system/language/english/index.html +++ b/system/language/english/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/language/index.html b/system/language/index.html index b702fbc39..bcb7cae34 100644 --- a/system/language/index.html +++ b/system/language/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/libraries/Cache/drivers/index.html b/system/libraries/Cache/drivers/index.html index b702fbc39..bcb7cae34 100644 --- a/system/libraries/Cache/drivers/index.html +++ b/system/libraries/Cache/drivers/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/libraries/Cache/index.html b/system/libraries/Cache/index.html index b702fbc39..bcb7cae34 100644 --- a/system/libraries/Cache/index.html +++ b/system/libraries/Cache/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/libraries/Session/drivers/index.html b/system/libraries/Session/drivers/index.html index b702fbc39..bcb7cae34 100644 --- a/system/libraries/Session/drivers/index.html +++ b/system/libraries/Session/drivers/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/libraries/Session/index.html b/system/libraries/Session/index.html index b702fbc39..bcb7cae34 100644 --- a/system/libraries/Session/index.html +++ b/system/libraries/Session/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden diff --git a/system/libraries/index.html b/system/libraries/index.html index b702fbc39..bcb7cae34 100644 --- a/system/libraries/index.html +++ b/system/libraries/index.html @@ -1,5 +1,5 @@ - + 403 Forbidden -- cgit v1.2.3-24-g4f1b From 743f8256a0987922e8c9a1888b3f5e06bc2cf3bf Mon Sep 17 00:00:00 2001 From: Francisco Javier Llanquipichun Garcia Date: Sat, 25 Jan 2020 12:59:09 -0300 Subject: inserted required attribute in html tags in documentation Signed-off-by: Francisco Javier Llanquipichun Garcia --- tests/codeigniter/core/Output_test.php | 2 +- user_guide_src/source/general/views.rst | 8 ++++---- user_guide_src/source/libraries/file_uploading.rst | 4 ++-- user_guide_src/source/libraries/form_validation.rst | 6 +++--- user_guide_src/source/libraries/parser.rst | 6 +++--- user_guide_src/source/tutorial/static_pages.rst | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/codeigniter/core/Output_test.php b/tests/codeigniter/core/Output_test.php index 887c077d7..8c99c1fc5 100644 --- a/tests/codeigniter/core/Output_test.php +++ b/tests/codeigniter/core/Output_test.php @@ -8,7 +8,7 @@ class Output_test extends CI_TestCase { public function set_up() { $this->_output_data =<< + Basic HTML diff --git a/user_guide_src/source/general/views.rst b/user_guide_src/source/general/views.rst index 2fc0cb2ca..b84e85399 100644 --- a/user_guide_src/source/general/views.rst +++ b/user_guide_src/source/general/views.rst @@ -22,7 +22,7 @@ Creating a View Using your text editor, create a file called blogview.php, and put this in it:: - + My Blog @@ -138,7 +138,7 @@ Let's try it with your controller file. Open it add this code:: Now open your view file and change the text to variables that correspond to the array keys in your data:: - + <?php echo $title;?> @@ -176,7 +176,7 @@ Here's a simple example. Add this to your controller:: Now open your view file and create a loop:: - + <?php echo $title;?> @@ -210,4 +210,4 @@ 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 + $string = $this->load->view('myfile', '', TRUE); diff --git a/user_guide_src/source/libraries/file_uploading.rst b/user_guide_src/source/libraries/file_uploading.rst index 1b7581670..ce3de5a8a 100644 --- a/user_guide_src/source/libraries/file_uploading.rst +++ b/user_guide_src/source/libraries/file_uploading.rst @@ -35,7 +35,7 @@ Creating the Upload Form Using a text editor, create a form called upload_form.php. In it, place this code and save it to your **application/views/** directory:: - + Upload Form @@ -68,7 +68,7 @@ The Success Page Using a text editor, create a form called upload_success.php. In it, place this code and save it to your **application/views/** directory:: - + Upload Form diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index a44310440..5f30817eb 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -65,7 +65,7 @@ The Form Using a text editor, create a form called myform.php. In it, place this code and save it to your application/views/ folder:: - + My Form @@ -100,7 +100,7 @@ The Success Page Using a text editor, create a form called formsuccess.php. In it, place this code and save it to your application/views/ folder:: - + My Form @@ -359,7 +359,7 @@ function calls!** :: - + My Form diff --git a/user_guide_src/source/libraries/parser.rst b/user_guide_src/source/libraries/parser.rst index 6c9d28959..c88681c04 100644 --- a/user_guide_src/source/libraries/parser.rst +++ b/user_guide_src/source/libraries/parser.rst @@ -9,7 +9,7 @@ It can parse simple variables or variable tag pairs. If you've never used a template engine, pseudo-variable names are enclosed in braces, like this:: - + {blog_title} @@ -95,7 +95,7 @@ you would like an entire block of variables to be repeated, with each iteration containing new values? Consider the template example we showed at the top of the page:: - + {blog_title} @@ -306,4 +306,4 @@ Class Reference :rtype: void Sets the delimiters (opening and closing) for a - pseudo-variable "tag" in a template. \ No newline at end of file + pseudo-variable "tag" in a template. diff --git a/user_guide_src/source/tutorial/static_pages.rst b/user_guide_src/source/tutorial/static_pages.rst index 561082a48..8db105555 100644 --- a/user_guide_src/source/tutorial/static_pages.rst +++ b/user_guide_src/source/tutorial/static_pages.rst @@ -58,7 +58,7 @@ the following code: :: - + CodeIgniter Tutorial -- cgit v1.2.3-24-g4f1b From f7a79380337f5b8ce56f560e3a98d379ba767945 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 27 Jan 2020 19:06:02 +0200 Subject: [ci skip] Add changelog for PR #5883 --- user_guide_src/source/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 08bcec7f7..f5b68e08a 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -72,6 +72,7 @@ Release Date: Not Released - Added option to change the output filename via the ``new_name`` option when rendering images with ``dynamic_output``. - Updated to serve multibyte filenames when rendering images with ``dynamic_output``, if possible. + - Added WebP image support. - :doc:`Database ` changes include: -- cgit v1.2.3-24-g4f1b From 0c1f8474e15c8f22f9fef424799ed8cabf2c0f6b Mon Sep 17 00:00:00 2001 From: etrianag <57193408+etrianag@users.noreply.github.com> Date: Mon, 27 Jan 2020 17:24:09 +0000 Subject: Remove parameter type from Description. --- user_guide_src/source/libraries/parser.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/parser.rst b/user_guide_src/source/libraries/parser.rst index 923446dd4..0b0d41740 100644 --- a/user_guide_src/source/libraries/parser.rst +++ b/user_guide_src/source/libraries/parser.rst @@ -290,7 +290,7 @@ Class Reference .. php:method:: parse_string($template, $data[, $return = FALSE]) - :param string $template: String content to parse + :param string $template: Content to parse :param array $data: Variable data :param bool $return: Whether to only return the parsed template :returns: Parsed template string -- cgit v1.2.3-24-g4f1b From 4fc777a92942eee78f72cfc86453942bc21da020 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Mon, 27 Jan 2020 19:26:03 +0200 Subject: [ci skip] Fix #5879 --- system/libraries/Profiler.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index d7a171f26..e3c4bd10a 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -105,7 +105,7 @@ class CI_Profiler { { if ( ! isset($config[$section])) { - $this->_compile_{$section} = TRUE; + $this->{'_compile_'.$section} = TRUE; } } @@ -135,7 +135,7 @@ class CI_Profiler { { if (in_array($method, $this->_available_sections)) { - $this->_compile_{$method} = ($enable !== FALSE); + $this->{'_compile_'.$method} = ($enable !== FALSE); } } } @@ -554,7 +554,7 @@ class CI_Profiler { foreach ($this->_available_sections as $section) { - if ($this->_compile_{$section} !== FALSE) + if ($this->{'_compile_'.$section} !== FALSE) { $func = '_compile_'.$section; $output .= $this->{$func}(); -- cgit v1.2.3-24-g4f1b From 1ca5718fc6c02a89c194d6482f23e41c193bfd33 Mon Sep 17 00:00:00 2001 From: Andrés Ignacio Torres Date: Mon, 27 Jan 2020 14:37:24 -0400 Subject: optimize memory allocation on zip library MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Andrés Ignacio Torres --- system/libraries/Zip.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php index 094f4c802..5fba1cf3a 100644 --- a/system/libraries/Zip.php +++ b/system/libraries/Zip.php @@ -406,13 +406,13 @@ class CI_Zip { return FALSE; } - return $this->zipdata - .$this->directory."\x50\x4b\x05\x06\x00\x00\x00\x00" + $footer = $this->directory."\x50\x4b\x05\x06\x00\x00\x00\x00" .pack('v', $this->entries) // total # of entries "on this disk" .pack('v', $this->entries) // total # of entries overall .pack('V', self::strlen($this->directory)) // size of central dir .pack('V', self::strlen($this->zipdata)) // offset to start of central dir ."\x00\x00"; // .zip file comment length + return $this->zipdata . $footer; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From f9a9239a32405fb458dbe2a086bc64c98d418c71 Mon Sep 17 00:00:00 2001 From: Devesa Agustín Date: Mon, 27 Jan 2020 23:56:42 -0300 Subject: Update Upload.php --- system/libraries/Upload.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 2e17b1463..95f765b78 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -901,7 +901,8 @@ class CI_Upload { } // Images get some additional checks - if (in_array($ext, array('gif', 'jpg', 'jpeg', 'jpe', 'png', 'webp'), TRUE) && @getimagesize($this->file_temp) === FALSE){ + if (in_array($ext, array('gif', 'jpg', 'jpeg', 'jpe', 'png', 'webp'), TRUE) && @getimagesize($this->file_temp) === FALSE) + { return FALSE; } -- cgit v1.2.3-24-g4f1b From 1cce9697265382853d9646ae3963fc20e6e97aa9 Mon Sep 17 00:00:00 2001 From: jerkob Date: Tue, 28 Jan 2020 11:20:47 -0500 Subject: Replace `trans_depth()` with `trans_active()` Per code review, replace `trans_depth()` function that returns the protected `_trans_depth` property with a `trans_active()` function that returns a boolean indicating whether a transaction is currently active. --- system/database/DB_driver.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 733522284..96becd767 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -829,13 +829,13 @@ abstract class CI_DB_driver { // -------------------------------------------------------------------- /** - * Lets you retrieve the transaction depth + * Returns whether a transaction is currently active * - * @return int + * @return bool */ - public function trans_depth() + public function trans_active() { - return $this->_trans_depth; + return (bool) $this->_trans_depth; } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 235f9cf2af212629d66a6227208b21ee1900aba3 Mon Sep 17 00:00:00 2001 From: jerkob Date: Tue, 28 Jan 2020 11:27:27 -0500 Subject: Update docs for `trans_active()` function` Per code review, update documentation from the proposed `trans_depth()` function to the replacement `trans_active()` function. --- user_guide_src/source/database/db_driver_reference.rst | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/user_guide_src/source/database/db_driver_reference.rst b/user_guide_src/source/database/db_driver_reference.rst index f1fbc1c87..ad53c2bfc 100644 --- a/user_guide_src/source/database/db_driver_reference.rst +++ b/user_guide_src/source/database/db_driver_reference.rst @@ -162,13 +162,12 @@ This article is intended to be a reference for them. Lets you retrieve the transaction status flag to determine if it has failed. - .. php:method:: trans_depth() + .. php:method:: trans_active() - :returns: The current transaction depth - :rtype: int + :returns: TRUE if a transaction is active, FALSE if not + :rtype: bool - Lets you retrieve the transaction depth value which - will be 1 or greater if a transaction is active. + Determines if a transaction is currently active. .. php:method:: compile_binds($sql, $binds) -- cgit v1.2.3-24-g4f1b From 259da38bedb09b4df1a94a922ec9b3e8d4f53d23 Mon Sep 17 00:00:00 2001 From: jerkob Date: Tue, 28 Jan 2020 11:30:44 -0500 Subject: Small tweak to `trans_active()` description --- system/database/DB_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index 96becd767..f3433f849 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -829,7 +829,7 @@ abstract class CI_DB_driver { // -------------------------------------------------------------------- /** - * Returns whether a transaction is currently active + * Returns TRUE if a transaction is currently active * * @return bool */ -- cgit v1.2.3-24-g4f1b From 1be5b1f14920ee599c5c7ee716c973b1b87da0b6 Mon Sep 17 00:00:00 2001 From: Josh Kelley Date: Tue, 28 Jan 2020 14:05:33 -0500 Subject: Fix database connection leak when closing PDO connection We discovered a resource leak (database connection leak) in our application's test suite. We investigated and discovered that, although the test suite was calling `CI_DB_driver::close()` after each test, the `result_id` member variable still maintained an internal reference to the database connection, which kept the connection from being closed. This is using pdo_sqlsrv; I have not tested other PDO drivers. Signed-off-by: Josh Kelley --- system/database/drivers/pdo/pdo_driver.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index 614d35096..b23e8cbda 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -326,4 +326,17 @@ class CI_DB_pdo_driver extends CI_DB { return 'TRUNCATE TABLE '.$table; } + // -------------------------------------------------------------------- + + /** + * Close DB Connection + * + * @return void + */ + protected function _close() + { + $this->result_id = FALSE; + $this->conn_id = FALSE; + } + } -- cgit v1.2.3-24-g4f1b From 432c22ba111a4b3c5c2f96edbb47c22b0e7dbf36 Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Wed, 29 Jan 2020 20:15:59 +0900 Subject: fix too many connection for oracle --- system/database/drivers/oci8/oci8_driver.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index a825c4a38..4dc665f33 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -682,6 +682,14 @@ class CI_DB_oci8_driver extends CI_DB { */ protected function _close() { + if (is_resource($this->curs_id)) + { + oci_free_statement($this->curs_id); + } + if (is_resource($this->stmt_id)) + { + oci_free_statement($this->stmt_id); + } oci_close($this->conn_id); } -- cgit v1.2.3-24-g4f1b From 6fdf0d6e67a3a5c9113afb2d64dc9fd3725f859d Mon Sep 17 00:00:00 2001 From: Achraf Almouloudi Date: Mon, 10 Feb 2020 00:00:33 +0000 Subject: Add server protocol value variation In some Apache servers running the HTTP/2 protocol, calling "$_SERVER['SERVER_PROTOCOL']" may return "HTTP/2.0" instead, thus causing CodeIgniter to (incorrectly) determine the output header protocol to use. This commit adds the different variation to fix that. --- system/core/Common.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Common.php b/system/core/Common.php index fadc0a0b1..f8ab7e800 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -569,7 +569,7 @@ if ( ! function_exists('set_status_header')) return; } - $server_protocol = (isset($_SERVER['SERVER_PROTOCOL']) && in_array($_SERVER['SERVER_PROTOCOL'], array('HTTP/1.0', 'HTTP/1.1', 'HTTP/2'), TRUE)) + $server_protocol = (isset($_SERVER['SERVER_PROTOCOL']) && in_array($_SERVER['SERVER_PROTOCOL'], array('HTTP/1.0', 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0'), TRUE)) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.1'; header($server_protocol.' '.$code.' '.$text, TRUE, $code); } -- cgit v1.2.3-24-g4f1b From 53c6c92dc73d2729c136a8868b0c16921240ba2a Mon Sep 17 00:00:00 2001 From: Peter Karunyu Date: Sat, 15 Feb 2020 20:09:48 +0300 Subject: Fixed double spacing. --- application/config/mimes.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index 7aa5c9e4e..88a621a19 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -5,7 +5,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | ------------------------------------------------------------------- | MIME TYPES | ------------------------------------------------------------------- -| This file contains an array of mime types. It is used by the +| This file contains an array of mime types. It is used by the | Upload class to help identify allowed file types. | */ @@ -85,7 +85,7 @@ return array( 'jpm' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'mj2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), 'mjp2' => array('image/jp2', 'video/mj2', 'image/jpx', 'image/jpm'), - 'png' => array('image/png', 'image/x-png'), + 'png' => array('image/png', 'image/x-png'), 'tiff' => 'image/tiff', 'tif' => 'image/tiff', 'css' => array('text/css', 'text/plain'), -- cgit v1.2.3-24-g4f1b From ddf552391e5fed7bdad930b023c8e83efabef020 Mon Sep 17 00:00:00 2001 From: Wobility Date: Sat, 29 Feb 2020 10:03:52 +0100 Subject: Update with heic format Add heic and heif format for Apple file. --- application/config/mimes.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/application/config/mimes.php b/application/config/mimes.php index 7aa5c9e4e..7f854ddeb 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -88,6 +88,8 @@ return array( 'png' => array('image/png', 'image/x-png'), 'tiff' => 'image/tiff', 'tif' => 'image/tiff', + 'heic' => 'image/heic', + 'heif' => 'image/heif', 'css' => array('text/css', 'text/plain'), 'html' => array('text/html', 'text/plain'), 'htm' => array('text/html', 'text/plain'), -- cgit v1.2.3-24-g4f1b From c88c2713b550e6edb4dee50aafa0a29d8e62921a Mon Sep 17 00:00:00 2001 From: Robson Piere Date: Tue, 3 Mar 2020 10:32:32 -0300 Subject: Add UptimeRobot user agent Add UptimeRobot user agent, a free website monitor. https://uptimerobot.com/ --- application/config/user_agents.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/application/config/user_agents.php b/application/config/user_agents.php index c866903f6..21251f46f 100644 --- a/application/config/user_agents.php +++ b/application/config/user_agents.php @@ -218,5 +218,6 @@ $robots = array( 'curious george' => 'Curious George', 'ia_archiver' => 'Alexa Crawler', 'MJ12bot' => 'Majestic-12', - 'Uptimebot' => 'Uptimebot' + 'Uptimebot' => 'Uptimebot', + 'UptimeRobot' => 'UptimeRobot' ); -- cgit v1.2.3-24-g4f1b From 5abd2ae8c7fb30585dae2bf96ffa847771ebad7f Mon Sep 17 00:00:00 2001 From: Diego Date: Thu, 2 Apr 2020 12:51:32 +0200 Subject: Fixed issue with creating a resource from png using Image_lib --- system/libraries/Image_lib.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 0d9fa4420..0ef76a101 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -1474,15 +1474,16 @@ class CI_Image_lib { $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_png_not_supported')); return FALSE; } + + return imagecreatefrompng($path); case 18: if ( ! function_exists('imagecreatefromwebp')) { $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_webp_not_supported')); return FALSE; } - return imagecreatefromwebp($path); - return imagecreatefrompng($path); + return imagecreatefromwebp($path); default: $this->set_error(array('imglib_unsupported_imagecreate')); return FALSE; -- cgit v1.2.3-24-g4f1b From 608bdc09ed9d30ecc530f418523615cb0b4d81d9 Mon Sep 17 00:00:00 2001 From: sapics Date: Mon, 13 Apr 2020 12:14:05 +0900 Subject: Update Ubuntu from Trusty to Xenial on Travis PHP7.4+ have less updates in Trusty on Travis --- .travis.yml | 87 +++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 65 insertions(+), 22 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8525d5f6c..b79543117 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,20 +1,17 @@ language: php -dist: trusty +os: linux +dist: xenial php: - - 5.4 - - 5.5 - 5.6 - 7.0 - 7.1 - 7.2 - 7.3 - - 7.4snapshot + - 7.4 - nightly - - hhvm-3.30 - + env: - - DB=mysql - DB=mysqli - DB=pgsql - DB=sqlite @@ -22,7 +19,9 @@ env: - DB=pdo/pgsql - DB=pdo/sqlite -sudo: false +services: + - mysql + - postgresql before_script: - sh -c "composer install --dev --no-progress" @@ -32,28 +31,72 @@ before_script: script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/$DB.phpunit.xml -matrix: +jobs: allow_failures: - - php: 7.4snapshot + - php: 7.4 - php: nightly - php: hhvm-3.30 - exclude: - - php: hhvm-3.30 + include: + - php: 5.4 + dist: trusty + env: DB=mysql + - php: 5.4 + dist: trusty + env: DB=mysqli + - php: 5.4 + dist: trusty env: DB=pgsql - - php: hhvm-3.30 + - php: 5.4 + dist: trusty + env: DB=sqlite + - php: 5.4 + dist: trusty + env: DB=pdo/mysql + - php: 5.4 + dist: trusty env: DB=pdo/pgsql - - php: 7.0 + - php: 5.4 + dist: trusty + env: DB=pdo/sqlite + - php: 5.5 + dist: trusty env: DB=mysql - - php: 7.1 - env: DB=mysql - - php: 7.2 - env: DB=mysql - - php: 7.3 - env: DB=mysql - - php: 7.4snapshot + - php: 5.5 + dist: trusty + env: DB=mysqli + - php: 5.5 + dist: trusty + env: DB=pgsql + - php: 5.5 + dist: trusty + env: DB=sqlite + - php: 5.5 + dist: trusty + env: DB=pdo/mysql + - php: 5.5 + dist: trusty + env: DB=pdo/pgsql + - php: 5.5 + dist: trusty + env: DB=pdo/sqlite + - php: 5.6 + dist: xenial env: DB=mysql - - php: nightly + - php: hhvm-3.30 + dist: trusty env: DB=mysql + - php: hhvm-3.30 + dist: trusty + env: DB=mysqli + - php: hhvm-3.30 + dist: trusty + env: DB=sqlite + - php: hhvm-3.30 + dist: trusty + env: DB=pdo/mysql + - php: hhvm-3.30 + dist: trusty + env: DB=pdo/sqlite branches: only: -- cgit v1.2.3-24-g4f1b From bbe58acbefcbe24afddd7f61cf61fda72632d137 Mon Sep 17 00:00:00 2001 From: sapics Date: Mon, 13 Apr 2020 16:09:11 +0900 Subject: Remove deprecated option "dev" dev packages are installed by default now --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b79543117..889d0455b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -24,7 +24,7 @@ services: - postgresql before_script: - - sh -c "composer install --dev --no-progress" + - sh -c "composer install --no-progress" - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS ci_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'create database ci_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'mysql' ] || [ '$DB' = 'mysqli' ] || [ '$DB' = 'pdo/mysql' ]; then mysql -e 'create database IF NOT EXISTS ci_test;'; fi" -- cgit v1.2.3-24-g4f1b From 16bc99b45d30953147721cd06bbb21fbe05c71b3 Mon Sep 17 00:00:00 2001 From: sapics Date: Mon, 13 Apr 2020 23:40:04 +0900 Subject: Fix error in Travis php7.4 test --- tests/codeigniter/helpers/text_helper_test.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/codeigniter/helpers/text_helper_test.php b/tests/codeigniter/helpers/text_helper_test.php index 36465f203..e51d96a29 100644 --- a/tests/codeigniter/helpers/text_helper_test.php +++ b/tests/codeigniter/helpers/text_helper_test.php @@ -64,7 +64,12 @@ class Text_helper_test extends CI_TestCase { public function test_convert_accented_characters() { - $this->ci_vfs_clone('application/config/foreign_chars.php'); + $path = 'application/config/foreign_chars.php'; + $this->ci_vfs_clone($path); + if (is_php('7.4')) + { + copy(PROJECT_BASE.$path, APPPATH.'../'.$path); + } $this->assertEquals('AAAeEEEIIOOEUUUeY', convert_accented_characters('ÀÂÄÈÊËÎÏÔŒÙÛÜŸ')); $this->assertEquals('a e i o u n ue', convert_accented_characters('á é í ó ú ñ ü')); } -- cgit v1.2.3-24-g4f1b From 183ae7c2d217c76a5c77fc555f612ad4fc71633e Mon Sep 17 00:00:00 2001 From: sapics Date: Mon, 13 Apr 2020 23:55:02 +0900 Subject: Remove allow_failures of php7.4 in Travis --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 889d0455b..43d85a4e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,7 +33,6 @@ script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 jobs: allow_failures: - - php: 7.4 - php: nightly - php: hhvm-3.30 include: -- cgit v1.2.3-24-g4f1b From 40095dd11de792afe6c4bdba87c7d54076d6d6e3 Mon Sep 17 00:00:00 2001 From: sapics Date: Tue, 14 Apr 2020 00:42:31 +0900 Subject: Add composer cache in Travis --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 43d85a4e4..5070c24c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,6 +23,10 @@ services: - mysql - postgresql +cache: + directories: + - $HOME/.composer/cache + before_script: - sh -c "composer install --no-progress" - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS ci_test;' -U postgres; fi" -- cgit v1.2.3-24-g4f1b From 3de7ecb5ee57b4f0644f89da99d17cfdd67fae1d Mon Sep 17 00:00:00 2001 From: ytetsuro Date: Mon, 18 May 2020 13:59:40 +0900 Subject: style: add empty line. --- system/database/drivers/oci8/oci8_driver.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index 4dc665f33..31bda5eb5 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -686,10 +686,12 @@ class CI_DB_oci8_driver extends CI_DB { { oci_free_statement($this->curs_id); } + if (is_resource($this->stmt_id)) { oci_free_statement($this->stmt_id); } + oci_close($this->conn_id); } -- cgit v1.2.3-24-g4f1b From 6ba0207160f8f2b99c79dd285bccf45f574ec660 Mon Sep 17 00:00:00 2001 From: sapics Date: Wed, 24 Jun 2020 11:51:36 +0900 Subject: Fix user guide url Replace from https://codeigniter.com/user_guide/* to https://codeigniter.com/userguide3/* --- application/config/config.php | 8 ++++---- application/config/hooks.php | 2 +- application/config/memcached.php | 2 +- application/config/profiler.php | 2 +- application/config/routes.php | 2 +- application/controllers/Welcome.php | 2 +- contributing.md | 2 +- index.php | 2 +- readme.rst | 2 +- system/core/Benchmark.php | 2 +- system/core/CodeIgniter.php | 2 +- system/core/Common.php | 2 +- system/core/Config.php | 2 +- system/core/Controller.php | 2 +- system/core/Exceptions.php | 2 +- system/core/Hooks.php | 2 +- system/core/Input.php | 2 +- system/core/Lang.php | 2 +- system/core/Loader.php | 2 +- system/core/Log.php | 2 +- system/core/Model.php | 2 +- system/core/Output.php | 2 +- system/core/Router.php | 2 +- system/core/Security.php | 2 +- system/core/URI.php | 2 +- system/core/Utf8.php | 2 +- system/core/compat/hash.php | 2 +- system/core/compat/mbstring.php | 2 +- system/core/compat/password.php | 2 +- system/core/compat/standard.php | 2 +- system/database/DB.php | 2 +- system/database/DB_cache.php | 2 +- system/database/DB_driver.php | 2 +- system/database/DB_forge.php | 2 +- system/database/DB_query_builder.php | 2 +- system/database/DB_result.php | 2 +- system/database/DB_utility.php | 2 +- system/database/drivers/cubrid/cubrid_driver.php | 2 +- system/database/drivers/cubrid/cubrid_forge.php | 2 +- system/database/drivers/cubrid/cubrid_result.php | 2 +- system/database/drivers/cubrid/cubrid_utility.php | 2 +- system/database/drivers/ibase/ibase_driver.php | 2 +- system/database/drivers/ibase/ibase_forge.php | 2 +- system/database/drivers/ibase/ibase_result.php | 2 +- system/database/drivers/ibase/ibase_utility.php | 2 +- system/database/drivers/mssql/mssql_driver.php | 2 +- system/database/drivers/mssql/mssql_forge.php | 2 +- system/database/drivers/mssql/mssql_result.php | 2 +- system/database/drivers/mssql/mssql_utility.php | 2 +- system/database/drivers/mysql/mysql_driver.php | 2 +- system/database/drivers/mysql/mysql_forge.php | 2 +- system/database/drivers/mysql/mysql_result.php | 2 +- system/database/drivers/mysql/mysql_utility.php | 2 +- system/database/drivers/mysqli/mysqli_driver.php | 2 +- system/database/drivers/mysqli/mysqli_forge.php | 2 +- system/database/drivers/mysqli/mysqli_result.php | 2 +- system/database/drivers/mysqli/mysqli_utility.php | 2 +- system/database/drivers/oci8/oci8_driver.php | 2 +- system/database/drivers/oci8/oci8_forge.php | 2 +- system/database/drivers/oci8/oci8_result.php | 2 +- system/database/drivers/oci8/oci8_utility.php | 2 +- system/database/drivers/odbc/odbc_driver.php | 2 +- system/database/drivers/odbc/odbc_result.php | 2 +- system/database/drivers/pdo/pdo_driver.php | 2 +- system/database/drivers/pdo/pdo_result.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_4d_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_4d_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_informix_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_informix_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_oci_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_oci_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php | 2 +- system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php | 2 +- system/database/drivers/postgre/postgre_driver.php | 2 +- system/database/drivers/postgre/postgre_forge.php | 2 +- system/database/drivers/postgre/postgre_result.php | 2 +- system/database/drivers/postgre/postgre_utility.php | 2 +- system/database/drivers/sqlite3/sqlite3_driver.php | 2 +- system/database/drivers/sqlite3/sqlite3_forge.php | 2 +- system/database/drivers/sqlite3/sqlite3_result.php | 2 +- system/database/drivers/sqlite3/sqlite3_utility.php | 2 +- system/database/drivers/sqlsrv/sqlsrv_driver.php | 2 +- system/database/drivers/sqlsrv/sqlsrv_forge.php | 2 +- system/database/drivers/sqlsrv/sqlsrv_result.php | 2 +- system/database/drivers/sqlsrv/sqlsrv_utility.php | 2 +- system/helpers/array_helper.php | 2 +- system/helpers/captcha_helper.php | 2 +- system/helpers/cookie_helper.php | 2 +- system/helpers/date_helper.php | 2 +- system/helpers/directory_helper.php | 2 +- system/helpers/download_helper.php | 2 +- system/helpers/file_helper.php | 2 +- system/helpers/form_helper.php | 2 +- system/helpers/html_helper.php | 2 +- system/helpers/inflector_helper.php | 2 +- system/helpers/language_helper.php | 2 +- system/helpers/number_helper.php | 2 +- system/helpers/path_helper.php | 2 +- system/helpers/security_helper.php | 2 +- system/helpers/string_helper.php | 2 +- system/helpers/text_helper.php | 2 +- system/helpers/typography_helper.php | 2 +- system/helpers/url_helper.php | 2 +- system/helpers/xml_helper.php | 2 +- system/libraries/Calendar.php | 2 +- system/libraries/Email.php | 2 +- system/libraries/Encrypt.php | 4 ++-- system/libraries/Encryption.php | 2 +- system/libraries/Form_validation.php | 2 +- system/libraries/Ftp.php | 2 +- system/libraries/Image_lib.php | 2 +- system/libraries/Pagination.php | 2 +- system/libraries/Parser.php | 2 +- system/libraries/Profiler.php | 2 +- system/libraries/Session/Session.php | 2 +- system/libraries/Session/Session_driver.php | 2 +- system/libraries/Session/drivers/Session_database_driver.php | 2 +- system/libraries/Session/drivers/Session_files_driver.php | 2 +- system/libraries/Session/drivers/Session_memcached_driver.php | 2 +- system/libraries/Session/drivers/Session_redis_driver.php | 2 +- system/libraries/Table.php | 2 +- system/libraries/Trackback.php | 2 +- system/libraries/Typography.php | 2 +- system/libraries/Unit_test.php | 2 +- system/libraries/Upload.php | 2 +- system/libraries/User_agent.php | 2 +- system/libraries/Xmlrpc.php | 10 +++++----- system/libraries/Xmlrpcs.php | 2 +- system/libraries/Zip.php | 2 +- tests/codeigniter/libraries/Useragent_test.php | 4 ++-- user_guide_src/source/installation/upgrade_150.rst | 4 ++-- 146 files changed, 156 insertions(+), 156 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index 782b19c74..f92d11f5d 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -62,7 +62,7 @@ $config['uri_protocol'] = 'REQUEST_URI'; | This option allows you to add a suffix to all URLs generated by CodeIgniter. | For more information please see the user guide: | -| https://codeigniter.com/user_guide/general/urls.html +| https://codeigniter.com/userguide3/general/urls.html | | Note: This option is ignored for CLI requests. */ @@ -112,8 +112,8 @@ $config['enable_hooks'] = FALSE; | This item allows you to set the filename/classname prefix when extending | native libraries. For more information please see the user guide: | -| https://codeigniter.com/user_guide/general/core_classes.html -| https://codeigniter.com/user_guide/general/creating_libraries.html +| https://codeigniter.com/userguide3/general/core_classes.html +| https://codeigniter.com/userguide3/general/creating_libraries.html | */ $config['subclass_prefix'] = 'MY_'; @@ -311,7 +311,7 @@ $config['cache_query_string'] = FALSE; | If you use the Encryption class, you must set an encryption key. | See the user guide for more info. | -| https://codeigniter.com/user_guide/libraries/encryption.html +| https://codeigniter.com/userguide3/libraries/encryption.html | */ $config['encryption_key'] = ''; diff --git a/application/config/hooks.php b/application/config/hooks.php index a8f38a5dc..79c5c162f 100644 --- a/application/config/hooks.php +++ b/application/config/hooks.php @@ -8,6 +8,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | This file lets you define "hooks" to extend CI without hacking the core | files. Please see the user guide for info: | -| https://codeigniter.com/user_guide/general/hooks.html +| https://codeigniter.com/userguide3/general/hooks.html | */ diff --git a/application/config/memcached.php b/application/config/memcached.php index 5c23b39c1..65a149617 100644 --- a/application/config/memcached.php +++ b/application/config/memcached.php @@ -7,7 +7,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | ------------------------------------------------------------------------- | Your Memcached servers can be specified below. | -| See: https://codeigniter.com/user_guide/libraries/caching.html#memcached +| See: https://codeigniter.com/userguide3/libraries/caching.html#memcached | */ $config = array( diff --git a/application/config/profiler.php b/application/config/profiler.php index 3db22e39c..3436e931e 100644 --- a/application/config/profiler.php +++ b/application/config/profiler.php @@ -9,6 +9,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | data are displayed when the Profiler is enabled. | Please see the user guide for info: | -| https://codeigniter.com/user_guide/general/profiling.html +| https://codeigniter.com/userguide3/general/profiling.html | */ diff --git a/application/config/routes.php b/application/config/routes.php index 8ebf62bfa..4c70d921c 100644 --- a/application/config/routes.php +++ b/application/config/routes.php @@ -19,7 +19,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | | Please see the user guide for complete details: | -| https://codeigniter.com/user_guide/general/routing.html +| https://codeigniter.com/userguide3/general/routing.html | | ------------------------------------------------------------------------- | RESERVED ROUTES diff --git a/application/controllers/Welcome.php b/application/controllers/Welcome.php index 9213c0cf5..5f82771b6 100644 --- a/application/controllers/Welcome.php +++ b/application/controllers/Welcome.php @@ -16,7 +16,7 @@ class Welcome extends CI_Controller { * * So any other public methods not prefixed with an underscore will * map to /index.php/welcome/ - * @see https://codeigniter.com/user_guide/general/urls.html + * @see https://codeigniter.com/userguide3/general/urls.html */ public function index() { diff --git a/contributing.md b/contributing.md index 8f43c45a6..206784d1f 100644 --- a/contributing.md +++ b/contributing.md @@ -19,7 +19,7 @@ for us to maintain quality of the code-base. ### PHP Style -All code must meet the [Style Guide](https://codeigniter.com/user_guide/general/styleguide.html), which is +All code must meet the [Style Guide](https://codeigniter.com/userguide3/general/styleguide.html), which is essentially the [Allman indent style](https://en.wikipedia.org/wiki/Indent_style#Allman_style), underscores and readable operators. This makes certain that all code is the same format as the existing code and means it will be as readable as possible. ### Documentation diff --git a/index.php b/index.php index e7aab3b03..8b095a77a 100755 --- a/index.php +++ b/index.php @@ -103,7 +103,7 @@ switch (ENVIRONMENT) * use an absolute (full) server path. * For more info please see the user guide: * - * https://codeigniter.com/user_guide/general/managing_apps.html + * https://codeigniter.com/userguide3/general/managing_apps.html * * NO TRAILING SLASH! */ diff --git a/readme.rst b/readme.rst index 3e1382fbd..17e3d630e 100644 --- a/readme.rst +++ b/readme.rst @@ -39,7 +39,7 @@ issues, as well as missing features. Installation ************ -Please see the `installation section `_ +Please see the `installation section `_ of the CodeIgniter User Guide. ******* diff --git a/system/core/Benchmark.php b/system/core/Benchmark.php index 014220a44..0b48d4d0c 100644 --- a/system/core/Benchmark.php +++ b/system/core/Benchmark.php @@ -47,7 +47,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/benchmark.html + * @link https://codeigniter.com/userguide3/libraries/benchmark.html */ class CI_Benchmark { diff --git a/system/core/CodeIgniter.php b/system/core/CodeIgniter.php index 9bf60a4ac..1f626729a 100644 --- a/system/core/CodeIgniter.php +++ b/system/core/CodeIgniter.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage CodeIgniter * @category Front-controller * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/ + * @link https://codeigniter.com/userguide3/ */ /** diff --git a/system/core/Common.php b/system/core/Common.php index f8ab7e800..ed96de0ca 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage CodeIgniter * @category Common Functions * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/ + * @link https://codeigniter.com/userguide3/ */ // ------------------------------------------------------------------------ diff --git a/system/core/Config.php b/system/core/Config.php index 13cc087d0..e6eb0ad95 100644 --- a/system/core/Config.php +++ b/system/core/Config.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/config.html + * @link https://codeigniter.com/userguide3/libraries/config.html */ class CI_Config { diff --git a/system/core/Controller.php b/system/core/Controller.php index e25b8472c..ac27989f3 100644 --- a/system/core/Controller.php +++ b/system/core/Controller.php @@ -47,7 +47,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/controllers.html + * @link https://codeigniter.com/userguide3/general/controllers.html */ class CI_Controller { diff --git a/system/core/Exceptions.php b/system/core/Exceptions.php index e8e7f6c29..92c635f97 100644 --- a/system/core/Exceptions.php +++ b/system/core/Exceptions.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Exceptions * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/exceptions.html + * @link https://codeigniter.com/userguide3/libraries/exceptions.html */ class CI_Exceptions { diff --git a/system/core/Hooks.php b/system/core/Hooks.php index 353e22e21..864c59d25 100644 --- a/system/core/Hooks.php +++ b/system/core/Hooks.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/hooks.html + * @link https://codeigniter.com/userguide3/general/hooks.html */ class CI_Hooks { diff --git a/system/core/Input.php b/system/core/Input.php index 053970b01..30d528b89 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Input * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/input.html + * @link https://codeigniter.com/userguide3/libraries/input.html */ class CI_Input { diff --git a/system/core/Lang.php b/system/core/Lang.php index 2c8654dcf..5cfeaf37e 100644 --- a/system/core/Lang.php +++ b/system/core/Lang.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Language * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/language.html + * @link https://codeigniter.com/userguide3/libraries/language.html */ class CI_Lang { diff --git a/system/core/Loader.php b/system/core/Loader.php index 0710b1611..d9a1539aa 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Loader * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/loader.html + * @link https://codeigniter.com/userguide3/libraries/loader.html */ class CI_Loader { diff --git a/system/core/Log.php b/system/core/Log.php index fde0bebf2..36634c159 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Logging * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/errors.html + * @link https://codeigniter.com/userguide3/general/errors.html */ class CI_Log { diff --git a/system/core/Model.php b/system/core/Model.php index 4c497d21e..585148298 100644 --- a/system/core/Model.php +++ b/system/core/Model.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/config.html + * @link https://codeigniter.com/userguide3/libraries/config.html */ class CI_Model { diff --git a/system/core/Output.php b/system/core/Output.php index f386d3ad4..c56aff4b0 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Output * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/output.html + * @link https://codeigniter.com/userguide3/libraries/output.html */ class CI_Output { diff --git a/system/core/Router.php b/system/core/Router.php index dcdd1ed1f..0d9662559 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/routing.html + * @link https://codeigniter.com/userguide3/general/routing.html */ class CI_Router { diff --git a/system/core/Security.php b/system/core/Security.php index 5edb67f4e..818b09338 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Security * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/security.html + * @link https://codeigniter.com/userguide3/libraries/security.html */ class CI_Security { diff --git a/system/core/URI.php b/system/core/URI.php index 3670ef29d..9bef22d6c 100644 --- a/system/core/URI.php +++ b/system/core/URI.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category URI * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/uri.html + * @link https://codeigniter.com/userguide3/libraries/uri.html */ class CI_URI { diff --git a/system/core/Utf8.php b/system/core/Utf8.php index 39954c428..5e18f07bb 100644 --- a/system/core/Utf8.php +++ b/system/core/Utf8.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category UTF-8 * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/utf8.html + * @link https://codeigniter.com/userguide3/libraries/utf8.html */ class CI_Utf8 { diff --git a/system/core/compat/hash.php b/system/core/compat/hash.php index 8d905ad68..f1829a3a6 100644 --- a/system/core/compat/hash.php +++ b/system/core/compat/hash.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage CodeIgniter * @category Compatibility * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/ + * @link https://codeigniter.com/userguide3/ * @link https://secure.php.net/hash */ diff --git a/system/core/compat/mbstring.php b/system/core/compat/mbstring.php index 41c86376c..af73b8cce 100644 --- a/system/core/compat/mbstring.php +++ b/system/core/compat/mbstring.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage CodeIgniter * @category Compatibility * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/ + * @link https://codeigniter.com/userguide3/ * @link https://secure.php.net/mbstring */ diff --git a/system/core/compat/password.php b/system/core/compat/password.php index f6517b46d..306300eda 100644 --- a/system/core/compat/password.php +++ b/system/core/compat/password.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage CodeIgniter * @category Compatibility * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/ + * @link https://codeigniter.com/userguide3/ * @link https://secure.php.net/password */ diff --git a/system/core/compat/standard.php b/system/core/compat/standard.php index 31c39ca25..21feeb04e 100644 --- a/system/core/compat/standard.php +++ b/system/core/compat/standard.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage CodeIgniter * @category Compatibility * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/ + * @link https://codeigniter.com/userguide3/ */ // ------------------------------------------------------------------------ diff --git a/system/database/DB.php b/system/database/DB.php index 558212718..c42bb6b91 100644 --- a/system/database/DB.php +++ b/system/database/DB.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ * * @param string|string[] $params * @param bool $query_builder_override diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php index afcfc4cf9..2467a30f2 100644 --- a/system/database/DB_cache.php +++ b/system/database/DB_cache.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_Cache { diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index f3433f849..cba96d9a2 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ abstract class CI_DB_driver { diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index b086f7a81..ce9b30d82 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ abstract class CI_DB_forge { diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 357a2e359..33f0cd15b 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ abstract class CI_DB_query_builder extends CI_DB_driver { diff --git a/system/database/DB_result.php b/system/database/DB_result.php index ed5252d49..b481de475 100644 --- a/system/database/DB_result.php +++ b/system/database/DB_result.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_result { diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php index c2edfc9f3..a1450f099 100644 --- a/system/database/DB_utility.php +++ b/system/database/DB_utility.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ abstract class CI_DB_utility { diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php index b3b436fed..b133c1025 100644 --- a/system/database/drivers/cubrid/cubrid_driver.php +++ b/system/database/drivers/cubrid/cubrid_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author Esen Sagynov - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_cubrid_driver extends CI_DB { diff --git a/system/database/drivers/cubrid/cubrid_forge.php b/system/database/drivers/cubrid/cubrid_forge.php index 69b53dd49..8c7cd52db 100644 --- a/system/database/drivers/cubrid/cubrid_forge.php +++ b/system/database/drivers/cubrid/cubrid_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author Esen Sagynov - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_cubrid_forge extends CI_DB_forge { diff --git a/system/database/drivers/cubrid/cubrid_result.php b/system/database/drivers/cubrid/cubrid_result.php index 75d702558..988fba6d8 100644 --- a/system/database/drivers/cubrid/cubrid_result.php +++ b/system/database/drivers/cubrid/cubrid_result.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author Esen Sagynov - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_cubrid_result extends CI_DB_result { diff --git a/system/database/drivers/cubrid/cubrid_utility.php b/system/database/drivers/cubrid/cubrid_utility.php index ccf794b75..d860bee08 100644 --- a/system/database/drivers/cubrid/cubrid_utility.php +++ b/system/database/drivers/cubrid/cubrid_utility.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author Esen Sagynov - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_cubrid_utility extends CI_DB_utility { diff --git a/system/database/drivers/ibase/ibase_driver.php b/system/database/drivers/ibase/ibase_driver.php index 27e87d427..85badc2fe 100644 --- a/system/database/drivers/ibase/ibase_driver.php +++ b/system/database/drivers/ibase/ibase_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_ibase_driver extends CI_DB { diff --git a/system/database/drivers/ibase/ibase_forge.php b/system/database/drivers/ibase/ibase_forge.php index ad3382042..940080320 100644 --- a/system/database/drivers/ibase/ibase_forge.php +++ b/system/database/drivers/ibase/ibase_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_ibase_forge extends CI_DB_forge { diff --git a/system/database/drivers/ibase/ibase_result.php b/system/database/drivers/ibase/ibase_result.php index 86530973b..c3e4ed7a6 100644 --- a/system/database/drivers/ibase/ibase_result.php +++ b/system/database/drivers/ibase/ibase_result.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_ibase_result extends CI_DB_result { diff --git a/system/database/drivers/ibase/ibase_utility.php b/system/database/drivers/ibase/ibase_utility.php index a80874924..1fc34254e 100644 --- a/system/database/drivers/ibase/ibase_utility.php +++ b/system/database/drivers/ibase/ibase_utility.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_ibase_utility extends CI_DB_utility { diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php index 51352e314..a20b01237 100644 --- a/system/database/drivers/mssql/mssql_driver.php +++ b/system/database/drivers/mssql/mssql_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mssql_driver extends CI_DB { diff --git a/system/database/drivers/mssql/mssql_forge.php b/system/database/drivers/mssql/mssql_forge.php index 07b93c24d..f79416031 100644 --- a/system/database/drivers/mssql/mssql_forge.php +++ b/system/database/drivers/mssql/mssql_forge.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mssql_forge extends CI_DB_forge { diff --git a/system/database/drivers/mssql/mssql_result.php b/system/database/drivers/mssql/mssql_result.php index 5d7d3bedc..6cae3050d 100644 --- a/system/database/drivers/mssql/mssql_result.php +++ b/system/database/drivers/mssql/mssql_result.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mssql_result extends CI_DB_result { diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php index 5c9941aca..1aad485b7 100644 --- a/system/database/drivers/mssql/mssql_utility.php +++ b/system/database/drivers/mssql/mssql_utility.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mssql_utility extends CI_DB_utility { diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php index bdd80092c..61337cdd3 100644 --- a/system/database/drivers/mysql/mysql_driver.php +++ b/system/database/drivers/mysql/mysql_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysql_driver extends CI_DB { diff --git a/system/database/drivers/mysql/mysql_forge.php b/system/database/drivers/mysql/mysql_forge.php index b69aa36b4..e59366bed 100644 --- a/system/database/drivers/mysql/mysql_forge.php +++ b/system/database/drivers/mysql/mysql_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysql_forge extends CI_DB_forge { diff --git a/system/database/drivers/mysql/mysql_result.php b/system/database/drivers/mysql/mysql_result.php index 842d7d399..461f643df 100644 --- a/system/database/drivers/mysql/mysql_result.php +++ b/system/database/drivers/mysql/mysql_result.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysql_result extends CI_DB_result { diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php index a54892975..6089da533 100644 --- a/system/database/drivers/mysql/mysql_utility.php +++ b/system/database/drivers/mysql/mysql_utility.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysql_utility extends CI_DB_utility { diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php index 6553a271f..428b7e7f6 100644 --- a/system/database/drivers/mysqli/mysqli_driver.php +++ b/system/database/drivers/mysqli/mysqli_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysqli_driver extends CI_DB { diff --git a/system/database/drivers/mysqli/mysqli_forge.php b/system/database/drivers/mysqli/mysqli_forge.php index 92b1e94d1..b67fe56cb 100644 --- a/system/database/drivers/mysqli/mysqli_forge.php +++ b/system/database/drivers/mysqli/mysqli_forge.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysqli_forge extends CI_DB_forge { diff --git a/system/database/drivers/mysqli/mysqli_result.php b/system/database/drivers/mysqli/mysqli_result.php index 0856eca4e..7e4e45f39 100644 --- a/system/database/drivers/mysqli/mysqli_result.php +++ b/system/database/drivers/mysqli/mysqli_result.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysqli_result extends CI_DB_result { diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php index 606424655..75e35d116 100644 --- a/system/database/drivers/mysqli/mysqli_utility.php +++ b/system/database/drivers/mysqli/mysqli_utility.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_mysqli_utility extends CI_DB_utility { diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index a825c4a38..a9d75ebf2 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ /** diff --git a/system/database/drivers/oci8/oci8_forge.php b/system/database/drivers/oci8/oci8_forge.php index a73899888..7dc7b2ade 100644 --- a/system/database/drivers/oci8/oci8_forge.php +++ b/system/database/drivers/oci8/oci8_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_oci8_forge extends CI_DB_forge { diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php index 3da49aa76..7fd911e82 100644 --- a/system/database/drivers/oci8/oci8_result.php +++ b/system/database/drivers/oci8/oci8_result.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_oci8_result extends CI_DB_result { diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php index 3a7261c15..a0a9c2c95 100644 --- a/system/database/drivers/oci8/oci8_utility.php +++ b/system/database/drivers/oci8/oci8_utility.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_oci8_utility extends CI_DB_utility { diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php index 72289bf9f..f02da4d13 100644 --- a/system/database/drivers/odbc/odbc_driver.php +++ b/system/database/drivers/odbc/odbc_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_odbc_driver extends CI_DB_driver { diff --git a/system/database/drivers/odbc/odbc_result.php b/system/database/drivers/odbc/odbc_result.php index a06ac4b9e..6aff76941 100644 --- a/system/database/drivers/odbc/odbc_result.php +++ b/system/database/drivers/odbc/odbc_result.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_odbc_result extends CI_DB_result { diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index b23e8cbda..d0a2bf959 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_driver extends CI_DB { diff --git a/system/database/drivers/pdo/pdo_result.php b/system/database/drivers/pdo/pdo_result.php index b3973da46..f0f56c3f7 100644 --- a/system/database/drivers/pdo/pdo_result.php +++ b/system/database/drivers/pdo/pdo_result.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_result extends CI_DB_result { diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php index 2e39bb236..63f6f84b5 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_4d_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php index 306150b9a..f7fa54316 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_4d_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_4d_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php index 9a6b643fc..05887bcfb 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_cubrid_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php index f2ee3f5ea..32ccc8cca 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_cubrid_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_cubrid_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php index 09dbdf08f..06f03ccce 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_dblib_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php index f38ac99ba..692b76d89 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_dblib_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php index 2c49f1216..4e4dd27e1 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_firebird_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php index db7936631..c3d25b6f6 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_firebird_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_firebird_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php index 00654d7c0..16b1c6e11 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_ibm_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php index 99d75b645..8ea4838db 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_ibm_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php index 114eb7470..98f463895 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_informix_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php index 1f4bcd1af..91a935908 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_informix_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_informix_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php index 73b88bcfd..0f53e3192 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_mysql_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php index 01595a603..7713f6732 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_mysql_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_mysql_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php index 41f7a6485..82f0145ba 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_oci_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php index aa78461df..0700d6369 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_oci_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_oci_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php index 93a6420e5..2522debec 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_odbc_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_odbc_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php index 2d0c74b2e..eee0fc0b3 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_pgsql_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php index 4e19e9c57..187cb2d09 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_pgsql_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php index f55d9a6c7..634b837c9 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_sqlite_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php index 545b2a3d8..fd9696fb8 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_sqlite_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php index 84109ae30..1c83593df 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_sqlsrv_driver extends CI_DB_pdo_driver { diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php index b23c6d44e..22375949a 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_pdo_sqlsrv_forge extends CI_DB_pdo_forge { diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php index 19a09490c..87aaed7da 100644 --- a/system/database/drivers/postgre/postgre_driver.php +++ b/system/database/drivers/postgre/postgre_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_postgre_driver extends CI_DB { diff --git a/system/database/drivers/postgre/postgre_forge.php b/system/database/drivers/postgre/postgre_forge.php index a378d146b..6f214c665 100644 --- a/system/database/drivers/postgre/postgre_forge.php +++ b/system/database/drivers/postgre/postgre_forge.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_postgre_forge extends CI_DB_forge { diff --git a/system/database/drivers/postgre/postgre_result.php b/system/database/drivers/postgre/postgre_result.php index b0054ddae..a0a628f0a 100644 --- a/system/database/drivers/postgre/postgre_result.php +++ b/system/database/drivers/postgre/postgre_result.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_postgre_result extends CI_DB_result { diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php index 450aa36e4..e6e7b28ba 100644 --- a/system/database/drivers/postgre/postgre_utility.php +++ b/system/database/drivers/postgre/postgre_utility.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_postgre_utility extends CI_DB_utility { diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php index 5d057ba5a..d456250f2 100644 --- a/system/database/drivers/sqlite3/sqlite3_driver.php +++ b/system/database/drivers/sqlite3/sqlite3_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite3_driver extends CI_DB { diff --git a/system/database/drivers/sqlite3/sqlite3_forge.php b/system/database/drivers/sqlite3/sqlite3_forge.php index 4019a9523..52894e857 100644 --- a/system/database/drivers/sqlite3/sqlite3_forge.php +++ b/system/database/drivers/sqlite3/sqlite3_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite3_forge extends CI_DB_forge { diff --git a/system/database/drivers/sqlite3/sqlite3_result.php b/system/database/drivers/sqlite3/sqlite3_result.php index d656fed12..a48cbcf56 100644 --- a/system/database/drivers/sqlite3/sqlite3_result.php +++ b/system/database/drivers/sqlite3/sqlite3_result.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite3_result extends CI_DB_result { diff --git a/system/database/drivers/sqlite3/sqlite3_utility.php b/system/database/drivers/sqlite3/sqlite3_utility.php index 1bdf3ae37..c80dd4f97 100644 --- a/system/database/drivers/sqlite3/sqlite3_utility.php +++ b/system/database/drivers/sqlite3/sqlite3_utility.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlite3_utility extends CI_DB_utility { diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php index a22a8b316..33f971ff4 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_driver.php +++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php @@ -48,7 +48,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Drivers * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlsrv_driver extends CI_DB { diff --git a/system/database/drivers/sqlsrv/sqlsrv_forge.php b/system/database/drivers/sqlsrv/sqlsrv_forge.php index 90c3120a5..610d2e426 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_forge.php +++ b/system/database/drivers/sqlsrv/sqlsrv_forge.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlsrv_forge extends CI_DB_forge { diff --git a/system/database/drivers/sqlsrv/sqlsrv_result.php b/system/database/drivers/sqlsrv/sqlsrv_result.php index e2649c666..bf5884429 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_result.php +++ b/system/database/drivers/sqlsrv/sqlsrv_result.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlsrv_result extends CI_DB_result { diff --git a/system/database/drivers/sqlsrv/sqlsrv_utility.php b/system/database/drivers/sqlsrv/sqlsrv_utility.php index 6dd01a990..bb2a67806 100644 --- a/system/database/drivers/sqlsrv/sqlsrv_utility.php +++ b/system/database/drivers/sqlsrv/sqlsrv_utility.php @@ -42,7 +42,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * * @category Database * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/database/ + * @link https://codeigniter.com/userguide3/database/ */ class CI_DB_sqlsrv_utility extends CI_DB_utility { diff --git a/system/helpers/array_helper.php b/system/helpers/array_helper.php index cb7eca68b..2c359240a 100644 --- a/system/helpers/array_helper.php +++ b/system/helpers/array_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/array_helper.html + * @link https://codeigniter.com/userguide3/helpers/array_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index dcd6882c8..f178903b2 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/captcha_helper.html + * @link https://codeigniter.com/userguide3/helpers/captcha_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php index d9724932e..8183e0541 100644 --- a/system/helpers/cookie_helper.php +++ b/system/helpers/cookie_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/cookie_helper.html + * @link https://codeigniter.com/userguide3/helpers/cookie_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/date_helper.php b/system/helpers/date_helper.php index 6ee3c3119..db9e9642d 100644 --- a/system/helpers/date_helper.php +++ b/system/helpers/date_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/date_helper.html + * @link https://codeigniter.com/userguide3/helpers/date_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php index 73777bfb5..4732db57b 100644 --- a/system/helpers/directory_helper.php +++ b/system/helpers/directory_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/directory_helper.html + * @link https://codeigniter.com/userguide3/helpers/directory_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/download_helper.php b/system/helpers/download_helper.php index 4d7829640..9bdeea13d 100644 --- a/system/helpers/download_helper.php +++ b/system/helpers/download_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/download_helper.html + * @link https://codeigniter.com/userguide3/helpers/download_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php index ebc863bbc..398d11afd 100644 --- a/system/helpers/file_helper.php +++ b/system/helpers/file_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/file_helper.html + * @link https://codeigniter.com/userguide3/helpers/file_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index 7a2dadaf3..4b88d3b12 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/form_helper.html + * @link https://codeigniter.com/userguide3/helpers/form_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 8b06e4406..531ae2251 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/html_helper.html + * @link https://codeigniter.com/userguide3/helpers/html_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/inflector_helper.php b/system/helpers/inflector_helper.php index a36836b00..b7f472bcc 100644 --- a/system/helpers/inflector_helper.php +++ b/system/helpers/inflector_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/inflector_helper.html + * @link https://codeigniter.com/userguide3/helpers/inflector_helper.html */ // -------------------------------------------------------------------- diff --git a/system/helpers/language_helper.php b/system/helpers/language_helper.php index 2cefcc277..dff6a6b24 100644 --- a/system/helpers/language_helper.php +++ b/system/helpers/language_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/language_helper.html + * @link https://codeigniter.com/userguide3/helpers/language_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/number_helper.php b/system/helpers/number_helper.php index 15a53ff72..55fa1e5a0 100644 --- a/system/helpers/number_helper.php +++ b/system/helpers/number_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/number_helper.html + * @link https://codeigniter.com/userguide3/helpers/number_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/path_helper.php b/system/helpers/path_helper.php index 543e4c078..47d10c2f5 100644 --- a/system/helpers/path_helper.php +++ b/system/helpers/path_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/path_helper.html + * @link https://codeigniter.com/userguide3/helpers/path_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/security_helper.php b/system/helpers/security_helper.php index dcf5b8b58..f6dbafec9 100644 --- a/system/helpers/security_helper.php +++ b/system/helpers/security_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/security_helper.html + * @link https://codeigniter.com/userguide3/helpers/security_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/string_helper.php b/system/helpers/string_helper.php index 7738bf97f..3a05525db 100644 --- a/system/helpers/string_helper.php +++ b/system/helpers/string_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/string_helper.html + * @link https://codeigniter.com/userguide3/helpers/string_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/text_helper.php b/system/helpers/text_helper.php index e1c5e246e..5d5a958e2 100644 --- a/system/helpers/text_helper.php +++ b/system/helpers/text_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/text_helper.html + * @link https://codeigniter.com/userguide3/helpers/text_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/typography_helper.php b/system/helpers/typography_helper.php index d308a57d5..47617ffb2 100644 --- a/system/helpers/typography_helper.php +++ b/system/helpers/typography_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/typography_helper.html + * @link https://codeigniter.com/userguide3/helpers/typography_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index 6a959f0e6..4c060a203 100644 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/url_helper.html + * @link https://codeigniter.com/userguide3/helpers/url_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/helpers/xml_helper.php b/system/helpers/xml_helper.php index 2639956fe..f83f3f544 100644 --- a/system/helpers/xml_helper.php +++ b/system/helpers/xml_helper.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Helpers * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/helpers/xml_helper.html + * @link https://codeigniter.com/userguide3/helpers/xml_helper.html */ // ------------------------------------------------------------------------ diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php index a6bdae50a..fcfcf62ca 100644 --- a/system/libraries/Calendar.php +++ b/system/libraries/Calendar.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/calendar.html + * @link https://codeigniter.com/userguide3/libraries/calendar.html */ class CI_Calendar { diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 1912e0442..01f513b26 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/email.html + * @link https://codeigniter.com/userguide3/libraries/email.html */ class CI_Email { diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php index 7ed185f1b..df1af4cf4 100644 --- a/system/libraries/Encrypt.php +++ b/system/libraries/Encrypt.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/encryption.html + * @link https://codeigniter.com/userguide3/libraries/encryption.html */ class CI_Encrypt { @@ -198,7 +198,7 @@ class CI_Encrypt { * This allows for backwards compatibility and a method to transition to the * new encryption algorithms. * - * For more details, see https://codeigniter.com/user_guide/installation/upgrade_200.html#encryption + * For more details, see https://codeigniter.com/userguide3/installation/upgrade_200.html#encryption * * @param string * @param int (mcrypt mode constant) diff --git a/system/libraries/Encryption.php b/system/libraries/Encryption.php index fd858cb29..b11588afd 100644 --- a/system/libraries/Encryption.php +++ b/system/libraries/Encryption.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/encryption.html + * @link https://codeigniter.com/userguide3/libraries/encryption.html */ class CI_Encryption { diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index de59ef9f7..32cdc6bd4 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Validation * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/form_validation.html + * @link https://codeigniter.com/userguide3/libraries/form_validation.html */ class CI_Form_validation { diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php index 4f0f5dfb3..61fa80c0f 100644 --- a/system/libraries/Ftp.php +++ b/system/libraries/Ftp.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/ftp.html + * @link https://codeigniter.com/userguide3/libraries/ftp.html */ class CI_FTP { diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 0ef76a101..6aeee1790 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Image_lib * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/image_lib.html + * @link https://codeigniter.com/userguide3/libraries/image_lib.html */ class CI_Image_lib { diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 11d63fe50..20418c00a 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Pagination * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/pagination.html + * @link https://codeigniter.com/userguide3/libraries/pagination.html */ class CI_Pagination { diff --git a/system/libraries/Parser.php b/system/libraries/Parser.php index d3c6500ae..04476f1a2 100644 --- a/system/libraries/Parser.php +++ b/system/libraries/Parser.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Parser * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/parser.html + * @link https://codeigniter.com/userguide3/libraries/parser.html */ class CI_Parser { diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index e3c4bd10a..5531f3366 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -50,7 +50,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Libraries * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/general/profiling.html + * @link https://codeigniter.com/userguide3/general/profiling.html */ class CI_Profiler { diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index dfd0f432e..ed04e95dc 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ class CI_Session { diff --git a/system/libraries/Session/Session_driver.php b/system/libraries/Session/Session_driver.php index dbc833739..734b6e052 100644 --- a/system/libraries/Session/Session_driver.php +++ b/system/libraries/Session/Session_driver.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ abstract class CI_Session_driver implements SessionHandlerInterface { diff --git a/system/libraries/Session/drivers/Session_database_driver.php b/system/libraries/Session/drivers/Session_database_driver.php index 89afe3455..a3055af5e 100644 --- a/system/libraries/Session/drivers/Session_database_driver.php +++ b/system/libraries/Session/drivers/Session_database_driver.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ class CI_Session_database_driver extends CI_Session_driver implements SessionHandlerInterface { diff --git a/system/libraries/Session/drivers/Session_files_driver.php b/system/libraries/Session/drivers/Session_files_driver.php index d9966273b..49bf5b781 100644 --- a/system/libraries/Session/drivers/Session_files_driver.php +++ b/system/libraries/Session/drivers/Session_files_driver.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ class CI_Session_files_driver extends CI_Session_driver implements SessionHandlerInterface { diff --git a/system/libraries/Session/drivers/Session_memcached_driver.php b/system/libraries/Session/drivers/Session_memcached_driver.php index 854adf821..b4d3eb464 100644 --- a/system/libraries/Session/drivers/Session_memcached_driver.php +++ b/system/libraries/Session/drivers/Session_memcached_driver.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ class CI_Session_memcached_driver extends CI_Session_driver implements SessionHandlerInterface { diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 1bbb13db5..1db02521e 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Sessions * @author Andrey Andreev - * @link https://codeigniter.com/user_guide/libraries/sessions.html + * @link https://codeigniter.com/userguide3/libraries/sessions.html */ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandlerInterface { diff --git a/system/libraries/Table.php b/system/libraries/Table.php index 055512698..98258b63d 100644 --- a/system/libraries/Table.php +++ b/system/libraries/Table.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category HTML Tables * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/table.html + * @link https://codeigniter.com/userguide3/libraries/table.html */ class CI_Table { diff --git a/system/libraries/Trackback.php b/system/libraries/Trackback.php index 07f066d01..75ccae8f8 100644 --- a/system/libraries/Trackback.php +++ b/system/libraries/Trackback.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Trackbacks * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/trackback.html + * @link https://codeigniter.com/userguide3/libraries/trackback.html */ class CI_Trackback { diff --git a/system/libraries/Typography.php b/system/libraries/Typography.php index e67138c1a..d919d484a 100644 --- a/system/libraries/Typography.php +++ b/system/libraries/Typography.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Helpers * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/typography.html + * @link https://codeigniter.com/userguide3/libraries/typography.html */ class CI_Typography { diff --git a/system/libraries/Unit_test.php b/system/libraries/Unit_test.php index 631d583ba..55e3bfcb2 100644 --- a/system/libraries/Unit_test.php +++ b/system/libraries/Unit_test.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category UnitTesting * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/unit_testing.html + * @link https://codeigniter.com/userguide3/libraries/unit_testing.html */ class CI_Unit_test { diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php index 95f765b78..8d13e440e 100644 --- a/system/libraries/Upload.php +++ b/system/libraries/Upload.php @@ -44,7 +44,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Uploads * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/file_uploading.html + * @link https://codeigniter.com/userguide3/libraries/file_uploading.html */ class CI_Upload { diff --git a/system/libraries/User_agent.php b/system/libraries/User_agent.php index a70511fc3..a42975b35 100644 --- a/system/libraries/User_agent.php +++ b/system/libraries/User_agent.php @@ -46,7 +46,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category User Agent * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/user_agent.html + * @link https://codeigniter.com/userguide3/libraries/user_agent.html */ class CI_User_agent { diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 4e8c303c7..fbb9a28a0 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -51,7 +51,7 @@ if ( ! function_exists('xml_parser_create')) * @subpackage Libraries * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class CI_Xmlrpc { @@ -559,7 +559,7 @@ class CI_Xmlrpc { * * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class XML_RPC_Client extends CI_Xmlrpc { @@ -780,7 +780,7 @@ class XML_RPC_Client extends CI_Xmlrpc * * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class XML_RPC_Response { @@ -1028,7 +1028,7 @@ class XML_RPC_Response * * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class XML_RPC_Message extends CI_Xmlrpc { @@ -1647,7 +1647,7 @@ class XML_RPC_Message extends CI_Xmlrpc * * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class XML_RPC_Values extends CI_Xmlrpc { diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php index e70b80397..ad767eabe 100644 --- a/system/libraries/Xmlrpcs.php +++ b/system/libraries/Xmlrpcs.php @@ -56,7 +56,7 @@ if ( ! class_exists('CI_Xmlrpc', FALSE)) * @subpackage Libraries * @category XML-RPC * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/xmlrpc.html + * @link https://codeigniter.com/userguide3/libraries/xmlrpc.html */ class CI_Xmlrpcs extends CI_Xmlrpc { diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php index 4579e8c2b..b54d695d6 100644 --- a/system/libraries/Zip.php +++ b/system/libraries/Zip.php @@ -50,7 +50,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @subpackage Libraries * @category Encryption * @author EllisLab Dev Team - * @link https://codeigniter.com/user_guide/libraries/zip.html + * @link https://codeigniter.com/userguide3/libraries/zip.html */ class CI_Zip { diff --git a/tests/codeigniter/libraries/Useragent_test.php b/tests/codeigniter/libraries/Useragent_test.php index c02f2bd9d..087544a1a 100644 --- a/tests/codeigniter/libraries/Useragent_test.php +++ b/tests/codeigniter/libraries/Useragent_test.php @@ -51,9 +51,9 @@ class UserAgent_test extends CI_TestCase { public function test_referrer() { - $_SERVER['HTTP_REFERER'] = 'http://codeigniter.com/user_guide/'; + $_SERVER['HTTP_REFERER'] = 'http://codeigniter.com/userguide3/'; $this->assertTrue($this->agent->is_referral()); - $this->assertEquals('http://codeigniter.com/user_guide/', $this->agent->referrer()); + $this->assertEquals('http://codeigniter.com/userguide3/', $this->agent->referrer()); $this->agent->referer = NULL; unset($_SERVER['HTTP_REFERER']); diff --git a/user_guide_src/source/installation/upgrade_150.rst b/user_guide_src/source/installation/upgrade_150.rst index 50eb5eae5..527e4548d 100644 --- a/user_guide_src/source/installation/upgrade_150.rst +++ b/user_guide_src/source/installation/upgrade_150.rst @@ -49,8 +49,8 @@ Open your application/config/config.php file and ADD these new items:: | This item allows you to set the filename/classname prefix when extending | native libraries. For more information please see the user guide: | - | https://codeigniter.com/user_guide/general/core_classes.html - | https://codeigniter.com/user_guide/general/creating_libraries.html + | https://codeigniter.com/userguide3/general/core_classes.html + | https://codeigniter.com/userguide3/general/creating_libraries.html | */ $config['subclass_prefix'] = 'MY_'; -- cgit v1.2.3-24-g4f1b From cfa22bb457a6d46ed6a45eef34f28847720d9c86 Mon Sep 17 00:00:00 2001 From: Ryan Valizan Date: Sat, 22 Aug 2020 10:56:17 -0500 Subject: :pencil: Add to main readme contribute guide link Issue #5761 asked for an imporovment to this document. This is very simple tweak. However I think it accomplishes the goal for everyone Without any bloating of the main readme. --- readme.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/readme.rst b/readme.rst index 17e3d630e..143d0a1e6 100644 --- a/readme.rst +++ b/readme.rst @@ -54,6 +54,7 @@ Resources ********* - `User Guide `_ +- `Contributing Guide `_ - `Language File Translations `_ - `Community Forums `_ - `Community Wiki `_ @@ -62,6 +63,12 @@ Resources Report security issues to our `Security Panel `_ or via our `page on HackerOne `_, thank you. +********* +Contributing +********* + +More information on how to contribute can be found in + *************** Acknowledgement *************** -- cgit v1.2.3-24-g4f1b From c2a88eb4b276aad3018c547de6f59a061327b3f6 Mon Sep 17 00:00:00 2001 From: Ryan Valizan Date: Sat, 22 Aug 2020 11:01:15 -0500 Subject: :pencil2: ops, forgot to remove first idea. --- readme.rst | 6 ------ 1 file changed, 6 deletions(-) diff --git a/readme.rst b/readme.rst index 143d0a1e6..fa6d242e8 100644 --- a/readme.rst +++ b/readme.rst @@ -63,12 +63,6 @@ Resources Report security issues to our `Security Panel `_ or via our `page on HackerOne `_, thank you. -********* -Contributing -********* - -More information on how to contribute can be found in - *************** Acknowledgement *************** -- cgit v1.2.3-24-g4f1b From 04fa59834e4f6906f383acf13f921104d397cf96 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 5 Jan 2021 14:28:01 +0200 Subject: [ci skip] Add TLS support for Session library Redis connection strings (related: issue #5982, PR #5983) --- system/libraries/Session/drivers/Session_redis_driver.php | 2 +- user_guide_src/source/changelog.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 1db02521e..df99cc74a 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -137,7 +137,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements SessionHandle { $save_path = array('path' => $matches[1]); } - elseif (preg_match('#(?:tcp://)?([^:?]+)(?:\:(\d+))?(?\?.+)?#', $this->_config['save_path'], $matches)) + elseif (preg_match('#(?:(?:tcp|tls)://)?([^:?]+)(?:\:(\d+))?(?\?.+)?#', $this->_config['save_path'], $matches)) { $save_path = array( 'host' => $matches[1], diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 774a6c3c8..16d224686 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -37,7 +37,7 @@ Release Date: Not Released - Removed previously deprecated *Cart Library*. - Removed previously deprecated *Javascript Library* (it was always experimental in the first place). - - Added UNIX socket connection support to :doc:`Session Library ` 'redis' driver. + - Added TLS and UNIX socket connection support to :doc:`Session Library ` 'redis' driver. - Updated :doc:`ZIP Library ` method ``read_dir()`` to include hidden (dot-prefixed) files. - :doc:`Cache Library ` changes include: -- cgit v1.2.3-24-g4f1b From 71765467734fbd37e6d9411f7889659c5ea47f88 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Tue, 5 Jan 2021 14:38:18 +0200 Subject: [ci skip] Close #5973 --- system/database/DB_query_builder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index 33f0cd15b..5480ed44f 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1191,7 +1191,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { /** * GROUP BY * - * @param string $by + * @param mixed $by * @param bool $escape * @return CI_DB_query_builder */ -- cgit v1.2.3-24-g4f1b From 6c2f011e2acc8eb595385621dc16991e42bc2f0b Mon Sep 17 00:00:00 2001 From: 1st WebDesigns Date: Fri, 15 Jan 2021 09:15:28 +0000 Subject: Fix Flashdata time comparison for PHP 8 --- system/libraries/Session/Session.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index ed04e95dc..79fc724a8 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -398,7 +398,7 @@ class CI_Session { } // Hacky, but 'old' will (implicitly) always be less than time() ;) // DO NOT move this above the 'new' check! - elseif ($value < $current_time) + elseif ($value === 'old' || $value < $current_time) { unset($_SESSION[$key], $_SESSION['__ci_vars'][$key]); } -- cgit v1.2.3-24-g4f1b From af8cbdeed7b43951301e906bf73cabd948a9299a Mon Sep 17 00:00:00 2001 From: sapics Date: Sat, 16 Jan 2021 16:10:19 +0900 Subject: Fix error in core/Output.php for php8.0 Fix error in array_shift array_map('array_shift', $this->headers) causes error as array_shift(): Argument bcit-ci#1 ($array) must be passed by reference, value given --- system/core/Output.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/system/core/Output.php b/system/core/Output.php index c56aff4b0..02c6d151b 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -300,9 +300,13 @@ class CI_Output { public function get_header($header) { // Combine headers already sent with our batched headers + $headers = array(); + foreach ($this->headers as $value) + { + $headers[] = $value[0]; + } $headers = array_merge( - // We only need [x][0] from our multi-dimensional array - array_map('array_shift', $this->headers), + $headers, headers_list() ); -- cgit v1.2.3-24-g4f1b From 624ddad97028087ee4d61ab90827b944a192f65e Mon Sep 17 00:00:00 2001 From: sapics Date: Sat, 16 Jan 2021 16:10:57 +0900 Subject: Fix error in pdo/pgsql for php8.0 From PHP8.0, default PDO::ATTR_ERRMODE is changed from PDO::ERRMODE_SILENT to PDO::ERRMODE_EXCEPTION. Reference: https://wiki.php.net/rfc/pdo_default_errmode --- system/database/DB_driver.php | 2 +- system/database/drivers/pdo/pdo_driver.php | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php index cba96d9a2..a213d5cba 100644 --- a/system/database/DB_driver.php +++ b/system/database/DB_driver.php @@ -825,7 +825,7 @@ abstract class CI_DB_driver { { return $this->_trans_status; } - + // -------------------------------------------------------------------- /** diff --git a/system/database/drivers/pdo/pdo_driver.php b/system/database/drivers/pdo/pdo_driver.php index d0a2bf959..b2178b684 100644 --- a/system/database/drivers/pdo/pdo_driver.php +++ b/system/database/drivers/pdo/pdo_driver.php @@ -131,6 +131,14 @@ class CI_DB_pdo_driver extends CI_DB { $this->options[PDO::ATTR_PERSISTENT] = TRUE; } + // From PHP8.0, default PDO::ATTR_ERRMODE is changed + // from PDO::ERRMODE_SILENT to PDO::ERRMODE_EXCEPTION + // as https://wiki.php.net/rfc/pdo_default_errmode + if ( ! isset($this->options[PDO::ATTR_ERRMODE])) + { + $this->options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_SILENT; + } + try { return new PDO($this->dsn, $this->username, $this->password, $this->options); -- cgit v1.2.3-24-g4f1b From 5ad670dea78cc0f0c0fd690220a243a905cb06bf Mon Sep 17 00:00:00 2001 From: sapics Date: Sat, 16 Jan 2021 16:13:37 +0900 Subject: Replace travis-ci to github actions for php8.0 --- .github/workflows/test-phpunit.yml | 106 +++++++++++++++++++++++++++++ .travis.yml | 109 ------------------------------ tests/mocks/database/config/mysql.php | 10 +-- tests/mocks/database/config/mysqli.php | 10 +-- tests/mocks/database/config/pdo/mysql.php | 14 ++-- tests/mocks/database/config/pdo/pgsql.php | 4 +- tests/mocks/database/config/pgsql.php | 4 +- 7 files changed, 127 insertions(+), 130 deletions(-) create mode 100644 .github/workflows/test-phpunit.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/test-phpunit.yml b/.github/workflows/test-phpunit.yml new file mode 100644 index 000000000..bba336ce7 --- /dev/null +++ b/.github/workflows/test-phpunit.yml @@ -0,0 +1,106 @@ +name: PHPUnit + +on: [push, pull_request] + +jobs: + tests: + runs-on: ubuntu-18.04 + if: "!contains(github.event.head_commit.message, '[ci skip]')" + env: + PHP_INI_VALUES: assert.exception=1, zend.assertions=1 + + strategy: + fail-fast: false + matrix: + php: [ '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6', '5.5', '5.4' ] + DB: [ 'pdo/mysql', 'pdo/pgsql', 'pdo/sqlite', 'mysqli', 'pgsql', 'sqlite' ] + compiler: [ default ] + include: + - php: '8.0' + DB: 'pdo/mysql' + compiler: jit + - php: '8.0' + DB: 'pdo/pgsql' + compiler: jit + - php: '8.0' + DB: 'pdo/sqlite' + compiler: jit + - php: '8.0' + DB: 'mysqli' + compiler: jit + - php: '8.0' + DB: 'pgsql' + compiler: jit + - php: '8.0' + DB: 'sqlite' + compiler: jit + - php: '5.6' + DB: 'mysql' + compiler: default + - php: '5.5' + DB: 'mysql' + compiler: default + - php: '5.4' + DB: 'mysql' + compiler: default + + services: + postgres: + image: postgres:12 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: ci_test + ports: + - 5432:5432 + options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3 + + mysql: + image: mysql:5.7 + env: + MYSQL_ALLOW_EMPTY_PASSWORD: true + MYSQL_USER: travis + MYSQL_PASSWORD: travis + MYSQL_DATABASE: ci_test + ports: + - 3306:3306 + options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Override PHP ini values for JIT compiler + if: matrix.compiler == 'jit' + run: echo "PHP_INI_VALUES::assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit=1255, opcache.jit_buffer_size=64M" >> $GITHUB_ENV + + - name: Install PHP${{ matrix.php }} - DB ${{ matrix.DB }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + tools: composer, pecl + extensions: imagick, sqlite3, pgsql, mysqli, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite + ini-values: ${{ env.PHP_INI_VALUES }} + coverage: xdebug + + - name: Setup composer for PHP8.0+ + run: if [ '${{ matrix.php }}' = '8.0' ] || [ '${{ matrix.php }}' = '8.1' ] ; then sed -i 's/phpunit\/phpunit/sminnee\/phpunit/g' composer.json; composer config -g platform.php 7.4.11; fi + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + - name: Cache composer dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install composer dependencies + run: composer install --no-progress --prefer-dist --optimize-autoloader + + - name: Fix error in vfsStream + run: sed -i s/name{0}/name[0]/ vendor/mikey179/vfsstream/src/main/php/org/bovigo/vfs/vfsStream.php + + - name: PHPUnit Test + run: | + php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/${{ matrix.DB }}.phpunit.xml + env: + XDEBUG_MODE: coverage diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5070c24c2..000000000 --- a/.travis.yml +++ /dev/null @@ -1,109 +0,0 @@ -language: php -os: linux -dist: xenial - -php: - - 5.6 - - 7.0 - - 7.1 - - 7.2 - - 7.3 - - 7.4 - - nightly - -env: - - DB=mysqli - - DB=pgsql - - DB=sqlite - - DB=pdo/mysql - - DB=pdo/pgsql - - DB=pdo/sqlite - -services: - - mysql - - postgresql - -cache: - directories: - - $HOME/.composer/cache - -before_script: - - sh -c "composer install --no-progress" - - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS ci_test;' -U postgres; fi" - - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'create database ci_test;' -U postgres; fi" - - sh -c "if [ '$DB' = 'mysql' ] || [ '$DB' = 'mysqli' ] || [ '$DB' = 'pdo/mysql' ]; then mysql -e 'create database IF NOT EXISTS ci_test;'; fi" - -script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/$DB.phpunit.xml - -jobs: - allow_failures: - - php: nightly - - php: hhvm-3.30 - include: - - php: 5.4 - dist: trusty - env: DB=mysql - - php: 5.4 - dist: trusty - env: DB=mysqli - - php: 5.4 - dist: trusty - env: DB=pgsql - - php: 5.4 - dist: trusty - env: DB=sqlite - - php: 5.4 - dist: trusty - env: DB=pdo/mysql - - php: 5.4 - dist: trusty - env: DB=pdo/pgsql - - php: 5.4 - dist: trusty - env: DB=pdo/sqlite - - php: 5.5 - dist: trusty - env: DB=mysql - - php: 5.5 - dist: trusty - env: DB=mysqli - - php: 5.5 - dist: trusty - env: DB=pgsql - - php: 5.5 - dist: trusty - env: DB=sqlite - - php: 5.5 - dist: trusty - env: DB=pdo/mysql - - php: 5.5 - dist: trusty - env: DB=pdo/pgsql - - php: 5.5 - dist: trusty - env: DB=pdo/sqlite - - php: 5.6 - dist: xenial - env: DB=mysql - - php: hhvm-3.30 - dist: trusty - env: DB=mysql - - php: hhvm-3.30 - dist: trusty - env: DB=mysqli - - php: hhvm-3.30 - dist: trusty - env: DB=sqlite - - php: hhvm-3.30 - dist: trusty - env: DB=pdo/mysql - - php: hhvm-3.30 - dist: trusty - env: DB=pdo/sqlite - -branches: - only: - - develop - - 3.0-stable - - 3.1-stable - - /^feature\/.+$/ diff --git a/tests/mocks/database/config/mysql.php b/tests/mocks/database/config/mysql.php index a590b9f53..ca30cb9ca 100644 --- a/tests/mocks/database/config/mysql.php +++ b/tests/mocks/database/config/mysql.php @@ -5,9 +5,9 @@ return array( // Typical Database configuration 'mysql' => array( 'dsn' => '', - 'hostname' => 'localhost', + 'hostname' => '127.0.0.1', 'username' => 'travis', - 'password' => '', + 'password' => 'travis', 'database' => 'ci_test', 'dbdriver' => 'mysql' ), @@ -15,7 +15,7 @@ return array( // Database configuration with failover 'mysql_failover' => array( 'dsn' => '', - 'hostname' => 'localhost', + 'hostname' => '127.0.0.1', 'username' => 'not_travis', 'password' => 'wrong password', 'database' => 'not_ci_test', @@ -23,9 +23,9 @@ return array( 'failover' => array( array( 'dsn' => '', - 'hostname' => 'localhost', + 'hostname' => '127.0.0.1', 'username' => 'travis', - 'password' => '', + 'password' => 'travis', 'database' => 'ci_test', 'dbdriver' => 'mysql', ) diff --git a/tests/mocks/database/config/mysqli.php b/tests/mocks/database/config/mysqli.php index 5dd08abb2..fd8fec962 100644 --- a/tests/mocks/database/config/mysqli.php +++ b/tests/mocks/database/config/mysqli.php @@ -5,9 +5,9 @@ return array( // Typical Database configuration 'mysqli' => array( 'dsn' => '', - 'hostname' => 'localhost', + 'hostname' => '127.0.0.1', 'username' => 'travis', - 'password' => '', + 'password' => 'travis', 'database' => 'ci_test', 'dbdriver' => 'mysqli' ), @@ -15,7 +15,7 @@ return array( // Database configuration with failover 'mysqli_failover' => array( 'dsn' => '', - 'hostname' => 'localhost', + 'hostname' => '127.0.0.1', 'username' => 'not_travis', 'password' => 'wrong password', 'database' => 'not_ci_test', @@ -23,9 +23,9 @@ return array( 'failover' => array( array( 'dsn' => '', - 'hostname' => 'localhost', + 'hostname' => '127.0.0.1', 'username' => 'travis', - 'password' => '', + 'password' => 'travis', 'database' => 'ci_test', 'dbdriver' => 'mysqli', ) diff --git a/tests/mocks/database/config/pdo/mysql.php b/tests/mocks/database/config/pdo/mysql.php index 96608f787..89e9fb130 100644 --- a/tests/mocks/database/config/pdo/mysql.php +++ b/tests/mocks/database/config/pdo/mysql.php @@ -4,10 +4,10 @@ return array( // Typical Database configuration 'pdo/mysql' => array( - 'dsn' => 'mysql:host=localhost;dbname=ci_test', - 'hostname' => 'localhost', + 'dsn' => 'mysql:host=127.0.0.1;dbname=ci_test', + 'hostname' => '127.0.0.1', 'username' => 'travis', - 'password' => '', + 'password' => 'travis', 'database' => 'ci_test', 'dbdriver' => 'pdo', 'subdriver' => 'mysql' @@ -16,7 +16,7 @@ return array( // Database configuration with failover 'pdo/mysql_failover' => array( 'dsn' => '', - 'hostname' => 'localhost', + 'hostname' => '127.0.0.1', 'username' => 'not_travis', 'password' => 'wrong password', 'database' => 'not_ci_test', @@ -24,10 +24,10 @@ return array( 'subdriver' => 'mysql', 'failover' => array( array( - 'dsn' => 'mysql:host=localhost;dbname=ci_test', - 'hostname' => 'localhost', + 'dsn' => 'mysql:host=127.0.0.1;dbname=ci_test', + 'hostname' => '127.0.0.1', 'username' => 'travis', - 'password' => '', + 'password' => 'travis', 'database' => 'ci_test', 'dbdriver' => 'pdo', 'subdriver' => 'mysql' diff --git a/tests/mocks/database/config/pdo/pgsql.php b/tests/mocks/database/config/pdo/pgsql.php index e55e3ea77..846c70be9 100644 --- a/tests/mocks/database/config/pdo/pgsql.php +++ b/tests/mocks/database/config/pdo/pgsql.php @@ -7,7 +7,7 @@ return array( 'dsn' => 'pgsql:host=localhost;port=5432;dbname=ci_test;', 'hostname' => 'localhost', 'username' => 'postgres', - 'password' => '', + 'password' => 'postgres', 'database' => 'ci_test', 'dbdriver' => 'pdo', 'subdriver' => 'pgsql' @@ -27,7 +27,7 @@ return array( 'dsn' => 'pgsql:host=localhost;port=5432;dbname=ci_test;', 'hostname' => 'localhost', 'username' => 'postgres', - 'password' => '', + 'password' => 'postgres', 'database' => 'ci_test', 'dbdriver' => 'pdo', 'subdriver' => 'pgsql' diff --git a/tests/mocks/database/config/pgsql.php b/tests/mocks/database/config/pgsql.php index 1444b0066..ce4583728 100644 --- a/tests/mocks/database/config/pgsql.php +++ b/tests/mocks/database/config/pgsql.php @@ -7,7 +7,7 @@ return array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'postgres', - 'password' => '', + 'password' => 'postgres', 'database' => 'ci_test', 'dbdriver' => 'postgre' ), @@ -25,7 +25,7 @@ return array( 'dsn' => '', 'hostname' => 'localhost', 'username' => 'postgres', - 'password' => '', + 'password' => 'postgres', 'database' => 'ci_test', 'dbdriver' => 'postgre', ) -- cgit v1.2.3-24-g4f1b From 3a6259b85f397c05f312f4124f90cfa534df576a Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 4 Feb 2021 16:29:36 +0200 Subject: [ci skip] Remove a comment made obsolete by PR #6013 --- system/libraries/Session/Session.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index 79fc724a8..e36487d25 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -396,8 +396,6 @@ class CI_Session { { $_SESSION['__ci_vars'][$key] = 'old'; } - // Hacky, but 'old' will (implicitly) always be less than time() ;) - // DO NOT move this above the 'new' check! elseif ($value === 'old' || $value < $current_time) { unset($_SESSION[$key], $_SESSION['__ci_vars'][$key]); -- cgit v1.2.3-24-g4f1b From 324628c27ca82e89d5e3a85034127835d29dd9fc Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 4 Feb 2021 19:49:53 +0200 Subject: [ci skip] Add 'img_class' option to CAPTCHA helper Close #5999 --- system/helpers/captcha_helper.php | 6 +++++- user_guide_src/source/changelog.rst | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index f178903b2..6fce05267 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -69,6 +69,7 @@ if ( ! function_exists('create_captcha')) 'img_width' => '150', 'img_height' => '30', 'img_alt' => 'captcha', + 'img_class' => '', 'font_path' => '', 'font_size' => 16, 'expiration' => 7200, @@ -372,7 +373,10 @@ if ( ! function_exists('create_captcha')) $img_src = 'data:image/png;base64,'.base64_encode($img_src); } - $img = ''.$img_alt.''; + $img_class = trim($img_class); + $img_class = (bool) strlen($img_class) ? 'class="'.$img_class.'" ' : ''; + + $img = ''; ImageDestroy($im); return array('word' => $word, 'time' => $now, 'image' => $img, 'filename' => $img_filename); diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index afc309436..4e1734694 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -127,6 +127,7 @@ Release Date: Not Released - :doc:`CAPTCHA Helper ` changes include: - Added 'img_alt' option with a default value of 'captcha'. + - Added 'img_class' option. - Added ability to generate ``data:image/png;base64`` URIs instead of writing image files to disk. - Updated to always create PNG images instead of JPEG. -- cgit v1.2.3-24-g4f1b From eb770fdc6d809bc7c28d499f897c0ab2c449f669 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 28 Feb 2021 20:10:00 +0200 Subject: Initial implementation of samesite for CI_Input::set_cookie --- application/config/config.php | 2 ++ system/core/Input.php | 25 ++++++++++++++++++++++--- user_guide_src/source/libraries/input.rst | 21 ++++++++++++--------- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index f92d11f5d..4ffd83352 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -385,6 +385,7 @@ $config['sess_regenerate_destroy'] = FALSE; | 'cookie_path' = Typically will be a forward slash | 'cookie_secure' = Cookie will only be set if a secure HTTPS connection exists. | 'cookie_httponly' = Cookie will only be accessible via HTTP(S) (no javascript) +| 'cookie_samesite' = Cookie's samesite attribute (Lax, Strict or None) | | Note: These settings (with the exception of 'cookie_prefix' and | 'cookie_httponly') will also affect sessions. @@ -395,6 +396,7 @@ $config['cookie_domain'] = ''; $config['cookie_path'] = '/'; $config['cookie_secure'] = FALSE; $config['cookie_httponly'] = FALSE; +$config['cookie_samesite'] = 'lax'; /* |-------------------------------------------------------------------------- diff --git a/system/core/Input.php b/system/core/Input.php index 30d528b89..a7f4edee9 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -300,14 +300,15 @@ class CI_Input { * @param string $prefix Cookie name prefix * @param bool $secure Whether to only transfer cookies via SSL * @param bool $httponly Whether to only makes the cookie accessible via HTTP (no javascript) + * @param string $samesite SameSite attribute. NULL will avoid sending the attribute * @return void */ - public function set_cookie($name, $value = '', $expire = 0, $domain = '', $path = '/', $prefix = '', $secure = NULL, $httponly = NULL) + public function set_cookie($name, $value = '', $expire = 0, $domain = '', $path = '/', $prefix = '', $secure = NULL, $httponly = NULL, $samesite = NULL) { if (is_array($name)) { // always leave 'name' in last place, as the loop will break otherwise, due to $$item - foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'secure', 'httponly', 'name') as $item) + foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'secure', 'httponly', 'name', 'samesite') as $item) { if (isset($name[$item])) { @@ -348,7 +349,25 @@ class CI_Input { $expire = ($expire > 0) ? time() + $expire : 0; } - setcookie($prefix.$name, $value, $expire, $path, $domain, $secure, $httponly); + if ($samesite === NULL && config_item('cookie_samesite') !== NULL) + { + $samesite = strtolower(config_item('cookie_samesite')); + } + elseif ($samesite !== NULL) + { + $samesite = strtolower($samesite); + } + + if ( ! in_array($samesite, array('lax', 'strict', 'none', NULL), TRUE)) + { + $samesite = NULL; + } + + $cookie_header = 'Set-Cookie: '.$prefix.$name.'='.rawurlencode($value); + $cookie_header .= ($expire === 0 ? '' : '; expires='.gmdate('D, d-M-Y H:i:s T', 0)); + $cookie_header .= '; path='.$path.($domain !== '' ? '; domain='.$domain : ''); + $cookie_header .= ($secure ? '; secure' : '').($httponly ? '; HttpOnly' : '').($samesite !== NULL ? '; SameSite='.$samesite : ''); + header($cookie_header); } // -------------------------------------------------------------------- diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index 730b3a9b0..79c128afa 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -242,7 +242,7 @@ Class Reference This method is identical to ``get()``, ``post()`` and ``cookie()``, only it fetches the *php://input* stream data. - .. php:method:: set_cookie($name = ''[, $value = ''[, $expire = 0[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = NULL[, $httponly = NULL]]]]]]]) + .. php:method:: set_cookie($name = ''[, $value = ''[, $expire = 0[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = NULL[, $httponly = NULL[, $samesite = NULL]]]]]]]]) :param mixed $name: Cookie name or an array of parameters :param string $value: Cookie value @@ -252,6 +252,7 @@ Class Reference :param string $prefix: Cookie name prefix :param bool $secure: Whether to only transfer the cookie through HTTPS :param bool $httponly: Whether to only make the cookie accessible for HTTP requests (no JavaScript) + :param string $samesite: Cookie's SameSite attribute ('lax', 'strict', 'none' or NULL) :rtype: void @@ -265,13 +266,14 @@ Class Reference parameter:: $cookie = array( - 'name' => 'The Cookie Name', - 'value' => 'The Value', - 'expire' => 86500, - 'domain' => '.some-domain.com', - 'path' => '/', - 'prefix' => 'myprefix_', - 'secure' => TRUE + 'name' => 'The Cookie Name', + 'value' => 'The Value', + 'expire' => 86500, + 'domain' => '.some-domain.com', + 'path' => '/', + 'prefix' => 'myprefix_', + 'secure' => TRUE, + 'samesite' => 'strict' ); $this->input->set_cookie($cookie); @@ -297,13 +299,14 @@ Class Reference The *httponly* and *secure* flags, when omitted, will default to your ``$config['cookie_httponly']`` and ``$config['cookie_secure']`` settings. + The *samesite* parameter can be ``'lax'``, ``'strict'``, ``'none'`` or ``NULL``. When ``NULL``, the same-site cookie attribute is not set at all. **Discrete Parameters** If you prefer, you can set the cookie by passing data using individual parameters:: - $this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure); + $this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure, $samesite); .. php:method:: ip_address() -- cgit v1.2.3-24-g4f1b From cd192363f777731e8f382fe7288a44183a448213 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 1 Mar 2021 19:45:24 +0200 Subject: Fixes "expires" cookie attribute bug --- system/core/Input.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Input.php b/system/core/Input.php index a7f4edee9..d397850b7 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -364,7 +364,7 @@ class CI_Input { } $cookie_header = 'Set-Cookie: '.$prefix.$name.'='.rawurlencode($value); - $cookie_header .= ($expire === 0 ? '' : '; expires='.gmdate('D, d-M-Y H:i:s T', 0)); + $cookie_header .= ($expire === 0 ? '' : '; expires='.gmdate('D, d-M-Y H:i:s T', $expire)); $cookie_header .= '; path='.$path.($domain !== '' ? '; domain='.$domain : ''); $cookie_header .= ($secure ? '; secure' : '').($httponly ? '; HttpOnly' : '').($samesite !== NULL ? '; SameSite='.$samesite : ''); header($cookie_header); -- cgit v1.2.3-24-g4f1b From b3ffbd7b7514aa8f888a19d7bfdfa4929e33f4ea Mon Sep 17 00:00:00 2001 From: vibbow Date: Thu, 11 Mar 2021 01:14:41 +0800 Subject: Update Session.php Fix PHPDoc --- system/libraries/Session/Session.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index e36487d25..157a1d572 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -704,7 +704,7 @@ class CI_Session { * * Legacy CI_Session compatibility method * - * @returns array + * @return array */ public function &get_userdata() { -- cgit v1.2.3-24-g4f1b From 2abda9049a8d006673204f56f4680526232b2360 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 14 Mar 2021 01:56:30 +0200 Subject: Dropping the possibility that samesite cookie attribute won't be sent; defaults to Lax; all samesite values are ucfirst'ed; log for SameSite=None non-secure cookies --- application/config/config.php | 2 +- system/core/Input.php | 18 ++++++++++-------- user_guide_src/source/libraries/input.rst | 4 ++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index 4ffd83352..596f8fefe 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -396,7 +396,7 @@ $config['cookie_domain'] = ''; $config['cookie_path'] = '/'; $config['cookie_secure'] = FALSE; $config['cookie_httponly'] = FALSE; -$config['cookie_samesite'] = 'lax'; +$config['cookie_samesite'] = 'Lax'; /* |-------------------------------------------------------------------------- diff --git a/system/core/Input.php b/system/core/Input.php index d397850b7..9bde8a4f6 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -300,7 +300,7 @@ class CI_Input { * @param string $prefix Cookie name prefix * @param bool $secure Whether to only transfer cookies via SSL * @param bool $httponly Whether to only makes the cookie accessible via HTTP (no javascript) - * @param string $samesite SameSite attribute. NULL will avoid sending the attribute + * @param string $samesite SameSite attribute * @return void */ public function set_cookie($name, $value = '', $expire = 0, $domain = '', $path = '/', $prefix = '', $secure = NULL, $httponly = NULL, $samesite = NULL) @@ -349,24 +349,26 @@ class CI_Input { $expire = ($expire > 0) ? time() + $expire : 0; } - if ($samesite === NULL && config_item('cookie_samesite') !== NULL) + isset($samesite) OR $samesite = config_item('cookie_samesite'); + if (isset($samesite)) { - $samesite = strtolower(config_item('cookie_samesite')); + $samesite = ucfirst(strtolower($samesite)); + in_array($samesite, array('Lax', 'Strict', 'None'), TRUE) OR $samesite = 'Lax'; } - elseif ($samesite !== NULL) + else { - $samesite = strtolower($samesite); + $samesite = 'Lax'; } - if ( ! in_array($samesite, array('lax', 'strict', 'none', NULL), TRUE)) + if ($samesite === 'None' && !$secure) { - $samesite = NULL; + log_message('error', $name.' is a non-secure cookie sent with SameSite=None. It can be discarded by the browser.'); } $cookie_header = 'Set-Cookie: '.$prefix.$name.'='.rawurlencode($value); $cookie_header .= ($expire === 0 ? '' : '; expires='.gmdate('D, d-M-Y H:i:s T', $expire)); $cookie_header .= '; path='.$path.($domain !== '' ? '; domain='.$domain : ''); - $cookie_header .= ($secure ? '; secure' : '').($httponly ? '; HttpOnly' : '').($samesite !== NULL ? '; SameSite='.$samesite : ''); + $cookie_header .= ($secure ? '; secure' : '').($httponly ? '; HttpOnly' : '').'; SameSite='.$samesite; header($cookie_header); } diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index 79c128afa..a9255fa87 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -252,7 +252,7 @@ Class Reference :param string $prefix: Cookie name prefix :param bool $secure: Whether to only transfer the cookie through HTTPS :param bool $httponly: Whether to only make the cookie accessible for HTTP requests (no JavaScript) - :param string $samesite: Cookie's SameSite attribute ('lax', 'strict', 'none' or NULL) + :param string $samesite: Cookie's SameSite attribute ('Lax', 'Strict', 'None') :rtype: void @@ -299,7 +299,7 @@ Class Reference The *httponly* and *secure* flags, when omitted, will default to your ``$config['cookie_httponly']`` and ``$config['cookie_secure']`` settings. - The *samesite* parameter can be ``'lax'``, ``'strict'``, ``'none'`` or ``NULL``. When ``NULL``, the same-site cookie attribute is not set at all. + The *samesite* parameter can be ``'Lax'``, ``'Strict'`` or ``'None'``. If not set, the same-site cookie attribute will default to ``'Lax'``. **Discrete Parameters** -- cgit v1.2.3-24-g4f1b From 78084aeac459aa1772db7094480008143fb82e7a Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Fri, 2 Apr 2021 00:55:55 +0300 Subject: Space after ! op --- system/core/Input.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Input.php b/system/core/Input.php index 9bde8a4f6..a2cc23936 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -360,7 +360,7 @@ class CI_Input { $samesite = 'Lax'; } - if ($samesite === 'None' && !$secure) + if ($samesite === 'None' && ! $secure) { log_message('error', $name.' is a non-secure cookie sent with SameSite=None. It can be discarded by the browser.'); } -- cgit v1.2.3-24-g4f1b From 4f6d9ba5b6b690f3b7b30c20926463d41117017a Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Fri, 2 Apr 2021 00:56:51 +0300 Subject: Rewording log_message() message --- system/core/Input.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Input.php b/system/core/Input.php index a2cc23936..fbe9c59b0 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -362,7 +362,7 @@ class CI_Input { if ($samesite === 'None' && ! $secure) { - log_message('error', $name.' is a non-secure cookie sent with SameSite=None. It can be discarded by the browser.'); + log_message('error', $name.' cookie sent with SameSite=None, but without Secure attribute.'); } $cookie_header = 'Set-Cookie: '.$prefix.$name.'='.rawurlencode($value); -- cgit v1.2.3-24-g4f1b From 0cf5aa1a17bf0fd91797a943b8e696a454f5d326 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Fri, 2 Apr 2021 02:41:29 +0300 Subject: Switching to setcookie for PHP >= 7.3 --- system/core/Input.php | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/system/core/Input.php b/system/core/Input.php index fbe9c59b0..451737167 100644 --- a/system/core/Input.php +++ b/system/core/Input.php @@ -365,11 +365,26 @@ class CI_Input { log_message('error', $name.' cookie sent with SameSite=None, but without Secure attribute.'); } - $cookie_header = 'Set-Cookie: '.$prefix.$name.'='.rawurlencode($value); - $cookie_header .= ($expire === 0 ? '' : '; expires='.gmdate('D, d-M-Y H:i:s T', $expire)); - $cookie_header .= '; path='.$path.($domain !== '' ? '; domain='.$domain : ''); - $cookie_header .= ($secure ? '; secure' : '').($httponly ? '; HttpOnly' : '').'; SameSite='.$samesite; - header($cookie_header); + if (is_php('7.3')) + { + $setcookie_options = array( + 'expires' => $expire, + 'path' => $path, + 'domain' => $domain, + 'secure' => $secure, + 'httponly' => $httponly, + 'samesite' => $samesite, + ); + setcookie($prefix.$name, $value, $setcookie_options); + } + else + { + $cookie_header = 'Set-Cookie: '.$prefix.$name.'='.rawurlencode($value); + $cookie_header .= ($expire === 0 ? '' : '; expires='.gmdate('D, d-M-Y H:i:s T', $expire)); + $cookie_header .= '; path='.$path.($domain !== '' ? '; domain='.$domain : ''); + $cookie_header .= ($secure ? '; secure' : '').($httponly ? '; HttpOnly' : '').'; SameSite='.$samesite; + header($cookie_header); + } } // -------------------------------------------------------------------- -- cgit v1.2.3-24-g4f1b From 1415d4ec99c7dbaec2c34742536e00eb9cb7493f Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Fri, 2 Apr 2021 02:57:40 +0300 Subject: Improves input.rst (set cookie) --- user_guide_src/source/libraries/input.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/user_guide_src/source/libraries/input.rst b/user_guide_src/source/libraries/input.rst index a9255fa87..e0f3d8417 100644 --- a/user_guide_src/source/libraries/input.rst +++ b/user_guide_src/source/libraries/input.rst @@ -252,7 +252,7 @@ Class Reference :param string $prefix: Cookie name prefix :param bool $secure: Whether to only transfer the cookie through HTTPS :param bool $httponly: Whether to only make the cookie accessible for HTTP requests (no JavaScript) - :param string $samesite: Cookie's SameSite attribute ('Lax', 'Strict', 'None') + :param string $samesite: SameSite attribute ('Lax', 'Strict', 'None') :rtype: void @@ -266,14 +266,14 @@ Class Reference parameter:: $cookie = array( - 'name' => 'The Cookie Name', - 'value' => 'The Value', - 'expire' => 86500, - 'domain' => '.some-domain.com', - 'path' => '/', - 'prefix' => 'myprefix_', - 'secure' => TRUE, - 'samesite' => 'strict' + 'name' => 'The Cookie Name', + 'value' => 'The Value', + 'expire' => 86500, + 'domain' => '.some-domain.com', + 'path' => '/', + 'prefix' => 'myprefix_', + 'secure' => TRUE, + 'samesite' => 'Strict' ); $this->input->set_cookie($cookie); -- cgit v1.2.3-24-g4f1b From e24aee746aa9279378b78abaa6bf4a6ae87f5e1b Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 31 May 2021 13:15:00 +0300 Subject: don't mark no-assertions tests as failed --- tests/phpunit.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/phpunit.xml b/tests/phpunit.xml index 875198c4e..a1626ce91 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> ./codeigniter/core -- cgit v1.2.3-24-g4f1b From 460135db1101957a3233b7d78fb2bb78e3508f75 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 31 May 2021 13:16:33 +0300 Subject: Travis: PHP 7.4 seems to fail if XDEBUG_MODE=coverage is not set --- .travis.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5070c24c2..031aba6c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,13 +11,15 @@ php: - 7.4 - nightly -env: - - DB=mysqli - - DB=pgsql - - DB=sqlite - - DB=pdo/mysql - - DB=pdo/pgsql - - DB=pdo/sqlite + global: + - XDEBUG_MODE=coverage + jobs: + - DB=mysqli + - DB=pgsql + - DB=sqlite + - DB=pdo/mysql + - DB=pdo/pgsql + - DB=pdo/sqlite services: - mysql -- cgit v1.2.3-24-g4f1b From 5fe5a94930d58f2d6dcdda2a3b0d97978b3c3c8d Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 31 May 2021 13:17:51 +0300 Subject: Travis: ignore mbstring.func_overload=7 for PHP >= 7.3 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 031aba6c7..8657358ed 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ before_script: - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'create database ci_test;' -U postgres; fi" - sh -c "if [ '$DB' = 'mysql' ] || [ '$DB' = 'mysqli' ] || [ '$DB' = 'pdo/mysql' ]; then mysql -e 'create database IF NOT EXISTS ci_test;'; fi" -script: php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/$DB.phpunit.xml +script: test $(php -r 'echo PHP_VERSION_ID;') -lt 70300 && php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/$DB.phpunit.xml || php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/$DB.phpunit.xml jobs: allow_failures: -- cgit v1.2.3-24-g4f1b From 56de63c5bdfd7962d2e64d6d9b0a5b7914d4ec6c Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 31 May 2021 13:23:32 +0300 Subject: Upgrade to latest mikey179/vfsstream --- composer.json | 2 +- tests/codeigniter/helpers/file_helper_test.php | 5 +---- tests/codeigniter/helpers/text_helper_test.php | 7 +------ tests/mocks/ci_testcase.php | 2 +- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index 39c7e77c4..aac516c8a 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ "paragonie/random_compat": "Provides better randomness in PHP 5.x" }, "require-dev": { - "mikey179/vfsstream": "1.1.*", + "mikey179/vfsstream": "1.6.*", "phpunit/phpunit": "4.* || 5.*" } } diff --git a/tests/codeigniter/helpers/file_helper_test.php b/tests/codeigniter/helpers/file_helper_test.php index dd74ee46b..8d7f8e1eb 100644 --- a/tests/codeigniter/helpers/file_helper_test.php +++ b/tests/codeigniter/helpers/file_helper_test.php @@ -6,10 +6,7 @@ class File_helper_Test extends CI_TestCase { { $this->helper('file'); - vfsStreamWrapper::register(); - vfsStreamWrapper::setRoot(new vfsStreamDirectory('testDir')); - - $this->_test_dir = vfsStreamWrapper::getRoot(); + $this->_test_dir = vfsStream::setup(''); } // -------------------------------------------------------------------- diff --git a/tests/codeigniter/helpers/text_helper_test.php b/tests/codeigniter/helpers/text_helper_test.php index e51d96a29..36465f203 100644 --- a/tests/codeigniter/helpers/text_helper_test.php +++ b/tests/codeigniter/helpers/text_helper_test.php @@ -64,12 +64,7 @@ class Text_helper_test extends CI_TestCase { public function test_convert_accented_characters() { - $path = 'application/config/foreign_chars.php'; - $this->ci_vfs_clone($path); - if (is_php('7.4')) - { - copy(PROJECT_BASE.$path, APPPATH.'../'.$path); - } + $this->ci_vfs_clone('application/config/foreign_chars.php'); $this->assertEquals('AAAeEEEIIOOEUUUeY', convert_accented_characters('ÀÂÄÈÊËÎÏÔŒÙÛÜŸ')); $this->assertEquals('a e i o u n ue', convert_accented_characters('á é í ó ú ñ ü')); } diff --git a/tests/mocks/ci_testcase.php b/tests/mocks/ci_testcase.php index 8dc4682ef..fbd56af03 100644 --- a/tests/mocks/ci_testcase.php +++ b/tests/mocks/ci_testcase.php @@ -35,7 +35,7 @@ class CI_TestCase extends PHPUnit_Framework_TestCase { public function setUp() { // Setup VFS with base directories - $this->ci_vfs_root = vfsStream::setup(); + $this->ci_vfs_root = vfsStream::setup(''); $this->ci_app_root = vfsStream::newDirectory('application')->at($this->ci_vfs_root); $this->ci_base_root = vfsStream::newDirectory('system')->at($this->ci_vfs_root); $this->ci_view_root = vfsStream::newDirectory('views')->at($this->ci_app_root); -- cgit v1.2.3-24-g4f1b From 81c793551d2bd6c2919a9a46462d464965c8207f Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 31 May 2021 13:28:25 +0300 Subject: Adding PHPUnit 8 --- composer.json | 2 +- tests/Bootstrap.php | 7 +++++++ tests/codeigniter/Setup_test.php | 2 +- tests/mocks/ci_testcase.php | 16 +++++++++++++++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index aac516c8a..a20d0f336 100644 --- a/composer.json +++ b/composer.json @@ -18,6 +18,6 @@ }, "require-dev": { "mikey179/vfsstream": "1.6.*", - "phpunit/phpunit": "4.* || 5.*" + "phpunit/phpunit": "4.* || 5.* || 8.*" } } diff --git a/tests/Bootstrap.php b/tests/Bootstrap.php index b4e56bdae..ada6a5998 100644 --- a/tests/Bootstrap.php +++ b/tests/Bootstrap.php @@ -65,6 +65,13 @@ else is_php('5.6') && ini_set('php.internal_encoding', 'UTF-8'); +if (is_php('7.0')) +{ + $test_case_code = file_get_contents(PROJECT_BASE.'vendor/phpunit/phpunit/src/Framework/TestCase.php'); + $test_case_code = preg_replace('/^\s+((?:protected|public)(?: static)? function \w+\(\)): void/m', '$1', $test_case_code); + file_put_contents(PROJECT_BASE.'vendor/phpunit/phpunit/src/Framework/TestCase.php', $test_case_code); +} + include_once SYSTEM_PATH.'core/compat/mbstring.php'; include_once SYSTEM_PATH.'core/compat/hash.php'; include_once SYSTEM_PATH.'core/compat/password.php'; diff --git a/tests/codeigniter/Setup_test.php b/tests/codeigniter/Setup_test.php index 5317c56c7..43545822a 100644 --- a/tests/codeigniter/Setup_test.php +++ b/tests/codeigniter/Setup_test.php @@ -1,6 +1,6 @@ expectException($exception_class); + $exception_message !== '' && $this->expectExceptionMessage($exception_message); + } + else + { + parent::setExpectedException($exception_class, $exception_message, $exception_code); + } + } } -- cgit v1.2.3-24-g4f1b From d1d3e69e90ecdfa9ebe1a766198438815b30eee6 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 31 May 2021 13:32:13 +0300 Subject: other test fixes --- tests/codeigniter/core/Input_test.php | 14 +++++++++++--- tests/codeigniter/database/query_builder/select_test.php | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/codeigniter/core/Input_test.php b/tests/codeigniter/core/Input_test.php index 07a99e136..93d1b7118 100644 --- a/tests/codeigniter/core/Input_test.php +++ b/tests/codeigniter/core/Input_test.php @@ -18,6 +18,14 @@ class Input_test extends CI_TestCase { // -------------------------------------------------------------------- + public function tear_down() + { + $_POST = []; + $_GET = []; + } + + // -------------------------------------------------------------------- + public function test_get_not_exists() { $this->assertSame(array(), $this->input->get()); @@ -93,7 +101,7 @@ class Input_test extends CI_TestCase { public function test_post_get_array_notation() { $_SERVER['REQUEST_METHOD'] = 'POST'; - $_POST['foo']['bar'] = 'baz'; + $_POST['foo'] = array('bar' => 'baz'); $barArray = array('bar' => 'baz'); $this->assertEquals('baz', $this->input->get_post('foo[bar]')); @@ -120,7 +128,7 @@ class Input_test extends CI_TestCase { public function test_get_post_array_notation() { $_SERVER['REQUEST_METHOD'] = 'GET'; - $_GET['foo']['bar'] = 'baz'; + $_GET['foo'] = array('bar' => 'baz'); $barArray = array('bar' => 'baz'); $this->assertEquals('baz', $this->input->get_post('foo[bar]')); @@ -169,7 +177,7 @@ class Input_test extends CI_TestCase { $this->assertEquals("Hello, i try to [removed]alert('Hack');[removed] your site", $harmless); $_SERVER['REQUEST_METHOD'] = 'POST'; - $_POST['foo']['bar'] = 'baz'; + $_POST['foo'] = array('bar' => 'baz'); $barArray = array('bar' => 'baz'); $this->assertEquals('baz', $this->input->post('foo[bar]')); diff --git a/tests/codeigniter/database/query_builder/select_test.php b/tests/codeigniter/database/query_builder/select_test.php index 93b5c3d46..facda791f 100644 --- a/tests/codeigniter/database/query_builder/select_test.php +++ b/tests/codeigniter/database/query_builder/select_test.php @@ -74,7 +74,7 @@ class Select_test extends CI_TestCase { ->row(); // Average should be 2.5 - $this->assertEquals('2.5', $job_avg->id); + $this->assertEquals(2.5, (float) $job_avg->id); } // ------------------------------------------------------------------------ -- cgit v1.2.3-24-g4f1b From c7e171e0d83d7092d459c2754a1ee3aba33e43ef Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 31 May 2021 13:49:15 +0300 Subject: Fixes travis yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 8657358ed..bf86bace1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ php: - 7.4 - nightly +env: global: - XDEBUG_MODE=coverage jobs: -- cgit v1.2.3-24-g4f1b From d8b824b3249a6e442c580cdc231760eb86a2dcee Mon Sep 17 00:00:00 2001 From: Garett PHG Date: Fri, 30 Jul 2021 11:44:21 +0700 Subject: Updates .gitattributes, added export-ignore. Excludes `user_guide_src` via `--prefer-dist` composer installation. Refer to this https://github.com/bcit-ci/CodeIgniter/issues/5843#issuecomment-889615837 based on this https://github.com/bcit-ci/CodeIgniter/pull/3831 > This basically just removes a number of development-only files (like the user guide source and our tests) from any installs made through composer with the --prefer-dist flag set. > > Helps create a faster install with less unnecessary files to new projects. --- .gitattributes | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitattributes b/.gitattributes index a4296d591..b4f0b6cbb 100644 --- a/.gitattributes +++ b/.gitattributes @@ -18,8 +18,6 @@ readme.rst tests/codeigniter/ export-ignore tests/travis/ export-ignore -# User Guide Source Files -user_guide_src - -# User Guide Compiled Files +# User Guide source files and compiled files +user_guide_src export-ignore user_guide export-ignore -- cgit v1.2.3-24-g4f1b From 5afd6af3f3293a27db5377b3f97ca88df07174b1 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 26 Sep 2021 23:56:39 +0300 Subject: Adds PHP 8 in Travis --- .travis.yml | 1 + system/core/Output.php | 9 ++++-- tests/codeigniter/core/Loader_test.php | 39 +++++++++++++++--------- tests/codeigniter/core/Log_test.php | 2 +- tests/codeigniter/core/compat/mbstring_test.php | 4 +-- tests/codeigniter/helpers/array_helper_test.php | 4 +-- tests/codeigniter/helpers/string_helper_test.php | 2 +- tests/codeigniter/libraries/Driver_test.php | 16 +++++----- tests/codeigniter/libraries/Encryption_test.php | 4 +-- tests/codeigniter/libraries/Table_test.php | 12 ++++---- tests/travis/mysql.phpunit.xml | 3 +- tests/travis/mysqli.phpunit.xml | 3 +- tests/travis/pdo/mysql.phpunit.xml | 3 +- tests/travis/pdo/pgsql.phpunit.xml | 3 +- tests/travis/pdo/sqlite.phpunit.xml | 3 +- tests/travis/pgsql.phpunit.xml | 3 +- tests/travis/sqlite.phpunit.xml | 3 +- 17 files changed, 70 insertions(+), 44 deletions(-) diff --git a/.travis.yml b/.travis.yml index bf86bace1..d3a09573d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ php: - 7.2 - 7.3 - 7.4 + - 8.0 - nightly env: diff --git a/system/core/Output.php b/system/core/Output.php index c56aff4b0..a2397763d 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -299,10 +299,15 @@ class CI_Output { */ public function get_header($header) { + // We only need [x][0] from our multi-dimensional array + $header_lines = array_map(function ($headers) + { + return array_shift($headers); + }, $this->headers); + // Combine headers already sent with our batched headers $headers = array_merge( - // We only need [x][0] from our multi-dimensional array - array_map('array_shift', $this->headers), + $header_lines, headers_list() ); diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index df698f30c..4fa6d6869 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -36,7 +36,8 @@ class Loader_test extends CI_TestCase { // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->library(array($lib))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertAttributeInstanceOf($class, $lib, $this->ci_obj); + $this->assertObjectHasAttribute($lib, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$lib); // Create library in VFS $lib = array('unit_test_lib' => 'unit_test_lib'); @@ -87,14 +88,16 @@ class Loader_test extends CI_TestCase { $this->assertInstanceOf('CI_Loader', $this->load->library($lib)); $this->assertTrue(class_exists($class), $class.' does not exist'); $this->assertTrue(class_exists($ext), $ext.' does not exist'); - $this->assertAttributeInstanceOf($class, $name, $this->ci_obj); - $this->assertAttributeInstanceOf($ext, $name, $this->ci_obj); + $this->assertObjectHasAttribute($name, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$name); + $this->assertInstanceOf($ext, $this->ci_obj->$name); // Test reloading with object name $obj = 'exttest'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); - $this->assertAttributeInstanceOf($class, $obj, $this->ci_obj); - $this->assertAttributeInstanceOf($ext, $obj, $this->ci_obj); + $this->assertObjectHasAttribute($obj, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$obj); + $this->assertInstanceOf($ext, $this->ci_obj->$obj); // Test reloading unset($this->ci_obj->$name); @@ -137,7 +140,8 @@ class Loader_test extends CI_TestCase { $obj = 'testy'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertAttributeInstanceOf($class, $obj, $this->ci_obj); + $this->assertObjectHasAttribute($obj, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$obj); $this->assertEquals($cfg, $this->ci_obj->$obj->config); // Test is_loaded @@ -168,7 +172,8 @@ class Loader_test extends CI_TestCase { // Was the model class instantiated. $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertAttributeInstanceOf($class, $lib, $this->ci_obj); + $this->assertObjectHasAttribute($lib, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$lib); } // -------------------------------------------------------------------- @@ -188,12 +193,14 @@ class Loader_test extends CI_TestCase { // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->driver(array($driver))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertAttributeInstanceOf($class, $driver, $this->ci_obj); + $this->assertObjectHasAttribute($driver, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$driver); // Test loading as a library with a name $obj = 'testdrive'; $this->assertInstanceOf('CI_Loader', $this->load->library($driver, NULL, $obj)); - $this->assertAttributeInstanceOf($class, $obj, $this->ci_obj); + $this->assertObjectHasAttribute($obj, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$obj); // Test a string given to params $this->assertInstanceOf('CI_Loader', $this->load->driver($driver, ' ')); @@ -242,8 +249,9 @@ class Loader_test extends CI_TestCase { // Was the model class instantiated? $this->assertTrue(class_exists($model)); $this->assertObjectHasAttribute($name, $this->ci_obj); - $this->assertAttributeInstanceOf($base, $name, $this->ci_obj); - $this->assertAttributeInstanceOf($model, $name, $this->ci_obj); + $this->assertObjectHasAttribute($name, $this->ci_obj); + $this->assertInstanceOf($base, $this->ci_obj->$name); + $this->assertInstanceOf($model, $this->ci_obj->$name); // Test name conflict $obj = 'conflict'; @@ -586,15 +594,18 @@ class Loader_test extends CI_TestCase { // Verify library $this->assertTrue(class_exists($lib_class), $lib_class.' does not exist'); - $this->assertAttributeInstanceOf($lib_class, $lib, $this->ci_obj); + $this->assertObjectHasAttribute($lib, $this->ci_obj); + $this->assertInstanceOf($lib_class, $this->ci_obj->$lib); // Verify driver $this->assertTrue(class_exists($drv_class), $drv_class.' does not exist'); - $this->assertAttributeInstanceOf($drv_class, $drv, $this->ci_obj); + $this->assertObjectHasAttribute($drv, $this->ci_obj); + $this->assertInstanceOf($drv_class, $this->ci_obj->$drv); // Verify model $this->assertTrue(class_exists($model), $model.' does not exist'); - $this->assertAttributeInstanceOf($model, $model, $this->ci_obj); + $this->assertObjectHasAttribute($model, $this->ci_obj); + $this->assertInstanceOf($model, $this->ci_obj->$model); // Verify config calls $this->assertEquals($cfg['config'], $this->ci_obj->config->loaded); diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index 927984385..564241ce2 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -2,7 +2,7 @@ class Log_test extends CI_TestCase { public function test_configuration() - { + {$this->markTestSkipped('test'); $path = new ReflectionProperty('CI_Log', '_log_path'); $path->setAccessible(TRUE); $threshold = new ReflectionProperty('CI_Log', '_threshold'); diff --git a/tests/codeigniter/core/compat/mbstring_test.php b/tests/codeigniter/core/compat/mbstring_test.php index 415222446..8b8629efc 100644 --- a/tests/codeigniter/core/compat/mbstring_test.php +++ b/tests/codeigniter/core/compat/mbstring_test.php @@ -27,7 +27,7 @@ class mbstring_test extends CI_TestCase { // ------------------------------------------------------------------------ /** - * @depends test_boostrap + * @depends test_bootstrap */ public function test_mb_strpos() { @@ -39,7 +39,7 @@ class mbstring_test extends CI_TestCase { // ------------------------------------------------------------------------ /** - * @depends test_boostrap + * @depends test_bootstrap */ public function test_mb_substr() { diff --git a/tests/codeigniter/helpers/array_helper_test.php b/tests/codeigniter/helpers/array_helper_test.php index b2409c330..f4e344673 100644 --- a/tests/codeigniter/helpers/array_helper_test.php +++ b/tests/codeigniter/helpers/array_helper_test.php @@ -38,8 +38,8 @@ class Array_helper_test extends CI_TestCase { public function test_elements() { - $this->assertInternalType('array', elements('test', $this->my_array)); - $this->assertInternalType('array', elements('foo', $this->my_array)); + $this->assertEquals('array', gettype(elements('test', $this->my_array))); + $this->assertEquals('array', gettype(elements('foo', $this->my_array))); } } diff --git a/tests/codeigniter/helpers/string_helper_test.php b/tests/codeigniter/helpers/string_helper_test.php index 6de336b01..4f15909ff 100644 --- a/tests/codeigniter/helpers/string_helper_test.php +++ b/tests/codeigniter/helpers/string_helper_test.php @@ -99,7 +99,7 @@ class String_helper_test extends CI_TestCase { { $this->assertEquals(16, strlen(random_string('alnum', 16))); $this->assertEquals(32, strlen(random_string('unique', 16))); - $this->assertInternalType('string', random_string('numeric', 16)); + $this->assertEquals('string', gettype(random_string('numeric', 16))); } // -------------------------------------------------------------------- diff --git a/tests/codeigniter/libraries/Driver_test.php b/tests/codeigniter/libraries/Driver_test.php index e4401e688..ea5cfa235 100644 --- a/tests/codeigniter/libraries/Driver_test.php +++ b/tests/codeigniter/libraries/Driver_test.php @@ -5,6 +5,8 @@ */ class Driver_test extends CI_TestCase { + private $name; + /** * Set up test framework */ @@ -50,8 +52,8 @@ class Driver_test extends CI_TestCase { // Was driver loaded? $this->assertObjectHasAttribute($driver, $this->lib); - $this->assertAttributeInstanceOf($class, $driver, $this->lib); - $this->assertAttributeInstanceOf('CI_Driver', $driver, $this->lib); + $this->assertInstanceOf($class, $this->lib->$driver); + $this->assertInstanceOf('CI_Driver', $this->lib->$driver); // Was decorate called? $this->assertObjectHasAttribute($prop, $this->lib->$driver); @@ -85,8 +87,8 @@ class Driver_test extends CI_TestCase { // Was driver loaded? $this->assertObjectHasAttribute($driver, $this->lib); - $this->assertAttributeInstanceOf($class, $driver, $this->lib); - $this->assertAttributeInstanceOf('CI_Driver', $driver, $this->lib); + $this->assertInstanceOf($class, $this->lib->$driver); + $this->assertInstanceOf('CI_Driver', $this->lib->$driver); // Do we get an error for a non-existent driver? $this->setExpectedException('RuntimeException', 'CI Error: Unable to load the requested driver: CI_'. @@ -119,9 +121,9 @@ class Driver_test extends CI_TestCase { // Was driver loaded? $this->assertObjectHasAttribute($driver, $this->lib); - $this->assertAttributeInstanceOf($class, $driver, $this->lib); - $this->assertAttributeInstanceOf($baseclass, $driver, $this->lib); - $this->assertAttributeInstanceOf('CI_Driver', $driver, $this->lib); + $this->assertInstanceOf($class, $this->lib->$driver); + $this->assertInstanceOf($baseclass, $this->lib->$driver); + $this->assertInstanceOf('CI_Driver', $this->lib->$driver); // Create driver extension without base $driver = 'baseless'; diff --git a/tests/codeigniter/libraries/Encryption_test.php b/tests/codeigniter/libraries/Encryption_test.php index 8e411d9fa..68bc3d804 100644 --- a/tests/codeigniter/libraries/Encryption_test.php +++ b/tests/codeigniter/libraries/Encryption_test.php @@ -151,7 +151,7 @@ class Encryption_test extends CI_TestCase { 'hmac_key' => str_repeat("\x0", 16) ); - $this->assertInternalType('array', $this->encryption->__get_params($params)); + $this->assertEquals('array', gettype($this->encryption->__get_params($params))); $params['base64'] = TRUE; $params['hmac_digest'] = 'sha512'; @@ -217,7 +217,7 @@ class Encryption_test extends CI_TestCase { /** * encrypt(), decrypt test with custom parameters * - * @depends test___get_params + * @depends test__get_params */ public function test_encrypt_decrypt_custom() { diff --git a/tests/codeigniter/libraries/Table_test.php b/tests/codeigniter/libraries/Table_test.php index f505a43fc..6efae5d18 100644 --- a/tests/codeigniter/libraries/Table_test.php +++ b/tests/codeigniter/libraries/Table_test.php @@ -270,14 +270,14 @@ class Table_test extends CI_TestCase { $table = $this->table->generate($data); // Test the table header - $this->assertContains('Name', $table); - $this->assertContains('Color', $table); - $this->assertContains('Size', $table); + $this->assertEquals(1, substr_count($table, 'Name')); + $this->assertEquals(1, substr_count($table, 'Color')); + $this->assertEquals(1, substr_count($table, 'Size')); // Test the first entry - $this->assertContains('Fred', $table); - $this->assertContains('Blue', $table); - $this->assertContains('Small', $table); + $this->assertEquals(1, substr_count($table, 'Fred')); + $this->assertEquals(1, substr_count($table, 'Blue')); + $this->assertEquals(1, substr_count($table, 'Small')); } } diff --git a/tests/travis/mysql.phpunit.xml b/tests/travis/mysql.phpunit.xml index 06d4a011b..15063fd5a 100644 --- a/tests/travis/mysql.phpunit.xml +++ b/tests/travis/mysql.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/mysqli.phpunit.xml b/tests/travis/mysqli.phpunit.xml index 1364f8bfa..c77aaa303 100644 --- a/tests/travis/mysqli.phpunit.xml +++ b/tests/travis/mysqli.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/pdo/mysql.phpunit.xml b/tests/travis/pdo/mysql.phpunit.xml index 7121edc45..1a9030ddf 100644 --- a/tests/travis/pdo/mysql.phpunit.xml +++ b/tests/travis/pdo/mysql.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/pdo/pgsql.phpunit.xml b/tests/travis/pdo/pgsql.phpunit.xml index df3ff986e..22261ee7d 100644 --- a/tests/travis/pdo/pgsql.phpunit.xml +++ b/tests/travis/pdo/pgsql.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/pdo/sqlite.phpunit.xml b/tests/travis/pdo/sqlite.phpunit.xml index 7d867f6d1..4b0ca2fe7 100644 --- a/tests/travis/pdo/sqlite.phpunit.xml +++ b/tests/travis/pdo/sqlite.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/pgsql.phpunit.xml b/tests/travis/pgsql.phpunit.xml index bfddbf6b5..8d7979a0f 100644 --- a/tests/travis/pgsql.phpunit.xml +++ b/tests/travis/pgsql.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/sqlite.phpunit.xml b/tests/travis/sqlite.phpunit.xml index 75c946aee..0c4da0d1b 100644 --- a/tests/travis/sqlite.phpunit.xml +++ b/tests/travis/sqlite.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> -- cgit v1.2.3-24-g4f1b From 9f6925398097a4f655827dc4030c82d435e27ae8 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 26 Sep 2021 23:56:39 +0300 Subject: Adds PHP 8 in Travis --- .travis.yml | 1 + system/core/Output.php | 9 ++++-- tests/codeigniter/core/Loader_test.php | 39 +++++++++++++++--------- tests/codeigniter/core/Log_test.php | 2 +- tests/codeigniter/core/compat/mbstring_test.php | 4 +-- tests/codeigniter/helpers/array_helper_test.php | 4 +-- tests/codeigniter/helpers/string_helper_test.php | 2 +- tests/codeigniter/libraries/Driver_test.php | 16 +++++----- tests/codeigniter/libraries/Encryption_test.php | 4 +-- tests/codeigniter/libraries/Table_test.php | 12 ++++---- tests/travis/mysql.phpunit.xml | 3 +- tests/travis/mysqli.phpunit.xml | 3 +- tests/travis/pdo/mysql.phpunit.xml | 3 +- tests/travis/pdo/pgsql.phpunit.xml | 3 +- tests/travis/pdo/sqlite.phpunit.xml | 3 +- tests/travis/pgsql.phpunit.xml | 3 +- tests/travis/sqlite.phpunit.xml | 3 +- 17 files changed, 70 insertions(+), 44 deletions(-) diff --git a/.travis.yml b/.travis.yml index bf86bace1..d3a09573d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ php: - 7.2 - 7.3 - 7.4 + - 8.0 - nightly env: diff --git a/system/core/Output.php b/system/core/Output.php index c56aff4b0..a2397763d 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -299,10 +299,15 @@ class CI_Output { */ public function get_header($header) { + // We only need [x][0] from our multi-dimensional array + $header_lines = array_map(function ($headers) + { + return array_shift($headers); + }, $this->headers); + // Combine headers already sent with our batched headers $headers = array_merge( - // We only need [x][0] from our multi-dimensional array - array_map('array_shift', $this->headers), + $header_lines, headers_list() ); diff --git a/tests/codeigniter/core/Loader_test.php b/tests/codeigniter/core/Loader_test.php index df698f30c..4fa6d6869 100644 --- a/tests/codeigniter/core/Loader_test.php +++ b/tests/codeigniter/core/Loader_test.php @@ -36,7 +36,8 @@ class Loader_test extends CI_TestCase { // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->library(array($lib))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertAttributeInstanceOf($class, $lib, $this->ci_obj); + $this->assertObjectHasAttribute($lib, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$lib); // Create library in VFS $lib = array('unit_test_lib' => 'unit_test_lib'); @@ -87,14 +88,16 @@ class Loader_test extends CI_TestCase { $this->assertInstanceOf('CI_Loader', $this->load->library($lib)); $this->assertTrue(class_exists($class), $class.' does not exist'); $this->assertTrue(class_exists($ext), $ext.' does not exist'); - $this->assertAttributeInstanceOf($class, $name, $this->ci_obj); - $this->assertAttributeInstanceOf($ext, $name, $this->ci_obj); + $this->assertObjectHasAttribute($name, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$name); + $this->assertInstanceOf($ext, $this->ci_obj->$name); // Test reloading with object name $obj = 'exttest'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); - $this->assertAttributeInstanceOf($class, $obj, $this->ci_obj); - $this->assertAttributeInstanceOf($ext, $obj, $this->ci_obj); + $this->assertObjectHasAttribute($obj, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$obj); + $this->assertInstanceOf($ext, $this->ci_obj->$obj); // Test reloading unset($this->ci_obj->$name); @@ -137,7 +140,8 @@ class Loader_test extends CI_TestCase { $obj = 'testy'; $this->assertInstanceOf('CI_Loader', $this->load->library($lib, NULL, $obj)); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertAttributeInstanceOf($class, $obj, $this->ci_obj); + $this->assertObjectHasAttribute($obj, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$obj); $this->assertEquals($cfg, $this->ci_obj->$obj->config); // Test is_loaded @@ -168,7 +172,8 @@ class Loader_test extends CI_TestCase { // Was the model class instantiated. $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertAttributeInstanceOf($class, $lib, $this->ci_obj); + $this->assertObjectHasAttribute($lib, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$lib); } // -------------------------------------------------------------------- @@ -188,12 +193,14 @@ class Loader_test extends CI_TestCase { // Test loading as an array. $this->assertInstanceOf('CI_Loader', $this->load->driver(array($driver))); $this->assertTrue(class_exists($class), $class.' does not exist'); - $this->assertAttributeInstanceOf($class, $driver, $this->ci_obj); + $this->assertObjectHasAttribute($driver, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$driver); // Test loading as a library with a name $obj = 'testdrive'; $this->assertInstanceOf('CI_Loader', $this->load->library($driver, NULL, $obj)); - $this->assertAttributeInstanceOf($class, $obj, $this->ci_obj); + $this->assertObjectHasAttribute($obj, $this->ci_obj); + $this->assertInstanceOf($class, $this->ci_obj->$obj); // Test a string given to params $this->assertInstanceOf('CI_Loader', $this->load->driver($driver, ' ')); @@ -242,8 +249,9 @@ class Loader_test extends CI_TestCase { // Was the model class instantiated? $this->assertTrue(class_exists($model)); $this->assertObjectHasAttribute($name, $this->ci_obj); - $this->assertAttributeInstanceOf($base, $name, $this->ci_obj); - $this->assertAttributeInstanceOf($model, $name, $this->ci_obj); + $this->assertObjectHasAttribute($name, $this->ci_obj); + $this->assertInstanceOf($base, $this->ci_obj->$name); + $this->assertInstanceOf($model, $this->ci_obj->$name); // Test name conflict $obj = 'conflict'; @@ -586,15 +594,18 @@ class Loader_test extends CI_TestCase { // Verify library $this->assertTrue(class_exists($lib_class), $lib_class.' does not exist'); - $this->assertAttributeInstanceOf($lib_class, $lib, $this->ci_obj); + $this->assertObjectHasAttribute($lib, $this->ci_obj); + $this->assertInstanceOf($lib_class, $this->ci_obj->$lib); // Verify driver $this->assertTrue(class_exists($drv_class), $drv_class.' does not exist'); - $this->assertAttributeInstanceOf($drv_class, $drv, $this->ci_obj); + $this->assertObjectHasAttribute($drv, $this->ci_obj); + $this->assertInstanceOf($drv_class, $this->ci_obj->$drv); // Verify model $this->assertTrue(class_exists($model), $model.' does not exist'); - $this->assertAttributeInstanceOf($model, $model, $this->ci_obj); + $this->assertObjectHasAttribute($model, $this->ci_obj); + $this->assertInstanceOf($model, $this->ci_obj->$model); // Verify config calls $this->assertEquals($cfg['config'], $this->ci_obj->config->loaded); diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index 927984385..564241ce2 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -2,7 +2,7 @@ class Log_test extends CI_TestCase { public function test_configuration() - { + {$this->markTestSkipped('test'); $path = new ReflectionProperty('CI_Log', '_log_path'); $path->setAccessible(TRUE); $threshold = new ReflectionProperty('CI_Log', '_threshold'); diff --git a/tests/codeigniter/core/compat/mbstring_test.php b/tests/codeigniter/core/compat/mbstring_test.php index 415222446..8b8629efc 100644 --- a/tests/codeigniter/core/compat/mbstring_test.php +++ b/tests/codeigniter/core/compat/mbstring_test.php @@ -27,7 +27,7 @@ class mbstring_test extends CI_TestCase { // ------------------------------------------------------------------------ /** - * @depends test_boostrap + * @depends test_bootstrap */ public function test_mb_strpos() { @@ -39,7 +39,7 @@ class mbstring_test extends CI_TestCase { // ------------------------------------------------------------------------ /** - * @depends test_boostrap + * @depends test_bootstrap */ public function test_mb_substr() { diff --git a/tests/codeigniter/helpers/array_helper_test.php b/tests/codeigniter/helpers/array_helper_test.php index b2409c330..f4e344673 100644 --- a/tests/codeigniter/helpers/array_helper_test.php +++ b/tests/codeigniter/helpers/array_helper_test.php @@ -38,8 +38,8 @@ class Array_helper_test extends CI_TestCase { public function test_elements() { - $this->assertInternalType('array', elements('test', $this->my_array)); - $this->assertInternalType('array', elements('foo', $this->my_array)); + $this->assertEquals('array', gettype(elements('test', $this->my_array))); + $this->assertEquals('array', gettype(elements('foo', $this->my_array))); } } diff --git a/tests/codeigniter/helpers/string_helper_test.php b/tests/codeigniter/helpers/string_helper_test.php index 6de336b01..4f15909ff 100644 --- a/tests/codeigniter/helpers/string_helper_test.php +++ b/tests/codeigniter/helpers/string_helper_test.php @@ -99,7 +99,7 @@ class String_helper_test extends CI_TestCase { { $this->assertEquals(16, strlen(random_string('alnum', 16))); $this->assertEquals(32, strlen(random_string('unique', 16))); - $this->assertInternalType('string', random_string('numeric', 16)); + $this->assertEquals('string', gettype(random_string('numeric', 16))); } // -------------------------------------------------------------------- diff --git a/tests/codeigniter/libraries/Driver_test.php b/tests/codeigniter/libraries/Driver_test.php index e4401e688..ea5cfa235 100644 --- a/tests/codeigniter/libraries/Driver_test.php +++ b/tests/codeigniter/libraries/Driver_test.php @@ -5,6 +5,8 @@ */ class Driver_test extends CI_TestCase { + private $name; + /** * Set up test framework */ @@ -50,8 +52,8 @@ class Driver_test extends CI_TestCase { // Was driver loaded? $this->assertObjectHasAttribute($driver, $this->lib); - $this->assertAttributeInstanceOf($class, $driver, $this->lib); - $this->assertAttributeInstanceOf('CI_Driver', $driver, $this->lib); + $this->assertInstanceOf($class, $this->lib->$driver); + $this->assertInstanceOf('CI_Driver', $this->lib->$driver); // Was decorate called? $this->assertObjectHasAttribute($prop, $this->lib->$driver); @@ -85,8 +87,8 @@ class Driver_test extends CI_TestCase { // Was driver loaded? $this->assertObjectHasAttribute($driver, $this->lib); - $this->assertAttributeInstanceOf($class, $driver, $this->lib); - $this->assertAttributeInstanceOf('CI_Driver', $driver, $this->lib); + $this->assertInstanceOf($class, $this->lib->$driver); + $this->assertInstanceOf('CI_Driver', $this->lib->$driver); // Do we get an error for a non-existent driver? $this->setExpectedException('RuntimeException', 'CI Error: Unable to load the requested driver: CI_'. @@ -119,9 +121,9 @@ class Driver_test extends CI_TestCase { // Was driver loaded? $this->assertObjectHasAttribute($driver, $this->lib); - $this->assertAttributeInstanceOf($class, $driver, $this->lib); - $this->assertAttributeInstanceOf($baseclass, $driver, $this->lib); - $this->assertAttributeInstanceOf('CI_Driver', $driver, $this->lib); + $this->assertInstanceOf($class, $this->lib->$driver); + $this->assertInstanceOf($baseclass, $this->lib->$driver); + $this->assertInstanceOf('CI_Driver', $this->lib->$driver); // Create driver extension without base $driver = 'baseless'; diff --git a/tests/codeigniter/libraries/Encryption_test.php b/tests/codeigniter/libraries/Encryption_test.php index 8e411d9fa..68bc3d804 100644 --- a/tests/codeigniter/libraries/Encryption_test.php +++ b/tests/codeigniter/libraries/Encryption_test.php @@ -151,7 +151,7 @@ class Encryption_test extends CI_TestCase { 'hmac_key' => str_repeat("\x0", 16) ); - $this->assertInternalType('array', $this->encryption->__get_params($params)); + $this->assertEquals('array', gettype($this->encryption->__get_params($params))); $params['base64'] = TRUE; $params['hmac_digest'] = 'sha512'; @@ -217,7 +217,7 @@ class Encryption_test extends CI_TestCase { /** * encrypt(), decrypt test with custom parameters * - * @depends test___get_params + * @depends test__get_params */ public function test_encrypt_decrypt_custom() { diff --git a/tests/codeigniter/libraries/Table_test.php b/tests/codeigniter/libraries/Table_test.php index f505a43fc..6efae5d18 100644 --- a/tests/codeigniter/libraries/Table_test.php +++ b/tests/codeigniter/libraries/Table_test.php @@ -270,14 +270,14 @@ class Table_test extends CI_TestCase { $table = $this->table->generate($data); // Test the table header - $this->assertContains('Name', $table); - $this->assertContains('Color', $table); - $this->assertContains('Size', $table); + $this->assertEquals(1, substr_count($table, 'Name')); + $this->assertEquals(1, substr_count($table, 'Color')); + $this->assertEquals(1, substr_count($table, 'Size')); // Test the first entry - $this->assertContains('Fred', $table); - $this->assertContains('Blue', $table); - $this->assertContains('Small', $table); + $this->assertEquals(1, substr_count($table, 'Fred')); + $this->assertEquals(1, substr_count($table, 'Blue')); + $this->assertEquals(1, substr_count($table, 'Small')); } } diff --git a/tests/travis/mysql.phpunit.xml b/tests/travis/mysql.phpunit.xml index 06d4a011b..15063fd5a 100644 --- a/tests/travis/mysql.phpunit.xml +++ b/tests/travis/mysql.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/mysqli.phpunit.xml b/tests/travis/mysqli.phpunit.xml index 1364f8bfa..c77aaa303 100644 --- a/tests/travis/mysqli.phpunit.xml +++ b/tests/travis/mysqli.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/pdo/mysql.phpunit.xml b/tests/travis/pdo/mysql.phpunit.xml index 7121edc45..1a9030ddf 100644 --- a/tests/travis/pdo/mysql.phpunit.xml +++ b/tests/travis/pdo/mysql.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/pdo/pgsql.phpunit.xml b/tests/travis/pdo/pgsql.phpunit.xml index df3ff986e..22261ee7d 100644 --- a/tests/travis/pdo/pgsql.phpunit.xml +++ b/tests/travis/pdo/pgsql.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/pdo/sqlite.phpunit.xml b/tests/travis/pdo/sqlite.phpunit.xml index 7d867f6d1..4b0ca2fe7 100644 --- a/tests/travis/pdo/sqlite.phpunit.xml +++ b/tests/travis/pdo/sqlite.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/pgsql.phpunit.xml b/tests/travis/pgsql.phpunit.xml index bfddbf6b5..8d7979a0f 100644 --- a/tests/travis/pgsql.phpunit.xml +++ b/tests/travis/pgsql.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> diff --git a/tests/travis/sqlite.phpunit.xml b/tests/travis/sqlite.phpunit.xml index 75c946aee..0c4da0d1b 100644 --- a/tests/travis/sqlite.phpunit.xml +++ b/tests/travis/sqlite.phpunit.xml @@ -8,7 +8,8 @@ stopOnError="false" stopOnFailure="false" stopOnIncomplete="false" - stopOnSkipped="false"> + stopOnSkipped="false" + beStrictAboutTestsThatDoNotTestAnything="false"> -- cgit v1.2.3-24-g4f1b From bd5fab166ccff8c0bae963cd9d83a65c226cefa2 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 4 Oct 2021 19:40:47 +0300 Subject: Fixes CREATE TABLE IF NOT EXISTS on pdo_pgsql_forge; checking for dummy data DB operations result returns --- system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php | 7 +++++++ tests/mocks/database/schema/skeleton.php | 10 +++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php index 187cb2d09..4c3a5aaea 100644 --- a/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php +++ b/system/database/drivers/pdo/subdrivers/pdo_pgsql_forge.php @@ -53,6 +53,13 @@ class CI_DB_pdo_pgsql_forge extends CI_DB_pdo_forge { */ protected $_drop_table_if = 'DROP TABLE IF EXISTS'; + /** + * CREATE TABLE IF statement + * + * @var string + */ + protected $_create_table_if = 'CREATE TABLE IF NOT EXISTS'; + /** * UNSIGNED support * diff --git a/tests/mocks/database/schema/skeleton.php b/tests/mocks/database/schema/skeleton.php index 888236ff3..e14aa4af4 100644 --- a/tests/mocks/database/schema/skeleton.php +++ b/tests/mocks/database/schema/skeleton.php @@ -76,7 +76,7 @@ class Mock_Database_Schema_Skeleton { ) )); self::$forge->add_key('id', TRUE); - self::$forge->create_table('user', TRUE); + self::$forge->create_table('user', TRUE) || show_error('Unable to create the `user` table'); // Job Table self::$forge->add_field(array( @@ -93,7 +93,7 @@ class Mock_Database_Schema_Skeleton { ) )); self::$forge->add_key('id', TRUE); - self::$forge->create_table('job', TRUE); + self::$forge->create_table('job', TRUE) || show_error('Unable to create the `job` table'); // Misc Table self::$forge->add_field(array( @@ -110,7 +110,7 @@ class Mock_Database_Schema_Skeleton { ) )); self::$forge->add_key('id', TRUE); - self::$forge->create_table('misc', TRUE); + self::$forge->create_table('misc', TRUE) || show_error('Unable to create the `misc` table'); } /** @@ -143,11 +143,11 @@ class Mock_Database_Schema_Skeleton { foreach ($data as $table => $dummy_data) { - self::$db->truncate($table); + self::$db->truncate($table) || show_error("Unable to truncate `{$table}` table"); foreach ($dummy_data as $single_dummy_data) { - self::$db->insert($table, $single_dummy_data); + self::$db->insert($table, $single_dummy_data) || show_error("Unable to insert data into `{$table}` table"); } } } -- cgit v1.2.3-24-g4f1b From 6858cdf44b5f05e624cd2315a31ba162956180e7 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Mon, 4 Oct 2021 23:30:05 +0300 Subject: whoops :) --- tests/codeigniter/core/Log_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index 564241ce2..927984385 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -2,7 +2,7 @@ class Log_test extends CI_TestCase { public function test_configuration() - {$this->markTestSkipped('test'); + { $path = new ReflectionProperty('CI_Log', '_log_path'); $path->setAccessible(TRUE); $threshold = new ReflectionProperty('CI_Log', '_threshold'); -- cgit v1.2.3-24-g4f1b From bf7dab3eeba78bc920a7b026558cf820aefd1f3d Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Tue, 5 Oct 2021 12:01:25 +0300 Subject: Fixes styleguide ORs --- tests/mocks/database/schema/skeleton.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/mocks/database/schema/skeleton.php b/tests/mocks/database/schema/skeleton.php index e14aa4af4..e2b6e7d0e 100644 --- a/tests/mocks/database/schema/skeleton.php +++ b/tests/mocks/database/schema/skeleton.php @@ -76,7 +76,7 @@ class Mock_Database_Schema_Skeleton { ) )); self::$forge->add_key('id', TRUE); - self::$forge->create_table('user', TRUE) || show_error('Unable to create the `user` table'); + self::$forge->create_table('user', TRUE) OR show_error('Unable to create the `user` table'); // Job Table self::$forge->add_field(array( @@ -93,7 +93,7 @@ class Mock_Database_Schema_Skeleton { ) )); self::$forge->add_key('id', TRUE); - self::$forge->create_table('job', TRUE) || show_error('Unable to create the `job` table'); + self::$forge->create_table('job', TRUE) OR show_error('Unable to create the `job` table'); // Misc Table self::$forge->add_field(array( @@ -110,7 +110,7 @@ class Mock_Database_Schema_Skeleton { ) )); self::$forge->add_key('id', TRUE); - self::$forge->create_table('misc', TRUE) || show_error('Unable to create the `misc` table'); + self::$forge->create_table('misc', TRUE) OR show_error('Unable to create the `misc` table'); } /** @@ -143,11 +143,11 @@ class Mock_Database_Schema_Skeleton { foreach ($data as $table => $dummy_data) { - self::$db->truncate($table) || show_error("Unable to truncate `{$table}` table"); + self::$db->truncate($table) OR show_error("Unable to truncate `{$table}` table"); foreach ($dummy_data as $single_dummy_data) { - self::$db->insert($table, $single_dummy_data) || show_error("Unable to insert data into `{$table}` table"); + self::$db->insert($table, $single_dummy_data) OR show_error("Unable to insert data into `{$table}` table"); } } } -- cgit v1.2.3-24-g4f1b From 76943952919c6c8be3ee3cfad3469d9effa0f4d7 Mon Sep 17 00:00:00 2001 From: ddonatek Date: Tue, 2 Nov 2021 23:53:06 +0100 Subject: Added another SVG mimetype Some MIME detection programs/libraries identify SVG files without `` declaration as `image/svg` --- application/config/mimes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index f5407ff89..b2e989fea 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -162,7 +162,7 @@ return array( 'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'), 'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'), 'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'), - 'svg' => array('image/svg+xml', 'application/xml', 'text/xml'), + 'svg' => array('image/svg+xml', 'image/svg', 'application/xml', 'text/xml'), 'vcf' => 'text/x-vcard', 'srt' => array('text/srt', 'text/plain'), 'vtt' => array('text/vtt', 'text/plain'), -- cgit v1.2.3-24-g4f1b From d49ffb0cbbb19b552bf8f33cbfe9e52505eae21e Mon Sep 17 00:00:00 2001 From: ddonatek Date: Tue, 2 Nov 2021 23:53:06 +0100 Subject: Added another SVG mimetype Some MIME detection programs/libraries identify SVG files without `` declaration as `image/svg` --- application/config/mimes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/config/mimes.php b/application/config/mimes.php index f5407ff89..b2e989fea 100644 --- a/application/config/mimes.php +++ b/application/config/mimes.php @@ -162,7 +162,7 @@ return array( 'cdr' => array('application/cdr', 'application/coreldraw', 'application/x-cdr', 'application/x-coreldraw', 'image/cdr', 'image/x-cdr', 'zz-application/zz-winassoc-cdr'), 'wma' => array('audio/x-ms-wma', 'video/x-ms-asf'), 'jar' => array('application/java-archive', 'application/x-java-application', 'application/x-jar', 'application/x-compressed'), - 'svg' => array('image/svg+xml', 'application/xml', 'text/xml'), + 'svg' => array('image/svg+xml', 'image/svg', 'application/xml', 'text/xml'), 'vcf' => 'text/x-vcard', 'srt' => array('text/srt', 'text/plain'), 'vtt' => array('text/vtt', 'text/plain'), -- cgit v1.2.3-24-g4f1b From 298b06e5d823370a49dd49661cc8cc08f9a51ead Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Wed, 17 Nov 2021 17:33:37 +0000 Subject: chore: update to phpunit 9 --- composer.json | 2 +- tests/codeigniter/core/Security_test.php | 2 +- tests/travis/sqlite.phpunit.xml | 35 ++++++++++++++++---------------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/composer.json b/composer.json index a20d0f336..722c9b7d9 100644 --- a/composer.json +++ b/composer.json @@ -18,6 +18,6 @@ }, "require-dev": { "mikey179/vfsstream": "1.6.*", - "phpunit/phpunit": "4.* || 5.* || 8.*" + "phpunit/phpunit": "4.* || 5.* || 9.*" } } diff --git a/tests/codeigniter/core/Security_test.php b/tests/codeigniter/core/Security_test.php index 64efdf9c8..e6a980e7a 100644 --- a/tests/codeigniter/core/Security_test.php +++ b/tests/codeigniter/core/Security_test.php @@ -253,7 +253,7 @@ class Security_test extends CI_TestCase { // Perform hash $this->security->xss_hash(); - $this->assertRegExp('#^[0-9a-f]{32}$#iS', $this->security->xss_hash); + $this->assertMatchesRegularExpression('#^[0-9a-f]{32}$#iS', $this->security->xss_hash); } // -------------------------------------------------------------------- diff --git a/tests/travis/sqlite.phpunit.xml b/tests/travis/sqlite.phpunit.xml index 0c4da0d1b..4eaafc19f 100644 --- a/tests/travis/sqlite.phpunit.xml +++ b/tests/travis/sqlite.phpunit.xml @@ -1,6 +1,5 @@ - - - - - - - - ../codeigniter - - - - - ../../system - - - \ No newline at end of file + beStrictAboutTestsThatDoNotTestAnything="false" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" +> + + + ../../system + + + + + + + + ../codeigniter + + + -- cgit v1.2.3-24-g4f1b From e7110e559a0c46d5001368c25ed246ff303d3afe Mon Sep 17 00:00:00 2001 From: Phil Sturgeon Date: Fri, 3 Dec 2021 11:46:17 +0000 Subject: chore: back to travis --- .github/workflows/test-phpunit.yml | 106 ----------------------------------- .travis.yml | 112 +++++++++++++++++++++++++++++++++++++ composer.json | 6 ++ 3 files changed, 118 insertions(+), 106 deletions(-) delete mode 100644 .github/workflows/test-phpunit.yml create mode 100644 .travis.yml diff --git a/.github/workflows/test-phpunit.yml b/.github/workflows/test-phpunit.yml deleted file mode 100644 index bba336ce7..000000000 --- a/.github/workflows/test-phpunit.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: PHPUnit - -on: [push, pull_request] - -jobs: - tests: - runs-on: ubuntu-18.04 - if: "!contains(github.event.head_commit.message, '[ci skip]')" - env: - PHP_INI_VALUES: assert.exception=1, zend.assertions=1 - - strategy: - fail-fast: false - matrix: - php: [ '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6', '5.5', '5.4' ] - DB: [ 'pdo/mysql', 'pdo/pgsql', 'pdo/sqlite', 'mysqli', 'pgsql', 'sqlite' ] - compiler: [ default ] - include: - - php: '8.0' - DB: 'pdo/mysql' - compiler: jit - - php: '8.0' - DB: 'pdo/pgsql' - compiler: jit - - php: '8.0' - DB: 'pdo/sqlite' - compiler: jit - - php: '8.0' - DB: 'mysqli' - compiler: jit - - php: '8.0' - DB: 'pgsql' - compiler: jit - - php: '8.0' - DB: 'sqlite' - compiler: jit - - php: '5.6' - DB: 'mysql' - compiler: default - - php: '5.5' - DB: 'mysql' - compiler: default - - php: '5.4' - DB: 'mysql' - compiler: default - - services: - postgres: - image: postgres:12 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - POSTGRES_DB: ci_test - ports: - - 5432:5432 - options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3 - - mysql: - image: mysql:5.7 - env: - MYSQL_ALLOW_EMPTY_PASSWORD: true - MYSQL_USER: travis - MYSQL_PASSWORD: travis - MYSQL_DATABASE: ci_test - ports: - - 3306:3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 - - steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Override PHP ini values for JIT compiler - if: matrix.compiler == 'jit' - run: echo "PHP_INI_VALUES::assert.exception=1, zend.assertions=1, opcache.enable=1, opcache.enable_cli=1, opcache.optimization_level=-1, opcache.jit=1255, opcache.jit_buffer_size=64M" >> $GITHUB_ENV - - - name: Install PHP${{ matrix.php }} - DB ${{ matrix.DB }} - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - tools: composer, pecl - extensions: imagick, sqlite3, pgsql, mysqli, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite - ini-values: ${{ env.PHP_INI_VALUES }} - coverage: xdebug - - - name: Setup composer for PHP8.0+ - run: if [ '${{ matrix.php }}' = '8.0' ] || [ '${{ matrix.php }}' = '8.1' ] ; then sed -i 's/phpunit\/phpunit/sminnee\/phpunit/g' composer.json; composer config -g platform.php 7.4.11; fi - - name: Get composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - name: Cache composer dependencies - uses: actions/cache@v2 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: ${{ runner.os }}-composer- - - name: Install composer dependencies - run: composer install --no-progress --prefer-dist --optimize-autoloader - - - name: Fix error in vfsStream - run: sed -i s/name{0}/name[0]/ vendor/mikey179/vfsstream/src/main/php/org/bovigo/vfs/vfsStream.php - - - name: PHPUnit Test - run: | - php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/${{ matrix.DB }}.phpunit.xml - env: - XDEBUG_MODE: coverage diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..bf86bace1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,112 @@ +language: php +os: linux +dist: xenial + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.2 + - 7.3 + - 7.4 + - nightly + +env: + global: + - XDEBUG_MODE=coverage + jobs: + - DB=mysqli + - DB=pgsql + - DB=sqlite + - DB=pdo/mysql + - DB=pdo/pgsql + - DB=pdo/sqlite + +services: + - mysql + - postgresql + +cache: + directories: + - $HOME/.composer/cache + +before_script: + - sh -c "composer install --no-progress" + - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'DROP DATABASE IF EXISTS ci_test;' -U postgres; fi" + - sh -c "if [ '$DB' = 'pgsql' ] || [ '$DB' = 'pdo/pgsql' ]; then psql -c 'create database ci_test;' -U postgres; fi" + - sh -c "if [ '$DB' = 'mysql' ] || [ '$DB' = 'mysqli' ] || [ '$DB' = 'pdo/mysql' ]; then mysql -e 'create database IF NOT EXISTS ci_test;'; fi" + +script: test $(php -r 'echo PHP_VERSION_ID;') -lt 70300 && php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/$DB.phpunit.xml || php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/$DB.phpunit.xml + +jobs: + allow_failures: + - php: nightly + - php: hhvm-3.30 + include: + - php: 5.4 + dist: trusty + env: DB=mysql + - php: 5.4 + dist: trusty + env: DB=mysqli + - php: 5.4 + dist: trusty + env: DB=pgsql + - php: 5.4 + dist: trusty + env: DB=sqlite + - php: 5.4 + dist: trusty + env: DB=pdo/mysql + - php: 5.4 + dist: trusty + env: DB=pdo/pgsql + - php: 5.4 + dist: trusty + env: DB=pdo/sqlite + - php: 5.5 + dist: trusty + env: DB=mysql + - php: 5.5 + dist: trusty + env: DB=mysqli + - php: 5.5 + dist: trusty + env: DB=pgsql + - php: 5.5 + dist: trusty + env: DB=sqlite + - php: 5.5 + dist: trusty + env: DB=pdo/mysql + - php: 5.5 + dist: trusty + env: DB=pdo/pgsql + - php: 5.5 + dist: trusty + env: DB=pdo/sqlite + - php: 5.6 + dist: xenial + env: DB=mysql + - php: hhvm-3.30 + dist: trusty + env: DB=mysql + - php: hhvm-3.30 + dist: trusty + env: DB=mysqli + - php: hhvm-3.30 + dist: trusty + env: DB=sqlite + - php: hhvm-3.30 + dist: trusty + env: DB=pdo/mysql + - php: hhvm-3.30 + dist: trusty + env: DB=pdo/sqlite + +branches: + only: + - develop + - 3.0-stable + - 3.1-stable + - /^feature\/.+$/ diff --git a/composer.json b/composer.json index 722c9b7d9..3f423e17a 100644 --- a/composer.json +++ b/composer.json @@ -16,6 +16,12 @@ "suggest": { "paragonie/random_compat": "Provides better randomness in PHP 5.x" }, + "scripts": { + "test:coverage": [ + "@putenv XDEBUG_MODE=coverage", + "phpunit --color=always --coverage-text --configuration tests/travis/sqlite.phpunit.xml" + ] + }, "require-dev": { "mikey179/vfsstream": "1.6.*", "phpunit/phpunit": "4.* || 5.* || 9.*" -- cgit v1.2.3-24-g4f1b From 5e79f1b0dda522efcd1a0cb379d6e7fb1f5cc557 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 17:43:34 +0200 Subject: Fix broken tests in develop --- composer.json | 2 +- tests/codeigniter/core/Input_test.php | 8 -------- tests/codeigniter/core/Utf8_test.php | 2 +- tests/mocks/database/ci_test.sqlite | Bin 19456 -> 19456 bytes 4 files changed, 2 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index 483156678..f5b4e8db4 100644 --- a/composer.json +++ b/composer.json @@ -30,6 +30,6 @@ }, "require-dev": { "mikey179/vfsstream": "1.6.*", - "phpunit/phpunit": "5.* || 9.*" + "phpunit/phpunit": "4.* || 5.* || 9.*" } } diff --git a/tests/codeigniter/core/Input_test.php b/tests/codeigniter/core/Input_test.php index 72198b905..93d1b7118 100644 --- a/tests/codeigniter/core/Input_test.php +++ b/tests/codeigniter/core/Input_test.php @@ -26,14 +26,6 @@ class Input_test extends CI_TestCase { // -------------------------------------------------------------------- - public function tear_down() - { - $_POST = []; - $_GET = []; - } - - // -------------------------------------------------------------------- - public function test_get_not_exists() { $this->assertSame(array(), $this->input->get()); diff --git a/tests/codeigniter/core/Utf8_test.php b/tests/codeigniter/core/Utf8_test.php index 776213204..8ae51b8af 100644 --- a/tests/codeigniter/core/Utf8_test.php +++ b/tests/codeigniter/core/Utf8_test.php @@ -59,7 +59,7 @@ class Utf8_test extends CI_TestCase { elseif (ICONV_ENABLED) { // This is a known issue, iconv doesn't always work with //IGNORE - $this->assertContains($this->utf8->clean_string($illegal_utf8), array('тест', '')); + $this->assertContains($utf8->clean_string($illegal_utf8), array('тест', '')); } else { diff --git a/tests/mocks/database/ci_test.sqlite b/tests/mocks/database/ci_test.sqlite index cc76bd681..721fbd525 100755 Binary files a/tests/mocks/database/ci_test.sqlite and b/tests/mocks/database/ci_test.sqlite differ -- cgit v1.2.3-24-g4f1b From 4d545b6d05976b002829a8f75fe7054591c0b985 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 19:49:11 +0200 Subject: [ci skip] Drop OCI8-specific get_cursor() and stored_procedure() methods --- system/database/drivers/oci8/oci8_driver.php | 94 +--------------------- system/database/drivers/oci8/oci8_result.php | 22 +---- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/installation/upgrade_320.rst | 10 +++ 4 files changed, 15 insertions(+), 112 deletions(-) diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index 511ef0e64..d54624eda 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -75,13 +75,6 @@ class CI_DB_oci8_driver extends CI_DB { */ public $stmt_id; - /** - * Cursor ID - * - * @var resource - */ - public $curs_id; - /** * Commit mode flag * @@ -101,14 +94,6 @@ class CI_DB_oci8_driver extends CI_DB { // -------------------------------------------------------------------- - /** - * Reset $stmt_id flag - * - * Used by stored_procedure() to prevent _execute() from - * re-setting the statement ID. - */ - protected $_reset_stmt_id = TRUE; - /** * List of reserved identifiers * @@ -277,79 +262,13 @@ class CI_DB_oci8_driver extends CI_DB { /* Oracle must parse the query before it is run. All of the actions with * the query are based on the statement id returned by oci_parse(). */ - if ($this->_reset_stmt_id === TRUE) - { - $this->stmt_id = oci_parse($this->conn_id, $sql); - } - + $this->stmt_id = oci_parse($this->conn_id, $sql); oci_set_prefetch($this->stmt_id, 1000); return oci_execute($this->stmt_id, $this->commit_mode); } // -------------------------------------------------------------------- - /** - * Get cursor. Returns a cursor from the database - * - * @return resource - */ - public function get_cursor() - { - return $this->curs_id = oci_new_cursor($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Stored Procedure. Executes a stored procedure - * - * @param string package name in which the stored procedure is in - * @param string stored procedure name to execute - * @param array parameters - * @return mixed - * - * params array keys - * - * KEY OPTIONAL NOTES - * name no the name of the parameter should be in : format - * value no the value of the parameter. If this is an OUT or IN OUT parameter, - * this should be a reference to a variable - * type yes the type of the parameter - * length yes the max size of the parameter - */ - public function stored_procedure($package, $procedure, array $params) - { - if ($package === '' OR $procedure === '') - { - log_message('error', 'Invalid query: '.$package.'.'.$procedure); - return ($this->db_debug) ? $this->display_error('db_invalid_query') : FALSE; - } - - // Build the query string - $sql = 'BEGIN '.$package.'.'.$procedure.'('; - - $have_cursor = FALSE; - foreach ($params as $param) - { - $sql .= $param['name'].','; - - if (isset($param['type']) && $param['type'] === OCI_B_CURSOR) - { - $have_cursor = TRUE; - } - } - $sql = trim($sql, ',').'); END;'; - - $this->_reset_stmt_id = FALSE; - $this->stmt_id = oci_parse($this->conn_id, $sql); - $this->_bind_params($params); - $result = $this->query($sql, FALSE, $have_cursor); - $this->_reset_stmt_id = TRUE; - return $result; - } - - // -------------------------------------------------------------------- - /** * Bind parameters * @@ -562,11 +481,7 @@ class CI_DB_oci8_driver extends CI_DB { // oci_error() returns an array that already contains // 'code' and 'message' keys, but it can return false // if there was no error .... - if (is_resource($this->curs_id)) - { - $error = oci_error($this->curs_id); - } - elseif (is_resource($this->stmt_id)) + if (is_resource($this->stmt_id)) { $error = oci_error($this->stmt_id); } @@ -682,11 +597,6 @@ class CI_DB_oci8_driver extends CI_DB { */ protected function _close() { - if (is_resource($this->curs_id)) - { - oci_free_statement($this->curs_id); - } - if (is_resource($this->stmt_id)) { oci_free_statement($this->stmt_id); diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php index 7fd911e82..99d3d1067 100644 --- a/system/database/drivers/oci8/oci8_result.php +++ b/system/database/drivers/oci8/oci8_result.php @@ -55,13 +55,6 @@ class CI_DB_oci8_result extends CI_DB_result { */ public $stmt_id; - /** - * Cursor ID - * - * @var resource - */ - public $curs_id; - /** * Limit used flag * @@ -89,7 +82,6 @@ class CI_DB_oci8_result extends CI_DB_result { parent::__construct($driver_object); $this->stmt_id = $driver_object->stmt_id; - $this->curs_id = $driver_object->curs_id; $this->limit_used = $driver_object->limit_used; $this->commit_mode =& $driver_object->commit_mode; $driver_object->stmt_id = FALSE; @@ -173,12 +165,6 @@ class CI_DB_oci8_result extends CI_DB_result { { oci_free_statement($this->stmt_id); } - - if (is_resource($this->curs_id)) - { - oci_cancel($this->curs_id); - $this->curs_id = NULL; - } } // -------------------------------------------------------------------- @@ -192,8 +178,7 @@ class CI_DB_oci8_result extends CI_DB_result { */ protected function _fetch_assoc() { - $id = ($this->curs_id) ? $this->curs_id : $this->stmt_id; - return oci_fetch_assoc($id); + return oci_fetch_assoc($this->stmt_id); } // -------------------------------------------------------------------- @@ -208,9 +193,7 @@ class CI_DB_oci8_result extends CI_DB_result { */ protected function _fetch_object($class_name = 'stdClass') { - $row = ($this->curs_id) - ? oci_fetch_object($this->curs_id) - : oci_fetch_object($this->stmt_id); + $row = oci_fetch_object($this->stmt_id); if ($class_name === 'stdClass' OR ! $row) { @@ -225,5 +208,4 @@ class CI_DB_oci8_result extends CI_DB_result { return $class_name; } - } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index b4278b1cd..704652381 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -76,6 +76,7 @@ Release Date: Not Released - :doc:`Database ` changes include: + - Removed driver-specific ``$curs_id`` property and ``get_cursor()``, ``stored_procedure()`` methods from OCI8 driver. - Removed previously deprecated 'sqlite' driver (used for SQLite version 2; no longer shipped with PHP 5.4+). - Removed method ``db_set_charset()`` and the ability to change a connection character set at runtime. - Changed method ``initialize()`` to return void and instead throw a ``RuntimeException`` in case of failure. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 3eadd8caf..2616a2a47 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -257,3 +257,13 @@ so that if you're using the :doc:`Web Page Caching <../general/caching>` feature, you'll be left with some old, garbage cache files. That shouldn't be a problem, but you may want to clear them. + +Step 13: Remove usage of OCI8 get_cursor() and stored_procedure() methods +========================================================================= + +The OCI8 :doc:`Database ` driver no longer has these two +methods that were specific to it and not present in other database drivers. +The ``$curs_id`` property is also removed. + +If you were using those, you can create your own cursors via ``oci_new_cursor()`` +and the publicly accessible ``$conn_id()``. -- cgit v1.2.3-24-g4f1b From f0f006c94e9c9a1630d0f8e123c2f4ccfde3413d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 19:59:07 +0200 Subject: [ci skip] Refactor OCI8 driver to use the uniform result_id property instead of its own custom stmt_id --- system/database/drivers/oci8/oci8_driver.php | 32 +++++++++++++--------------- system/database/drivers/oci8/oci8_result.php | 30 ++++++++------------------ 2 files changed, 24 insertions(+), 38 deletions(-) diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index d54624eda..d32c5f3d6 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -68,13 +68,6 @@ class CI_DB_oci8_driver extends CI_DB { */ public $dbdriver = 'oci8'; - /** - * Statement ID - * - * @var resource - */ - public $stmt_id; - /** * Commit mode flag * @@ -262,9 +255,14 @@ class CI_DB_oci8_driver extends CI_DB { /* Oracle must parse the query before it is run. All of the actions with * the query are based on the statement id returned by oci_parse(). */ - $this->stmt_id = oci_parse($this->conn_id, $sql); - oci_set_prefetch($this->stmt_id, 1000); - return oci_execute($this->stmt_id, $this->commit_mode); + $this->result_id = oci_parse($this->conn_id, $sql); + oci_set_prefetch($this->result_id, 1000); + if (oci_execute($this->result_id, $this->commit_mode)) + { + return $this->result_id; + } + + return FALSE; } // -------------------------------------------------------------------- @@ -277,7 +275,7 @@ class CI_DB_oci8_driver extends CI_DB { */ protected function _bind_params($params) { - if ( ! is_array($params) OR ! is_resource($this->stmt_id)) + if ( ! is_array($params) OR ! is_resource($this->result_id)) { return; } @@ -292,7 +290,7 @@ class CI_DB_oci8_driver extends CI_DB { } } - oci_bind_by_name($this->stmt_id, $param['name'], $param['value'], $param['length'], $param['type']); + oci_bind_by_name($this->result_id, $param['name'], $param['value'], $param['length'], $param['type']); } } @@ -345,7 +343,7 @@ class CI_DB_oci8_driver extends CI_DB { */ public function affected_rows() { - return oci_num_rows($this->stmt_id); + return oci_num_rows($this->result_id); } // -------------------------------------------------------------------- @@ -481,9 +479,9 @@ class CI_DB_oci8_driver extends CI_DB { // oci_error() returns an array that already contains // 'code' and 'message' keys, but it can return false // if there was no error .... - if (is_resource($this->stmt_id)) + if (is_resource($this->result_id)) { - $error = oci_error($this->stmt_id); + $error = oci_error($this->result_id); } elseif (is_resource($this->conn_id)) { @@ -597,9 +595,9 @@ class CI_DB_oci8_driver extends CI_DB { */ protected function _close() { - if (is_resource($this->stmt_id)) + if (is_resource($this->result_id)) { - oci_free_statement($this->stmt_id); + oci_free_statement($this->result_id); } oci_close($this->conn_id); diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php index 99d3d1067..cf0b33d26 100644 --- a/system/database/drivers/oci8/oci8_result.php +++ b/system/database/drivers/oci8/oci8_result.php @@ -48,13 +48,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); */ class CI_DB_oci8_result extends CI_DB_result { - /** - * Statement ID - * - * @var resource - */ - public $stmt_id; - /** * Limit used flag * @@ -81,10 +74,10 @@ class CI_DB_oci8_result extends CI_DB_result { { parent::__construct($driver_object); - $this->stmt_id = $driver_object->stmt_id; + $this->result_id = $driver_object->result_id; $this->limit_used = $driver_object->limit_used; $this->commit_mode =& $driver_object->commit_mode; - $driver_object->stmt_id = FALSE; + $driver_object->result_id = FALSE; } // -------------------------------------------------------------------- @@ -96,7 +89,7 @@ class CI_DB_oci8_result extends CI_DB_result { */ public function num_fields() { - $count = oci_num_fields($this->stmt_id); + $count = oci_num_fields($this->result_id); // if we used a limit we subtract it return ($this->limit_used) ? $count - 1 : $count; @@ -116,7 +109,7 @@ class CI_DB_oci8_result extends CI_DB_result { $field_names = array(); for ($c = 1, $fieldCount = $this->num_fields(); $c <= $fieldCount; $c++) { - $field_names[] = oci_field_name($this->stmt_id, $c); + $field_names[] = oci_field_name($this->result_id, $c); } return $field_names; } @@ -136,9 +129,9 @@ class CI_DB_oci8_result extends CI_DB_result { for ($c = 1, $fieldCount = $this->num_fields(); $c <= $fieldCount; $c++) { $F = new stdClass(); - $F->name = oci_field_name($this->stmt_id, $c); - $F->type = oci_field_type($this->stmt_id, $c); - $F->max_length = oci_field_size($this->stmt_id, $c); + $F->name = oci_field_name($this->result_id, $c); + $F->type = oci_field_type($this->result_id, $c); + $F->max_length = oci_field_size($this->result_id, $c); $retval[] = $F; } @@ -160,11 +153,6 @@ class CI_DB_oci8_result extends CI_DB_result { oci_free_statement($this->result_id); $this->result_id = FALSE; } - - if (is_resource($this->stmt_id)) - { - oci_free_statement($this->stmt_id); - } } // -------------------------------------------------------------------- @@ -178,7 +166,7 @@ class CI_DB_oci8_result extends CI_DB_result { */ protected function _fetch_assoc() { - return oci_fetch_assoc($this->stmt_id); + return oci_fetch_assoc($this->result_id); } // -------------------------------------------------------------------- @@ -193,7 +181,7 @@ class CI_DB_oci8_result extends CI_DB_result { */ protected function _fetch_object($class_name = 'stdClass') { - $row = oci_fetch_object($this->stmt_id); + $row = oci_fetch_object($this->result_id); if ($class_name === 'stdClass' OR ! $row) { -- cgit v1.2.3-24-g4f1b From 3d9c9e6f9fed47332a094cc6a359e4f377357804 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 20:00:06 +0200 Subject: [ci skip] Drop CI_DB_oci8_driver::_bind_params() (no longer used after removing stored_procedure()) --- system/database/drivers/oci8/oci8_driver.php | 29 ---------------------------- 1 file changed, 29 deletions(-) diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index d32c5f3d6..8617a4ebe 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -267,35 +267,6 @@ class CI_DB_oci8_driver extends CI_DB { // -------------------------------------------------------------------- - /** - * Bind parameters - * - * @param array $params - * @return void - */ - protected function _bind_params($params) - { - if ( ! is_array($params) OR ! is_resource($this->result_id)) - { - return; - } - - foreach ($params as $param) - { - foreach (array('name', 'value', 'type', 'length') as $val) - { - if ( ! isset($param[$val])) - { - $param[$val] = ''; - } - } - - oci_bind_by_name($this->result_id, $param['name'], $param['value'], $param['length'], $param['type']); - } - } - - // -------------------------------------------------------------------- - /** * Begin Transaction * -- cgit v1.2.3-24-g4f1b From f43bd73f6360f9d15a89527614c9ff696825ce99 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 20:28:27 +0200 Subject: [ci skip] An attempt at a better solution for #5896 --- system/database/drivers/oci8/oci8_driver.php | 44 ++++++++++++++++++++++------ system/database/drivers/oci8/oci8_result.php | 15 ++++++++++ 2 files changed, 50 insertions(+), 9 deletions(-) diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php index 8617a4ebe..16646efea 100644 --- a/system/database/drivers/oci8/oci8_driver.php +++ b/system/database/drivers/oci8/oci8_driver.php @@ -85,6 +85,26 @@ class CI_DB_oci8_driver extends CI_DB { */ public $limit_used = FALSE; + /** + * Error cache + * + * Cached error info about failed queries. + * Used so that statement IDs can be released immediately. + * + * @var array|false + */ + protected $_error = FALSE; + + /** + * Affected rows + * + * Cached result of oci_num_rows(). + * Used so that statement IDs can be released immediately. + * + * @var int|false + */ + protected $_affected_rows = FALSE; + // -------------------------------------------------------------------- /** @@ -257,12 +277,17 @@ class CI_DB_oci8_driver extends CI_DB { */ $this->result_id = oci_parse($this->conn_id, $sql); oci_set_prefetch($this->result_id, 1000); - if (oci_execute($this->result_id, $this->commit_mode)) + $result = oci_execute($this->result_id, $this->commit_mode); + $this->_error = oci_error($this->result_id); + $this->is_write_type($sql) && $this->_affected_rows = oci_num_rows($this->result_id); + + if ($this->is_write_type($sql) OR $result === FALSE) { - return $this->result_id; + oci_free_statement($this->result_id); + return $result; } - return FALSE; + return $this->result_id; } // -------------------------------------------------------------------- @@ -314,7 +339,7 @@ class CI_DB_oci8_driver extends CI_DB { */ public function affected_rows() { - return oci_num_rows($this->result_id); + return $this->_affected_rows; } // -------------------------------------------------------------------- @@ -447,14 +472,15 @@ class CI_DB_oci8_driver extends CI_DB { */ public function error() { + if ( ! empty($this->_error)) + { + return $this->_error; + } + // oci_error() returns an array that already contains // 'code' and 'message' keys, but it can return false // if there was no error .... - if (is_resource($this->result_id)) - { - $error = oci_error($this->result_id); - } - elseif (is_resource($this->conn_id)) + if (is_resource($this->conn_id)) { $error = oci_error($this->conn_id); } diff --git a/system/database/drivers/oci8/oci8_result.php b/system/database/drivers/oci8/oci8_result.php index cf0b33d26..0d57d9428 100644 --- a/system/database/drivers/oci8/oci8_result.php +++ b/system/database/drivers/oci8/oci8_result.php @@ -196,4 +196,19 @@ class CI_DB_oci8_result extends CI_DB_result { return $class_name; } + + // -------------------------------------------------------------------- + + /** + * Destructor + * + * Attempt to free remaining statement IDs. + * + * @see https://github.com/bcit-ci/CodeIgniter/pull/5896 + * @return void + */ + public function __destruct() + { + $this->free_result(); + } } -- cgit v1.2.3-24-g4f1b From b2af476c9bb3a3eb24f93e7128eee327758461a9 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 21:27:11 +0200 Subject: Polish changes from PR #5684 and drop ['log_file_extension']; ref #5648 --- application/config/config.php | 18 ++-------------- system/core/Log.php | 24 +++++++--------------- user_guide_src/source/changelog.rst | 2 ++ user_guide_src/source/installation/upgrade_320.rst | 12 +++++++++++ 4 files changed, 23 insertions(+), 33 deletions(-) diff --git a/application/config/config.php b/application/config/config.php index 83d8802fb..1e37856fe 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -232,24 +232,10 @@ $config['log_path'] = ''; |-------------------------------------------------------------------------- | | Leave this BLANK unless you would like to set something other than the default -| 'log-'.date('Y-m-d') filename. No DIRECTORY_SEPARATOR(s) or file extension +| 'log-'.date('Y-m-d').'.php'. No DIRECTORY_SEPARATOR(s), just the filename. | */ -$config['log_file'] = ''; - -/* -|-------------------------------------------------------------------------- -| Log File Extension -|-------------------------------------------------------------------------- -| -| The default filename extension for log files. The default 'php' allows for -| protecting the log files via basic scripting, when they are to be stored -| under a publicly accessible directory. -| -| Note: Leaving it blank will default to 'php'. -| -*/ -$config['log_file_extension'] = ''; +$config['log_filename'] = ''; /* |-------------------------------------------------------------------------- diff --git a/system/core/Log.php b/system/core/Log.php index 8ce1b83a2..999e51718 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -54,13 +54,13 @@ class CI_Log { * @var string */ protected $_log_path; - + /** - * Filename of log + * Log filename * * @var string */ - protected $_log_file; + protected $_log_filename; /** * File permissions @@ -90,13 +90,6 @@ class CI_Log { */ protected $_date_fmt = 'Y-m-d H:i:s'; - /** - * Filename extension - * - * @var string - */ - protected $_file_ext; - /** * Whether or not the logger can write to the log files * @@ -134,11 +127,8 @@ class CI_Log { $this->_log_path = ($config['log_path'] !== '') ? rtrim($config['log_path'], '/\\').DIRECTORY_SEPARATOR : APPPATH.'logs'.DIRECTORY_SEPARATOR; - $this->_log_file = (isset($config['log_file']) && $config['log_file'] !== '') - ? $config['log_file'] : 'log-'.date('Y-m-d'); - - $this->_file_ext = (isset($config['log_file_extension']) && $config['log_file_extension'] !== '') - ? ltrim($config['log_file_extension'], '.') : 'php'; + $this->_log_filename = (isset($config['log_filename']) && $config['log_filename'] !== '') + ? $config['log_filename'] : 'log-'.date('Y-m-d').'.php'; file_exists($this->_log_path) OR mkdir($this->_log_path, 0755, TRUE); @@ -194,14 +184,14 @@ class CI_Log { return FALSE; } - $filepath = $this->_log_path.$this->_log_file.'.'.$this->_file_ext; + $filepath = $this->_log_path.$this->_log_filename; $message = ''; if ( ! file_exists($filepath)) { $newfile = TRUE; // Only add protection to php files - if ($this->_file_ext === 'php') + if (substr($this->_log_filename, -3, 3) === 'php') { $message .= "\n\n"; } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 704652381..d7a757901 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -16,6 +16,8 @@ Release Date: Not Released - Core + - Added a ``$config['log_file']`` option. + - Removed ``$config['log_file_extension']``. - Removed ``$config['rewrite_short_tags']`` (irrelevant on PHP 5.4+). - Removed previously deprecated ``$config['global_xss_filtering']``. - Removed previously deprecated :doc:`Routing Class ` methods ``fetch_directory()``, ``fetch_class()`` and ``fetch_method()`` (use the respective class properties instead). diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 2616a2a47..48914c414 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -267,3 +267,15 @@ The ``$curs_id`` property is also removed. If you were using those, you can create your own cursors via ``oci_new_cursor()`` and the publicly accessible ``$conn_id()``. + +Stop 14: Replace $config['log_file_extension'] with $config['log_filename'] in application/config/config.php +============================================================================================================ + +You can now specify the full log filename via ``$config['log_filename']``. +Add this configuration option to your **application/config/config.php**, +if you haven't copied the new one over. + +The previously existing ``$config['log_file_extension']`` option has been +removed and no longer works. However, its functionality is essentially +integrated into the new ``$config['log_filename']``, since it includes the +filename extension in itself. -- cgit v1.2.3-24-g4f1b From 29d07cb116a31ebae58266f05c3c2eac3eeccb08 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 21:38:38 +0200 Subject: Update logging tests --- tests/codeigniter/core/Log_test.php | 12 ++++++------ tests/mocks/database/ci_test.sqlite | Bin 19456 -> 19456 bytes 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index 927984385..3715949f6 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -9,8 +9,8 @@ class Log_test extends CI_TestCase { $threshold->setAccessible(TRUE); $date_fmt = new ReflectionProperty('CI_Log', '_date_fmt'); $date_fmt->setAccessible(TRUE); - $file_ext = new ReflectionProperty('CI_Log', '_file_ext'); - $file_ext->setAccessible(TRUE); + $filename = new ReflectionProperty('CI_Log', '_log_filename'); + $filename->setAccessible(TRUE); $file_perms = new ReflectionProperty('CI_Log', '_file_permissions'); $file_perms->setAccessible(TRUE); $enabled = new ReflectionProperty('CI_Log', '_enabled'); @@ -19,28 +19,28 @@ class Log_test extends CI_TestCase { $this->ci_set_config('log_path', '/root/'); $this->ci_set_config('log_threshold', 'z'); $this->ci_set_config('log_date_format', 'd.m.Y'); - $this->ci_set_config('log_file_extension', ''); + $this->ci_set_config('log_filename', ''); $this->ci_set_config('log_file_permissions', ''); $instance = new CI_Log(); $this->assertEquals($path->getValue($instance), '/root/'); $this->assertEquals($threshold->getValue($instance), 1); $this->assertEquals($date_fmt->getValue($instance), 'd.m.Y'); - $this->assertEquals($file_ext->getValue($instance), 'php'); + $this->assertEquals($filename->getValue($instance), 'log-'.date('Y-m-d').'.php'); $this->assertEquals($file_perms->getValue($instance), 0644); $this->assertFalse($enabled->getValue($instance)); $this->ci_set_config('log_path', ''); $this->ci_set_config('log_threshold', '0'); $this->ci_set_config('log_date_format', ''); - $this->ci_set_config('log_file_extension', '.log'); + $this->ci_set_config('log_filename', 'testname.log'); $this->ci_set_config('log_file_permissions', 0600); $instance = new CI_Log(); $this->assertEquals($path->getValue($instance), APPPATH.'logs/'); $this->assertEquals($threshold->getValue($instance), 0); $this->assertEquals($date_fmt->getValue($instance), 'Y-m-d H:i:s'); - $this->assertEquals($file_ext->getValue($instance), 'log'); + $this->assertEquals($filename->getValue($instance), 'testname.log'); $this->assertEquals($file_perms->getValue($instance), 0600); $this->assertEquals($enabled->getValue($instance), TRUE); } diff --git a/tests/mocks/database/ci_test.sqlite b/tests/mocks/database/ci_test.sqlite index 721fbd525..d2a28439f 100755 Binary files a/tests/mocks/database/ci_test.sqlite and b/tests/mocks/database/ci_test.sqlite differ -- cgit v1.2.3-24-g4f1b From 004f0a1b41c27e3d40f62a51300599d35c54c0c0 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 21:56:00 +0200 Subject: Polish changes from PR #5373 --- system/core/Loader.php | 18 ++++-------------- tests/mocks/database/ci_test.sqlite | Bin 19456 -> 19456 bytes 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index fb8b73b1f..de08615f3 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -94,7 +94,7 @@ class CI_Loader { protected $_ci_cached_vars = array(); /** - * Stack of variable arrays to provide nested _ci_load calls all variables from parent calls + * Stack of variable arrays to provide nested _ci_load calls with all variables from parent calls * * @var array */ @@ -956,17 +956,10 @@ class CI_Loader { * configuration. */ - // Init current _ci_vars as current variable configuration - if ( ! is_array($_ci_vars)) - { - $_ci_vars = []; - } + is_array($_ci_vars) && $_ci_vars = array(); // Include the global cached vars into the current _ci_vars if needed - if ( ! empty($this->_ci_cached_vars)) - { - $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); - } + empty($this->_ci_cached_vars) OR $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); // Merge the last variable configuration from a parent _ci_load() // call into the current _ci_vars @@ -976,10 +969,7 @@ class CI_Loader { $_ci_vars = array_merge($previous_variable_configuration, $_ci_vars); } - // Push the current _ci_vars to the stack array_push($this->_ci_load_vars_stack, $_ci_vars); - - // Extract the current _ci_vars extract($_ci_vars); /** @@ -998,7 +988,7 @@ class CI_Loader { include($_ci_path); // include() vs include_once() allows for multiple views with the same name log_message('info', 'File loaded: '.$_ci_path); - // Remove current _ci_vars from stack again + // Remove current _ci_vars from stack array_pop($this->_ci_load_vars_stack); // Return the file data if requested diff --git a/tests/mocks/database/ci_test.sqlite b/tests/mocks/database/ci_test.sqlite index d2a28439f..dae2ec2a0 100755 Binary files a/tests/mocks/database/ci_test.sqlite and b/tests/mocks/database/ci_test.sqlite differ -- cgit v1.2.3-24-g4f1b From f85ee8dd6a94529b6974d826b2018cc42dbd17cb Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 22:25:38 +0200 Subject: Drop option to disable Query Builder I don't know if it has ever worked properly, too much things break if you do try to disable it. --- application/config/database.php | 5 --- system/core/Loader.php | 11 ++---- system/database/DB.php | 48 +++++------------------- user_guide_src/source/changelog.rst | 1 + user_guide_src/source/database/configuration.rst | 19 +--------- user_guide_src/source/libraries/sessions.rst | 2 - 6 files changed, 16 insertions(+), 70 deletions(-) diff --git a/application/config/database.php b/application/config/database.php index 77748959f..43a0d2b1c 100644 --- a/application/config/database.php +++ b/application/config/database.php @@ -66,13 +66,8 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | | The $active_group variable lets you choose which connection group to | make active. By default there is only one group (the 'default' group). -| -| The $query_builder variables lets you determine whether or not to load -| the query builder class. */ $active_group = 'default'; -$query_builder = TRUE; - $db['default'] = array( 'dsn' => '', 'hostname' => 'localhost', diff --git a/system/core/Loader.php b/system/core/Loader.php index de08615f3..aea1d82ed 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -375,19 +375,16 @@ class CI_Loader { * * @param mixed $params Database configuration options * @param bool $return Whether to return the database object - * @param bool $query_builder Whether to enable Query Builder - * (overrides the configuration setting) - * * @return object|bool Database object if $return is set to TRUE, * FALSE on failure, CI_Loader instance in any other case */ - public function database($params = '', $return = FALSE, $query_builder = NULL) + public function database($params = '', $return = FALSE) { // Grab the super object $CI =& get_instance(); // Do we even need to load the database class? - if ($return === FALSE && $query_builder === NULL && isset($CI->db) && is_object($CI->db) && ! empty($CI->db->conn_id)) + if ($return === FALSE && isset($CI->db) && is_object($CI->db) && ! empty($CI->db->conn_id)) { return FALSE; } @@ -396,7 +393,7 @@ class CI_Loader { if ($return === TRUE) { - return DB($params, $query_builder); + return DB($params); } // Initialize the db variable. Needed to prevent @@ -404,7 +401,7 @@ class CI_Loader { $CI->db = ''; // Load the DB class - $CI->db =& DB($params, $query_builder); + $CI->db =& DB($params); return $this; } diff --git a/system/database/DB.php b/system/database/DB.php index c42bb6b91..12a0af7d3 100644 --- a/system/database/DB.php +++ b/system/database/DB.php @@ -45,10 +45,8 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @link https://codeigniter.com/userguide3/database/ * * @param string|string[] $params - * @param bool $query_builder_override - * Determines if query builder should be used or not */ -function &DB($params = '', $query_builder_override = NULL) +function &DB($params = '') { // Load the DB config file if a DSN string wasn't passed if (is_string($params) && strpos($params, '://') === FALSE) @@ -149,45 +147,19 @@ function &DB($params = '', $query_builder_override = NULL) show_error('You have not selected a database type to connect to.'); } - // Load the DB classes. Note: Since the query builder class is optional - // we need to dynamically create a class that extends proper parent class - // based on whether we're using the query builder class or not. - if ($query_builder_override !== NULL) - { - $query_builder = $query_builder_override; - } - // Backwards compatibility work-around for keeping the - // $active_record config variable working. Should be - // removed in v3.1 - elseif ( ! isset($query_builder) && isset($active_record)) - { - $query_builder = $active_record; - } - require_once(BASEPATH.'database/DB_driver.php'); - - if ( ! isset($query_builder) OR $query_builder === TRUE) - { - require_once(BASEPATH.'database/DB_query_builder.php'); - if ( ! class_exists('CI_DB', FALSE)) - { - /** - * CI_DB - * - * Acts as an alias for both CI_DB_driver and CI_DB_query_builder. - * - * @see CI_DB_query_builder - * @see CI_DB_driver - */ - class CI_DB extends CI_DB_query_builder { } - } - } - elseif ( ! class_exists('CI_DB', FALSE)) + require_once(BASEPATH.'database/DB_query_builder.php'); + if ( ! class_exists('CI_DB', FALSE)) { /** - * @ignore + * CI_DB + * + * Acts as an alias for both CI_DB_driver and CI_DB_query_builder. + * + * @see CI_DB_query_builder + * @see CI_DB_driver */ - class CI_DB extends CI_DB_driver { } + class CI_DB extends CI_DB_query_builder {} } // Load the DB driver diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index d7a757901..3e858feb3 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -78,6 +78,7 @@ Release Date: Not Released - :doc:`Database ` changes include: + - Removed the option to disable the :doc:`Query Builder `. - Removed driver-specific ``$curs_id`` property and ``get_cursor()``, ``stored_procedure()`` methods from OCI8 driver. - Removed previously deprecated 'sqlite' driver (used for SQLite version 2; no longer shipped with PHP 5.4+). - Removed method ``db_set_charset()`` and the ability to change a connection character set at runtime. diff --git a/user_guide_src/source/database/configuration.rst b/user_guide_src/source/database/configuration.rst index a9bf7dcb6..a783c2ad6 100644 --- a/user_guide_src/source/database/configuration.rst +++ b/user_guide_src/source/database/configuration.rst @@ -132,23 +132,6 @@ variable located in the config file:: default we've used the word "default" for the primary connection, but it too can be renamed to something more relevant to your project. -Query Builder -------------- - -The :doc:`Query Builder Class ` is globally enabled or -disabled by setting the $query_builder variable in the database -configuration file to TRUE/FALSE (boolean). The default setting is TRUE. -If you are not using the -query builder class, setting it to FALSE will utilize fewer resources -when the database classes are initialized. - -:: - - $query_builder = TRUE; - -.. note:: that some CodeIgniter classes such as Sessions require Query - Builder to be enabled to access certain functionality. - Explanation of Values: ---------------------- @@ -156,7 +139,7 @@ Explanation of Values: Name Config Description ====================== =========================================================================================================== **dsn** The DSN connect string (an all-in-one configuration sequence). -**hostname** The hostname of your database server. Often this is 'localhost'. +**hostname** The hostname of your database server. Often this is 'localhost'. **username** The username used to connect to the database. **password** The password used to connect to the database. **database** The name of the database you want to connect to. diff --git a/user_guide_src/source/libraries/sessions.rst b/user_guide_src/source/libraries/sessions.rst index b87508aba..7fe86977a 100644 --- a/user_guide_src/source/libraries/sessions.rst +++ b/user_guide_src/source/libraries/sessions.rst @@ -571,8 +571,6 @@ 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 must have the :doc:`Query Builder ` - enabled. - You can NOT use a persistent connection. - You can NOT use a connection with the *cache_on* setting enabled. -- cgit v1.2.3-24-g4f1b From c9a9d82bbc966c97876c2b6d5bc94ae3f4b4135f Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 22:49:24 +0200 Subject: Fix #5562 --- system/libraries/Cache/drivers/Cache_redis.php | 28 +++++++++++--------------- user_guide_src/source/changelog.rst | 5 +++++ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 9b082d11b..e541237e3 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -95,6 +95,7 @@ class CI_Cache_redis extends CI_Driver * if a Redis connection can't be established. * * @return void + * @throws RedisException * @see Redis::connect() */ public function __construct() @@ -132,26 +133,21 @@ class CI_Cache_redis extends CI_Driver $this->_redis = new Redis(); - try + // The following calls used to be wrapped in a try ... catch + // and just log an error, but that only causes more errors later. + if ( ! $this->_redis->connect($config['host'], ($config['host'][0] === '/' ? 0 : $config['port']), $config['timeout'])) { - if ( ! $this->_redis->connect($config['host'], ($config['host'][0] === '/' ? 0 : $config['port']), $config['timeout'])) - { - log_message('error', 'Cache: Redis connection failed. Check your configuration.'); - } - - if (isset($config['password']) && ! $this->_redis->auth($config['password'])) - { - log_message('error', 'Cache: Redis authentication failed.'); - } + log_message('error', 'Cache: Redis connection failed. Check your configuration.'); + } - if (isset($config['database']) && $config['database'] > 0 && ! $this->_redis->select($config['database'])) - { - log_message('error', 'Cache: Redis select database failed.'); - } + if (isset($config['password']) && ! $this->_redis->auth($config['password'])) + { + log_message('error', 'Cache: Redis authentication failed.'); } - catch (RedisException $e) + + if (isset($config['database']) && $config['database'] > 0 && ! $this->_redis->select($config['database'])) { - log_message('error', 'Cache: Redis connection refused ('.$e->getMessage().')'); + log_message('error', 'Cache: Redis select database failed.'); } } diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 3e858feb3..2a729264e 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -135,6 +135,11 @@ Release Date: Not Released - Added ability to generate ``data:image/png;base64`` URIs instead of writing image files to disk. - Updated to always create PNG images instead of JPEG. +Bug fixes for 3.2.0 +=================== + +- Fixed a bug (#5562) - :doc:`Cache Library ` 'redis' driver would pointlessly attempt to perform its functions if a connection to the Redis server failed. + Version 3.1.12 ============== -- cgit v1.2.3-24-g4f1b From 627f1058c1d72b267ab8ab441219198d6f2c24c6 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 23:02:14 +0200 Subject: Whoops. Broke something in 004f0a1b41c27e3d40f62a51300599d35c54c0c0 --- system/core/Loader.php | 2 +- tests/mocks/database/ci_test.sqlite | Bin 19456 -> 19456 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Loader.php b/system/core/Loader.php index aea1d82ed..2233021a0 100644 --- a/system/core/Loader.php +++ b/system/core/Loader.php @@ -953,7 +953,7 @@ class CI_Loader { * configuration. */ - is_array($_ci_vars) && $_ci_vars = array(); + is_array($_ci_vars) OR $_ci_vars = array(); // Include the global cached vars into the current _ci_vars if needed empty($this->_ci_cached_vars) OR $_ci_vars = array_merge($this->_ci_cached_vars, $_ci_vars); diff --git a/tests/mocks/database/ci_test.sqlite b/tests/mocks/database/ci_test.sqlite index dae2ec2a0..db14455eb 100755 Binary files a/tests/mocks/database/ci_test.sqlite and b/tests/mocks/database/ci_test.sqlite differ -- cgit v1.2.3-24-g4f1b From e837d3589ba5c5da5daa58f69bdc14447c90bc51 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Wed, 5 Jan 2022 23:44:53 +0200 Subject: Drop some previously deprecated functionality --- system/database/DB_forge.php | 10 +--------- system/helpers/string_helper.php | 4 +--- system/helpers/url_helper.php | 15 ++------------- system/libraries/Pagination.php | 8 -------- tests/codeigniter/helpers/string_helper_test.php | 2 +- tests/codeigniter/helpers/url_helper_test.php | 4 ++-- tests/mocks/database/ci_test.sqlite | Bin 19456 -> 19456 bytes user_guide_src/source/changelog.rst | 4 ++++ user_guide_src/source/database/forge.rst | 3 +-- user_guide_src/source/helpers/string_helper.rst | 3 --- user_guide_src/source/helpers/url_helper.rst | 3 --- user_guide_src/source/installation/upgrade_320.rst | 5 +++++ user_guide_src/source/libraries/pagination.rst | 3 --- 13 files changed, 17 insertions(+), 47 deletions(-) diff --git a/system/database/DB_forge.php b/system/database/DB_forge.php index ce9b30d82..f31823536 100644 --- a/system/database/DB_forge.php +++ b/system/database/DB_forge.php @@ -556,25 +556,17 @@ abstract class CI_DB_forge { /** * Column Add * - * @todo Remove deprecated $_after option in 3.1+ * @param string $table Table name * @param array $field Column definition - * @param string $_after Column for AFTER clause (deprecated) * @return bool */ - public function add_column($table, $field, $_after = NULL) + public function add_column($table, $field) { // Work-around for literal column definitions is_array($field) OR $field = array($field); foreach (array_keys($field) as $k) { - // Backwards-compatibility work-around for MySQL/CUBRID AFTER clause (remove in 3.1+) - if ($_after !== NULL && is_array($field[$k]) && ! isset($field[$k]['after'])) - { - $field[$k]['after'] = $_after; - } - $this->add_field(array($k => $field[$k])); } diff --git a/system/helpers/string_helper.php b/system/helpers/string_helper.php index 3a05525db..5b359f730 100644 --- a/system/helpers/string_helper.php +++ b/system/helpers/string_helper.php @@ -170,7 +170,7 @@ if ( ! function_exists('random_string')) /** * Create a "Random" String * - * @param string type of random string. basic, alpha, alnum, numeric, nozero, unique, md5, encrypt and sha1 + * @param string type of random string. basic, alpha, alnum, numeric, nozero, md5 and sha1 * @param int number of characters * @return string */ @@ -200,10 +200,8 @@ if ( ! function_exists('random_string')) break; } return substr(str_shuffle(str_repeat($pool, ceil($len / strlen($pool)))), 0, $len); - case 'unique': // todo: remove in 3.1+ case 'md5': return md5(uniqid(mt_rand())); - case 'encrypt': // todo: remove in 3.1+ case 'sha1': return sha1(uniqid(mt_rand(), TRUE)); } diff --git a/system/helpers/url_helper.php b/system/helpers/url_helper.php index 4c060a203..17601c40c 100644 --- a/system/helpers/url_helper.php +++ b/system/helpers/url_helper.php @@ -470,31 +470,20 @@ if ( ! function_exists('url_title')) * human-friendly URL string with a "separator" string * as the word separator. * - * @todo Remove old 'dash' and 'underscore' usage in 3.1+. * @param string $str Input string - * @param string $separator Word separator - * (usually '-' or '_') + * @param string $separator Word separator (usually '-' or '_') * @param bool $lowercase Whether to transform the output string to lowercase * @return string */ function url_title($str, $separator = '-', $lowercase = FALSE) { - if ($separator === 'dash') - { - $separator = '-'; - } - elseif ($separator === 'underscore') - { - $separator = '_'; - } - $q_separator = preg_quote($separator, '#'); $trans = array( '&.+?;' => '', '[^\w\d _-]' => '', '\s+' => $separator, - '('.$q_separator.')+' => $separator + '('.$q_separator.')+' => $separator, ); $str = strip_tags($str); diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php index 20418c00a..837ac4b32 100644 --- a/system/libraries/Pagination.php +++ b/system/libraries/Pagination.php @@ -363,14 +363,6 @@ class CI_Pagination { unset($params['attributes']); } - // Deprecated legacy support for the anchor_class option - // Should be removed in CI 3.1+ - if (isset($params['anchor_class'])) - { - empty($params['anchor_class']) OR $attributes['class'] = $params['anchor_class']; - unset($params['anchor_class']); - } - foreach ($params as $key => $val) { if (property_exists($this, $key)) diff --git a/tests/codeigniter/helpers/string_helper_test.php b/tests/codeigniter/helpers/string_helper_test.php index 4f15909ff..f6d473a41 100644 --- a/tests/codeigniter/helpers/string_helper_test.php +++ b/tests/codeigniter/helpers/string_helper_test.php @@ -98,7 +98,7 @@ class String_helper_test extends CI_TestCase { public function test_random_string() { $this->assertEquals(16, strlen(random_string('alnum', 16))); - $this->assertEquals(32, strlen(random_string('unique', 16))); + $this->assertEquals(32, strlen(random_string('md5', 16))); $this->assertEquals('string', gettype(random_string('numeric', 16))); } diff --git a/tests/codeigniter/helpers/url_helper_test.php b/tests/codeigniter/helpers/url_helper_test.php index 5f936568b..1b295511e 100644 --- a/tests/codeigniter/helpers/url_helper_test.php +++ b/tests/codeigniter/helpers/url_helper_test.php @@ -21,7 +21,7 @@ class Url_helper_test extends CI_TestCase { foreach ($words as $in => $out) { - $this->assertEquals($out, url_title($in, 'dash', TRUE)); + $this->assertEquals($out, url_title($in, '-', TRUE)); } } @@ -41,7 +41,7 @@ class Url_helper_test extends CI_TestCase { foreach ($words as $in => $out) { - $this->assertEquals($out, url_title($in, 'underscore')); + $this->assertEquals($out, url_title($in, '_')); } } diff --git a/tests/mocks/database/ci_test.sqlite b/tests/mocks/database/ci_test.sqlite index db14455eb..36e4ae5de 100755 Binary files a/tests/mocks/database/ci_test.sqlite and b/tests/mocks/database/ci_test.sqlite differ diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 2a729264e..80a5ca0e9 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -39,6 +39,7 @@ Release Date: Not Released - Removed previously deprecated *Cart Library*. - Removed previously deprecated *Javascript Library* (it was always experimental in the first place). + - Removed previously deprecated ``anchor_class`` option from :doc:`Pagination Library `. - Added TLS and UNIX socket connection support to :doc:`Session Library ` 'redis' driver. - Updated :doc:`ZIP Library ` method ``read_dir()`` to include hidden (dot-prefixed) files. @@ -88,6 +89,7 @@ Release Date: Not Released - :doc:`Database Forge `: - Added support for declaring date/time type fields default values as ``CURRENT_TIMESTAMP`` and similar. + - Removed previously deprecated ``$_after`` parameter for ``add_column()``. - :doc:`Query Builder `: @@ -103,6 +105,7 @@ Release Date: Not Released - Removed previously deprecated :doc:`Date Helper ` function ``standard_date()`` (use PHP's native ``date()`` instead). - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). + - Removed previously deprecated options ``'dash'`` and ``'underscore'`` from :doc:`URL Helper ` function :php:func:`url_title()`. - Added new function :php:func:`ordinal_format()` to :doc:`Inflector Helper `. - :doc:`Download Helper ` changes include: @@ -115,6 +118,7 @@ Release Date: Not Released - Removed previously deprecated function ``trim_slashes()`` (use PHP's native ``trim()`` with ``'/'`` instead). - Removed previously deprecated function ``repeater()`` (use PHP's native ``str_repeat()`` instead). + - Removed previously deprecated ``'unique'`` and ``'encrypt'`` options from ``random_string()``. - :doc:`HTML Helper ` changes include: diff --git a/user_guide_src/source/database/forge.rst b/user_guide_src/source/database/forge.rst index c6cacb1b0..1562a1a2d 100644 --- a/user_guide_src/source/database/forge.rst +++ b/user_guide_src/source/database/forge.rst @@ -322,11 +322,10 @@ Class Reference .. php:class:: CI_DB_forge - .. php:method:: add_column($table[, $field = array()[, $_after = NULL]]) + .. php:method:: add_column($table[, $field = array()]) :param string $table: Table name to add the column to :param array $field: Column definition(s) - :param string $_after: Column for AFTER clause (deprecated) :returns: TRUE on success, FALSE on failure :rtype: bool diff --git a/user_guide_src/source/helpers/string_helper.rst b/user_guide_src/source/helpers/string_helper.rst index 4663bb08b..c9b5e278c 100644 --- a/user_guide_src/source/helpers/string_helper.rst +++ b/user_guide_src/source/helpers/string_helper.rst @@ -52,9 +52,6 @@ The following functions are available: echo random_string('alnum', 16); - .. note:: Usage of the *unique* and *encrypt* types is DEPRECATED. They - are just aliases for *md5* and *sha1* respectively. - .. php:function:: increment_string($str[, $separator = '_'[, $first = 1]]) :param string $str: Input string diff --git a/user_guide_src/source/helpers/url_helper.rst b/user_guide_src/source/helpers/url_helper.rst index adeab8c58..037e613ea 100644 --- a/user_guide_src/source/helpers/url_helper.rst +++ b/user_guide_src/source/helpers/url_helper.rst @@ -298,9 +298,6 @@ The following functions are available: $url_title = url_title($title, 'underscore'); // Produces: Whats_wrong_with_CSS - .. note:: Old usage of 'dash' and 'underscore' as the second parameter - is DEPRECATED. - The third parameter determines whether or not lowercase characters are forced. By default they are not. Options are boolean TRUE/FALSE. diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 48914c414..715e8858d 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -231,6 +231,11 @@ CodeIgniter versions that have been removed in 3.2.0: - The entire *Smiley Helper* (an archived version is available on GitHub: `bcit-ci/ci3-smiley-helper `_) +- The ``$_after`` parameter from :doc:`Database Forge <../database/forge>` method ``add_column()``. +- The ``anchor_class`` option from :doc:`Pagination Library <../libraries/pagination>` (use ``class`` instead). +- The ``unique`` and ``encrypt`` options from :doc:`String Helper <../helpers/string_helper>` function ``random_string()``. +- The ``underscore`` and ``dash`` options from :doc:`URL Helper <../helpers/url_helper>`` function :php:func:`url_title()`. + Step 11: Make sure you're validating all user inputs ==================================================== diff --git a/user_guide_src/source/libraries/pagination.rst b/user_guide_src/source/libraries/pagination.rst index fbc75ea56..760f50c94 100644 --- a/user_guide_src/source/libraries/pagination.rst +++ b/user_guide_src/source/libraries/pagination.rst @@ -277,9 +277,6 @@ by the pagination class, you can set them as key/value pairs in the // Produces: class="myclass" $config['attributes'] = array('class' => 'myclass'); -.. note:: Usage of the old method of setting classes via "anchor_class" - is deprecated. - ***************************** Disabling the "rel" attribute ***************************** -- cgit v1.2.3-24-g4f1b From aae89a56a3e1b61b6a840dc455657e5e4952cf24 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 6 Jan 2022 00:09:30 +0200 Subject: Drop more deprecated functionality --- system/helpers/captcha_helper.php | 11 ++-- system/helpers/date_helper.php | 66 --------------------- system/libraries/Form_validation.php | 5 -- tests/codeigniter/helpers/date_helper_test.php | 8 --- tests/mocks/database/ci_test.sqlite | Bin 19456 -> 19456 bytes user_guide_src/source/changelog.rst | 9 ++- user_guide_src/source/helpers/captcha_helper.rst | 9 +-- user_guide_src/source/helpers/date_helper.rst | 27 --------- user_guide_src/source/installation/upgrade_320.rst | 3 + 9 files changed, 14 insertions(+), 124 deletions(-) diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php index 6fce05267..43b98b71f 100644 --- a/system/helpers/captcha_helper.php +++ b/system/helpers/captcha_helper.php @@ -54,13 +54,10 @@ if ( ! function_exists('create_captcha')) /** * Create CAPTCHA * - * @param array $data Data for the CAPTCHA - * @param string $img_path Path to create the image in (deprecated) - * @param string $img_url URL to the CAPTCHA image folder (deprecated) - * @param string $font_path Server path to font (deprecated) - * @return string + * @param array $data Data for the CAPTCHA + * @return array */ - function create_captcha($data = '', $img_path = '', $img_url = '', $font_path = '') + function create_captcha($data) { $defaults = array( 'word' => '', @@ -106,7 +103,7 @@ if ( ! function_exists('create_captcha')) if ($img_path === '' OR $img_url === '') { - log_message('error', 'create_captcha(): $img_path and $img_url are required.'); + log_message('error', 'create_captcha(): img_path and img_url are required.'); return FALSE; } diff --git a/system/helpers/date_helper.php b/system/helpers/date_helper.php index db9e9642d..f04bdcc30 100644 --- a/system/helpers/date_helper.php +++ b/system/helpers/date_helper.php @@ -450,72 +450,6 @@ if ( ! function_exists('human_to_unix')) // ------------------------------------------------------------------------ -if ( ! function_exists('nice_date')) -{ - /** - * Turns many "reasonably-date-like" strings into something - * that is actually useful. This only works for dates after unix epoch. - * - * @deprecated 3.1.3 Use DateTime::createFromFormat($input_format, $input)->format($output_format); - * @param string The terribly formatted date-like string - * @param string Date format to return (same as php date function) - * @return string - */ - function nice_date($bad_date = '', $format = FALSE) - { - if (empty($bad_date)) - { - return 'Unknown'; - } - elseif (empty($format)) - { - $format = 'U'; - } - - // Date like: YYYYMM - if (preg_match('/^\d{6}$/i', $bad_date)) - { - if (in_array(substr($bad_date, 0, 2), array('19', '20'))) - { - $year = substr($bad_date, 0, 4); - $month = substr($bad_date, 4, 2); - } - else - { - $month = substr($bad_date, 0, 2); - $year = substr($bad_date, 2, 4); - } - - return date($format, strtotime($year.'-'.$month.'-01')); - } - - // Date Like: YYYYMMDD - if (preg_match('/^\d{8}$/i', $bad_date, $matches)) - { - return DateTime::createFromFormat('Ymd', $bad_date)->format($format); - } - - // Date Like: MM-DD-YYYY __or__ M-D-YYYY (or anything in between) - if (preg_match('/^(\d{1,2})-(\d{1,2})-(\d{4})$/i', $bad_date, $matches)) - { - return date($format, strtotime($matches[3].'-'.$matches[1].'-'.$matches[2])); - } - - // Any other kind of string, when converted into UNIX time, - // produces "0 seconds after epoc..." is probably bad... - // return "Invalid Date". - if (date('U', strtotime($bad_date)) === '0') - { - return 'Invalid Date'; - } - - // It's probably a valid-ish date format already - return date($format, strtotime($bad_date)); - } -} - -// ------------------------------------------------------------------------ - if ( ! function_exists('timezone_menu')) { /** diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 043a97c6d..ce844686c 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -851,11 +851,6 @@ class CI_Form_validation { { return $line; } - // DEPRECATED support for non-prefixed keys, lang file again - elseif (FALSE !== ($line = $this->CI->lang->line($rule, FALSE))) - { - return $line; - } return $this->CI->lang->line('form_validation_error_message_not_set').'('.$rule.')'; } diff --git a/tests/codeigniter/helpers/date_helper_test.php b/tests/codeigniter/helpers/date_helper_test.php index 8d0317dcb..82db3b3de 100644 --- a/tests/codeigniter/helpers/date_helper_test.php +++ b/tests/codeigniter/helpers/date_helper_test.php @@ -10,14 +10,6 @@ class Date_helper_test extends CI_TestCase { // ------------------------------------------------------------------------ - public function test_nice_date() - { - $this->assertEquals('2016-11-01', nice_date('201611', 'Y-m-d')); - $this->assertEquals('2016-11-23', nice_date('20161123', 'Y-m-d')); - } - - // ------------------------------------------------------------------------ - public function test_now_local() { /* diff --git a/tests/mocks/database/ci_test.sqlite b/tests/mocks/database/ci_test.sqlite index 36e4ae5de..84f09add2 100755 Binary files a/tests/mocks/database/ci_test.sqlite and b/tests/mocks/database/ci_test.sqlite differ diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 80a5ca0e9..b9a9e2015 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -56,6 +56,7 @@ Release Date: Not Released - :doc:`Form Validation Library ` changes include: - Removed previously deprecated method ``prep_for_form()`` / rule *prep_for_form*. + - Removed previously deprecated ability to use language translations without the ``'form_validation_'`` prefix. - Changed method ``set_rules()`` to throw a ``BadMethodCallException`` when its first parameter is not an array and the ``$rules`` one is unused. - Added rule **valid_mac**, which replicates PHP's native ``filter_var()`` with ``FILTER_VALIDATE_MAC``. - Added ability to validate entire arrays at once, if ``is_array`` is within the list of rules. @@ -103,6 +104,7 @@ Release Date: Not Released - Removed previously deprecated *Email Helper* (had only two functions, aliases for PHP's native ``filter_var()`` and ``mail()``). - Removed previously deprecated *Smiley Helper*. - Removed previously deprecated :doc:`Date Helper ` function ``standard_date()`` (use PHP's native ``date()`` instead). + - Removed previously deprecated :doc:`Date Helper ` function ``nice_date()`` (use PHP's native ``DateTime::format()`` instead). - Removed previously deprecated :doc:`Security Helper ` function ``do_hash()`` (use PHP's native ``hash()`` instead). - Removed previously deprecated :doc:`File Helper ` function ``read_file()`` (use PHP's native ``file_get_contents()`` instead). - Removed previously deprecated options ``'dash'`` and ``'underscore'`` from :doc:`URL Helper ` function :php:func:`url_title()`. @@ -138,6 +140,7 @@ Release Date: Not Released - Added 'img_class' option. - Added ability to generate ``data:image/png;base64`` URIs instead of writing image files to disk. - Updated to always create PNG images instead of JPEG. + - Removed previously deprecated usage with ``$img_path``, ``$img_url``, ``$font_path`` as extra parameters instead of array options. Bug fixes for 3.2.0 =================== @@ -411,7 +414,7 @@ Release Date: Jan 09, 2017 - Deprecated ``$config['allow_get_array']``. - Deprecated ``$config['standardize_newlines']``. - - Deprecated :doc:`Date Helper ` function :php:func:`nice_date()`. + - Deprecated :doc:`Date Helper ` function ``nice_date()``. Bug fixes for 3.1.3 ------------------- @@ -423,7 +426,7 @@ Bug fixes for 3.1.3 - Fixed a bug (#4902) - :doc:`Image Manipulation Library ` processing via ImageMagick didn't work. - Fixed a bug (#4905) - :doc:`Loader Library ` didn't take into account possible user-provided directory paths when loading helpers. - Fixed a bug (#4916) - :doc:`Session Library ` with ``sess_match_ip`` enabled was unusable for IPv6 clients when using the 'database' driver on MySQL 5.7.5+. -- Fixed a bug (#4917) - :doc:`Date Helper ` function :php:func:`nice_date()` didn't handle YYYYMMDD inputs properly. +- Fixed a bug (#4917) - :doc:`Date Helper ` function ``nice_date()`` didn't handle YYYYMMDD inputs properly. - Fixed a bug (#4923) - :doc:`Session Library ` could execute an erroneous SQL query with the 'database' driver, if the lock attempt times out. - Fixed a bug (#4927) - :doc:`Output Library ` method ``get_header()`` returned the first matching header, regardless of whether it would be replaced by a second ``set_header()`` call. - Fixed a bug (#4844) - :doc:`Email Library ` didn't apply ``escapeshellarg()`` to the while passing the Sendmail ``-f`` parameter through ``popen()``. @@ -1464,7 +1467,7 @@ Bug fixes for 3.0 - Fixed a bug in :doc:`Query Builder ` method ``protect_identifiers()`` where if passed along with the field names, operators got escaped as well. - Fixed a bug (#10) - :doc:`URI Library ` internal method ``_detect_uri()`` failed with paths containing a colon. - Fixed a bug (#1387) - :doc:`Query Builder ` method ``from()`` didn't escape table aliases. -- Fixed a bug (#520) - :doc:`Date Helper ` function :php:func:``nice_date()`` failed when the optional second parameter is not passed. +- Fixed a bug (#520) - :doc:`Date Helper ` function ``nice_date()`` failed when the optional second parameter is not passed. - Fixed a bug (#318) - :doc:`Profiling Library ` setting *query_toggle_count* was not settable as described in the manual. - Fixed a bug (#938) - :doc:`Config Library ` method ``site_url()`` added a question mark to the URL string when query strings are enabled even if it already existed. - Fixed a bug (#999) - :doc:`Config Library ` method ``site_url()`` always appended ``$config['url_suffix']`` to the end of the URL string, regardless of whether a query string exists in it. diff --git a/user_guide_src/source/helpers/captcha_helper.rst b/user_guide_src/source/helpers/captcha_helper.rst index a1c13c5c8..f8d97596a 100644 --- a/user_guide_src/source/helpers/captcha_helper.rst +++ b/user_guide_src/source/helpers/captcha_helper.rst @@ -129,12 +129,9 @@ Available Functions The following functions are available: -.. php:function:: create_captcha([$data = ''[, $img_path = ''[, $img_url = ''[, $font_path = '']]]]) +.. php:function:: create_captcha($data) :param array $data: Array of data for the CAPTCHA - :param string $img_path: Path to create the image in (DEPRECATED) - :param string $img_url: URL to the CAPTCHA image folder (DEPRECATED) - :param string $font_path: Server path to font (DEPRECATED) :returns: array('word' => $word, 'time' => $now, 'image' => $img) :rtype: array @@ -159,7 +156,3 @@ The following functions are available: The **word** is the word that appears in the captcha image, which if not supplied to the function, will be a random string. - - .. note:: Usage of the ``$img_path``, ``$img_url`` and ``$font_path`` - parameters is DEPRECATED. Provide them in the ``$data`` array - instead. diff --git a/user_guide_src/source/helpers/date_helper.rst b/user_guide_src/source/helpers/date_helper.rst index c63a9d291..1f6b93cda 100644 --- a/user_guide_src/source/helpers/date_helper.rst +++ b/user_guide_src/source/helpers/date_helper.rst @@ -157,33 +157,6 @@ The following functions are available: $human = unix_to_human($now); $unix = human_to_unix($human); -.. php:function:: nice_date([$bad_date = ''[, $format = FALSE]]) - - :param int $bad_date: The terribly formatted date-like string - :param string $format: Date format to return (same as PHP's ``date()`` function) - :returns: Formatted date - :rtype: string - - This function can take a number poorly-formed date formats and convert - them into something useful. It also accepts well-formed dates. - - The function will return a UNIX timestamp by default. You can, optionally, - pass a format string (the same type as the PHP ``date()`` function accepts) - as the second parameter. - - Example:: - - $bad_date = '199605'; - // Should Produce: 1996-05-01 - $better_date = nice_date($bad_date, 'Y-m-d'); - - $bad_date = '9-11-2001'; - // Should Produce: 2001-09-11 - $better_date = nice_date($bad_date, 'Y-m-d'); - - .. note:: This function is DEPRECATED. Use PHP's native `DateTime class - `_ instead. - .. php:function:: timespan([$seconds = 1[, $time = ''[, $units = '']]]) :param int $seconds: Number of seconds diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 715e8858d..368871d7d 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -213,6 +213,7 @@ CodeIgniter versions that have been removed in 3.2.0: - ``CI_Form_validation::prep_for_form()`` (the *prep_for_form* rule) - ``standard_date()`` :doc:`Date Helper <../helpers/date_helper>` function (use ``date()`` instead) +- ``nice_date()`` :doc:`Date Helper <../helpers/date_helper>` function (use ``DateTime::format()`` instead) - ``do_hash()`` :doc:`Security Helper <../helpers/security_helper>` function (use ``hash()`` instead) - ``br()`` :doc:`HTML Helper <../helpers/html_helper>` function (use ``str_repeat()`` with ``'
      '`` instead) - ``nbs()`` :doc:`HTML Helper <../helpers/html_helper>` function (use ``str_repeat()`` with ``' '`` instead) @@ -235,6 +236,8 @@ CodeIgniter versions that have been removed in 3.2.0: - The ``anchor_class`` option from :doc:`Pagination Library <../libraries/pagination>` (use ``class`` instead). - The ``unique`` and ``encrypt`` options from :doc:`String Helper <../helpers/string_helper>` function ``random_string()``. - The ``underscore`` and ``dash`` options from :doc:`URL Helper <../helpers/url_helper>`` function :php:func:`url_title()`. +- The ``$img_path``, ``$img_url`` and ``$font_path`` parameters from + :doc:`CAPCHA Helper <../helpers/captcha_helper>` function :php:func:`create_captcha()` (pass as array options instead). Step 11: Make sure you're validating all user inputs ==================================================== -- cgit v1.2.3-24-g4f1b From a4ad60e91d8da62a04c7f2bfc9c50c611f858352 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Thu, 6 Jan 2022 00:23:13 +0200 Subject: Finally drop CI_Encrypt --- system/libraries/Encrypt.php | 521 --------------------- tests/codeigniter/libraries/Encrypt_test.php | 79 ---- tests/mocks/database/ci_test.sqlite | Bin 19456 -> 19456 bytes tests/mocks/libraries/encrypt.php | 16 - user_guide_src/source/changelog.rst | 15 +- user_guide_src/source/installation/upgrade_200.rst | 6 +- user_guide_src/source/installation/upgrade_220.rst | 13 +- user_guide_src/source/installation/upgrade_300.rst | 11 +- user_guide_src/source/installation/upgrade_320.rst | 1 + user_guide_src/source/libraries/encrypt.rst | 198 -------- user_guide_src/source/libraries/encryption.rst | 4 +- 11 files changed, 24 insertions(+), 840 deletions(-) delete mode 100644 system/libraries/Encrypt.php delete mode 100644 tests/codeigniter/libraries/Encrypt_test.php delete mode 100644 tests/mocks/libraries/encrypt.php delete mode 100644 user_guide_src/source/libraries/encrypt.rst diff --git a/system/libraries/Encrypt.php b/system/libraries/Encrypt.php deleted file mode 100644 index df1af4cf4..000000000 --- a/system/libraries/Encrypt.php +++ /dev/null @@ -1,521 +0,0 @@ -_mcrypt_exists = function_exists('mcrypt_encrypt')) === FALSE) - { - show_error('The Encrypt library requires the Mcrypt extension.'); - } - - log_message('info', 'Encrypt Class Initialized'); - } - - // -------------------------------------------------------------------- - - /** - * Fetch the encryption key - * - * Returns it as MD5 in order to have an exact-length 128 bit key. - * Mcrypt is sensitive to keys that are not the correct length - * - * @param string - * @return string - */ - public function get_key($key = '') - { - if ($key === '') - { - if ($this->encryption_key !== '') - { - return $this->encryption_key; - } - - $key = config_item('encryption_key'); - - if ( ! self::strlen($key)) - { - show_error('In order to use the encryption class requires that you set an encryption key in your config file.'); - } - } - - return md5($key); - } - - // -------------------------------------------------------------------- - - /** - * Set the encryption key - * - * @param string - * @return CI_Encrypt - */ - public function set_key($key = '') - { - $this->encryption_key = $key; - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Encode - * - * Encodes the message string using bitwise XOR encoding. - * The key is combined with a random hash, and then it - * too gets converted using XOR. The whole thing is then run - * through mcrypt using the randomized key. The end result - * is a double-encrypted message string that is randomized - * with each call to this function, even if the supplied - * message and key are the same. - * - * @param string the string to encode - * @param string the key - * @return string - */ - public function encode($string, $key = '') - { - return base64_encode($this->mcrypt_encode($string, $this->get_key($key))); - } - - // -------------------------------------------------------------------- - - /** - * Decode - * - * Reverses the above process - * - * @param string - * @param string - * @return string - */ - public function decode($string, $key = '') - { - if (preg_match('/[^a-zA-Z0-9\/\+=]/', $string) OR base64_encode(base64_decode($string)) !== $string) - { - return FALSE; - } - - return $this->mcrypt_decode(base64_decode($string), $this->get_key($key)); - } - - // -------------------------------------------------------------------- - - /** - * Encode from Legacy - * - * Takes an encoded string from the original Encryption class algorithms and - * returns a newly encoded string using the improved method added in 2.0.0 - * This allows for backwards compatibility and a method to transition to the - * new encryption algorithms. - * - * For more details, see https://codeigniter.com/userguide3/installation/upgrade_200.html#encryption - * - * @param string - * @param int (mcrypt mode constant) - * @param string - * @return string - */ - public function encode_from_legacy($string, $legacy_mode = MCRYPT_MODE_ECB, $key = '') - { - if (preg_match('/[^a-zA-Z0-9\/\+=]/', $string)) - { - return FALSE; - } - - // decode it first - // set mode temporarily to what it was when string was encoded with the legacy - // algorithm - typically MCRYPT_MODE_ECB - $current_mode = $this->_get_mode(); - $this->set_mode($legacy_mode); - - $key = $this->get_key($key); - $dec = base64_decode($string); - if (($dec = $this->mcrypt_decode($dec, $key)) === FALSE) - { - $this->set_mode($current_mode); - return FALSE; - } - - $dec = $this->_xor_decode($dec, $key); - - // set the mcrypt mode back to what it should be, typically MCRYPT_MODE_CBC - $this->set_mode($current_mode); - - // and re-encode - return base64_encode($this->mcrypt_encode($dec, $key)); - } - - // -------------------------------------------------------------------- - - /** - * XOR Decode - * - * Takes an encoded string and key as input and generates the - * plain-text original message - * - * @param string - * @param string - * @return string - */ - protected function _xor_decode($string, $key) - { - $string = $this->_xor_merge($string, $key); - - $dec = ''; - for ($i = 0, $l = self::strlen($string); $i < $l; $i++) - { - $dec .= ($string[$i++] ^ $string[$i]); - } - - return $dec; - } - - // -------------------------------------------------------------------- - - /** - * XOR key + string Combiner - * - * Takes a string and key as input and computes the difference using XOR - * - * @param string - * @param string - * @return string - */ - protected function _xor_merge($string, $key) - { - $hash = $this->hash($key); - $str = ''; - - for ($i = 0, $ls = self::strlen($string), $lh = self::strlen($hash); $i < $ls; $i++) - { - $str .= $string[$i] ^ $hash[($i % $lh)]; - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Encrypt using Mcrypt - * - * @param string - * @param string - * @return string - */ - public function mcrypt_encode($data, $key) - { - $init_size = mcrypt_get_iv_size($this->_get_cipher(), $this->_get_mode()); - $init_vect = mcrypt_create_iv($init_size, MCRYPT_DEV_URANDOM); - return $this->_add_cipher_noise($init_vect.mcrypt_encrypt($this->_get_cipher(), $key, $data, $this->_get_mode(), $init_vect), $key); - } - - // -------------------------------------------------------------------- - - /** - * Decrypt using Mcrypt - * - * @param string - * @param string - * @return string - */ - public function mcrypt_decode($data, $key) - { - $data = $this->_remove_cipher_noise($data, $key); - $init_size = mcrypt_get_iv_size($this->_get_cipher(), $this->_get_mode()); - - if ($init_size > self::strlen($data)) - { - return FALSE; - } - - $init_vect = self::substr($data, 0, $init_size); - $data = self::substr($data, $init_size); - - return rtrim(mcrypt_decrypt($this->_get_cipher(), $key, $data, $this->_get_mode(), $init_vect), "\0"); - } - - // -------------------------------------------------------------------- - - /** - * Adds permuted noise to the IV + encrypted data to protect - * against Man-in-the-middle attacks on CBC mode ciphers - * http://www.ciphersbyritter.com/GLOSSARY.HTM#IV - * - * @param string - * @param string - * @return string - */ - protected function _add_cipher_noise($data, $key) - { - $key = $this->hash($key); - $str = ''; - - for ($i = 0, $j = 0, $ld = self::strlen($data), $lk = self::strlen($key); $i < $ld; ++$i, ++$j) - { - if ($j >= $lk) - { - $j = 0; - } - - $str .= chr((ord($data[$i]) + ord($key[$j])) % 256); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Removes permuted noise from the IV + encrypted data, reversing - * _add_cipher_noise() - * - * Function description - * - * @param string $data - * @param string $key - * @return string - */ - protected function _remove_cipher_noise($data, $key) - { - $key = $this->hash($key); - $str = ''; - - for ($i = 0, $j = 0, $ld = self::strlen($data), $lk = self::strlen($key); $i < $ld; ++$i, ++$j) - { - if ($j >= $lk) - { - $j = 0; - } - - $temp = ord($data[$i]) - ord($key[$j]); - - if ($temp < 0) - { - $temp += 256; - } - - $str .= chr($temp); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Set the Mcrypt Cipher - * - * @param int - * @return CI_Encrypt - */ - public function set_cipher($cipher) - { - $this->_mcrypt_cipher = $cipher; - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Set the Mcrypt Mode - * - * @param int - * @return CI_Encrypt - */ - public function set_mode($mode) - { - $this->_mcrypt_mode = $mode; - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Get Mcrypt cipher Value - * - * @return int - */ - protected function _get_cipher() - { - if ($this->_mcrypt_cipher === NULL) - { - return $this->_mcrypt_cipher = MCRYPT_RIJNDAEL_256; - } - - return $this->_mcrypt_cipher; - } - - // -------------------------------------------------------------------- - - /** - * Get Mcrypt Mode Value - * - * @return int - */ - protected function _get_mode() - { - if ($this->_mcrypt_mode === NULL) - { - return $this->_mcrypt_mode = MCRYPT_MODE_CBC; - } - - return $this->_mcrypt_mode; - } - - // -------------------------------------------------------------------- - - /** - * Set the Hash type - * - * @param string - * @return void - */ - public function set_hash($type = 'sha1') - { - $this->_hash_type = in_array($type, hash_algos()) ? $type : 'sha1'; - } - - // -------------------------------------------------------------------- - - /** - * Hash encode a string - * - * @param string - * @return string - */ - public function hash($str) - { - return hash($this->_hash_type, $str); - } - - // -------------------------------------------------------------------- - - /** - * Byte-safe strlen() - * - * @param string $str - * @return int - */ - protected static function strlen($str) - { - return defined('MB_OVERLOAD_STRING') - ? mb_strlen($str, '8bit') - : strlen($str); - } - - // -------------------------------------------------------------------- - - /** - * Byte-safe substr() - * - * @param string $str - * @param int $start - * @param int $length - * @return string - */ - protected static function substr($str, $start, $length = NULL) - { - if (defined('MB_OVERLOAD_STRING')) - { - // mb_substr($str, $start, null, '8bit') returns an empty - // string on PHP 5.3 - isset($length) OR $length = ($start >= 0 ? self::strlen($str) - $start : -$start); - return mb_substr($str, $start, $length, '8bit'); - } - - return isset($length) - ? substr($str, $start, $length) - : substr($str, $start); - } -} diff --git a/tests/codeigniter/libraries/Encrypt_test.php b/tests/codeigniter/libraries/Encrypt_test.php deleted file mode 100644 index adbca31b2..000000000 --- a/tests/codeigniter/libraries/Encrypt_test.php +++ /dev/null @@ -1,79 +0,0 @@ -=')) - { - return $this->markTestSkipped('ext/mcrypt is deprecated since PHP 7.1 and will generate notices here.'); - } - - $this->encrypt = new Mock_Libraries_Encrypt(); - $this->ci_instance_var('encrypt', $this->encrypt); - - $this->ci_set_config('encryption_key', "Encryptin'glike@boss!"); - $this->msg = 'My secret message'; - } - - // -------------------------------------------------------------------- - - public function test_encode() - { - $this->assertNotEquals($this->msg, $this->encrypt->encode($this->msg)); - } - - // -------------------------------------------------------------------- - - public function test_decode() - { - $encoded_msg = $this->encrypt->encode($this->msg); - $this->assertEquals($this->msg, $this->encrypt->decode($encoded_msg)); - } - - // -------------------------------------------------------------------- - - public function test_optional_key() - { - $key = 'Ohai!ù0129°03182%HD1892P0'; - $encoded_msg = $this->encrypt->encode($this->msg, $key); - $this->assertEquals($this->msg, $this->encrypt->decode($encoded_msg, $key)); - } - - // -------------------------------------------------------------------- - - public function test_default_cipher() - { - $this->assertEquals('rijndael-256', $this->encrypt->get_cipher()); - } - - // -------------------------------------------------------------------- - - public function test_set_cipher() - { - $this->encrypt->set_cipher(MCRYPT_BLOWFISH); - $this->assertEquals('blowfish', $this->encrypt->get_cipher()); - } - - // -------------------------------------------------------------------- - - public function test_default_mode() - { - $this->assertEquals('cbc', $this->encrypt->get_mode()); - } - - // -------------------------------------------------------------------- - - public function test_set_mode() - { - $this->encrypt->set_mode(MCRYPT_MODE_CFB); - $this->assertEquals('cfb', $this->encrypt->get_mode()); - } - -} diff --git a/tests/mocks/database/ci_test.sqlite b/tests/mocks/database/ci_test.sqlite index 84f09add2..502913725 100755 Binary files a/tests/mocks/database/ci_test.sqlite and b/tests/mocks/database/ci_test.sqlite differ diff --git a/tests/mocks/libraries/encrypt.php b/tests/mocks/libraries/encrypt.php deleted file mode 100644 index c14d1e02f..000000000 --- a/tests/mocks/libraries/encrypt.php +++ /dev/null @@ -1,16 +0,0 @@ -`. @@ -368,10 +369,10 @@ Release Date: Mar 20, 2017 - **Security** - Fixed a header injection vulnerability in :doc:`common function ` :php:func:`set_status_header()` under Apache (thanks to Guillermo Caminer from `Flowgate `_). - - Fixed byte-safety issues in :doc:`Encrypt Library ` (DEPRECATED) when ``mbstring.func_overload`` is enabled. + - Fixed byte-safety issues in **Encrypt Library** (DEPRECATED) when ``mbstring.func_overload`` is enabled. - Fixed byte-safety issues in :doc:`Encryption Library ` when ``mbstring.func_overload`` is enabled. - Fixed byte-safety issues in :doc:`compatibility functions ` ``password_hash()``, ``hash_pbkdf2()`` when ``mbstring.func_overload`` is enabled. - - Updated :doc:`Encrypt Library ` (DEPRECATED) to call ``mcrypt_create_iv()`` with ``MCRYPT_DEV_URANDOM``. + - Updated **Encrypt Library** (DEPRECATED) to call ``mcrypt_create_iv()`` with ``MCRYPT_DEV_URANDOM``. - General Changes @@ -1079,9 +1080,9 @@ Release Date: March 30, 2015 - Libraries - - Added a new :doc:`Encryption Library ` to replace the old, largely insecure :doc:`Encrypt Library `. + - Added a new :doc:`Encryption Library ` to replace the old, largely insecure **Encrypt Library**. - - :doc:`Encrypt Library ` changes include: + - **Encrypt Library** changes include: - Deprecated the library in favor of the new :doc:`Encryption Library `. - Added support for hashing algorithms other than SHA1 and MD5. @@ -1462,7 +1463,7 @@ Bug fixes for 3.0 - Fixed a bug (#1264) - :doc:`Database Forge ` and :doc:`Database Utilities ` didn't update/reset the databases and tables list cache when a table or a database is created, dropped or renamed. - Fixed a bug (#7) - :doc:`Query Builder ` method ``join()`` only escaped one set of conditions. - Fixed a bug (#1321) - ``CI_Exceptions`` couldn't find the *errors/* directory in some cases. -- Fixed a bug (#1202) - :doc:`Encrypt Library ` ``encode_from_legacy()`` didn't set back the encrypt mode on failure. +- Fixed a bug (#1202) - **Encrypt Library** ``encode_from_legacy()`` didn't set back the encrypt mode on failure. - Fixed a bug (#145) - :doc:`Database Class ` method ``compile_binds()`` failed when the bind marker was present in a literal string within the query. - Fixed a bug in :doc:`Query Builder ` method ``protect_identifiers()`` where if passed along with the field names, operators got escaped as well. - Fixed a bug (#10) - :doc:`URI Library ` internal method ``_detect_uri()`` failed with paths containing a colon. @@ -1632,7 +1633,7 @@ Release Date: June 2, 2014 - General Changes - - Security: :doc:`Encrypt Library ` method ``xor_encode()`` has been removed. The Encrypt Class now requires the Mcrypt extension to be installed. + - Security: **Encrypt Library** method ``xor_encode()`` has been removed. The Encrypt Class now requires the Mcrypt extension to be installed. - Security: The :doc:`Session Library ` now uses HMAC authentication instead of a simple MD5 checksum. Bug fixes for 2.2.0 @@ -2241,7 +2242,7 @@ Hg Tag: v2.0.0 - Documented append_output() in the :doc:`Output Class `. - Documented a second argument in the decode() function for the - :doc:`Encrypt Class `. + **Encrypt Class**. - Documented db->close(). - Updated the router to support a default route with any number of segments. diff --git a/user_guide_src/source/installation/upgrade_200.rst b/user_guide_src/source/installation/upgrade_200.rst index 03b8ff4ac..96256b13a 100644 --- a/user_guide_src/source/installation/upgrade_200.rst +++ b/user_guide_src/source/installation/upgrade_200.rst @@ -64,9 +64,7 @@ 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 :doc:`how to use this -method <../libraries/encrypt>` in the Encrypt library -documentation. +Please read how to use this in the Encrypt library documentation. Step 5: Remove loading calls for the compatibility helper. ========================================================== @@ -145,4 +143,4 @@ The following files have been changed: The following files have been added: - foreign_chars.php -- profiler.php \ No newline at end of file +- profiler.php diff --git a/user_guide_src/source/installation/upgrade_220.rst b/user_guide_src/source/installation/upgrade_220.rst index 489dd6312..c87148ca1 100644 --- a/user_guide_src/source/installation/upgrade_220.rst +++ b/user_guide_src/source/installation/upgrade_220.rst @@ -2,12 +2,11 @@ Upgrading from 2.1.4 to 2.2.x ############################# -.. note:: The :doc:`Encrypt Class ` now requires the - Mcrypt extension. If you were previously using the Encrypt Class - without Mcrypt, then this is a breaking change. You must install - the Mcrypt extension in order to upgrade. For information on - installing Mcrypt please see the PHP `documentation - `. +.. note:: The **Encrypt Class** now requires the Mcrypt extension. If you + were previously using the Encrypt Class without Mcrypt, then this + is a breaking change. You must install the Mcrypt extension in + order to upgrade. For information on installing Mcrypt please see + the PHP `documentation `. Before performing an update you should take your site offline by replacing the index.php file with a static one. @@ -18,4 +17,4 @@ Step 1: Update your CodeIgniter files Replace all files and directories in your "system" folder. .. note:: If you have any custom developed files in these folders please - make copies of them first. \ No newline at end of file + make copies of them first. diff --git a/user_guide_src/source/installation/upgrade_300.rst b/user_guide_src/source/installation/upgrade_300.rst index 188144844..03a7b579c 100644 --- a/user_guide_src/source/installation/upgrade_300.rst +++ b/user_guide_src/source/installation/upgrade_300.rst @@ -520,7 +520,7 @@ The SHA1 library The previously deprecated SHA1 library has been removed, alter your code to use PHP's native ``sha1()`` function to generate a SHA1 hash. -Additionally, the ``sha1()`` method in the :doc:`Encrypt Library <../libraries/encrypt>` has been removed. +Additionally, the ``sha1()`` method in the **Encrypt Library** has been removed. The EXT constant ================ @@ -541,17 +541,16 @@ Also, the previously deprecated ``js_insert_smiley()`` (since version 1.7.2) is The Encrypt library =================== -Following numerous vulnerability reports, the :doc:`Encrypt Library <../libraries/encrypt>` has -been deprecated and a new, :doc:`Encryption Library <../libraries/encryption>` is added to take -its place. +Following numerous vulnerability reports, the **Encrypt Library** has been deprecated and a +new, :doc:`Encryption Library <../libraries/encryption>` is added to take its place. The new library requires either the `MCrypt extension `_ (and /dev/urandom availability) or PHP 5.3.3 and the `OpenSSL extension `_. While this might be rather inconvenient, it is a requirement that allows us to have properly implemented cryptographic functions. -.. note:: The :doc:`Encrypt Library <../libraries/encrypt>` is still available for the purpose - of keeping backwards compatibility. +.. note:: The **Encrypt Library** is still available for the purpose of keeping + backwards compatibility. .. important:: You are strongly encouraged to switch to the new :doc:`Encryption Library <../libraries/encryption>` as soon as possible! diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index 368871d7d..c70ff707c 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -222,6 +222,7 @@ CodeIgniter versions that have been removed in 3.2.0: - ``read_file()`` :doc:`File Helper <../helpers/file_helper>` function (use ``file_get_contents()`` instead) - ``form_prep()`` :doc:`Form Helper <../helpers/form_helper>` function (use :php:func:`html_escape()` instead) +- The entire *Encrypt Library* (the newer :doc:`Encryption Library <../libraries/encryption>` is still available) - The entire *Cart Library* (an archived version is available on GitHub: `bcit-ci/ci3-cart-library `_) - The entire *Javascript Library* (it was always experimental in the first place) diff --git a/user_guide_src/source/libraries/encrypt.rst b/user_guide_src/source/libraries/encrypt.rst deleted file mode 100644 index 10893b901..000000000 --- a/user_guide_src/source/libraries/encrypt.rst +++ /dev/null @@ -1,198 +0,0 @@ -############# -Encrypt Class -############# - -The Encrypt Class provides two-way data encryption. It encrypted using -the Mcrypt PHP extension, which is required for the Encrypt Class to run. - -.. important:: This library has been DEPRECATED and is only kept for - backwards compatibility. Please use the new :doc:`Encryption Library - `. - -.. contents:: - :local: - -.. raw:: html - -
      - -************************* -Using the Encrypt Library -************************* - -Setting your Key -================ - -A *key* is a piece of information that controls the cryptographic -process and permits an encrypted string to be decoded. In fact, the key -you chose will provide the **only** means to decode data that was -encrypted with that key, so not only must you choose the key carefully, -you must never change it if you intend use it for persistent data. - -It goes without saying that you should guard your key carefully. Should -someone gain access to your key, the data will be easily decoded. If -your server is not totally under your control it's impossible to ensure -key security so you may want to think carefully before using it for -anything that requires high security, like storing credit card numbers. - -To take maximum advantage of the encryption algorithm, your key should -be 32 characters in length (256 bits). The key should be as random a -string as you can concoct, with numbers and uppercase and lowercase -letters. Your key should **not** be a simple text string. In order to be -cryptographically secure it needs to be as random as possible. - -Your key can be either stored in your **application/config/config.php**, or -you can design your own storage mechanism and pass the key dynamically -when encoding/decoding. - -To save your key to your **application/config/config.php**, open the file -and set:: - - $config['encryption_key'] = "YOUR KEY"; - -Message Length -============== - -It's important for you to know that the encoded messages the encryption -function generates will be approximately 2.6 times longer than the -original message. For example, if you encrypt the string "my super -secret data", which is 21 characters in length, you'll end up with an -encoded string that is roughly 55 characters (we say "roughly" because -the encoded string length increments in 64 bit clusters, so it's not -exactly linear). Keep this information in mind when selecting your data -storage mechanism. Cookies, for example, can only hold 4K of -information. - -Initializing the Class -====================== - -Like most other classes in CodeIgniter, the Encrypt class is -initialized in your controller using the ``$this->load->library()`` -method:: - - $this->load->library('encrypt'); - -Once loaded, the Encrypt library object will be available using:: - - $this->encrypt - -*************** -Class Reference -*************** - -.. php:class:: CI_Encrypt - - .. php:method:: encode($string[, $key = '']) - - :param string $string: Data to encrypt - :param string $key: Encryption key - :returns: Encrypted string - :rtype: string - - Performs the data encryption and returns it as a string. Example:: - - $msg = 'My secret message'; - - $encrypted_string = $this->encrypt->encode($msg); - - You can optionally pass your encryption key via the second parameter if - you don't want to use the one in your config file:: - - $msg = 'My secret message'; - $key = 'super-secret-key'; - - $encrypted_string = $this->encrypt->encode($msg, $key); - - .. php:method:: decode($string[, $key = '']) - - :param string $string: String to decrypt - :param string $key: Encryption key - :returns: Plain-text string - :rtype: string - - Decrypts an encoded string. Example:: - - $encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84'; - - $plaintext_string = $this->encrypt->decode($encrypted_string); - - You can optionally pass your encryption key via the second parameter if - you don't want to use the one in your config file:: - - $msg = 'My secret message'; - $key = 'super-secret-key'; - - $encrypted_string = $this->encrypt->decode($msg, $key); - - .. php:method:: set_cipher($cipher) - - :param int $cipher: Valid PHP MCrypt cypher constant - :returns: CI_Encrypt instance (method chaining) - :rtype: CI_Encrypt - - Permits you to set an Mcrypt cipher. By default it uses - ``MCRYPT_RIJNDAEL_256``. Example:: - - $this->encrypt->set_cipher(MCRYPT_BLOWFISH); - - Please visit php.net for a list of `available ciphers `_. - - If you'd like to manually test whether your server supports MCrypt you - can use:: - - echo extension_loaded('mcrypt') ? 'Yup' : 'Nope'; - - .. php:method:: set_mode($mode) - - :param int $mode: Valid PHP MCrypt mode constant - :returns: CI_Encrypt instance (method chaining) - :rtype: CI_Encrypt - - Permits you to set an Mcrypt mode. By default it uses **MCRYPT_MODE_CBC**. - Example:: - - $this->encrypt->set_mode(MCRYPT_MODE_CFB); - - Please visit php.net for a list of `available modes `_. - - .. php:method:: encode_from_legacy($string[, $legacy_mode = MCRYPT_MODE_ECB[, $key = '']]) - - :param string $string: String to encrypt - :param int $legacy_mode: Valid PHP MCrypt cipher constant - :param string $key: Encryption key - :returns: Newly encrypted string - :rtype: string - - Enables you to re-encode data that was originally encrypted with - CodeIgniter 1.x to be compatible with the Encrypt library in - CodeIgniter 2.x. It is only necessary to use this method if you have - encrypted data stored permanently such as in a file or database and are - on a server that supports Mcrypt. "Light" use encryption such as - encrypted session data or transitory encrypted flashdata require no - intervention on your part. However, existing encrypted Sessions will be - destroyed since data encrypted prior to 2.x will not be decoded. - - .. important:: - **Why only a method to re-encode the data instead of maintaining legacy - methods for both encoding and decoding?** The algorithms in the - Encrypt library have improved in CodeIgniter 2.x both for performance - and security, and we do not wish to encourage continued use of the older - methods. You can of course extend the Encryption library if you wish and - replace the new methods with the old and retain seamless compatibility - with CodeIgniter 1.x encrypted data, but this a decision that a - developer should make cautiously and deliberately, if at all. - - :: - - $new_data = $this->encrypt->encode_from_legacy($old_encrypted_string); - - ====================== =============== ======================================================================= - Parameter Default Description - ====================== =============== ======================================================================= - **$orig_data** n/a The original encrypted data from CodeIgniter 1.x's Encryption library - **$legacy_mode** MCRYPT_MODE_ECB The Mcrypt mode that was used to generate the original encrypted data. - CodeIgniter 1.x's default was MCRYPT_MODE_ECB, and it will assume that - to be the case unless overridden by this parameter. - **$key** n/a The encryption key. This it typically specified in your config file as - outlined above. - ====================== =============== ======================================================================= \ No newline at end of file diff --git a/user_guide_src/source/libraries/encryption.rst b/user_guide_src/source/libraries/encryption.rst index 833a56c09..643818aa4 100644 --- a/user_guide_src/source/libraries/encryption.rst +++ b/user_guide_src/source/libraries/encryption.rst @@ -280,8 +280,8 @@ Configuring the library ======================= For usability, performance, but also historical reasons tied to our old -:doc:`Encrypt Class `, the Encryption library is designed to -use repeatedly the same driver, encryption cipher, mode and key. +**Encrypt Class**, the Encryption library is designed to use repeatedly +the same driver, encryption cipher, mode and key. As noted in the "Default behavior" section above, this means using an auto-detected driver (OpenSSL has a higher priority), the AES-128 ciper -- cgit v1.2.3-24-g4f1b From e32b608aef116d4b2fecabb3745b1b8fe4f6004d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 8 Jan 2022 01:32:39 +0200 Subject: [ci skip] Fix CI_Session_driver_interface for PHP 5 (ref #6078) --- system/libraries/Session/OldSessionWrapper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/OldSessionWrapper.php b/system/libraries/Session/OldSessionWrapper.php index 5934b5218..a8bc1d0c0 100644 --- a/system/libraries/Session/OldSessionWrapper.php +++ b/system/libraries/Session/OldSessionWrapper.php @@ -49,7 +49,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); */ class CI_SessionWrapper implements SessionHandlerInterface { - protected CI_Session_driver_interface $driver; + protected $driver; public function __construct(CI_Session_driver_interface $driver) { -- cgit v1.2.3-24-g4f1b From 77d825a1e91046e1846efc54e777f641e23f31a7 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 8 Jan 2022 16:57:19 +0200 Subject: [ci skip] Actually use the Session wrapper (ref #6078) --- system/libraries/Session/Session.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index 5a5fc8766..a62a86f7f 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -107,17 +107,17 @@ class CI_Session { $wrapper = new CI_SessionWrapper($class); if (is_php('5.4')) { - session_set_save_handler($class, TRUE); + session_set_save_handler($wrapper, TRUE); } else { session_set_save_handler( - array($class, 'open'), - array($class, 'close'), - array($class, 'read'), - array($class, 'write'), - array($class, 'destroy'), - array($class, 'gc') + array($wrapper, 'open'), + array($wrapper, 'close'), + array($wrapper, 'read'), + array($wrapper, 'write'), + array($wrapper, 'destroy'), + array($wrapper, 'gc') ); register_shutdown_function('session_write_close'); -- cgit v1.2.3-24-g4f1b From 0f7525b6d8ab426b6e973ebb177f96159aec69a4 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 8 Jan 2022 17:02:48 +0200 Subject: [ci skip] Attempt to hack SameSite into session_set_cookie_params() pre-PHP7.3 --- system/libraries/Session/Session.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php index a62a86f7f..cef5ba499 100644 --- a/system/libraries/Session/Session.php +++ b/system/libraries/Session/Session.php @@ -333,7 +333,7 @@ class CI_Session { { session_set_cookie_params( $params['cookie_lifetime'], - $params['cookie_path'], + $params['cookie_path'].'; SameSite='.$params['cookie_samesite'], $params['cookie_domain'], $params['cookie_secure'], TRUE // HttpOnly; Yes, this is intentional and not configurable for security reasons -- cgit v1.2.3-24-g4f1b From e2caa77d0afa700adf9bfa029c453ea59f1e368d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 8 Jan 2022 21:48:42 +0200 Subject: Fix #92 --- system/helpers/file_helper.php | 5 +++-- tests/mocks/database/ci_test.sqlite | Bin 19456 -> 19456 bytes user_guide_src/source/changelog.rst | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/system/helpers/file_helper.php b/system/helpers/file_helper.php index 398d11afd..c3b35d96d 100644 --- a/system/helpers/file_helper.php +++ b/system/helpers/file_helper.php @@ -227,8 +227,9 @@ if ( ! function_exists('get_dir_file_info')) } elseif ($file[0] !== '.') { - $_filedata[$file] = get_file_info($source_dir.$file); - $_filedata[$file]['relative_path'] = $relative_path; + $filedata = get_dir_file_info($source_dir.$file); + $filedata['relative_path'] = $relative_path; + $_filedata[] = $filedata; } } diff --git a/tests/mocks/database/ci_test.sqlite b/tests/mocks/database/ci_test.sqlite index 502913725..71306e2f0 100755 Binary files a/tests/mocks/database/ci_test.sqlite and b/tests/mocks/database/ci_test.sqlite differ diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index 5d98e7554..cfe0ceba7 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -147,6 +147,7 @@ Bug fixes for 3.2.0 =================== - Fixed a bug (#5562) - :doc:`Cache Library ` 'redis' driver would pointlessly attempt to perform its functions if a connection to the Redis server failed. +- Fixed a bug (#92) - :doc:`File Helper ` function :php:func:`get_dir_file_info()` output could have colliding array keys. Version 3.1.12 ============== -- cgit v1.2.3-24-g4f1b From 829d37d571df54943418ab133e5c1196ed098502 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sat, 8 Jan 2022 22:39:06 +0200 Subject: .gitignore tests/mocks/database/ci_test.sqlite --- .gitignore | 1 + tests/mocks/database/ci_test.sqlite | Bin 19456 -> 0 bytes 2 files changed, 1 insertion(+) delete mode 100755 tests/mocks/database/ci_test.sqlite diff --git a/.gitignore b/.gitignore index 269044ea9..323f06468 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ application/logs/* !application/*/.htaccess composer.lock +tests/mocks/database/ci_test.sqlite user_guide_src/build/* user_guide_src/cilexer/build/* diff --git a/tests/mocks/database/ci_test.sqlite b/tests/mocks/database/ci_test.sqlite deleted file mode 100755 index 71306e2f0..000000000 Binary files a/tests/mocks/database/ci_test.sqlite and /dev/null differ -- cgit v1.2.3-24-g4f1b From d314be05ec50dace2cd8dc94b81e285208bc3a76 Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sun, 9 Jan 2022 09:24:18 +0200 Subject: Set error_reporting=E_ALL for unit tests --- .github/workflows/test-phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-phpunit.yml b/.github/workflows/test-phpunit.yml index a0765e883..e5ad97a44 100644 --- a/.github/workflows/test-phpunit.yml +++ b/.github/workflows/test-phpunit.yml @@ -114,6 +114,6 @@ jobs: - name: PHPUnit Test run: | - php -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/${{ matrix.DB }}.phpunit.xml + php -d error_reporting=E_ALL -d zend.enable_gc=0 -d date.timezone=UTC -d mbstring.func_overload=7 -d mbstring.internal_encoding=UTF-8 vendor/bin/phpunit --coverage-text --configuration tests/travis/${{ matrix.DB }}.phpunit.xml env: XDEBUG_MODE: coverage -- cgit v1.2.3-24-g4f1b From f4c2c4cb533b0e9cc7a01d4ff29db829970fd60d Mon Sep 17 00:00:00 2001 From: Andrey Andreev Date: Sun, 16 Jan 2022 04:00:34 +0200 Subject: [ci skip] Fix a documentation typo --- user_guide_src/source/installation/upgrade_320.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/installation/upgrade_320.rst b/user_guide_src/source/installation/upgrade_320.rst index c70ff707c..6308fa7fa 100644 --- a/user_guide_src/source/installation/upgrade_320.rst +++ b/user_guide_src/source/installation/upgrade_320.rst @@ -275,7 +275,7 @@ methods that were specific to it and not present in other database drivers. The ``$curs_id`` property is also removed. If you were using those, you can create your own cursors via ``oci_new_cursor()`` -and the publicly accessible ``$conn_id()``. +and the publicly accessible ``$conn_id``. Stop 14: Replace $config['log_file_extension'] with $config['log_filename'] in application/config/config.php ============================================================================================================ -- cgit v1.2.3-24-g4f1b From 8d4b34ed567f21851ad81b1dcd9dc917850e6527 Mon Sep 17 00:00:00 2001 From: Jamie Burchell Date: Fri, 28 Jan 2022 09:58:27 +0000 Subject: Default $final_output to string instead of NULL Fixes https://github.com/bcit-ci/CodeIgniter/issues/6089 --- system/core/Output.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/core/Output.php b/system/core/Output.php index 7f153ef77..b29794ffa 100644 --- a/system/core/Output.php +++ b/system/core/Output.php @@ -55,7 +55,7 @@ class CI_Output { * * @var string */ - public $final_output; + public $final_output = ''; /** * Cache expiration time -- cgit v1.2.3-24-g4f1b From 05d2877cc169d9f31f43e42a7c6aea5dd10facaf Mon Sep 17 00:00:00 2001 From: Svennd Date: Wed, 9 Feb 2022 21:13:25 +0100 Subject: Update Profiler.php check for null value on $val --- system/libraries/Profiler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index 5531f3366..3c6a464d3 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -496,7 +496,7 @@ class CI_Profiler { } $output .= '' - .$config.'  '.$pre.htmlspecialchars($val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; + .$config.'  '.$pre.htmlspecialchars((($val) ? $val :''), ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; -- cgit v1.2.3-24-g4f1b From 9d30b03e35d6ed04ac287118f8d62625e81f9923 Mon Sep 17 00:00:00 2001 From: Svennd Date: Thu, 10 Feb 2022 08:52:09 +0100 Subject: Update Profiler.php fix it with string casting instead, based on feedback of jamieburchell :) thanks ! --- system/libraries/Profiler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index 3c6a464d3..65eb3c3e3 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -496,7 +496,7 @@ class CI_Profiler { } $output .= '' - .$config.'  '.$pre.htmlspecialchars((($val) ? $val :''), ENT_QUOTES, config_item('charset')).$pre_close."\n"; + .$config.'  '.$pre.htmlspecialchars((string)$val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; @@ -534,7 +534,7 @@ class CI_Profiler { } $output .= '' - .$key.'  '.$pre.htmlspecialchars($val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; + .$key.'  '.$pre.htmlspecialchars((string)$val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; -- cgit v1.2.3-24-g4f1b From dafbbba4f0ce775b7a70f37ba12ee85b65a941b1 Mon Sep 17 00:00:00 2001 From: Toto Prayogo Date: Fri, 11 Feb 2022 21:30:15 +0700 Subject: whitespaces --- system/core/Security.php | 1 - system/database/drivers/mysql/mysql_forge.php | 1 - system/helpers/html_helper.php | 1 - system/libraries/Cache/drivers/Cache_redis.php | 1 - system/libraries/Session/drivers/Session_files_driver.php | 2 +- system/libraries/Xmlrpc.php | 2 +- 6 files changed, 2 insertions(+), 6 deletions(-) diff --git a/system/core/Security.php b/system/core/Security.php index aac308194..a25c27c54 100644 --- a/system/core/Security.php +++ b/system/core/Security.php @@ -656,7 +656,6 @@ class CI_Security { return $output; } - if (is_readable('/dev/urandom') && ($fp = fopen('/dev/urandom', 'rb')) !== FALSE) { // Try not to waste entropy ... diff --git a/system/database/drivers/mysql/mysql_forge.php b/system/database/drivers/mysql/mysql_forge.php index e59366bed..85101bdd9 100644 --- a/system/database/drivers/mysql/mysql_forge.php +++ b/system/database/drivers/mysql/mysql_forge.php @@ -185,7 +185,6 @@ class CI_DB_mysql_forge extends CI_DB_forge { $extra_clause = ' FIRST'; } - return $this->db->escape_identifiers($field['name']) .(empty($field['new_name']) ? '' : ' '.$this->db->escape_identifiers($field['new_name'])) .' '.$field['type'].$field['length'] diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php index 531ae2251..715515199 100644 --- a/system/helpers/html_helper.php +++ b/system/helpers/html_helper.php @@ -133,7 +133,6 @@ if ( ! function_exists('_list')) // Write the opening list tag .'<'.$type._stringify_attributes($attributes).">\n"; - // Cycle through the list elements. If an array is // encountered we will recursively call _list() diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index e541237e3..466a891f7 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -69,7 +69,6 @@ class CI_Cache_redis extends CI_Driver */ protected $_redis; - /** * del()/delete() method name depending on phpRedis version * diff --git a/system/libraries/Session/drivers/Session_files_driver.php b/system/libraries/Session/drivers/Session_files_driver.php index 4b7b9878b..c912fc71d 100644 --- a/system/libraries/Session/drivers/Session_files_driver.php +++ b/system/libraries/Session/drivers/Session_files_driver.php @@ -35,7 +35,7 @@ * @link https://codeigniter.com * @since Version 3.0.0 * @filesource -*/ + */ defined('BASEPATH') OR exit('No direct script access allowed'); /** diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 11d4400fe..ce39fceb2 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -1909,7 +1909,7 @@ class XML_RPC_Values extends CI_Xmlrpc * @param int unix timestamp * @param bool * @return string - */ + */ public function iso8601_encode($time, $utc = FALSE) { return ($utc) ? date('Ymd\TH:i:s', $time) : gmdate('Ymd\TH:i:s', $time); -- cgit v1.2.3-24-g4f1b From affe39415ddded1174cf405e4f86d56850197493 Mon Sep 17 00:00:00 2001 From: Svennd Date: Fri, 11 Feb 2022 16:34:07 +0100 Subject: required spaces around cast --- system/libraries/Profiler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index 65eb3c3e3..cf178663e 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -496,7 +496,7 @@ class CI_Profiler { } $output .= '' - .$config.'  '.$pre.htmlspecialchars((string)$val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; + .$config.'  '.$pre.htmlspecialchars( (string) $val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; @@ -534,7 +534,7 @@ class CI_Profiler { } $output .= '' - .$key.'  '.$pre.htmlspecialchars((string)$val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; + .$key.'  '.$pre.htmlspecialchars( (string) $val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; -- cgit v1.2.3-24-g4f1b From 7e25c1830dfd61fe38d370e0b2e0f6c740265fac Mon Sep 17 00:00:00 2001 From: Svennd Date: Sat, 12 Feb 2022 20:33:55 +0100 Subject: feedback from narfbg --- system/libraries/Profiler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Profiler.php b/system/libraries/Profiler.php index cf178663e..5abc324dc 100644 --- a/system/libraries/Profiler.php +++ b/system/libraries/Profiler.php @@ -496,7 +496,7 @@ class CI_Profiler { } $output .= '' - .$config.'  '.$pre.htmlspecialchars( (string) $val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; + .$config.'  '.$pre.htmlspecialchars((string) $val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; @@ -534,7 +534,7 @@ class CI_Profiler { } $output .= '' - .$key.'  '.$pre.htmlspecialchars( (string) $val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; + .$key.'  '.$pre.htmlspecialchars((string) $val, ENT_QUOTES, config_item('charset')).$pre_close."\n"; } return $output."\n"; -- cgit v1.2.3-24-g4f1b From 1af4c2b7485eb8bc233a84825beb9a75183bdd24 Mon Sep 17 00:00:00 2001 From: Philippe Meunier Date: Thu, 17 Feb 2022 14:06:06 -0500 Subject: Fix method _is_conn() in Ftp library, was returning incorrect result for valid connection making it impossible to use FTP --- system/libraries/Ftp.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php index 92644153a..a406f819e 100644 --- a/system/libraries/Ftp.php +++ b/system/libraries/Ftp.php @@ -202,7 +202,7 @@ class CI_FTP { */ protected function _is_conn() { - if ($this->conn_id !== FALSE) + if ($this->conn_id === FALSE) { if ($this->debug === TRUE) { -- cgit v1.2.3-24-g4f1b From 48432138b967eb52203d30d70a5d1aacfbbbcacb Mon Sep 17 00:00:00 2001 From: Thomas Nguyen Date: Thu, 3 Mar 2022 16:08:34 +1300 Subject: Fix SessionUpdateTimestampHandlerInterface name --- system/libraries/Session/SessionUpdateTimestampHandlerInterface.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/SessionUpdateTimestampHandlerInterface.php b/system/libraries/Session/SessionUpdateTimestampHandlerInterface.php index 4495a1b7a..fe4a321ab 100644 --- a/system/libraries/Session/SessionUpdateTimestampHandlerInterface.php +++ b/system/libraries/Session/SessionUpdateTimestampHandlerInterface.php @@ -49,7 +49,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); * @author Andrey Andreev * @link https://codeigniter.com/userguide3/libraries/sessions.html */ -interface SessionHandlerInterface { +interface SessionUpdateTimestampHandlerInterface { public function updateTimestamp($session_id, $data); public function validateId($session_id); -- cgit v1.2.3-24-g4f1b From ca00ea86443d2b1563b0e1b51ce8225bd315e69e Mon Sep 17 00:00:00 2001 From: Mouad Err Date: Tue, 21 Jun 2022 14:15:11 +0100 Subject: Bug Fix: [cookie_helper.php] set_cookie was missing sameSite argument --- system/helpers/cookie_helper.php | 4 ++-- user_guide_src/source/helpers/cookie_helper.rst | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/system/helpers/cookie_helper.php b/system/helpers/cookie_helper.php index 2ea9c2901..0325e3db3 100644 --- a/system/helpers/cookie_helper.php +++ b/system/helpers/cookie_helper.php @@ -68,10 +68,10 @@ if ( ! function_exists('set_cookie')) * @param bool true makes the cookie accessible via http(s) only (no javascript) * @return void */ - function set_cookie($name, $value = '', $expire = 0, $domain = '', $path = '/', $prefix = '', $secure = NULL, $httponly = NULL) + function set_cookie($name, $value = '', $expire = 0, $domain = '', $path = '/', $prefix = '', $secure = NULL, $httponly = NULL, $samesite = NULL) { // Set the config file options - get_instance()->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure, $httponly); + get_instance()->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure, $httponly, $samesite); } } diff --git a/user_guide_src/source/helpers/cookie_helper.rst b/user_guide_src/source/helpers/cookie_helper.rst index 25c4c3a0b..741b297d6 100644 --- a/user_guide_src/source/helpers/cookie_helper.rst +++ b/user_guide_src/source/helpers/cookie_helper.rst @@ -25,7 +25,7 @@ Available Functions The following functions are available: -.. php:function:: set_cookie($name[, $value = ''[, $expire = 0[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = NULL[, $httponly = NULL]]]]]]]) +.. php:function:: set_cookie($name[, $value = ''[, $expire = 0[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = NULL[, $httponly = NULL[, $samesite = NULL]]]]]]]]) :param mixed $name: Cookie name *or* associative array of all of the parameters available to this function :param string $value: Cookie value @@ -35,6 +35,7 @@ The following functions are available: :param string $prefix: Cookie name prefix :param bool $secure: Whether to only send the cookie through HTTPS :param bool $httponly: Whether to hide the cookie from JavaScript + :param string $samesite: SameSite attribute ('Lax', 'Strict', 'None') :rtype: void This helper function gives you friendlier syntax to set browser -- cgit v1.2.3-24-g4f1b From 3efe7f0d070ad530208ea4f732708c1e660df0a7 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Sun, 26 Jun 2022 16:11:29 +0300 Subject: Fixes #6141 --- system/libraries/Session/drivers/Session_redis_driver.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Session/drivers/Session_redis_driver.php b/system/libraries/Session/drivers/Session_redis_driver.php index 2614aa37e..4d822d585 100644 --- a/system/libraries/Session/drivers/Session_redis_driver.php +++ b/system/libraries/Session/drivers/Session_redis_driver.php @@ -143,7 +143,7 @@ class CI_Session_redis_driver extends CI_Session_driver implements CI_Session_dr $save_path = array( 'host' => $matches[1], 'port' => empty($matches[2]) ? NULL : $matches[2], - 'timeout' => NULL // We always pass this to Redis::connect(), so it needs to exist + 'timeout' => 0.0 // We always pass this to Redis::connect(), so it needs to exist ); } else -- cgit v1.2.3-24-g4f1b From 8d80bef64b79f6cddc1e631760d862c563b525bf Mon Sep 17 00:00:00 2001 From: László Bóra Date: Sun, 24 Jul 2022 14:48:31 +0200 Subject: fixes #6149 remove deprecated variable variables / string interpolation in variable names --- system/database/DB_query_builder.php | 6 +++--- system/libraries/Xmlrpc.php | 2 +- system/libraries/Xmlrpcs.php | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index e57333ff9..de6aa04fc 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -692,11 +692,11 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $k = substr($k, 0, $match[0][1]).($match[1][0] === '=' ? ' IS NULL' : ' IS NOT NULL'); } - ${$qb_key} = array('condition' => $prefix.$k, 'value' => $v, 'escape' => $escape); - $this->{$qb_key}[] = ${$qb_key}; + $$qb_key = array('condition' => $prefix.$k, 'value' => $v, 'escape' => $escape); + $this->{$qb_key}[] = $$qb_key; if ($this->qb_caching === TRUE) { - $this->{$qb_cache_key}[] = ${$qb_key}; + $this->{$qb_cache_key}[] = $$qb_key; $this->qb_cache_exists[] = substr($qb_key, 3); } diff --git a/system/libraries/Xmlrpc.php b/system/libraries/Xmlrpc.php index 876232c5c..8587015e8 100644 --- a/system/libraries/Xmlrpc.php +++ b/system/libraries/Xmlrpc.php @@ -1719,7 +1719,7 @@ class XML_RPC_Values extends CI_Xmlrpc if ($typeof != 1) { - echo 'XML_RPC_Values: not a scalar type (${typeof})
      '; + echo "XML_RPC_Values: not a scalar type ($typeof)
      "; return 0; } diff --git a/system/libraries/Xmlrpcs.php b/system/libraries/Xmlrpcs.php index b91d3fcb3..eb5a24c49 100644 --- a/system/libraries/Xmlrpcs.php +++ b/system/libraries/Xmlrpcs.php @@ -551,8 +551,8 @@ class CI_Xmlrpcs extends CI_Xmlrpc { */ public function multicall_error($err) { - $str = is_string($err) ? $this->xmlrpcstr["multicall_${err}"] : $err->faultString(); - $code = is_string($err) ? $this->xmlrpcerr["multicall_${err}"] : $err->faultCode(); + $str = is_string($err) ? $this->xmlrpcstr["multicall_$err"] : $err->faultString(); + $code = is_string($err) ? $this->xmlrpcerr["multicall_$err"] : $err->faultCode(); $struct['faultCode'] = new XML_RPC_Values($code, 'int'); $struct['faultString'] = new XML_RPC_Values($str, 'string'); -- cgit v1.2.3-24-g4f1b From 526fc02a29dc85148682ae38b5b3256c9d999435 Mon Sep 17 00:00:00 2001 From: Alex <93376818+sashashura@users.noreply.github.com> Date: Mon, 29 Aug 2022 13:29:46 +0100 Subject: Update test-phpunit.yml --- .github/workflows/test-phpunit.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test-phpunit.yml b/.github/workflows/test-phpunit.yml index e5ad97a44..81e4dc5e2 100644 --- a/.github/workflows/test-phpunit.yml +++ b/.github/workflows/test-phpunit.yml @@ -2,6 +2,9 @@ name: PHPUnit on: [push, pull_request] +permissions: + contents: read + jobs: tests: runs-on: ubuntu-18.04 -- cgit v1.2.3-24-g4f1b From 517b9aec99df26283d283c6fa9793b64c1188332 Mon Sep 17 00:00:00 2001 From: tenzap Date: Thu, 10 Nov 2022 21:54:35 +0100 Subject: Adapt unit tests so as not to fail with PHPUnit 8.5 When the phpunit tests are run with phpunit 8.5, they will fail because the test would call assertMatchesRegularExpression which doesn't exists in that version. So check the existence of the method instead of checking the class 'PHPUnit_Runner_Version'. --- tests/codeigniter/core/Security_test.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/codeigniter/core/Security_test.php b/tests/codeigniter/core/Security_test.php index 5132e5887..4d76f4265 100644 --- a/tests/codeigniter/core/Security_test.php +++ b/tests/codeigniter/core/Security_test.php @@ -253,9 +253,9 @@ class Security_test extends CI_TestCase { // Perform hash $this->security->xss_hash(); - $assertRegExp = class_exists('PHPUnit_Runner_Version') - ? 'assertRegExp' - : 'assertMatchesRegularExpression'; + $assertRegExp = method_exists($this, 'assertMatchesRegularExpression') + ? 'assertMatchesRegularExpression' + : 'assertRegExp'; $this->$assertRegExp('#^[0-9a-f]{32}$#iS', $this->security->xss_hash); } -- cgit v1.2.3-24-g4f1b From 48972be24650a61efa9acd1532b5f091e21b8e9c Mon Sep 17 00:00:00 2001 From: jediodev Date: Sun, 27 Nov 2022 12:10:34 +0100 Subject: In the tutorial, fix a bad sentence New text is: two methods to view news items: one for [...] and one for [...] Signed-off-by: jediodev --- user_guide_src/source/tutorial/news_section.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/tutorial/news_section.rst b/user_guide_src/source/tutorial/news_section.rst index 286d620dc..0953b8e72 100644 --- a/user_guide_src/source/tutorial/news_section.rst +++ b/user_guide_src/source/tutorial/news_section.rst @@ -116,7 +116,7 @@ so it can be used in all other methods in this controller. It also loads a collection of :doc:`URL Helper <../helpers/url_helper>` functions, because we'll use one of them in a view later. -Next, there are two methods to view all news items and one for a specific +Next, there are two methods to view news items: one for all news items and one for a specific news item. You can see that the ``$slug`` variable is passed to the model's method in the second method. The model is using this slug to identify the news item to be returned. -- cgit v1.2.3-24-g4f1b From 127c44dfe4dcb42f506efaa0812a7e5afec99ac9 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Thu, 1 Dec 2022 13:20:43 +0200 Subject: Fixes #6174 Improves Log_test::test_configuration() test --- tests/codeigniter/core/Log_test.php | 6 +++--- tests/mocks/ci_testcase.php | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/codeigniter/core/Log_test.php b/tests/codeigniter/core/Log_test.php index 3715949f6..fc3e11e1f 100644 --- a/tests/codeigniter/core/Log_test.php +++ b/tests/codeigniter/core/Log_test.php @@ -16,14 +16,14 @@ class Log_test extends CI_TestCase { $enabled = new ReflectionProperty('CI_Log', '_enabled'); $enabled->setAccessible(TRUE); - $this->ci_set_config('log_path', '/root/'); + $this->ci_set_config('log_path', $this->ci_readonly_dir->url()); $this->ci_set_config('log_threshold', 'z'); $this->ci_set_config('log_date_format', 'd.m.Y'); $this->ci_set_config('log_filename', ''); $this->ci_set_config('log_file_permissions', ''); $instance = new CI_Log(); - $this->assertEquals($path->getValue($instance), '/root/'); + $this->assertNotFalse(strpos($path->getValue($instance), 'application/readonly')); $this->assertEquals($threshold->getValue($instance), 1); $this->assertEquals($date_fmt->getValue($instance), 'd.m.Y'); $this->assertEquals($filename->getValue($instance), 'log-'.date('Y-m-d').'.php'); @@ -37,7 +37,7 @@ class Log_test extends CI_TestCase { $this->ci_set_config('log_file_permissions', 0600); $instance = new CI_Log(); - $this->assertEquals($path->getValue($instance), APPPATH.'logs/'); + $this->assertEquals($path->getValue($instance), $this->ci_vfs_root->url().'application/logs'.DIRECTORY_SEPARATOR); $this->assertEquals($threshold->getValue($instance), 0); $this->assertEquals($date_fmt->getValue($instance), 'Y-m-d H:i:s'); $this->assertEquals($filename->getValue($instance), 'testname.log'); diff --git a/tests/mocks/ci_testcase.php b/tests/mocks/ci_testcase.php index de46f6df6..3ebb6b822 100644 --- a/tests/mocks/ci_testcase.php +++ b/tests/mocks/ci_testcase.php @@ -5,6 +5,7 @@ class CI_TestCase extends \PHPUnit\Framework\TestCase { public $ci_vfs_root; public $ci_app_root; public $ci_base_root; + public $ci_readonly_dir; protected $ci_instance; protected static $ci_test_instance; @@ -39,6 +40,7 @@ class CI_TestCase extends \PHPUnit\Framework\TestCase { $this->ci_app_root = vfsStream::newDirectory('application')->at($this->ci_vfs_root); $this->ci_base_root = vfsStream::newDirectory('system')->at($this->ci_vfs_root); $this->ci_view_root = vfsStream::newDirectory('views')->at($this->ci_app_root); + $this->ci_readonly_dir = vfsStream::newDirectory('readonly', 555)->at($this->ci_app_root); if (method_exists($this, 'set_up')) { -- cgit v1.2.3-24-g4f1b From 7eda20fae113e9fe6cb52c218d111223f059c5e7 Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Thu, 1 Dec 2022 13:38:45 +0200 Subject: Fixes #6169 --- readme.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.rst b/readme.rst index fa6d242e8..3722ed902 100644 --- a/readme.rst +++ b/readme.rst @@ -53,7 +53,7 @@ agreement `_ +- `User Guide `_ - `Contributing Guide `_ - `Language File Translations `_ - `Community Forums `_ -- cgit v1.2.3-24-g4f1b From a6faab2ebf082eefff9c2422fce016e49da548bf Mon Sep 17 00:00:00 2001 From: George Petculescu Date: Fri, 27 Jan 2023 00:11:27 +0200 Subject: Fixes #6175 This was introduced via #3752. --- system/core/Router.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/core/Router.php b/system/core/Router.php index e15ceff71..e0fb922f1 100644 --- a/system/core/Router.php +++ b/system/core/Router.php @@ -84,7 +84,7 @@ class CI_Router { * * @var string */ - public $directory; + public $directory = ''; /** * Default controller (and method if specific) @@ -333,7 +333,7 @@ class CI_Router { protected function _validate_request($segments) { $c = count($segments); - $directory_override = isset($this->directory); + $directory_override = $this->directory !== ''; // Loop through our segments and return as soon as a controller // is found or when such a directory doesn't exist -- cgit v1.2.3-24-g4f1b