本文整理汇总了PHP中Localization::translateCharset方法的典型用法代码示例。如果您正苦于以下问题:PHP Localization::translateCharset方法的具体用法?PHP Localization::translateCharset怎么用?PHP Localization::translateCharset使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Localization
的用法示例。
在下文中一共展示了Localization::translateCharset方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: translateCharacters
/**
* Performs character set and HTML character translations on the string.
*
* @access public
* @param string $string required The string that is to be translated.
* @param Localization $locale required The locale object for doing the character set translation.
* @param string $toCharset required Translate to this character set.
* @param string $fromCharset Translate from this character set.
* @return string The translated string.
*/
public function translateCharacters($string, Localization $locale, $toCharset, $fromCharset = "UTF-8")
{
// perform character set translations on the string
$string = $locale->translateCharset($string, $fromCharset, $toCharset);
// perform HTML character translations on the string
$string = from_html($string);
return $string;
}
示例2: importVCard
function importVCard($filename, $module = 'Contacts')
{
global $current_user;
$lines = file($filename);
$start = false;
$contact = loadBean($module);
$contact->title = 'imported';
$contact->assigned_user_id = $current_user->id;
$fullname = '';
$email_suffix = 1;
for ($index = 0; $index < sizeof($lines); $index++) {
$line = $lines[$index];
// check the encoding and change it if needed
$locale = new Localization();
$encoding = $locale->detectCharset($line);
if ($encoding != $GLOBALS['sugar_config']['default_charset']) {
$line = $locale->translateCharset($line, $encoding);
}
$line = trim($line);
if ($start) {
//VCARD is done
if (substr_count(strtoupper($line), 'END:VCARD')) {
if (!isset($contact->last_name)) {
$contact->last_name = $fullname;
}
break;
}
$keyvalue = explode(':', $line);
if (sizeof($keyvalue) == 2) {
$value = $keyvalue[1];
for ($newindex = $index + 1; $newindex < sizeof($lines), substr_count($lines[$newindex], ':') == 0; $newindex++) {
$value .= $lines[$newindex];
$index = $newindex;
}
$values = explode(';', $value);
$key = strtoupper($keyvalue[0]);
$key = strtr($key, '=', '');
$key = strtr($key, ',', ';');
$keys = explode(';', $key);
if ($keys[0] == 'TEL') {
if (substr_count($key, 'WORK') > 0) {
if (substr_count($key, 'FAX') > 0) {
if (!isset($contact->phone_fax)) {
$contact->phone_fax = $value;
}
} else {
if (!isset($contact->phone_work)) {
$contact->phone_work = $value;
}
}
}
if (substr_count($key, 'HOME') > 0) {
if (substr_count($key, 'FAX') > 0) {
if (!isset($contact->phone_fax)) {
$contact->phone_fax = $value;
}
} else {
if (!isset($contact->phone_home)) {
$contact->phone_home = $value;
}
}
}
if (substr_count($key, 'CELL') > 0) {
if (!isset($contact->phone_mobile)) {
$contact->phone_mobile = $value;
}
}
if (substr_count($key, 'FAX') > 0) {
if (!isset($contact->phone_fax)) {
$contact->phone_fax = $value;
}
}
}
if ($keys[0] == 'N') {
if (sizeof($values) > 0) {
$contact->last_name = $values[0];
}
if (sizeof($values) > 1) {
$contact->first_name = $values[1];
}
if (sizeof($values) > 2) {
$contact->salutation = $values[2];
}
}
if ($keys[0] == 'FN') {
$fullname = $value;
}
}
if ($keys[0] == 'ADR') {
if (substr_count($key, 'WORK') > 0 && (substr_count($key, 'POSTAL') > 0 || substr_count($key, 'PARCEL') == 0)) {
if (!isset($contact->primary_address_street) && sizeof($values) > 2) {
$textBreaks = array("\n", "\r");
$vcardBreaks = array("=0A", "=0D");
$contact->primary_address_street = str_replace($vcardBreaks, $textBreaks, $values[2]);
}
if (!isset($contact->primary_address_city) && sizeof($values) > 3) {
$contact->primary_address_city = $values[3];
}
if (!isset($contact->primary_address_state) && sizeof($values) > 4) {
$contact->primary_address_state = $values[4];
//.........这里部分代码省略.........
示例3: importRow
protected function importRow($row)
{
global $sugar_config, $mod_strings, $current_user;
$focus = clone $this->bean;
$focus->unPopulateDefaultValues();
$focus->save_from_post = false;
$focus->team_id = null;
$this->ifs->createdBeans = array();
$this->importSource->resetRowErrorCounter();
$do_save = true;
for ($fieldNum = 0; $fieldNum < $_REQUEST['columncount']; $fieldNum++) {
// loop if this column isn't set
if (!isset($this->importColumns[$fieldNum])) {
continue;
}
// get this field's properties
$field = $this->importColumns[$fieldNum];
$fieldDef = $focus->getFieldDefinition($field);
$fieldTranslated = translate(isset($fieldDef['vname']) ? $fieldDef['vname'] : $fieldDef['name'], $focus->module_dir) . " (" . $fieldDef['name'] . ")";
$defaultRowValue = '';
// Bug 37241 - Don't re-import over a field we already set during the importing of another field
if (!empty($focus->{$field})) {
continue;
}
// translate strings
global $locale;
if (empty($locale)) {
$locale = new Localization();
}
if (isset($row[$fieldNum])) {
$rowValue = $locale->translateCharset(strip_tags(trim($row[$fieldNum])), $this->importSource->importlocale_charset, $sugar_config['default_charset']);
} else {
if (isset($this->sugarToExternalSourceFieldMap[$field]) && isset($row[$this->sugarToExternalSourceFieldMap[$field]])) {
$rowValue = $locale->translateCharset(strip_tags(trim($row[$this->sugarToExternalSourceFieldMap[$field]])), $this->importSource->importlocale_charset, $sugar_config['default_charset']);
} else {
$rowValue = '';
}
}
// If there is an default value then use it instead
if (!empty($_REQUEST[$field])) {
$defaultRowValue = $this->populateDefaultMapValue($field, $_REQUEST[$field], $fieldDef);
if (empty($rowValue)) {
$rowValue = $defaultRowValue;
//reset the default value to empty
$defaultRowValue = '';
}
}
// Bug 22705 - Don't update the First Name or Last Name value if Full Name is set
if (in_array($field, array('first_name', 'last_name')) && !empty($focus->full_name)) {
continue;
}
// loop if this value has not been set
if (!isset($rowValue)) {
continue;
}
// If the field is required and blank then error out
if (array_key_exists($field, $focus->get_import_required_fields()) && empty($rowValue) && $rowValue != '0') {
$this->importSource->writeError($mod_strings['LBL_REQUIRED_VALUE'], $fieldTranslated, 'NULL');
$do_save = false;
}
// Handle the special case "Sync to Outlook"
if ($focus->object_name == "Contact" && $field == 'sync_contact') {
/**
* Bug #41194 : if true used as value of sync_contact - add curent user to list to sync
*/
if (true == $rowValue || 'true' == strtolower($rowValue)) {
$focus->sync_contact = $focus->id;
} elseif (false == $rowValue || 'false' == strtolower($rowValue)) {
$focus->sync_contact = '';
} else {
$bad_names = array();
$returnValue = $this->ifs->synctooutlook($rowValue, $fieldDef, $bad_names);
// try the default value on fail
if (!$returnValue && !empty($defaultRowValue)) {
$returnValue = $this->ifs->synctooutlook($defaultRowValue, $fieldDef, $bad_names);
}
if (!$returnValue) {
$this->importSource->writeError($mod_strings['LBL_ERROR_SYNC_USERS'], $fieldTranslated, $bad_names);
$do_save = 0;
} else {
$focus->sync_contact = $returnValue;
}
}
}
// Handle email field, if it's a semi-colon separated export
if ($field == 'email_addresses_non_primary' && !empty($rowValue)) {
if (strpos($rowValue, ';') !== false) {
$rowValue = explode(';', $rowValue);
} else {
$rowValue = array($rowValue);
}
}
// Handle email1 and email2 fields ( these don't have the type of email )
if ($field == 'email1' || $field == 'email2') {
$returnValue = $this->ifs->email($rowValue, $fieldDef, $focus);
// try the default value on fail
if (!$returnValue && !empty($defaultRowValue)) {
$returnValue = $this->ifs->email($defaultRowValue, $fieldDef);
}
if ($returnValue === FALSE) {
//.........这里部分代码省略.........
示例4: display
/**
* @see SugarView::display()
*/
public function display()
{
global $sugar_config;
// Increase the max_execution_time since this step can take awhile
ini_set("max_execution_time", max($sugar_config['import_max_execution_time'], 3600));
// stop the tracker
TrackerManager::getInstance()->pause();
// use our own error handler
set_error_handler('handleImportErrors', E_ALL);
global $mod_strings, $app_strings, $current_user, $import_bean_map;
global $app_list_strings, $timedate;
$update_only = isset($_REQUEST['import_type']) && $_REQUEST['import_type'] == 'update';
$firstrow = unserialize(base64_decode($_REQUEST['firstrow']));
// All the Look Up Caches are initialized here
$enum_lookup_cache = array();
// Let's try and load the import bean
$focus = loadImportBean($_REQUEST['import_module']);
if (!$focus) {
trigger_error($mod_strings['LBL_ERROR_IMPORTS_NOT_SET_UP'], E_USER_ERROR);
}
// setup the importable fields array.
$importable_fields = $focus->get_importable_fields();
// loop through all request variables
$importColumns = array();
foreach ($_REQUEST as $name => $value) {
// only look for var names that start with "fieldNum"
if (strncasecmp($name, "colnum_", 7) != 0) {
continue;
}
// pull out the column position for this field name
$pos = substr($name, 7);
if (isset($importable_fields[$value])) {
// now mark that we've seen this field
$importColumns[$pos] = $value;
}
}
// set the default locale settings
$ifs = new ImportFieldSanitize();
$ifs->dateformat = $_REQUEST['importlocale_dateformat'];
$ifs->timeformat = $_REQUEST['importlocale_timeformat'];
$ifs->timezone = $_REQUEST['importlocale_timezone'];
$currency = new Currency();
$currency->retrieve($_REQUEST['importlocale_currency']);
$ifs->currency_symbol = $currency->symbol;
$ifs->default_currency_significant_digits = $_REQUEST['importlocale_default_currency_significant_digits'];
$ifs->num_grp_sep = $_REQUEST['importlocale_num_grp_sep'];
$ifs->dec_sep = $_REQUEST['importlocale_dec_sep'];
$ifs->default_locale_name_format = $_REQUEST['importlocale_default_locale_name_format'];
// Check to be sure we are getting an import file that is in the right place
if (realpath(dirname($_REQUEST['tmp_file']) . '/') != realpath($sugar_config['upload_dir'])) {
trigger_error($mod_strings['LBL_CANNOT_OPEN'], E_USER_ERROR);
}
// Open the import file
$importFile = new ImportFile($_REQUEST['tmp_file'], $_REQUEST['custom_delimiter'], html_entity_decode($_REQUEST['custom_enclosure'], ENT_QUOTES));
if (!$importFile->fileExists()) {
trigger_error($mod_strings['LBL_CANNOT_OPEN'], E_USER_ERROR);
}
$fieldDefs = $focus->getFieldDefinitions();
unset($focus);
while ($row = $importFile->getNextRow()) {
$focus = loadImportBean($_REQUEST['import_module']);
$focus->unPopulateDefaultValues();
$focus->save_from_post = false;
$focus->team_id = null;
$ifs->createdBeans = array();
$do_save = true;
for ($fieldNum = 0; $fieldNum < $_REQUEST['columncount']; $fieldNum++) {
// loop if this column isn't set
if (!isset($importColumns[$fieldNum])) {
continue;
}
// get this field's properties
$field = $importColumns[$fieldNum];
$fieldDef = $focus->getFieldDefinition($field);
$fieldTranslated = translate(isset($fieldDef['vname']) ? $fieldDef['vname'] : $fieldDef['name'], $_REQUEST['module']) . " (" . $fieldDef['name'] . ")";
// Bug 37241 - Don't re-import over a field we already set during the importing of another field
if (!empty($focus->{$field})) {
continue;
}
//DETERMINE WHETHER OR NOT $fieldDef['name'] IS DATE_MODIFIED AND SET A VAR, USE DOWN BELOW
// translate strings
global $locale;
if (empty($locale)) {
$locale = new Localization();
}
if (isset($row[$fieldNum])) {
$rowValue = $locale->translateCharset(strip_tags(trim($row[$fieldNum])), $_REQUEST['importlocale_charset'], $sugar_config['default_charset']);
} else {
$rowValue = '';
}
// If there is an default value then use it instead
if (!empty($_REQUEST[$field])) {
if (is_array($_REQUEST[$field])) {
$defaultRowValue = encodeMultienumValue($_REQUEST[$field]);
} else {
$defaultRowValue = $_REQUEST[$field];
}
//.........这里部分代码省略.........
示例5: parse_import_act
function parse_import_act($file_name, $delimiter, $max_lines, $has_header)
{
global $locale;
if (empty($locale)) {
require_once 'include/Localization/Localization.php';
$locale = new Localization();
}
$line_count = 0;
$field_count = 0;
$rows = array();
if (!file_exists($file_name)) {
return -1;
}
$fh = fopen($file_name, "r");
if (!$fh) {
return -1;
}
while (($line = fgets($fh, 4096)) && ($max_lines == -1 || $line_count < $max_lines)) {
$line = trim($line);
$line = substr_replace($line, "", 0, 1);
$line = substr_replace($line, "", -1);
$fields = explode("\",\"", $line);
$this_field_count = count($fields);
if ($this_field_count > $field_count) {
$field_count = $this_field_count;
}
array_push($rows, $fields);
$line_count++;
}
// got no rows
if (count($rows) == 0) {
return -3;
} else {
//// cn: bug 6712 - need to translate to UTF-8
foreach ($rows as $rowKey => $row) {
foreach ($row as $k => $v) {
$row[$k] = $locale->translateCharset($v, $locale->getExportCharset());
}
$rows[$rowKey] = $row;
}
}
$ret_array = array("rows" => &$rows, "field_count" => $field_count);
return $ret_array;
}