function edit($variable_id, $value, $language_id = NULL, $variable_type = LANGUAGE_INDEX_CUSTOM) { global $database; $instance = SELanguage::_init(); if (empty($language_id)) { $language_id = SELanguage::info("language_id"); } if (empty($instance->_indices[$variable_type])) { $variable_type = LANGUAGE_INDEX_CUSTOM; } $value = str_replace("'", "\\'", str_replace("\r\n", "", $value)); // VARIABLE ID IS NONZERO if ($variable_id != 0) { // CHECK FOR EXISTING VALUE $resource = $database->database_query("SELECT NULL FROM se_languagevars WHERE languagevar_id='{$variable_id}' AND languagevar_language_id='{$language_id}' LIMIT 1"); if (!$resource) { return FALSE; } // UPDATE EXISTING if ($database->database_num_rows($resource)) { $database->database_query("UPDATE se_languagevars SET languagevar_value='{$value}' WHERE languagevar_id='{$variable_id}' AND languagevar_language_id='{$language_id}' LIMIT 1"); } else { $database->database_query("INSERT INTO se_languagevars (languagevar_id, languagevar_language_id, languagevar_value) VALUES ('{$variable_id}', '{$language_id}', '{$value}')"); } return $variable_id; } else { // Insert new $int_min = isset($instance->_indices[$variable_type][0]) ? $instance->_indices[$variable_type][0] : 0; $int_max = isset($instance->_indices[$variable_type][1]) ? $instance->_indices[$variable_type][1] : 0; $resource = $database->database_query("SELECT MAX(languagevar_id)+1 FROM se_languagevars WHERE languagevar_id>={$int_min} AND languagevar_id<={$int_max}"); $new_id = $database->database_fetch_array($resource); $new_id = $new_id[0]; if (!$new_id && $int_min && $int_max) { $new_id = $int_min; } elseif (!$new_id) { return FALSE; } $database->database_query("INSERT INTO se_languagevars (languagevar_id, languagevar_language_id, languagevar_value) VALUES ('{$new_id}', '{$language_id}', '{$value}')"); return $new_id; } }
function load($overwrite = FALSE) { $instance =& SELanguage::_init(); if (is_object($instance->_storage)) { return $instance->_storage->load($instance->_language, $overwrite); } return NULL; }
function make_language_file($language_id, $languagevars = array(), $language_info = array()) { $instance =& SELanguage::_init(); if (empty($instance->_storage->_languages)) { $instance->_storage->_languages(); } $language_info = array_merge($instance->_storage->_languages[$language_id], $language_info); if (empty($language_info['language_record_first'])) { $language_info['language_record_first'] = min(array_keys($languagevars)); } if (empty($language_info['language_record_last'])) { $language_info['language_record_last'] = max(array_keys($languagevars)); } ksort($languagevars); // Generate file data $newline = "\n"; $file_contents = ''; $file_contents .= '<?php die("Access Denied"); ?>' . $newline; $file_contents .= 'LANGUAGE_CODE:=' . $language_info['language_code'] . $newline; $file_contents .= 'LANGUAGE_NAME:=' . $language_info['language_name'] . $newline; $file_contents .= 'LANGUAGE_LOCALE:=' . $language_info['language_setlocale'] . $newline; $file_contents .= 'LANGUAGE_AUTODETECT:=' . $language_info['language_autodetect_regex'] . $newline; $file_contents .= 'LANGUAGE_RECORD_FIRST:=' . $language_info['language_record_first'] . $newline; $file_contents .= 'LANGUAGE_RECORD_LAST:=' . $language_info['language_record_last'] . $newline; //if( $range_name ) $file_contents .= 'LANGUAGE_RANGE:=' . $range_name . $newline; foreach ($languagevars as $languagevar_id => $Languagevar_value) { if (!trim($Languagevar_value)) { continue; } // Normal if (strpos($Languagevar_value, "\n") === FALSE) { $file_contents .= $languagevar_id . ':=' . $Languagevar_value . $newline; } else { $file_contents .= $languagevar_id . ':=<<<LANG' . $newline; $file_contents .= $Languagevar_value . $newline; $file_contents .= 'LANG;' . $newline; } } /* if( $language_file ) { // Open file if( !($fh = fopen($language_file, 'w')) ) { echo 'FILE ERROR'; return FALSE; } fwrite($fh, 'LANG;'.$newline); fclose($fh); return TRUE; } */ return $file_contents; }
function _loadGlobalValues($language_id, $overwrite = FALSE) { //echo " load.{$this->_load_count} "; $language_object = SELanguage::_init(); $cache_object = SECache::getInstance('serial'); if (!is_object($cache_object)) { return; } // Return if empty $global_language_values = $cache_object->get('language_globals_' . $language_id); if (empty($global_language_values)) { return; } foreach ($global_language_values as $global_languagevar_id => $global_languagevar_value) { if (!$overwrite && !empty($this->_language_variables[$global_languagevar_id])) { continue; } if (empty($global_languagevar_value)) { continue; } $this->_language_variables[$global_languagevar_id] = $global_languagevar_value; } }