summaryrefslogtreecommitdiff
path: root/system/helpers
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2009-12-21 20:05:27 -0800
committerBharat Mediratta <bharat@menalto.com>2009-12-21 20:05:27 -0800
commit9285c8c66c530196399eb05bb5561c3fa5538335 (patch)
tree7cec68583c01b5b365e7669fefc1adc6360e89a5 /system/helpers
parent9c5df1d31bd214fab051b71d092c751a1da20ecc (diff)
Updated Kohana to r4724
Diffstat (limited to 'system/helpers')
-rw-r--r--system/helpers/form.php28
-rw-r--r--system/helpers/inflector.php6
-rw-r--r--system/helpers/request.php4
-rw-r--r--system/helpers/security.php13
-rw-r--r--system/helpers/text.php46
-rw-r--r--system/helpers/url.php21
-rw-r--r--system/helpers/utf8.php2
7 files changed, 51 insertions, 69 deletions
diff --git a/system/helpers/form.php b/system/helpers/form.php
index 901edc91..4225b1b6 100644
--- a/system/helpers/form.php
+++ b/system/helpers/form.php
@@ -2,7 +2,7 @@
/**
* Form helper class.
*
- * $Id: form.php 4679 2009-11-10 01:45:52Z isaiah $
+ * $Id: form.php 4699 2009-12-08 18:45:14Z isaiah $
*
* @package Core
* @author Kohana Team
@@ -421,32 +421,6 @@ class form_Core {
if (empty($attr))
return '';
- if (isset($attr['name']) AND empty($attr['id']) AND strpos($attr['name'], '[') === FALSE)
- {
- if ($type === NULL AND ! empty($attr['type']))
- {
- // Set the type by the attributes
- $type = $attr['type'];
- }
-
- switch ($type)
- {
- case 'text':
- case 'textarea':
- case 'password':
- case 'select':
- case 'checkbox':
- case 'file':
- case 'image':
- case 'button':
- case 'submit':
- case 'hidden':
- // Only specific types of inputs use name to id matching
- $attr['id'] = $attr['name'];
- break;
- }
- }
-
$order = array
(
'action',
diff --git a/system/helpers/inflector.php b/system/helpers/inflector.php
index 9bd281db..5a2910c0 100644
--- a/system/helpers/inflector.php
+++ b/system/helpers/inflector.php
@@ -2,7 +2,7 @@
/**
* Inflector helper class.
*
- * $Id: inflector.php 4679 2009-11-10 01:45:52Z isaiah $
+ * $Id: inflector.php 4722 2009-12-19 17:47:34Z isaiah $
*
* @package Core
* @author Kohana Team
@@ -241,9 +241,9 @@ class inflector_Core {
}
/**
- * Makes an underscored or dashed phrase human-reable.
+ * Makes an underscored or dashed phrase human-readable.
*
- * @param string phrase to make human-reable
+ * @param string phrase to make human-readable
* @return string
*/
public static function humanize($str)
diff --git a/system/helpers/request.php b/system/helpers/request.php
index 4770d64b..31afee4e 100644
--- a/system/helpers/request.php
+++ b/system/helpers/request.php
@@ -2,7 +2,7 @@
/**
* Request helper class.
*
- * $Id: request.php 4679 2009-11-10 01:45:52Z isaiah $
+ * $Id: request.php 4692 2009-12-04 15:59:44Z cbandy $
*
* @package Core
* @author Kohana Team
@@ -61,7 +61,7 @@ class request_Core {
*/
public static function protocol()
{
- if (PHP_SAPI === 'cli')
+ if (Kohana::$server_api === 'cli')
{
return NULL;
}
diff --git a/system/helpers/security.php b/system/helpers/security.php
index 9eb82a58..33e5118e 100644
--- a/system/helpers/security.php
+++ b/system/helpers/security.php
@@ -2,7 +2,7 @@
/**
* Security helper class.
*
- * $Id: security.php 4679 2009-11-10 01:45:52Z isaiah $
+ * $Id: security.php 4698 2009-12-08 18:39:33Z isaiah $
*
* @package Core
* @author Kohana Team
@@ -34,15 +34,4 @@ class security_Core {
return preg_replace('#<img\s.*?(?:src\s*=\s*["\']?([^"\'<>\s]*)["\']?[^>]*)?>#is', '$1', $str);
}
- /**
- * Remove PHP tags from a string.
- *
- * @param string string to sanitize
- * @return string
- */
- public static function encode_php_tags($str)
- {
- return str_replace(array('<?', '?>'), array('&lt;?', '?&gt;'), $str);
- }
-
} // End security \ No newline at end of file
diff --git a/system/helpers/text.php b/system/helpers/text.php
index 66bcd243..ed7f9cbf 100644
--- a/system/helpers/text.php
+++ b/system/helpers/text.php
@@ -2,7 +2,7 @@
/**
* Text helper class.
*
- * $Id: text.php 4679 2009-11-10 01:45:52Z isaiah $
+ * $Id: text.php 4689 2009-12-02 01:39:24Z isaiah $
*
* @package Core
* @author Kohana Team
@@ -298,27 +298,37 @@ class text_Core {
*/
public static function auto_link_urls($text)
{
- // Finds all http/https/ftp/ftps links that are not part of an existing html anchor
- if (preg_match_all('~\b(?<!href="|">)(?:ht|f)tps?://\S+(?:/|\b)~i', $text, $matches))
- {
- foreach ($matches[0] as $match)
- {
- // Replace each link with an anchor
- $text = str_replace($match, html::anchor($match), $text);
- }
- }
- // Find all naked www.links.com (without http://)
- if (preg_match_all('~\b(?<!://)www(?:\.[a-z0-9][-a-z0-9]*+)+\.[a-z]{2,6}\b~i', $text, $matches))
+ $regex = '~\\b'
+ .'((?:ht|f)tps?://)?' // protocol
+ .'(?:[-a-zA-Z0-9]{1,63}\.)+' // host name
+ .'(?:[0-9]{1,3}|aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)' // tlds
+ .'(?:/[!$-/0-9:;=@_\':;!a-zA-Z\x7f-\xff]*?)?' // path
+ .'(?:\?[!$-/0-9:;=@_\':;!a-zA-Z\x7f-\xff]+?)?' // query
+ .'(?:#[!$-/0-9:;=@_\':;!a-zA-Z\x7f-\xff]+?)?' // fragment
+ .'(?=[?.!,;:"]?(?:\s|$))~'; // punctuation and url end
+
+ $result = "";
+ $position = 0;
+
+ while (preg_match($regex, $text, $match, PREG_OFFSET_CAPTURE, $position))
{
- foreach ($matches[0] as $match)
- {
- // Replace each link with an anchor
- $text = str_replace($match, html::anchor('http://'.$match, $match), $text);
- }
+ list($url, $url_pos) = $match[0];
+
+ // Add the text before the url
+ $result .= substr($text, $position, $url_pos - $position);
+
+ // Default to http://
+ $full_url = empty($match[1][0]) ? 'http://'.$url : $url;
+
+ // Add the hyperlink.
+ $result .= html::anchor($full_url, $url);
+
+ // New position to start parsing
+ $position = $url_pos + strlen($url);
}
- return $text;
+ return $result.substr($text, $position);
}
/**
diff --git a/system/helpers/url.php b/system/helpers/url.php
index 6c2a6c66..4a94e894 100644
--- a/system/helpers/url.php
+++ b/system/helpers/url.php
@@ -2,7 +2,7 @@
/**
* URL helper class.
*
- * $Id: url.php 4679 2009-11-10 01:45:52Z isaiah $
+ * $Id: url.php 4685 2009-11-30 21:24:06Z isaiah $
*
* @package Core
* @author Kohana Team
@@ -160,17 +160,26 @@ class url_Core {
*
* @param string phrase to convert
* @param string word separator (- or _)
+ * @param boolean transliterate to ASCII
* @return string
*/
- public static function title($title, $separator = '-')
+ public static function title($title, $separator = '-', $ascii_only = FALSE)
{
$separator = ($separator === '-') ? '-' : '_';
- // Replace accented characters by their unaccented equivalents
- $title = text::transliterate_to_ascii($title);
+ if ($ascii_only === TRUE)
+ {
+ // Replace accented characters by their unaccented equivalents
+ $title = text::transliterate_to_ascii($title);
- // Remove all characters that are not the separator, a-z, 0-9, or whitespace
- $title = preg_replace('/[^'.$separator.'a-z0-9\s]+/', '', strtolower($title));
+ // Remove all characters that are not the separator, a-z, 0-9, or whitespace
+ $title = preg_replace('/[^'.$separator.'a-z0-9\s]+/', '', strtolower($title));
+ }
+ else
+ {
+ // Remove all characters that are not the separator, letters, numbers, or whitespace
+ $title = preg_replace('/[^'.$separator.'\pL\pN\s]+/u', '', mb_strtolower($title));
+ }
// Replace all separator characters and whitespace by a single separator
$title = preg_replace('/['.$separator.'\s]+/', $separator, $title);
diff --git a/system/helpers/utf8.php b/system/helpers/utf8.php
index 20c6878c..773f6331 100644
--- a/system/helpers/utf8.php
+++ b/system/helpers/utf8.php
@@ -21,7 +21,7 @@
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
*/
-class utf8 {
+class utf8_Core {
/**
* Replaces text within a portion of a UTF-8 string.