diff options
author | Bharat Mediratta <bharat@menalto.com> | 2009-12-21 20:05:27 -0800 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2009-12-21 20:05:27 -0800 |
commit | 9285c8c66c530196399eb05bb5561c3fa5538335 (patch) | |
tree | 7cec68583c01b5b365e7669fefc1adc6360e89a5 /system/helpers | |
parent | 9c5df1d31bd214fab051b71d092c751a1da20ecc (diff) |
Updated Kohana to r4724
Diffstat (limited to 'system/helpers')
-rw-r--r-- | system/helpers/form.php | 28 | ||||
-rw-r--r-- | system/helpers/inflector.php | 6 | ||||
-rw-r--r-- | system/helpers/request.php | 4 | ||||
-rw-r--r-- | system/helpers/security.php | 13 | ||||
-rw-r--r-- | system/helpers/text.php | 46 | ||||
-rw-r--r-- | system/helpers/url.php | 21 | ||||
-rw-r--r-- | system/helpers/utf8.php | 2 |
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('<?', '?>'), $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. |