summaryrefslogtreecommitdiffstats
path: root/system
diff options
context:
space:
mode:
Diffstat (limited to 'system')
-rw-r--r--system/codeigniter/CodeIgniter.php9
-rw-r--r--system/libraries/Calendar.php11
-rw-r--r--system/libraries/Pagination.php5
3 files changed, 22 insertions, 3 deletions
diff --git a/system/codeigniter/CodeIgniter.php b/system/codeigniter/CodeIgniter.php
index 5b3f54ae3..3e2b99dea 100644
--- a/system/codeigniter/CodeIgniter.php
+++ b/system/codeigniter/CodeIgniter.php
@@ -125,9 +125,16 @@ else
require(BASEPATH.'codeigniter/Base5'.EXT);
}
+// Load the base controller class
load_class('Controller', FALSE);
-require(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().EXT);
+// Load the local application controller
+// Note: The Router class automatically validates the controller path. If this include fails it
+// means that the default controller in the Routes.php file is not resolving to something valid.
+if ( ! @include(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().EXT))
+{
+ show_error('Unable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.');
+}
// Set a mark point for benchmarking
$BM->mark('loading_time_base_classes_end');
diff --git a/system/libraries/Calendar.php b/system/libraries/Calendar.php
index 84b096c8b..fdef5dd75 100644
--- a/system/libraries/Calendar.php
+++ b/system/libraries/Calendar.php
@@ -45,7 +45,7 @@ class CI_Calendar {
*
* @access public
*/
- function CI_Calendar()
+ function CI_Calendar($config = array())
{
$this->CI =& get_instance();
@@ -55,6 +55,12 @@ class CI_Calendar {
}
$this->local_time = time();
+
+ if (count($config) > 0)
+ {
+ $this->initialize($config);
+ }
+
log_message('debug', "Calendar Class Initialized");
}
@@ -153,6 +159,9 @@ class CI_Calendar {
// "previous" month link
if ($this->show_next_prev == TRUE)
{
+ // Add a trailing slash to the URL if needed
+ $this->next_prev_url = preg_replace("/(.+?)\/*$/", "\\1/", $this->next_prev_url);
+
$adjusted_date = $this->adjust_date($month - 1, $year);
$out .= str_replace('{previous_url}', $this->next_prev_url.$adjusted_date['year'].'/'.$adjusted_date['month'], $this->temp['heading_previous_cell']);
$out .= "\n";
diff --git a/system/libraries/Pagination.php b/system/libraries/Pagination.php
index c66d570cd..07ad6a683 100644
--- a/system/libraries/Pagination.php
+++ b/system/libraries/Pagination.php
@@ -120,8 +120,11 @@ class CI_Pagination {
if ($CI->uri->segment($this->uri_segment) != 0)
{
$this->cur_page = $CI->uri->segment($this->uri_segment);
+
+ // Prep the current page - no funny business!
+ $this->cur_page = preg_replace("/[a-z\-]/", "", $this->cur_page);
}
-
+
if ( ! is_numeric($this->cur_page))
{
$this->cur_page = 0;