/** @changeVer 2.5.8 did a bit of work to this function... */ function lang_do_import_lang($lang_Path = '') { global $wgRequest, $wgOut; if ($lang_Path == '') { if ($_FILES["new_lang"]["error"] == '0') { $lang_Path = $_FILES["new_lang"]["tmp_name"]; $lang_name = $_FILES["new_lang"]["name"]; } else { $lang_Path = $lang_Path; } if ($wgRequest->getVal('lang_code') == '') { return awcs_forum_error('admin_lang_needtoselectlang'); } $lang_code = $wgRequest->getVal('lang_code'); } # put a check if file exitsts... if (!file_exists($lang_Path)) { return awcs_forum_error('admin_update_sorrynofile'); } require $lang_Path; $lang_info = array(); $save_lang_info = array(); $save_lang_info_raw = array(); $lang_info_raw = array(); $fields = array(); #$fields[] = 'lang_owner_info'; $fields[] = 'lang_txt_admin_raw'; $fields[] = 'lang_txt_mem_raw'; $fields[] = 'lang_txt_forum_raw'; $fields[] = 'lang_txt_tag_raw'; $fields[] = 'lang_txt_search_raw'; $fields[] = 'lang_txt_thread_raw'; $fields[] = 'lang_txt_errormsg_raw'; $fields[] = 'lang_txt_redirects_raw'; /** @todo get rid of this and add a query to get id */ $lang_info = lang_getinfo($this->lang_code, $fields); #awc_pdie($lang_info); // get ID from first key $lang_id = key($lang_info); $update_vals = array(); foreach ($fields as $key) { $import_key = str_replace('_raw', '', $key); if (isset(${$key})) { foreach (${$key} as $k => $v) { $lang_info[$key][$k] = $v; $lang_info[$import_key][$k] = awc_wikipase($v, $wgOut); } $update_vals[$key] = serialize($lang_info[$key]); $update_vals[$import_key] = serialize($lang_info[$import_key]); } } if (empty($lang_owner_info) or !isset($lang_owner_info)) { $lang_owner_info = array('lang_owner_when' => "", 'lang_owner' => "", 'lang_owner_contact' => ""); } $update_vals['lang_owner_info'] = serialize($lang_owner_info); # awc_pdie($update_vals); $dbw = wfGetDB(DB_MASTER); $dbw->update('awc_f_langs', $update_vals, array('lang_id' => $lang_id), ''); return; }
function write_lang() { $out = "<?PHP " . chr(10) . chr(10); $fields = array(); $fields[] = 'lang_txt_forum_raw'; $fields[] = 'lang_txt_admin_raw'; $fields[] = 'lang_txt_mem_raw'; $fields[] = 'lang_txt_tag_raw'; $fields[] = 'lang_txt_search_raw'; $fields[] = 'lang_txt_errormsg_raw'; $fields[] = 'lang_txt_thread_raw'; $fields[] = 'lang_txt_redirects_raw'; $fields[] = 'lang_owner_info'; $lang_info = lang_getinfo('en', $fields); unset($fields); $lang_info = array_pop($lang_info); unset($lang_info['lang_code'], $lang_info['lang_id']); foreach ($lang_info as $section => $key) { $section_name = str_replace('_raw', '', $section); $out .= "\${$section_name} = array( " . chr(10); foreach ($lang_info[$section] as $k => $v) { $out .= "'" . $k . "' => \"" . str_replace('"', '\\"', trim($v)) . '", ' . chr(10); } $out .= ");" . chr(10) . chr(10); } self::write_file('lang.txt', $out); }