summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-01-09 15:56:46 +0100
committerAndrey Andreev <narf@bofh.bg>2012-01-09 15:56:46 +0100
commitd47baab1bd4d655a68981834d11727ae8c2a3a45 (patch)
treedf1e767510f450e511989912683a6b42047f8875
parente9a5a862a1252548b463aa738e50e8d9bfd01379 (diff)
Fix issue #904
-rw-r--r--system/core/Common.php2
-rw-r--r--system/core/Loader.php12
-rw-r--r--user_guide_src/source/changelog.rst4
3 files changed, 8 insertions, 10 deletions
diff --git a/system/core/Common.php b/system/core/Common.php
index 1f59c02d7..2f9c4ff43 100644
--- a/system/core/Common.php
+++ b/system/core/Common.php
@@ -199,7 +199,7 @@ if ( ! function_exists('load_class'))
*/
if ( ! function_exists('is_loaded'))
{
- function is_loaded($class = '')
+ function &is_loaded($class = '')
{
static $_is_loaded = array();
diff --git a/system/core/Loader.php b/system/core/Loader.php
index 272fe4291..12daaa928 100644
--- a/system/core/Loader.php
+++ b/system/core/Loader.php
@@ -250,10 +250,10 @@ class CI_Loader {
if (($last_slash = strrpos($model, '/')) !== FALSE)
{
// The path is in front of the last slash
- $path = substr($model, 0, $last_slash + 1);
+ $path = substr($model, 0, ++$last_slash);
// And the model name behind it
- $model = substr($model, $last_slash + 1);
+ $model = substr($model, $last_slash);
}
if ($name == '')
@@ -833,10 +833,9 @@ class CI_Loader {
// 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 ((bool) @ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE)
{
- echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace('<?=', '<?php echo ', file_get_contents($_ci_path))));
+ echo eval('?>'.preg_replace('/;*\s*\?>/', '; ?>', str_replace('<?=', '<?php echo ', file_get_contents($_ci_path))));
}
else
{
@@ -861,7 +860,6 @@ class CI_Loader {
* we are beyond the first level of output buffering so that
* it can be seen and included properly by the first included
* template and any subsequent ones. Oy!
- *
*/
if (ob_get_level() > $this->_ci_ob_level + 1)
{
@@ -1233,13 +1231,13 @@ class CI_Loader {
{
if ( ! is_array($filename))
{
- return array(strtolower(str_replace('.php', '', str_replace($extension, '', $filename)).$extension));
+ return array(strtolower(str_replace(array($extension, '.php'), '', $filename).$extension));
}
else
{
foreach ($filename as $key => $val)
{
- $filename[$key] = strtolower(str_replace('.php', '', str_replace($extension, '', $val)).$extension);
+ $filename[$key] = strtolower(str_replace(array($extension, '.php'), '', $val).$extension);
}
return $filename;
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index d9eca7fef..48011f208 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -67,12 +67,12 @@ Release Date: Not Released
- Removed SHA1 function in the :doc:`Encryption Library <libraries/encryption>`.
- Added $config['csrf_regeneration'] to the CSRF protection in the :doc:`Security library <libraries/security>`, which makes token regeneration optional.
-
- Core
- Changed private functions in CI_URI to protected so MY_URI can override them.
- Removed CI_CORE boolean constant from CodeIgniter.php (no longer Reactor and Core versions).
- Added method get_vars() to CI_Loader to retrieve all variables loaded with $this->load->vars().
+ - is_loaded() function from system/core/Commons.php now returns a reference.
Bug fixes for 3.0
------------------
@@ -96,7 +96,7 @@ Bug fixes for 3.0
- Fixed a bug in CI_Image_lib::gd_loaded() where it was possible for the script execution to end or a PHP E_WARNING message to be emitted.
- In Pagination library, when use_page_numbers=TRUE previous link and page 1 link do not have the same url
- Fixed a bug (#561) - Errors in :doc:`XML-RPC Library <libraries/xmlrpc>` were not properly escaped.
-
+- Fixed a bug (#904) - ``CI_Loader::initialize()`` caused a PHP Fatal error to be triggered if error level E_STRICT is used.
Version 2.1.0
=============