/** @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);
 }