/** * Automatic translator via Google translate */ function autotranslate() { if ($_POST['translate'] && $_POST['locale']) { set_time_limit(1800); $LOCALE_RES = $_POST['locale']; $base_url = 'http://ajax.googleapis.com/ajax/services/language/translate' . '?v=1.0'; $vars = db()->query_fetch_all("SELECT id,value FROM " . db('locale_vars') . " WHERE id NOT IN( \n\t\t\t\t\tSELECT var_id FROM " . db('locale_translate') . " \n\t\t\t\t\tWHERE locale = '" . $LOCALE_RES . "' AND value != '' \n\t\t\t\t)"); $_info = []; $max_threads = 4; $buffer = []; $translated = []; _debug_log("LOCALE_NUM_VARS: " . count($vars)); foreach ((array) $vars as $A) { $translated = []; $url = $base_url . "&q=" . urlencode(str_replace("_", " ", $A["value"])) . "&langpair=en%7C" . $LOCALE_RES; $_temp[$url] = $A["id"]; if (count($buffer) < $max_threads) { $buffer[$url] = $url; continue; } foreach ((array) common()->multi_request($buffer) as $url => $response) { $response_array = json_decode($response); $response_text = trim($response_array->responseData->translatedText); $ID = $_temp[$url]; $source = str_replace("_", " ", $vars[$ID]["value"]); _debug_log("LOCALE: " . ++$j . " ## " . $ID . " ## " . $source . " ## " . $response_text . " ## " . $url); if (_strlen($response_text) && $response_text != $source) { $translated[$ID] = $response_text; } } if ($translated) { $Q = db()->query("DELETE FROM " . db('locale_translate') . " \n\t\t\t\t\t\tWHERE locale = '" . _es($LOCALE_RES) . "' \n\t\t\t\t\t\t\tAND var_id IN(" . implode(",", array_keys($translated)) . ")"); } foreach ((array) $translated as $_id => $_value) { db()->REPLACE('locale_translate', ['var_id' => intval($_id), 'value' => _es($_value), 'locale' => _es($LOCALE_RES)]); } $buffer = []; $_temp = []; } cache_del('locale_translate_' . $LOCALE_RES); return js_redirect('./?object=' . $_GET['object']); } $Q = db()->query('SELECT * FROM ' . db('locale_langs') . ' ORDER BY name'); while ($A = db()->fetch_assoc($Q)) { $locales[$A['locale']] = $A['name']; } $replace = ['locale_box' => common()->select_box('locale', $locales), 'locale_editor_url' => './?object=locale_editor', 'form_action' => './?object=' . $_GET['object'] . '&action=' . $_GET['action']]; return tpl()->parse($_GET['object'] . '/autotranslate', $replace); }
function payment_callback() { // main()->NO_GRAPHICS = true; _debug_log(print_r($_POST, 1)); }
/** * Multiple accounts checker */ function _check_multi_accounts() { if (empty($_SESSION[$this->VAR_USER_ID]) || empty($_SESSION[$this->VAR_USER_GROUP_ID])) { return false; } $_SPECIAL_NAME = 'accounts'; if (empty($_COOKIE[$_SPECIAL_NAME])) { return $this->_set_special_cookie($_SESSION[$this->VAR_USER_ID]); } $cookie_users = []; foreach (explode('_', $_COOKIE[$_SPECIAL_NAME]) as $_user_id) { $cookie_users[$_user_id] = $_user_id; } if ($_COOKIE[$_SPECIAL_NAME] == $_SESSION[$this->VAR_USER_ID] || count($cookie_users) > 1 && isset($cookie_users[$_SESSION[$this->VAR_USER_ID]])) { return false; } $data = db()->query_fetch('SELECT * FROM ' . db('check_multi_accounts') . ' WHERE user_id=' . intval($_SESSION[$this->VAR_USER_ID])); if (isset($cookie_users[$_SESSION[$this->VAR_USER_ID]])) { unset($cookie_users[$_SESSION[$this->VAR_USER_ID]]); } $matching_users = implode(',', $cookie_users); if (empty($data)) { db()->insert_safe('check_multi_accounts', ['user_id' => intval($_SESSION[$this->VAR_USER_ID]), 'matching_users' => $matching_users, 'last_update' => time(), 'cookie_match' => 1]); } else { db()->update_safe('check_multi_accounts', ['matching_users' => $matching_users, 'last_update' => time(), 'cookie_match' => 1], 'user_id=' . intval($_SESSION[$this->VAR_USER_ID])); } $this->_set_special_cookie($_COOKIE[$_SPECIAL_NAME] . '_' . $_SESSION[$this->VAR_USER_ID]); main()->_HAS_MULTI_ACCOUNTS = true; _debug_log('_check_multi_accounts: found possible multi-account, old_id=' . $last_id . ',new_id=' . $_SESSION[$this->VAR_USER_ID] . ',cookie=' . $_COOKIE[$_SPECIAL_NAME], E_NOTICE); }
/** * Convert data to UTF-8 * Requires the iconv, GNU recode or mbstring PHP extension. * * @param $data The data to be converted. * @param $encoding The encoding that the data is in * @return Converted data or FALSE. */ function convert_to_utf8($data, $encoding) { if (function_exists('iconv')) { $out = iconv($encoding, 'utf-8', $data); } else { if (function_exists('mb_convert_encoding')) { $out = mb_convert_encoding($data, 'utf-8', $encoding); } else { if (function_exists('recode_string')) { $out = recode_string($encoding . '..utf-8', $data); } else { _debug_log(t('Unsupported encoding %s. Please install iconv, GNU recode or mbstring for PHP.', ['%s' => $encoding])); return FALSE; } } } return $out; }