Update to CodeIgniter 2.1.0
This commit is contained in:
0
system/libraries/Cache/Cache.php
Executable file → Normal file
0
system/libraries/Cache/Cache.php
Executable file → Normal file
4
system/libraries/Cache/drivers/Cache_apc.php
Executable file → Normal file
4
system/libraries/Cache/drivers/Cache_apc.php
Executable file → Normal file
@@ -132,7 +132,7 @@ class CI_Cache_apc extends CI_Driver {
|
||||
*/
|
||||
public function is_supported()
|
||||
{
|
||||
if ( ! extension_loaded('apc') OR ! function_exists('apc_store'))
|
||||
if ( ! extension_loaded('apc') OR ini_get('apc.enabled') != "1")
|
||||
{
|
||||
log_message('error', 'The APC PHP extension must be loaded to use APC Cache.');
|
||||
return FALSE;
|
||||
@@ -148,4 +148,4 @@ class CI_Cache_apc extends CI_Driver {
|
||||
// End Class
|
||||
|
||||
/* End of file Cache_apc.php */
|
||||
/* Location: ./system/libraries/Cache/drivers/Cache_apc.php */
|
||||
/* Location: ./system/libraries/Cache/drivers/Cache_apc.php */
|
||||
|
||||
0
system/libraries/Cache/drivers/Cache_dummy.php
Executable file → Normal file
0
system/libraries/Cache/drivers/Cache_dummy.php
Executable file → Normal file
0
system/libraries/Cache/drivers/Cache_file.php
Executable file → Normal file
0
system/libraries/Cache/drivers/Cache_file.php
Executable file → Normal file
11
system/libraries/Cache/drivers/Cache_memcached.php
Executable file → Normal file
11
system/libraries/Cache/drivers/Cache_memcached.php
Executable file → Normal file
@@ -64,7 +64,16 @@ class CI_Cache_memcached extends CI_Driver {
|
||||
*/
|
||||
public function save($id, $data, $ttl = 60)
|
||||
{
|
||||
return $this->_memcached->add($id, array($data, time(), $ttl), $ttl);
|
||||
if (get_class($this->_memcached) == 'Memcached')
|
||||
{
|
||||
return $this->_memcached->set($id, array($data, time(), $ttl), $ttl);
|
||||
}
|
||||
else if (get_class($this->_memcached) == 'Memcache')
|
||||
{
|
||||
return $this->_memcached->set($id, array($data, time(), $ttl), 0, $ttl);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
0
system/libraries/Calendar.php
Executable file → Normal file
0
system/libraries/Calendar.php
Executable file → Normal file
8
system/libraries/Cart.php
Executable file → Normal file
8
system/libraries/Cart.php
Executable file → Normal file
@@ -99,7 +99,7 @@ class CI_Cart {
|
||||
$save_cart = FALSE;
|
||||
if (isset($items['id']))
|
||||
{
|
||||
if ($this->_insert($items) == TRUE)
|
||||
if (($rowid = $this->_insert($items)))
|
||||
{
|
||||
$save_cart = TRUE;
|
||||
}
|
||||
@@ -110,7 +110,7 @@ class CI_Cart {
|
||||
{
|
||||
if (is_array($val) AND isset($val['id']))
|
||||
{
|
||||
if ($this->_insert($val) == TRUE)
|
||||
if ($this->_insert($val))
|
||||
{
|
||||
$save_cart = TRUE;
|
||||
}
|
||||
@@ -122,7 +122,7 @@ class CI_Cart {
|
||||
if ($save_cart == TRUE)
|
||||
{
|
||||
$this->_save_cart();
|
||||
return TRUE;
|
||||
return isset($rowid) ? $rowid : TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
@@ -244,7 +244,7 @@ class CI_Cart {
|
||||
}
|
||||
|
||||
// Woot!
|
||||
return TRUE;
|
||||
return $rowid;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
4
system/libraries/Driver.php
Executable file → Normal file
4
system/libraries/Driver.php
Executable file → Normal file
@@ -54,7 +54,7 @@ class CI_Driver_Library {
|
||||
if ( ! class_exists($child_class))
|
||||
{
|
||||
// check application path first
|
||||
foreach (array(APPPATH, BASEPATH) as $path)
|
||||
foreach (get_instance()->load->get_package_paths(TRUE) as $path)
|
||||
{
|
||||
// loves me some nesting!
|
||||
foreach (array(ucfirst($driver_name), $driver_name) as $class)
|
||||
@@ -226,4 +226,4 @@ class CI_Driver {
|
||||
// END CI_Driver CLASS
|
||||
|
||||
/* End of file Driver.php */
|
||||
/* Location: ./system/libraries/Driver.php */
|
||||
/* Location: ./system/libraries/Driver.php */
|
||||
154
system/libraries/Email.php
Executable file → Normal file
154
system/libraries/Email.php
Executable file → Normal file
@@ -36,6 +36,7 @@ class CI_Email {
|
||||
var $smtp_pass = ""; // SMTP Password
|
||||
var $smtp_port = "25"; // SMTP Port
|
||||
var $smtp_timeout = 5; // SMTP Timeout in seconds
|
||||
var $smtp_crypto = ""; // SMTP Encryption. Can be null, tls or ssl.
|
||||
var $wordwrap = TRUE; // TRUE/FALSE Turns word-wrap on/off
|
||||
var $wrapchars = "76"; // Number of characters to wrap at.
|
||||
var $mailtype = "text"; // text/html Defines email formatting
|
||||
@@ -379,7 +380,19 @@ class CI_Email {
|
||||
*/
|
||||
public function message($body)
|
||||
{
|
||||
$this->_body = stripslashes(rtrim(str_replace("\r", "", $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;
|
||||
}
|
||||
|
||||
@@ -405,12 +418,12 @@ class CI_Email {
|
||||
/**
|
||||
* Add a Header Item
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string
|
||||
* @param string
|
||||
* @return void
|
||||
*/
|
||||
private function _set_header($header, $value)
|
||||
protected function _set_header($header, $value)
|
||||
{
|
||||
$this->_headers[$header] = $value;
|
||||
}
|
||||
@@ -420,11 +433,11 @@ class CI_Email {
|
||||
/**
|
||||
* Convert a String to an Array
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string
|
||||
* @return array
|
||||
*/
|
||||
private function _str_to_array($email)
|
||||
protected function _str_to_array($email)
|
||||
{
|
||||
if ( ! is_array($email))
|
||||
{
|
||||
@@ -452,7 +465,7 @@ class CI_Email {
|
||||
*/
|
||||
public function set_alt_message($str = '')
|
||||
{
|
||||
$this->alt_message = ($str == '') ? '' : $str;
|
||||
$this->alt_message = $str;
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -577,10 +590,10 @@ class CI_Email {
|
||||
/**
|
||||
* Set Message Boundary
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
private function _set_boundaries()
|
||||
protected function _set_boundaries()
|
||||
{
|
||||
$this->_alt_boundary = "B_ALT_".uniqid(''); // multipart/alternative
|
||||
$this->_atc_boundary = "B_ATC_".uniqid(''); // attachment boundary
|
||||
@@ -591,10 +604,10 @@ class CI_Email {
|
||||
/**
|
||||
* Get the Message ID
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
private function _get_message_id()
|
||||
protected function _get_message_id()
|
||||
{
|
||||
$from = $this->_headers['Return-Path'];
|
||||
$from = str_replace(">", "", $from);
|
||||
@@ -608,11 +621,11 @@ class CI_Email {
|
||||
/**
|
||||
* Get Mail Protocol
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param bool
|
||||
* @return string
|
||||
*/
|
||||
private function _get_protocol($return = TRUE)
|
||||
protected function _get_protocol($return = TRUE)
|
||||
{
|
||||
$this->protocol = strtolower($this->protocol);
|
||||
$this->protocol = ( ! in_array($this->protocol, $this->_protocols, TRUE)) ? 'mail' : $this->protocol;
|
||||
@@ -628,11 +641,11 @@ class CI_Email {
|
||||
/**
|
||||
* Get Mail Encoding
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param bool
|
||||
* @return string
|
||||
*/
|
||||
private function _get_encoding($return = TRUE)
|
||||
protected function _get_encoding($return = TRUE)
|
||||
{
|
||||
$this->_encoding = ( ! in_array($this->_encoding, $this->_bit_depths)) ? '8bit' : $this->_encoding;
|
||||
|
||||
@@ -655,10 +668,10 @@ class CI_Email {
|
||||
/**
|
||||
* Get content type (text/html/attachment)
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
private function _get_content_type()
|
||||
protected function _get_content_type()
|
||||
{
|
||||
if ($this->mailtype == 'html' && count($this->_attach_name) == 0)
|
||||
{
|
||||
@@ -683,10 +696,10 @@ class CI_Email {
|
||||
/**
|
||||
* Set RFC 822 Date
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
private function _set_date()
|
||||
protected function _set_date()
|
||||
{
|
||||
$timezone = date("Z");
|
||||
$operator = (strncmp($timezone, '-', 1) == 0) ? '-' : '+';
|
||||
@@ -701,10 +714,10 @@ class CI_Email {
|
||||
/**
|
||||
* Mime message
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
private function _get_mime_message()
|
||||
protected function _get_mime_message()
|
||||
{
|
||||
return "This is a multi-part message in MIME format.".$this->newline."Your email application may not support this format.";
|
||||
}
|
||||
@@ -802,10 +815,10 @@ class CI_Email {
|
||||
* If the user hasn't specified his own alternative message
|
||||
* it creates one by stripping the HTML
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
private function _get_alt_message()
|
||||
protected function _get_alt_message()
|
||||
{
|
||||
if ($this->alt_message != "")
|
||||
{
|
||||
@@ -941,11 +954,11 @@ class CI_Email {
|
||||
/**
|
||||
* Build final headers
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
private function _build_headers()
|
||||
protected function _build_headers()
|
||||
{
|
||||
$this->_set_header('X-Sender', $this->clean_email($this->_headers['From']));
|
||||
$this->_set_header('X-Mailer', $this->useragent);
|
||||
@@ -959,10 +972,10 @@ class CI_Email {
|
||||
/**
|
||||
* Write Headers as a string
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
private function _write_headers()
|
||||
protected function _write_headers()
|
||||
{
|
||||
if ($this->protocol == 'mail')
|
||||
{
|
||||
@@ -994,10 +1007,10 @@ class CI_Email {
|
||||
/**
|
||||
* Build Final Body and attachments
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
private function _build_message()
|
||||
protected function _build_message()
|
||||
{
|
||||
if ($this->wordwrap === TRUE AND $this->mailtype != 'html')
|
||||
{
|
||||
@@ -1177,12 +1190,12 @@ class CI_Email {
|
||||
* Prepares string for Quoted-Printable Content-Transfer-Encoding
|
||||
* Refer to RFC 2045 http://www.ietf.org/rfc/rfc2045.txt
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string
|
||||
* @param integer
|
||||
* @return string
|
||||
*/
|
||||
private function _prep_quoted_printable($str, $charlim = '')
|
||||
protected function _prep_quoted_printable($str, $charlim = '')
|
||||
{
|
||||
// Set the character limit
|
||||
// Don't allow over 76, as that will make servers and MUAs barf
|
||||
@@ -1275,7 +1288,7 @@ class CI_Email {
|
||||
* @param bool // set to TRUE for processing From: headers
|
||||
* @return str
|
||||
*/
|
||||
private function _prep_q_encoding($str, $from = FALSE)
|
||||
protected function _prep_q_encoding($str, $from = FALSE)
|
||||
{
|
||||
$str = str_replace(array("\r", "\n"), array('', ''), $str);
|
||||
|
||||
@@ -1440,10 +1453,10 @@ class CI_Email {
|
||||
/**
|
||||
* Unwrap special elements
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
private function _unwrap_specials()
|
||||
protected function _unwrap_specials()
|
||||
{
|
||||
$this->_finalbody = preg_replace_callback("/\{unwrap\}(.*?)\{\/unwrap\}/si", array($this, '_remove_nl_callback'), $this->_finalbody);
|
||||
}
|
||||
@@ -1453,10 +1466,10 @@ class CI_Email {
|
||||
/**
|
||||
* Strip line-breaks via callback
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
private function _remove_nl_callback($matches)
|
||||
protected function _remove_nl_callback($matches)
|
||||
{
|
||||
if (strpos($matches[1], "\r") !== FALSE OR strpos($matches[1], "\n") !== FALSE)
|
||||
{
|
||||
@@ -1471,10 +1484,10 @@ class CI_Email {
|
||||
/**
|
||||
* Spool mail to the mail server
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return bool
|
||||
*/
|
||||
private function _spool_email()
|
||||
protected function _spool_email()
|
||||
{
|
||||
$this->_unwrap_specials();
|
||||
|
||||
@@ -1516,10 +1529,10 @@ class CI_Email {
|
||||
/**
|
||||
* Send using mail()
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return bool
|
||||
*/
|
||||
private function _send_with_mail()
|
||||
protected function _send_with_mail()
|
||||
{
|
||||
if ($this->_safe_mode == TRUE)
|
||||
{
|
||||
@@ -1553,10 +1566,10 @@ class CI_Email {
|
||||
/**
|
||||
* Send using Sendmail
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return bool
|
||||
*/
|
||||
private function _send_with_sendmail()
|
||||
protected function _send_with_sendmail()
|
||||
{
|
||||
$fp = @popen($this->mailpath . " -oi -f ".$this->clean_email($this->_headers['From'])." -t", 'w');
|
||||
|
||||
@@ -1591,10 +1604,10 @@ class CI_Email {
|
||||
/**
|
||||
* Send using SMTP
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return bool
|
||||
*/
|
||||
private function _send_with_smtp()
|
||||
protected function _send_with_smtp()
|
||||
{
|
||||
if ($this->smtp_host == '')
|
||||
{
|
||||
@@ -1660,13 +1673,16 @@ class CI_Email {
|
||||
/**
|
||||
* SMTP Connect
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
private function _smtp_connect()
|
||||
protected function _smtp_connect()
|
||||
{
|
||||
$this->_smtp_connect = fsockopen($this->smtp_host,
|
||||
$ssl = NULL;
|
||||
if ($this->smtp_crypto == 'ssl')
|
||||
$ssl = 'ssl://';
|
||||
$this->_smtp_connect = fsockopen($ssl.$this->smtp_host,
|
||||
$this->smtp_port,
|
||||
$errno,
|
||||
$errstr,
|
||||
@@ -1679,6 +1695,14 @@ class CI_Email {
|
||||
}
|
||||
|
||||
$this->_set_error_message($this->_get_smtp_data());
|
||||
|
||||
if ($this->smtp_crypto == 'tls')
|
||||
{
|
||||
$this->_send_command('hello');
|
||||
$this->_send_command('starttls');
|
||||
stream_socket_enable_crypto($this->_smtp_connect, TRUE, STREAM_CRYPTO_METHOD_TLS_CLIENT);
|
||||
}
|
||||
|
||||
return $this->_send_command('hello');
|
||||
}
|
||||
|
||||
@@ -1687,12 +1711,12 @@ class CI_Email {
|
||||
/**
|
||||
* Send SMTP command
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
private function _send_command($cmd, $data = '')
|
||||
protected function _send_command($cmd, $data = '')
|
||||
{
|
||||
switch ($cmd)
|
||||
{
|
||||
@@ -1705,6 +1729,12 @@ class CI_Email {
|
||||
|
||||
$resp = 250;
|
||||
break;
|
||||
case 'starttls' :
|
||||
|
||||
$this->_send_data('STARTTLS');
|
||||
|
||||
$resp = 220;
|
||||
break;
|
||||
case 'from' :
|
||||
|
||||
$this->_send_data('MAIL FROM:<'.$data.'>');
|
||||
@@ -1754,10 +1784,10 @@ class CI_Email {
|
||||
/**
|
||||
* SMTP Authenticate
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return bool
|
||||
*/
|
||||
private function _smtp_authenticate()
|
||||
protected function _smtp_authenticate()
|
||||
{
|
||||
if ( ! $this->_smtp_auth)
|
||||
{
|
||||
@@ -1808,10 +1838,10 @@ class CI_Email {
|
||||
/**
|
||||
* Send SMTP data
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return bool
|
||||
*/
|
||||
private function _send_data($data)
|
||||
protected function _send_data($data)
|
||||
{
|
||||
if ( ! fwrite($this->_smtp_connect, $data . $this->newline))
|
||||
{
|
||||
@@ -1829,10 +1859,10 @@ class CI_Email {
|
||||
/**
|
||||
* Get SMTP data
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
private function _get_smtp_data()
|
||||
protected function _get_smtp_data()
|
||||
{
|
||||
$data = "";
|
||||
|
||||
@@ -1854,10 +1884,10 @@ class CI_Email {
|
||||
/**
|
||||
* Get Hostname
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
private function _get_hostname()
|
||||
protected function _get_hostname()
|
||||
{
|
||||
return (isset($_SERVER['SERVER_NAME'])) ? $_SERVER['SERVER_NAME'] : 'localhost.localdomain';
|
||||
}
|
||||
@@ -1867,10 +1897,10 @@ class CI_Email {
|
||||
/**
|
||||
* Get IP
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
private function _get_ip()
|
||||
protected function _get_ip()
|
||||
{
|
||||
if ($this->_IP !== FALSE)
|
||||
{
|
||||
@@ -1933,11 +1963,11 @@ class CI_Email {
|
||||
/**
|
||||
* Set Message
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
private function _set_error_message($msg, $val = '')
|
||||
protected function _set_error_message($msg, $val = '')
|
||||
{
|
||||
$CI =& get_instance();
|
||||
$CI->lang->load('email');
|
||||
@@ -1957,11 +1987,11 @@ class CI_Email {
|
||||
/**
|
||||
* Mime Types
|
||||
*
|
||||
* @access private
|
||||
* @access protected
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
private function _mime_types($ext = "")
|
||||
protected function _mime_types($ext = "")
|
||||
{
|
||||
$mimes = array( 'hqx' => 'application/mac-binhex40',
|
||||
'cpt' => 'application/mac-compactpro',
|
||||
|
||||
0
system/libraries/Encrypt.php
Executable file → Normal file
0
system/libraries/Encrypt.php
Executable file → Normal file
119
system/libraries/Form_validation.php
Executable file → Normal file
119
system/libraries/Form_validation.php
Executable file → Normal file
@@ -26,16 +26,15 @@
|
||||
*/
|
||||
class CI_Form_validation {
|
||||
|
||||
var $CI;
|
||||
var $_field_data = array();
|
||||
var $_config_rules = array();
|
||||
var $_error_array = array();
|
||||
var $_error_messages = array();
|
||||
var $_error_prefix = '<p>';
|
||||
var $_error_suffix = '</p>';
|
||||
var $error_string = '';
|
||||
var $_safe_form_data = FALSE;
|
||||
|
||||
protected $CI;
|
||||
protected $_field_data = array();
|
||||
protected $_config_rules = array();
|
||||
protected $_error_array = array();
|
||||
protected $_error_messages = array();
|
||||
protected $_error_prefix = '<p>';
|
||||
protected $_error_suffix = '</p>';
|
||||
protected $error_string = '';
|
||||
protected $_safe_form_data = FALSE;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
@@ -72,7 +71,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return void
|
||||
*/
|
||||
function set_rules($field, $label = '', $rules = '')
|
||||
public function set_rules($field, $label = '', $rules = '')
|
||||
{
|
||||
// No reason to set rules if we have no POST data
|
||||
if (count($_POST) == 0)
|
||||
@@ -163,7 +162,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function set_message($lang, $val = '')
|
||||
public function set_message($lang, $val = '')
|
||||
{
|
||||
if ( ! is_array($lang))
|
||||
{
|
||||
@@ -187,7 +186,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return void
|
||||
*/
|
||||
function set_error_delimiters($prefix = '<p>', $suffix = '</p>')
|
||||
public function set_error_delimiters($prefix = '<p>', $suffix = '</p>')
|
||||
{
|
||||
$this->_error_prefix = $prefix;
|
||||
$this->_error_suffix = $suffix;
|
||||
@@ -206,7 +205,7 @@ class CI_Form_validation {
|
||||
* @param string the field name
|
||||
* @return void
|
||||
*/
|
||||
function error($field = '', $prefix = '', $suffix = '')
|
||||
public function error($field = '', $prefix = '', $suffix = '')
|
||||
{
|
||||
if ( ! isset($this->_field_data[$field]['error']) OR $this->_field_data[$field]['error'] == '')
|
||||
{
|
||||
@@ -238,7 +237,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return str
|
||||
*/
|
||||
function error_string($prefix = '', $suffix = '')
|
||||
public function error_string($prefix = '', $suffix = '')
|
||||
{
|
||||
// No errrors, validation passes!
|
||||
if (count($this->_error_array) === 0)
|
||||
@@ -279,7 +278,7 @@ class CI_Form_validation {
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
function run($group = '')
|
||||
public function run($group = '')
|
||||
{
|
||||
// Do we even have any data to process? Mm?
|
||||
if (count($_POST) == 0)
|
||||
@@ -374,7 +373,7 @@ class CI_Form_validation {
|
||||
* @param integer
|
||||
* @return mixed
|
||||
*/
|
||||
function _reduce_array($array, $keys, $i = 0)
|
||||
protected function _reduce_array($array, $keys, $i = 0)
|
||||
{
|
||||
if (is_array($array))
|
||||
{
|
||||
@@ -406,7 +405,7 @@ class CI_Form_validation {
|
||||
* @access private
|
||||
* @return null
|
||||
*/
|
||||
function _reset_post_array()
|
||||
protected function _reset_post_array()
|
||||
{
|
||||
foreach ($this->_field_data as $field => $row)
|
||||
{
|
||||
@@ -468,7 +467,7 @@ class CI_Form_validation {
|
||||
* @param integer
|
||||
* @return mixed
|
||||
*/
|
||||
function _execute($row, $rules, $postdata = NULL, $cycles = 0)
|
||||
protected function _execute($row, $rules, $postdata = NULL, $cycles = 0)
|
||||
{
|
||||
// If the $_POST data is an array we will run a recursive call
|
||||
if (is_array($postdata))
|
||||
@@ -489,7 +488,7 @@ class CI_Form_validation {
|
||||
if ( ! in_array('required', $rules) AND is_null($postdata))
|
||||
{
|
||||
// Before we bail out, does the rule contain a callback?
|
||||
if (preg_match("/(callback_\w+)/", implode(' ', $rules), $match))
|
||||
if (preg_match("/(callback_\w+(\[.*?\])?)/", implode(' ', $rules), $match))
|
||||
{
|
||||
$callback = TRUE;
|
||||
$rules = (array('1' => $match[1]));
|
||||
@@ -695,7 +694,7 @@ class CI_Form_validation {
|
||||
* @param string the field name
|
||||
* @return string
|
||||
*/
|
||||
function _translate_fieldname($fieldname)
|
||||
protected function _translate_fieldname($fieldname)
|
||||
{
|
||||
// Do we need to translate the field name?
|
||||
// We look for the prefix lang: to determine this
|
||||
@@ -727,7 +726,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return void
|
||||
*/
|
||||
function set_value($field = '', $default = '')
|
||||
public function set_value($field = '', $default = '')
|
||||
{
|
||||
if ( ! isset($this->_field_data[$field]))
|
||||
{
|
||||
@@ -757,7 +756,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function set_select($field = '', $value = '', $default = FALSE)
|
||||
public function set_select($field = '', $value = '', $default = FALSE)
|
||||
{
|
||||
if ( ! isset($this->_field_data[$field]) OR ! isset($this->_field_data[$field]['postdata']))
|
||||
{
|
||||
@@ -801,7 +800,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function set_radio($field = '', $value = '', $default = FALSE)
|
||||
public function set_radio($field = '', $value = '', $default = FALSE)
|
||||
{
|
||||
if ( ! isset($this->_field_data[$field]) OR ! isset($this->_field_data[$field]['postdata']))
|
||||
{
|
||||
@@ -845,7 +844,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function set_checkbox($field = '', $value = '', $default = FALSE)
|
||||
public function set_checkbox($field = '', $value = '', $default = FALSE)
|
||||
{
|
||||
if ( ! isset($this->_field_data[$field]) OR ! isset($this->_field_data[$field]['postdata']))
|
||||
{
|
||||
@@ -885,7 +884,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function required($str)
|
||||
public function required($str)
|
||||
{
|
||||
if ( ! is_array($str))
|
||||
{
|
||||
@@ -907,7 +906,7 @@ class CI_Form_validation {
|
||||
* @param regex
|
||||
* @return bool
|
||||
*/
|
||||
function regex_match($str, $regex)
|
||||
public function regex_match($str, $regex)
|
||||
{
|
||||
if ( ! preg_match($regex, $str))
|
||||
{
|
||||
@@ -927,7 +926,7 @@ class CI_Form_validation {
|
||||
* @param field
|
||||
* @return bool
|
||||
*/
|
||||
function matches($str, $field)
|
||||
public function matches($str, $field)
|
||||
{
|
||||
if ( ! isset($_POST[$field]))
|
||||
{
|
||||
@@ -938,6 +937,24 @@ class CI_Form_validation {
|
||||
|
||||
return ($str !== $field) ? FALSE : TRUE;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Match one field to another
|
||||
*
|
||||
* @access public
|
||||
* @param string
|
||||
* @param field
|
||||
* @return bool
|
||||
*/
|
||||
public function is_unique($str, $field)
|
||||
{
|
||||
list($table, $field)=explode('.', $field);
|
||||
$query = $this->CI->db->limit(1)->get_where($table, array($field => $str));
|
||||
|
||||
return $query->num_rows() === 0;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
@@ -949,7 +966,7 @@ class CI_Form_validation {
|
||||
* @param value
|
||||
* @return bool
|
||||
*/
|
||||
function min_length($str, $val)
|
||||
public function min_length($str, $val)
|
||||
{
|
||||
if (preg_match("/[^0-9]/", $val))
|
||||
{
|
||||
@@ -974,7 +991,7 @@ class CI_Form_validation {
|
||||
* @param value
|
||||
* @return bool
|
||||
*/
|
||||
function max_length($str, $val)
|
||||
public function max_length($str, $val)
|
||||
{
|
||||
if (preg_match("/[^0-9]/", $val))
|
||||
{
|
||||
@@ -999,7 +1016,7 @@ class CI_Form_validation {
|
||||
* @param value
|
||||
* @return bool
|
||||
*/
|
||||
function exact_length($str, $val)
|
||||
public function exact_length($str, $val)
|
||||
{
|
||||
if (preg_match("/[^0-9]/", $val))
|
||||
{
|
||||
@@ -1023,7 +1040,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function valid_email($str)
|
||||
public function valid_email($str)
|
||||
{
|
||||
return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
|
||||
}
|
||||
@@ -1037,7 +1054,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function valid_emails($str)
|
||||
public function valid_emails($str)
|
||||
{
|
||||
if (strpos($str, ',') === FALSE)
|
||||
{
|
||||
@@ -1064,7 +1081,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function valid_ip($ip)
|
||||
public function valid_ip($ip)
|
||||
{
|
||||
return $this->CI->input->valid_ip($ip);
|
||||
}
|
||||
@@ -1078,7 +1095,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function alpha($str)
|
||||
public function alpha($str)
|
||||
{
|
||||
return ( ! preg_match("/^([a-z])+$/i", $str)) ? FALSE : TRUE;
|
||||
}
|
||||
@@ -1092,7 +1109,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function alpha_numeric($str)
|
||||
public function alpha_numeric($str)
|
||||
{
|
||||
return ( ! preg_match("/^([a-z0-9])+$/i", $str)) ? FALSE : TRUE;
|
||||
}
|
||||
@@ -1106,7 +1123,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function alpha_dash($str)
|
||||
public function alpha_dash($str)
|
||||
{
|
||||
return ( ! preg_match("/^([-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE;
|
||||
}
|
||||
@@ -1120,7 +1137,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function numeric($str)
|
||||
public function numeric($str)
|
||||
{
|
||||
return (bool)preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $str);
|
||||
|
||||
@@ -1135,7 +1152,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function is_numeric($str)
|
||||
public function is_numeric($str)
|
||||
{
|
||||
return ( ! is_numeric($str)) ? FALSE : TRUE;
|
||||
}
|
||||
@@ -1149,7 +1166,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function integer($str)
|
||||
public function integer($str)
|
||||
{
|
||||
return (bool) preg_match('/^[\-+]?[0-9]+$/', $str);
|
||||
}
|
||||
@@ -1163,7 +1180,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function decimal($str)
|
||||
public function decimal($str)
|
||||
{
|
||||
return (bool) preg_match('/^[\-+]?[0-9]+\.[0-9]+$/', $str);
|
||||
}
|
||||
@@ -1177,7 +1194,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function greater_than($str, $min)
|
||||
public function greater_than($str, $min)
|
||||
{
|
||||
if ( ! is_numeric($str))
|
||||
{
|
||||
@@ -1195,7 +1212,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function less_than($str, $max)
|
||||
public function less_than($str, $max)
|
||||
{
|
||||
if ( ! is_numeric($str))
|
||||
{
|
||||
@@ -1213,7 +1230,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function is_natural($str)
|
||||
public function is_natural($str)
|
||||
{
|
||||
return (bool) preg_match( '/^[0-9]+$/', $str);
|
||||
}
|
||||
@@ -1227,7 +1244,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function is_natural_no_zero($str)
|
||||
public function is_natural_no_zero($str)
|
||||
{
|
||||
if ( ! preg_match( '/^[0-9]+$/', $str))
|
||||
{
|
||||
@@ -1254,7 +1271,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return bool
|
||||
*/
|
||||
function valid_base64($str)
|
||||
public function valid_base64($str)
|
||||
{
|
||||
return (bool) ! preg_match('/[^a-zA-Z0-9\/\+=]/', $str);
|
||||
}
|
||||
@@ -1271,7 +1288,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function prep_for_form($data = '')
|
||||
public function prep_for_form($data = '')
|
||||
{
|
||||
if (is_array($data))
|
||||
{
|
||||
@@ -1300,7 +1317,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function prep_url($str = '')
|
||||
public function prep_url($str = '')
|
||||
{
|
||||
if ($str == 'http://' OR $str == '')
|
||||
{
|
||||
@@ -1324,7 +1341,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function strip_image_tags($str)
|
||||
public function strip_image_tags($str)
|
||||
{
|
||||
return $this->CI->input->strip_image_tags($str);
|
||||
}
|
||||
@@ -1338,7 +1355,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function xss_clean($str)
|
||||
public function xss_clean($str)
|
||||
{
|
||||
return $this->CI->security->xss_clean($str);
|
||||
}
|
||||
@@ -1352,7 +1369,7 @@ class CI_Form_validation {
|
||||
* @param string
|
||||
* @return string
|
||||
*/
|
||||
function encode_php_tags($str)
|
||||
public function encode_php_tags($str)
|
||||
{
|
||||
return str_replace(array('<?php', '<?PHP', '<?', '?>'), array('<?php', '<?PHP', '<?', '?>'), $str);
|
||||
}
|
||||
|
||||
0
system/libraries/Ftp.php
Executable file → Normal file
0
system/libraries/Ftp.php
Executable file → Normal file
0
system/libraries/Image_lib.php
Executable file → Normal file
0
system/libraries/Image_lib.php
Executable file → Normal file
0
system/libraries/Javascript.php
Executable file → Normal file
0
system/libraries/Javascript.php
Executable file → Normal file
0
system/libraries/Log.php
Executable file → Normal file
0
system/libraries/Log.php
Executable file → Normal file
338
system/libraries/Migration.php
Normal file
338
system/libraries/Migration.php
Normal file
@@ -0,0 +1,338 @@
|
||||
<?php defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
/**
|
||||
* CodeIgniter
|
||||
*
|
||||
* An open source application development framework for PHP 5.1.6 or newer
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @author EllisLab Dev Team
|
||||
* @copyright Copyright (c) 2006 - 2011, EllisLab, Inc.
|
||||
* @license http://codeigniter.com/user_guide/license.html
|
||||
* @link http://codeigniter.com
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Migration Class
|
||||
*
|
||||
* All migrations should implement this, forces up() and down() and gives
|
||||
* access to the CI super-global.
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @subpackage Libraries
|
||||
* @category Libraries
|
||||
* @author Reactor Engineers
|
||||
* @link
|
||||
*/
|
||||
class CI_Migration {
|
||||
|
||||
protected $_migration_enabled = FALSE;
|
||||
protected $_migration_path = NULL;
|
||||
protected $_migration_version = 0;
|
||||
|
||||
protected $_error_string = '';
|
||||
|
||||
public function __construct($config = array())
|
||||
{
|
||||
# Only run this constructor on main library load
|
||||
if (get_parent_class($this) !== FALSE)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($config as $key => $val)
|
||||
{
|
||||
$this->{'_' . $key} = $val;
|
||||
}
|
||||
|
||||
log_message('debug', 'Migrations class initialized');
|
||||
|
||||
// Are they trying to use migrations while it is disabled?
|
||||
if ($this->_migration_enabled !== TRUE)
|
||||
{
|
||||
show_error('Migrations has been loaded but is disabled or set up incorrectly.');
|
||||
}
|
||||
|
||||
// If not set, set it
|
||||
$this->_migration_path == '' OR $this->_migration_path = APPPATH . 'migrations/';
|
||||
|
||||
// Add trailing slash if not set
|
||||
$this->_migration_path = rtrim($this->_migration_path, '/').'/';
|
||||
|
||||
// Load migration language
|
||||
$this->lang->load('migration');
|
||||
|
||||
// They'll probably be using dbforge
|
||||
$this->load->dbforge();
|
||||
|
||||
// If the migrations table is missing, make it
|
||||
if ( ! $this->db->table_exists('migrations'))
|
||||
{
|
||||
$this->dbforge->add_field(array(
|
||||
'version' => array('type' => 'INT', 'constraint' => 3),
|
||||
));
|
||||
|
||||
$this->dbforge->create_table('migrations', TRUE);
|
||||
|
||||
$this->db->insert('migrations', array('version' => 0));
|
||||
}
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Migrate to a schema version
|
||||
*
|
||||
* Calls each migration step required to get to the schema version of
|
||||
* choice
|
||||
*
|
||||
* @access public
|
||||
* @param $version integer Target schema version
|
||||
* @return mixed TRUE if already latest, FALSE if failed, int if upgraded
|
||||
*/
|
||||
public function version($target_version)
|
||||
{
|
||||
$start = $current_version = $this->_get_version();
|
||||
$stop = $target_version;
|
||||
|
||||
if ($target_version > $current_version)
|
||||
{
|
||||
// Moving Up
|
||||
++$start;
|
||||
++$stop;
|
||||
$step = 1;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
// Moving Down
|
||||
$step = -1;
|
||||
}
|
||||
|
||||
$method = $step === 1 ? 'up' : 'down';
|
||||
$migrations = array();
|
||||
|
||||
// We now prepare to actually DO the migrations
|
||||
// But first let's make sure that everything is the way it should be
|
||||
for ($i = $start; $i != $stop; $i += $step)
|
||||
{
|
||||
$f = glob(sprintf($this->_migration_path . '%03d_*.php', $i));
|
||||
|
||||
// Only one migration per step is permitted
|
||||
if (count($f) > 1)
|
||||
{
|
||||
$this->_error_string = sprintf($this->lang->line('migration_multiple_version'), $i);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Migration step not found
|
||||
if (count($f) == 0)
|
||||
{
|
||||
// If trying to migrate up to a version greater than the last
|
||||
// existing one, migrate to the last one.
|
||||
if ($step == 1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// If trying to migrate down but we're missing a step,
|
||||
// something must definitely be wrong.
|
||||
$this->_error_string = sprintf($this->lang->line('migration_not_found'), $i);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$file = basename($f[0]);
|
||||
$name = basename($f[0], '.php');
|
||||
|
||||
// Filename validations
|
||||
if (preg_match('/^\d{3}_(\w+)$/', $name, $match))
|
||||
{
|
||||
$match[1] = strtolower($match[1]);
|
||||
|
||||
// Cannot repeat a migration at different steps
|
||||
if (in_array($match[1], $migrations))
|
||||
{
|
||||
$this->_error_string = sprintf($this->lang->line('migration_multiple_version'), $match[1]);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
include $f[0];
|
||||
$class = 'Migration_' . ucfirst($match[1]);
|
||||
|
||||
if ( ! class_exists($class))
|
||||
{
|
||||
$this->_error_string = sprintf($this->lang->line('migration_class_doesnt_exist'), $class);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ( ! is_callable(array($class, $method)))
|
||||
{
|
||||
$this->_error_string = sprintf($this->lang->line('migration_missing_'.$method.'_method'), $class);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$migrations[] = $match[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->_error_string = sprintf($this->lang->line('migration_invalid_filename'), $file);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
log_message('debug', 'Current migration: ' . $current_version);
|
||||
|
||||
$version = $i + ($step == 1 ? -1 : 0);
|
||||
|
||||
// If there is nothing to do so quit
|
||||
if ($migrations === array())
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
log_message('debug', 'Migrating from ' . $method . ' to version ' . $version);
|
||||
|
||||
// Loop through the migrations
|
||||
foreach ($migrations AS $migration)
|
||||
{
|
||||
// Run the migration class
|
||||
$class = 'Migration_' . ucfirst(strtolower($migration));
|
||||
call_user_func(array(new $class, $method));
|
||||
|
||||
$current_version += $step;
|
||||
$this->_update_version($current_version);
|
||||
}
|
||||
|
||||
log_message('debug', 'Finished migrating to '.$current_version);
|
||||
|
||||
return $current_version;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Set's the schema to the latest migration
|
||||
*
|
||||
* @access public
|
||||
* @return mixed true if already latest, false if failed, int if upgraded
|
||||
*/
|
||||
public function latest()
|
||||
{
|
||||
if ( ! $migrations = $this->find_migrations())
|
||||
{
|
||||
$this->_error_string = $this->line->lang('migration_none_found');
|
||||
return false;
|
||||
}
|
||||
|
||||
$last_migration = basename(end($migrations));
|
||||
|
||||
// Calculate the last migration step from existing migration
|
||||
// filenames and procceed to the standard version migration
|
||||
return $this->version((int) substr($last_migration, 0, 3));
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Set's the schema to the migration version set in config
|
||||
*
|
||||
* @access public
|
||||
* @return mixed true if already current, false if failed, int if upgraded
|
||||
*/
|
||||
public function current()
|
||||
{
|
||||
return $this->version($this->_migration_version);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Error string
|
||||
*
|
||||
* @access public
|
||||
* @return string Error message returned as a string
|
||||
*/
|
||||
public function error_string()
|
||||
{
|
||||
return $this->_error_string;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Set's the schema to the latest migration
|
||||
*
|
||||
* @access protected
|
||||
* @return mixed true if already latest, false if failed, int if upgraded
|
||||
*/
|
||||
protected function find_migrations()
|
||||
{
|
||||
// Load all *_*.php files in the migrations path
|
||||
$files = glob($this->_migration_path . '*_*.php');
|
||||
$file_count = count($files);
|
||||
|
||||
for ($i = 0; $i < $file_count; $i++)
|
||||
{
|
||||
// Mark wrongly formatted files as false for later filtering
|
||||
$name = basename($files[$i], '.php');
|
||||
if ( ! preg_match('/^\d{3}_(\w+)$/', $name))
|
||||
{
|
||||
$files[$i] = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
sort($files);
|
||||
|
||||
return $files;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Retrieves current schema version
|
||||
*
|
||||
* @access protected
|
||||
* @return integer Current Migration
|
||||
*/
|
||||
protected function _get_version()
|
||||
{
|
||||
$row = $this->db->get('migrations')->row();
|
||||
return $row ? $row->version : 0;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Stores the current schema version
|
||||
*
|
||||
* @access protected
|
||||
* @param $migrations integer Migration reached
|
||||
* @return void Outputs a report of the migration
|
||||
*/
|
||||
protected function _update_version($migrations)
|
||||
{
|
||||
return $this->db->update('migrations', array(
|
||||
'version' => $migrations
|
||||
));
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Enable the use of CI super-global
|
||||
*
|
||||
* @access public
|
||||
* @param $var
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($var)
|
||||
{
|
||||
return get_instance()->$var;
|
||||
}
|
||||
}
|
||||
|
||||
/* End of file Migration.php */
|
||||
/* Location: ./system/libraries/Migration.php */
|
||||
85
system/libraries/Pagination.php
Executable file → Normal file
85
system/libraries/Pagination.php
Executable file → Normal file
@@ -34,6 +34,7 @@ class CI_Pagination {
|
||||
var $per_page = 10; // Max number of items you want shown per page
|
||||
var $num_links = 2; // Number of "digit" links to show before/after the currently viewed page
|
||||
var $cur_page = 0; // The current page being viewed
|
||||
var $use_page_numbers = FALSE; // Use page number for segment instead of offset
|
||||
var $first_link = '‹ First';
|
||||
var $next_link = '>';
|
||||
var $prev_link = '<';
|
||||
@@ -128,12 +129,22 @@ class CI_Pagination {
|
||||
return '';
|
||||
}
|
||||
|
||||
// Set the base page index for starting page number
|
||||
if ($this->use_page_numbers)
|
||||
{
|
||||
$base_page = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$base_page = 0;
|
||||
}
|
||||
|
||||
// Determine the current page number.
|
||||
$CI =& get_instance();
|
||||
|
||||
if ($CI->config->item('enable_query_strings') === TRUE OR $this->page_query_string === TRUE)
|
||||
{
|
||||
if ($CI->input->get($this->query_string_segment) != 0)
|
||||
if ($CI->input->get($this->query_string_segment) != $base_page)
|
||||
{
|
||||
$this->cur_page = $CI->input->get($this->query_string_segment);
|
||||
|
||||
@@ -143,7 +154,7 @@ class CI_Pagination {
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($CI->uri->segment($this->uri_segment) != 0)
|
||||
if ($CI->uri->segment($this->uri_segment) != $base_page)
|
||||
{
|
||||
$this->cur_page = $CI->uri->segment($this->uri_segment);
|
||||
|
||||
@@ -151,6 +162,12 @@ class CI_Pagination {
|
||||
$this->cur_page = (int) $this->cur_page;
|
||||
}
|
||||
}
|
||||
|
||||
// Set current page to 1 if using page numbers instead of offset
|
||||
if ($this->use_page_numbers AND $this->cur_page == 0)
|
||||
{
|
||||
$this->cur_page = $base_page;
|
||||
}
|
||||
|
||||
$this->num_links = (int)$this->num_links;
|
||||
|
||||
@@ -161,18 +178,32 @@ class CI_Pagination {
|
||||
|
||||
if ( ! is_numeric($this->cur_page))
|
||||
{
|
||||
$this->cur_page = 0;
|
||||
$this->cur_page = $base_page;
|
||||
}
|
||||
|
||||
// Is the page number beyond the result range?
|
||||
// If so we show the last page
|
||||
if ($this->cur_page > $this->total_rows)
|
||||
if ($this->use_page_numbers)
|
||||
{
|
||||
$this->cur_page = ($num_pages - 1) * $this->per_page;
|
||||
if ($this->cur_page > $num_pages)
|
||||
{
|
||||
$this->cur_page = $num_pages;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($this->cur_page > $this->total_rows)
|
||||
{
|
||||
$this->cur_page = ($num_pages - 1) * $this->per_page;
|
||||
}
|
||||
}
|
||||
|
||||
$uri_page_number = $this->cur_page;
|
||||
$this->cur_page = floor(($this->cur_page/$this->per_page) + 1);
|
||||
|
||||
if ( ! $this->use_page_numbers)
|
||||
{
|
||||
$this->cur_page = floor(($this->cur_page/$this->per_page) + 1);
|
||||
}
|
||||
|
||||
// Calculate the start and end numbers. These determine
|
||||
// which number to start and end the digit links with
|
||||
@@ -203,7 +234,14 @@ class CI_Pagination {
|
||||
// Render the "previous" link
|
||||
if ($this->prev_link !== FALSE AND $this->cur_page != 1)
|
||||
{
|
||||
$i = $uri_page_number - $this->per_page;
|
||||
if ($this->use_page_numbers)
|
||||
{
|
||||
$i = $uri_page_number - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$i = $uri_page_number - $this->per_page;
|
||||
}
|
||||
|
||||
if ($i == 0 && $this->first_url != '')
|
||||
{
|
||||
@@ -223,9 +261,16 @@ class CI_Pagination {
|
||||
// Write the digit links
|
||||
for ($loop = $start -1; $loop <= $end; $loop++)
|
||||
{
|
||||
$i = ($loop * $this->per_page) - $this->per_page;
|
||||
if ($this->use_page_numbers)
|
||||
{
|
||||
$i = $loop;
|
||||
}
|
||||
else
|
||||
{
|
||||
$i = ($loop * $this->per_page) - $this->per_page;
|
||||
}
|
||||
|
||||
if ($i >= 0)
|
||||
if ($i >= $base_page)
|
||||
{
|
||||
if ($this->cur_page == $loop)
|
||||
{
|
||||
@@ -233,7 +278,7 @@ class CI_Pagination {
|
||||
}
|
||||
else
|
||||
{
|
||||
$n = ($i == 0) ? '' : $i;
|
||||
$n = ($i == $base_page) ? '' : $i;
|
||||
|
||||
if ($n == '' && $this->first_url != '')
|
||||
{
|
||||
@@ -253,13 +298,29 @@ class CI_Pagination {
|
||||
// Render the "next" link
|
||||
if ($this->next_link !== FALSE AND $this->cur_page < $num_pages)
|
||||
{
|
||||
$output .= $this->next_tag_open.'<a '.$this->anchor_class.'href="'.$this->base_url.$this->prefix.($this->cur_page * $this->per_page).$this->suffix.'">'.$this->next_link.'</a>'.$this->next_tag_close;
|
||||
if ($this->use_page_numbers)
|
||||
{
|
||||
$i = $this->cur_page + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$i = ($this->cur_page * $this->per_page);
|
||||
}
|
||||
|
||||
$output .= $this->next_tag_open.'<a '.$this->anchor_class.'href="'.$this->base_url.$this->prefix.$i.$this->suffix.'">'.$this->next_link.'</a>'.$this->next_tag_close;
|
||||
}
|
||||
|
||||
// Render the "Last" link
|
||||
if ($this->last_link !== FALSE AND ($this->cur_page + $this->num_links) < $num_pages)
|
||||
{
|
||||
$i = (($num_pages * $this->per_page) - $this->per_page);
|
||||
if ($this->use_page_numbers)
|
||||
{
|
||||
$i = $num_pages;
|
||||
}
|
||||
else
|
||||
{
|
||||
$i = (($num_pages * $this->per_page) - $this->per_page);
|
||||
}
|
||||
$output .= $this->last_tag_open.'<a '.$this->anchor_class.'href="'.$this->base_url.$this->prefix.$i.$this->suffix.'">'.$this->last_link.'</a>'.$this->last_tag_close;
|
||||
}
|
||||
|
||||
|
||||
0
system/libraries/Parser.php
Executable file → Normal file
0
system/libraries/Parser.php
Executable file → Normal file
0
system/libraries/Profiler.php
Executable file → Normal file
0
system/libraries/Profiler.php
Executable file → Normal file
3
system/libraries/Session.php
Executable file → Normal file
3
system/libraries/Session.php
Executable file → Normal file
@@ -317,7 +317,8 @@ class CI_Session {
|
||||
'session_id' => md5(uniqid($sessid, TRUE)),
|
||||
'ip_address' => $this->CI->input->ip_address(),
|
||||
'user_agent' => substr($this->CI->input->user_agent(), 0, 120),
|
||||
'last_activity' => $this->now
|
||||
'last_activity' => $this->now,
|
||||
'user_data' => ''
|
||||
);
|
||||
|
||||
|
||||
|
||||
0
system/libraries/Sha1.php
Executable file → Normal file
0
system/libraries/Sha1.php
Executable file → Normal file
0
system/libraries/Table.php
Executable file → Normal file
0
system/libraries/Table.php
Executable file → Normal file
0
system/libraries/Trackback.php
Executable file → Normal file
0
system/libraries/Trackback.php
Executable file → Normal file
0
system/libraries/Typography.php
Executable file → Normal file
0
system/libraries/Typography.php
Executable file → Normal file
0
system/libraries/Unit_test.php
Executable file → Normal file
0
system/libraries/Unit_test.php
Executable file → Normal file
66
system/libraries/Upload.php
Executable file → Normal file
66
system/libraries/Upload.php
Executable file → Normal file
@@ -196,7 +196,8 @@ class CI_Upload {
|
||||
// Set the uploaded data as class variables
|
||||
$this->file_temp = $_FILES[$field]['tmp_name'];
|
||||
$this->file_size = $_FILES[$field]['size'];
|
||||
$this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES[$field]['type']);
|
||||
$this->_file_mime_type($_FILES[$field]);
|
||||
$this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $this->file_type);
|
||||
$this->file_type = strtolower(trim(stripslashes($this->file_type), '"'));
|
||||
$this->file_name = $this->_prep_filename($_FILES[$field]['name']);
|
||||
$this->file_ext = $this->get_extension($this->file_name);
|
||||
@@ -1006,8 +1007,69 @@ class CI_Upload {
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* File MIME type
|
||||
*
|
||||
* Detects the (actual) MIME type of the uploaded file, if possible.
|
||||
* The input array is expected to be $_FILES[$field]
|
||||
*
|
||||
* @param array
|
||||
* @return void
|
||||
*/
|
||||
protected function _file_mime_type($file)
|
||||
{
|
||||
// Use if the Fileinfo extension, if available (only versions above 5.3 support the FILEINFO_MIME_TYPE flag)
|
||||
if ( (float) substr(phpversion(), 0, 3) >= 5.3 && function_exists('finfo_file'))
|
||||
{
|
||||
$finfo = new finfo(FILEINFO_MIME_TYPE);
|
||||
if ($finfo !== FALSE) // This is possible, if there is no magic MIME database file found on the system
|
||||
{
|
||||
$file_type = $finfo->file($file['tmp_name']);
|
||||
|
||||
/* According to the comments section of the PHP manual page,
|
||||
* it is possible that this function returns an empty string
|
||||
* for some files (e.g. if they don't exist in the magic MIME database)
|
||||
*/
|
||||
if (strlen($file_type) > 1)
|
||||
{
|
||||
$this->file_type = $file_type;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Fall back to the deprecated mime_content_type(), if available
|
||||
if (function_exists('mime_content_type'))
|
||||
{
|
||||
$this->file_type = @mime_content_type($file['tmp_name']);
|
||||
return;
|
||||
}
|
||||
|
||||
/* This is an ugly hack, but UNIX-type systems provide a native way to detect the file type,
|
||||
* which is still more secure than depending on the value of $_FILES[$field]['type'].
|
||||
*
|
||||
* Notes:
|
||||
* - a 'W' in the substr() expression bellow, would mean that we're using Windows
|
||||
* - many system admins would disable the exec() function due to security concerns, hence the function_exists() check
|
||||
*/
|
||||
if (DIRECTORY_SEPARATOR !== '\\' && function_exists('exec'))
|
||||
{
|
||||
$output = array();
|
||||
@exec('file --brief --mime-type ' . escapeshellarg($file['tmp_path']), $output, $return_code);
|
||||
if ($return_code === 0 && strlen($output[0]) > 0) // A return status code != 0 would mean failed execution
|
||||
{
|
||||
$this->file_type = rtrim($output[0]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$this->file_type = $file['type'];
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
||||
}
|
||||
// END Upload Class
|
||||
|
||||
/* End of file Upload.php */
|
||||
/* Location: ./system/libraries/Upload.php */
|
||||
/* Location: ./system/libraries/Upload.php */
|
||||
|
||||
2
system/libraries/User_agent.php
Executable file → Normal file
2
system/libraries/User_agent.php
Executable file → Normal file
@@ -142,7 +142,7 @@ class CI_User_agent {
|
||||
{
|
||||
$this->_set_platform();
|
||||
|
||||
foreach (array('_set_browser', '_set_robot', '_set_mobile') as $function)
|
||||
foreach (array('_set_robot', '_set_browser', '_set_mobile') as $function)
|
||||
{
|
||||
if ($this->$function() === TRUE)
|
||||
{
|
||||
|
||||
6
system/libraries/Xmlrpc.php
Executable file → Normal file
6
system/libraries/Xmlrpc.php
Executable file → Normal file
@@ -1404,14 +1404,14 @@ class XML_RPC_Values extends CI_Xmlrpc
|
||||
{
|
||||
if ($utc == 1)
|
||||
{
|
||||
$t = strftime("%Y%m%dT%H:%M:%S", $time);
|
||||
$t = strftime("%Y%m%dT%H:%i:%s", $time);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (function_exists('gmstrftime'))
|
||||
$t = gmstrftime("%Y%m%dT%H:%M:%S", $time);
|
||||
$t = gmstrftime("%Y%m%dT%H:%i:%s", $time);
|
||||
else
|
||||
$t = strftime("%Y%m%dT%H:%M:%S", $time - date('Z'));
|
||||
$t = strftime("%Y%m%dT%H:%i:%s", $time - date('Z'));
|
||||
}
|
||||
return $t;
|
||||
}
|
||||
|
||||
0
system/libraries/Xmlrpcs.php
Executable file → Normal file
0
system/libraries/Xmlrpcs.php
Executable file → Normal file
0
system/libraries/Zip.php
Executable file → Normal file
0
system/libraries/Zip.php
Executable file → Normal file
0
system/libraries/index.html
Executable file → Normal file
0
system/libraries/index.html
Executable file → Normal file
0
system/libraries/javascript/Jquery.php
Executable file → Normal file
0
system/libraries/javascript/Jquery.php
Executable file → Normal file
Reference in New Issue
Block a user