Browse Source

Format code + don't apply utf8 encode in api_htmlentities. (requires testing)

Julio Montoya 9 years ago
parent
commit
36370b8f65
1 changed files with 51 additions and 31 deletions
  1. 51 31
      main/inc/lib/internationalization.lib.php

+ 51 - 31
main/inc/lib/internationalization.lib.php

@@ -6,7 +6,6 @@
  * Internationalization library for Chamilo 1.8.7 LMS
  * A library implementing internationalization related functions.
  * License: GNU General Public License Version 3 (Free Software Foundation)ww
- * @todo use Patchwork-UTF8 instead of custom changes.
  * @author Ivan Tcholakov, <ivantcholakov@gmail.com>, 2009, 2010
  * @author More authors, mentioned in the correpsonding fragments of this source.
  * @package chamilo.library
@@ -776,7 +775,7 @@ function api_convert_and_format_date($time = null, $format = null, $from_timezon
 
 /**
  * Returns an array of translated week days in short names.
- * @param string $language (optional)	Language indentificator. If it is omited, the current interface language is assumed.
+ * @param string $language (optional)	Language id. If it is omitted, the current interface language is assumed.
  * @return string						Returns an array of week days (short names).
  * Example: api_get_week_days_short('english') means array('Sun', 'Mon', ... 'Sat').
  * Note: For all languges returned days are in the English order.
@@ -788,7 +787,7 @@ function api_get_week_days_short($language = null) {
 
 /**
  * Returns an array of translated week days.
- * @param string $language (optional)	Language indentificator. If it is omited, the current interface language is assumed.
+ * @param string $language (optional)	Language id. If it is omitted, the current interface language is assumed.
  * @return string						Returns an array of week days.
  * Example: api_get_week_days_long('english') means array('Sunday, 'Monday', ... 'Saturday').
  * Note: For all languges returned days are in the English order.
@@ -800,7 +799,7 @@ function api_get_week_days_long($language = null) {
 
 /**
  * Returns an array of translated months in short names.
- * @param string $language (optional)	Language indentificator. If it is omited, the current interface language is assumed.
+ * @param string $language (optional)	Language id. If it is omitted, the current interface language is assumed.
  * @return string						Returns an array of months (short names).
  * Example: api_get_months_short('english') means array('Jan', 'Feb', ... 'Dec').
  */
@@ -811,7 +810,7 @@ function api_get_months_short($language = null) {
 
 /**
  * Returns an array of translated months.
- * @param string $language (optional)	Language indentificator. If it is omited, the current interface language is assumed.
+ * @param string $language (optional)	Language id. If it is omitted, the current interface language is assumed.
  * @return string						Returns an array of months.
  * Example: api_get_months_long('english') means array('January, 'February' ... 'December').
  */
@@ -826,11 +825,11 @@ function api_get_months_long($language = null) {
 
 /**
  * Builds a person (full) name depending on the convention for a given language.
- * @param string $first_name			The first name of the preson.
+ * @param string $first_name			The first name of the person.
  * @param string $last_name				The last name of the person.
  * @param string $title					The title of the person.
  * @param int/string $format (optional)	The person name format. It may be a pattern-string (for example '%t %l, %f' or '%T %F %L', ...) or some of the constants PERSON_NAME_COMMON_CONVENTION (default), PERSON_NAME_WESTERN_ORDER, PERSON_NAME_EASTERN_ORDER, PERSON_NAME_LIBRARY_ORDER.
- * @param string $language (optional)	The language indentificator. If it is omited, the current interface language is assumed. This parameter has meaning with the format PERSON_NAME_COMMON_CONVENTION only.
+ * @param string $language (optional)	The language id. If it is omitted, the current interface language is assumed. This parameter has meaning with the format PERSON_NAME_COMMON_CONVENTION only.
  * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
  * @return bool							The result is sort of full name of the person.
  * Sample results:
@@ -927,7 +926,7 @@ function api_get_person_name(
 /**
  * Checks whether a given format represents person name in Western order (for which first name is first).
  * @param int/string $format (optional)	The person name format. It may be a pattern-string (for example '%t. %l, %f') or some of the constants PERSON_NAME_COMMON_CONVENTION (default), PERSON_NAME_WESTERN_ORDER, PERSON_NAME_EASTERN_ORDER, PERSON_NAME_LIBRARY_ORDER.
- * @param string $language (optional)	The language identificator. If it is omited, the current interface language is assumed. This parameter has meaning with the format PERSON_NAME_COMMON_CONVENTION only.
+ * @param string $language (optional)	The language id. If it is omitted, the current interface language is assumed. This parameter has meaning with the format PERSON_NAME_COMMON_CONVENTION only.
  * @return bool							The result TRUE means that the order is first_name last_name, FALSE means last_name first_name.
  * Note: You may use this function for determing the order of the fields or columns "First name" and "Last name" in forms, tables and reports.
  * @author Ivan Tcholakov
@@ -951,7 +950,7 @@ function api_is_western_name_order($format = null, $language = null)
 
 /**
  * Returns a directive for sorting person names depending on a given language and based on the options in the internationalization "database".
- * @param string $language (optional)	The input language. If it is omited, the current interface language is assumed.
+ * @param string $language (optional)	The input language. If it is omitted, the current interface language is assumed.
  * @return bool							Returns boolean value. TRUE means ORDER BY first_name, last_name; FALSE means ORDER BY last_name, first_name.
  * Note: You may use this function:
  * 2. for constructing the ORDER clause of SQL queries, related to first_name and last_name;
@@ -984,7 +983,8 @@ function api_sort_by_first_name($language = null) {
  * Converts character encoding of a given string.
  * @param string $string					The string being converted.
  * @param string $to_encoding				The encoding that $string is being converted to.
- * @param string $from_encoding (optional)	The encoding that $string is being converted from. If it is omited, the platform character set is assumed.
+ * @param string $from_encoding (optional)	The encoding that $string is being converted from.
+ * If it is omitted, the platform character set is assumed.
  * @return string							Returns the converted string.
  * This function is aimed at replacing the function mb_convert_encoding() for human-language strings.
  * @link http://php.net/manual/en/function.mb-convert-encoding
@@ -997,7 +997,8 @@ function api_convert_encoding($string, $to_encoding, $from_encoding = null)
 /**
  * Converts a given string into UTF-8 encoded string.
  * @param string $string					The string being converted.
- * @param string $from_encoding (optional)	The encoding that $string is being converted from. If it is omited, the platform character set is assumed.
+ * @param string $from_encoding (optional)	The encoding that $string is being converted from.
+ * If it is omitted, the platform character set is assumed.
  * @return string							Returns the converted string.
  * This function is aimed at replacing the function utf8_encode() for human-language strings.
  * @link http://php.net/manual/en/function.utf8-encode
@@ -1010,7 +1011,8 @@ function api_utf8_encode($string, $from_encoding = 'UTF-8')
 /**
  * Converts a given string from UTF-8 encoding to a specified encoding.
  * @param string $string					The string being converted.
- * @param string $to_encoding (optional)	The encoding that $string is being converted to. If it is omited, the platform character set is assumed.
+ * @param string $to_encoding (optional)	The encoding that $string is being converted to.
+ * If it is omitted, the platform character set is assumed.
  * @return string							Returns the converted string.
  * This function is aimed at replacing the function utf8_decode() for human-language strings.
  * @link http://php.net/manual/en/function.utf8-decode
@@ -1028,7 +1030,8 @@ function api_utf8_decode($string, $to_encoding = null)
  * UTF-8 validity and decides whether to try to convert it or not.
  * This function is useful for problem detection or making workarounds.
  * @param string $string						The string being converted.
- * @param string $from_encoding (optional)		The encoding that $string is being converted from. It is guessed when it is omited.
+ * @param string $from_encoding (optional)		The encoding that $string is being converted from.
+ * It is guessed when it is omitted.
  * @param bool $check_utf8_validity (optional)	A flag for UTF-8 validity check as condition for making conversion.
  * @return string								Returns the converted string.
  */
@@ -1043,7 +1046,7 @@ function api_to_system_encoding($string, $from_encoding = null, $check_utf8_vali
  * @param string $string				The input string.
  * @param int $quote_style (optional)	The quote style - ENT_COMPAT (default), ENT_QUOTES, ENT_NOQUOTES.
  * @param string $encoding (optional)	The encoding (of the input string) used in conversion.
- * If it is omited, the platform character set is assumed.
+ * If it is omitted, the platform character set is assumed.
  * @return string						Returns the converted string.
  * This function is aimed at replacing the function htmlentities() for human-language strings.
  * @link http://php.net/manual/en/function.htmlentities
@@ -1059,14 +1062,18 @@ function api_htmlentities($string, $quote_style = ENT_COMPAT, $encoding = 'UTF-8
             break;
     }
 
-    return mb_convert_encoding(api_utf8_encode($string, $encoding), 'HTML-ENTITIES', 'UTF-8');
+    return mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8');
+/*
+    return html_entity_decode($string, $quote_style, $encoding);
+    return mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-8');*/
 }
 
 /**
  * Converts HTML entities into normal characters.
  * @param string $string				The input string.
  * @param int $quote_style (optional)	The quote style - ENT_COMPAT (default), ENT_QUOTES, ENT_NOQUOTES.
- * @param string $encoding (optional)	The encoding (of the result) used in conversion. If it is omited, the platform character set is assumed.
+ * @param string $encoding (optional)	The encoding (of the result) used in conversion.
+ * If it is omitted, the platform character set is assumed.
  * @return string						Returns the converted string.
  * This function is aimed at replacing the function html_entity_decode() for human-language strings.
  * @link http://php.net/html_entity_decode
@@ -1091,7 +1098,8 @@ function api_html_entity_decode($string, $quote_style = ENT_COMPAT, $encoding =
 /**
  * This function encodes (conditionally) a given string to UTF-8 if XmlHttp-request has been detected.
  * @param string $string					The string being converted.
- * @param string $from_encoding (optional)	The encoding that $string is being converted from. If it is omited, the platform character set is assumed.
+ * @param string $from_encoding (optional)	The encoding that $string is being converted from.
+ * If it is omitted, the platform character set is assumed.
  * @return string							Returns the converted string.
  */
 function api_xml_http_response_encode($string, $from_encoding = 'UTF8')
@@ -1120,7 +1128,8 @@ function api_xml_http_response_encode($string, $from_encoding = 'UTF8')
  *
  * @param string $string					The input string.
  * @param string $unknown (optional)		Replacement character for unknown characters and illegal UTF-8 sequences.
- * @param string $from_encoding (optional)	The encoding of the input string. If it is omited, the platform character set is assumed.
+ * @param string $from_encoding (optional)	The encoding of the input string.
+ * If it is omitted, the platform character set is assumed.
  * @return string							Plain ASCII output.
  *
  */
@@ -1146,9 +1155,10 @@ function api_ord($character, $encoding) {
  * This function returns a string or an array with all occurrences of search in subject (ignoring case) replaced with the given replace value.
  * @param mixed $search					String or array of strings to be found.
  * @param mixed $replace				String or array of strings used for replacement.
- * @param mixed $subject				String or array of strings being searced.
+ * @param mixed $subject				String or array of strings being searched.
  * @param int $count (optional)			The number of matched and replaced needles will be returned in count, which is passed by reference.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return mixed						String or array as a result.
  * Notes:
  * If $subject is an array, then the search and replace is performed with every entry of subject, the return value is an array.
@@ -1399,7 +1409,8 @@ function api_substr($string, $start, $length = null, $encoding = null)
  * Counts the number of substring occurrences.
  * @param string $haystack				The string being checked.
  * @param string $needle				The string being found.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return int							The number of times the needle substring occurs in the haystack string.
  * @link http://php.net/manual/en/function.mb-substr-count.php
  */
@@ -1422,7 +1433,8 @@ function api_substr_count($haystack, $needle, $encoding = null)
  * If it is negative, it represents the number of characters from the end of string at which to stop replacing.
  * If it is not given, then it will default to api_strlen($string); i.e. end the replacing at the end of string.
  * If $length is zero, then this function will have the effect of inserting replacement into the string at the given start offset.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return string						The result string is returned.
  * This function is aimed at replacing the function substr_replace() for human-language strings.
  * @link http://php.net/manual/function.substr-replace
@@ -1439,7 +1451,8 @@ function api_substr_replace($string, $replacement, $start, $length = null, $enco
 /**
  * Makes a string's first character uppercase.
  * @param string $string				The input string.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return string						Returns a string with the first character capitalized, if that character is alphabetic.
  * This function is aimed at replacing the function ucfirst() for human-language strings.
  * @link http://php.net/manual/en/function.ucfirst
@@ -1452,7 +1465,8 @@ function api_ucfirst($string, $encoding = null)
 /**
  * Uppercases the first character of each word in a string.
  * @param string $string				The input string.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return string						Returns the modified string.
  * This function is aimed at replacing the function ucwords() for human-language strings.
  * @link http://php.net/manual/en/function.ucwords
@@ -1515,7 +1529,8 @@ function api_preg_match_all($pattern, $subject, &$matches, $flags = PREG_PATTERN
  * @param string|array $subject			The string or an array with strings to search and replace.
  * @param int $limit					The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit).
  * @param int &$count					If specified, this variable will be filled with the number of replacements done.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return array|string|null			returns an array if the subject parameter is an array, or a string otherwise.
  * If matches are found, the new subject will be returned, otherwise subject will be returned unchanged or NULL if an error occurred.
  * @link http://php.net/preg_replace
@@ -1579,7 +1594,8 @@ function api_strcasecmp($string1, $string2, $language = null, $encoding = null)
  * @param string $string1				The first string.
  * @param string $string2				The second string.
  * @param string $language (optional)	The language in which comparison is to be made. If language is omitted, interface language is assumed then.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return int							Returns < 0 if $string1 is less than $string2; > 0 if $string1 is greater than $string2; and 0 if the strings are equal.
  * This function is aimed at replacing the function strcmp() for human-language strings.
  * @link http://php.net/manual/en/function.strcmp.php
@@ -1595,7 +1611,8 @@ function api_strcmp($string1, $string2, $language = null, $encoding = null)
  * @param string $string1				The first string.
  * @param string $string2				The second string.
  * @param string $language (optional)	The language in which comparison is to be made. If language is omitted, interface language is assumed then.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return int							Returns < 0 if $string1 is less than $string2; > 0 if $string1 is greater than $string2; and 0 if the strings are equal.
  * This function is aimed at replacing the function strnatcmp() for human-language strings.
  * @link http://php.net/manual/en/function.strnatcmp.php
@@ -1614,7 +1631,8 @@ function api_strnatcmp($string1, $string2, $language = null, $encoding = null)
  * Sorts an array using natural order algorithm.
  * @param array $array					The input array.
  * @param string $language (optional)	The language in which comparison is to be made. If language is omitted, interface language is assumed then.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return bool							Returns TRUE on success, FALSE on error.
  * This function is aimed at replacing the function natsort() for sorting human-language strings.
  * @link http://php.net/manual/en/function.natsort.php
@@ -1628,7 +1646,8 @@ function api_natsort(&$array, $language = null, $encoding = null)
  * Sorts an array using natural order algorithm in reverse order.
  * @param array $array					The input array.
  * @param string $language (optional)	The language in which comparison is to be made. If language is omitted, interface language is assumed then.
- * @param string $encoding (optional)	The used internally by this function character encoding. If it is omitted, the platform character set will be used by default.
+ * @param string $encoding (optional)	The used internally by this function character encoding.
+ * If it is omitted, the platform character set will be used by default.
  * @return bool							Returns TRUE on success, FALSE on error.
  */
 function api_natrsort(&$array, $language = null, $encoding = null)
@@ -1656,7 +1675,8 @@ function api_refine_encoding_id($encoding) {
  * This function checks whether two $encoding are equal (same, equvalent).
  * @param string/array $encoding1		The first encoding
  * @param string/array $encoding2		The second encoding
- * @param bool $strict					When this parameter is TRUE the comparison ignores aliases of encodings. When the parameter is FALSE, aliases are taken into account.
+ * @param bool $strict					When this parameter is TRUE the comparison ignores aliases of encodings.
+ * When the parameter is FALSE, aliases are taken into account.
  * @return bool							Returns TRUE if the encodings are equal, FALSE otherwise.
  */
 function api_equal_encodings($encoding1, $encoding2, $strict = false) {
@@ -1800,7 +1820,7 @@ function get_plugin_lang($variable, $pluginName) {
 
 /**
  * Returns an array of translated week days and months, short and normal names.
- * @param string $language (optional)	Language id. If it is ommited, the current interface language is assumed.
+ * @param string $language (optional)	Language id. If it is omitted, the current interface language is assumed.
  * @return array						Returns a multidimensional array with translated week days and months.
  */
 function &_api_get_day_month_names($language = null) {