mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Import: Fix wrong main_page for non-English wikis
This commit is contained in:
parent
94a755124e
commit
17f3de3124
@ -60,7 +60,7 @@ public class Xow_db_mkr {
|
||||
Xowd_core_db_props props = new Xowd_core_db_props(2, Xow_db_layout.Itm_all, Xow_db_layout.Itm_all, Xow_db_layout.Itm_all, Io_stream_tid_.Tid__raw, Io_stream_tid_.Tid__raw, Bool_.N, Bool_.N);
|
||||
props.Cfg_save(cfg_tbl);
|
||||
|
||||
Xowd_cfg_tbl_.Insert__create(cfg_tbl, data.Domain(), wiki_name, mainpage_name);
|
||||
Xowd_cfg_tbl_.Upsert__create(cfg_tbl, data.Domain(), wiki_name, mainpage_name);
|
||||
|
||||
// insert data: page
|
||||
Xopg_db_mgr.Create
|
||||
|
@ -19,6 +19,7 @@ package gplx.xowa.bldrs.cmds.texts; import gplx.*; import gplx.xowa.*; import gp
|
||||
import gplx.xowa.xtns.wbases.*;
|
||||
import gplx.xowa.bldrs.*; import gplx.xowa.bldrs.wkrs.*; import gplx.xowa.bldrs.xmls.*; import gplx.xowa.bldrs.cmds.texts.xmls.*;
|
||||
import gplx.xowa.bldrs.css.*; import gplx.xowa.wikis.domains.*;
|
||||
import gplx.xowa.wikis.data.*;
|
||||
public abstract class Xob_init_base implements Xob_cmd, Gfo_invk {
|
||||
private Xob_bldr bldr; private Xowe_wiki wiki; private Gfo_usr_dlg usr_dlg;
|
||||
private byte wbase_enabled = Bool_.__byte;
|
||||
@ -48,8 +49,11 @@ public abstract class Xob_init_base implements Xob_cmd, Gfo_invk {
|
||||
Io_mgr.Instance.DeleteFil_args(url).MissingFails_off().Exec();
|
||||
// }
|
||||
|
||||
// always save xowa_cfg import data now; note that other builder commands will load cfg and overwrite data with null; DATE:2017-02-20
|
||||
gplx.xowa.wikis.data.Xowd_cfg_tbl_.Insert__import(wiki);
|
||||
// always save xowa_cfg data at end of init step, not term step; else, other builder commands will load empty cfg and import data will be null; DATE:2017-02-20
|
||||
if (!gplx.core.envs.Env_.Mode_testing()) { // need else Xob_init_base_tst fails; DATE:2017-02-20
|
||||
Xowd_cfg_tbl_.Upsert__import(wiki);
|
||||
Xowd_cfg_tbl_.Upsert__create(wiki);
|
||||
}
|
||||
}
|
||||
@gplx.Virtual public void Cmd_term() {}
|
||||
@gplx.Virtual public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
|
@ -35,7 +35,8 @@ public abstract class Xob_term_base implements Xob_cmd, Gfo_invk {
|
||||
|
||||
// update main page
|
||||
byte[] new_main_page = gplx.xowa.langs.msgs.Xow_mainpage_finder.Find_or(wiki, wiki.Props().Siteinfo_mainpage()); // get new main_page from mainpage_finder
|
||||
wiki.Props().Main_page_update_(new_main_page);
|
||||
wiki.Props().Main_page_(new_main_page);
|
||||
wiki.Data__core_mgr().Db__core().Tbl__cfg().Upsert_bry(gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__wiki_init, gplx.xowa.wikis.data.Xowd_cfg_key_.Key__init__main_page , new_main_page);
|
||||
|
||||
// remove import marker
|
||||
app.Bldr().Import_marker().End(wiki);
|
||||
|
@ -93,7 +93,6 @@ public class Xob_page_cmd extends Xob_itm_basic_base implements Xob_page_wkr, Gf
|
||||
Xow_db_file db_core = db_mgr.Db__core();
|
||||
db_core.Tbl__site_stats().Update(page_count_main, page_count_all, ns_mgr.Ns_file().Count()); // save page stats
|
||||
db_core.Tbl__ns().Insert(ns_mgr); // save ns
|
||||
db_mgr.Tbl__cfg().Insert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest, modified_latest.XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
|
||||
if (idx_mode.Tid_is_end()) page_core_tbl.Create_idx();
|
||||
if (redirect_id_enabled) {
|
||||
redirect_tbl.Conn().Txn_end();
|
||||
|
@ -25,10 +25,6 @@ public class Xob_term_cmd extends Xob_term_base {
|
||||
// delete wiki's temp dir
|
||||
Io_mgr.Instance.DeleteDirDeep(wiki.Fsys_mgr().Tmp_dir());
|
||||
|
||||
// insert cfg defaults
|
||||
Xowd_cfg_tbl_.Insert__import(wiki);
|
||||
Xowd_cfg_tbl_.Insert__create(wiki);
|
||||
|
||||
// build fsdb
|
||||
gplx.fsdb.Fsdb_db_mgr__v2_bldr.Get_or_make(wiki, false);// always build file.user db; DATE:2015-05-12
|
||||
|
||||
|
@ -34,6 +34,7 @@ public class Xob_siteinfo_parser_ {
|
||||
Xob_siteinfo_nde nde = Parse(String_.new_u8(siteinfo_bry), wiki.Ns_mgr());
|
||||
wiki.Props().Bldr_version_(Bry_.new_a7(Xoa_app_.Version));
|
||||
wiki.Props().Main_page_(nde.Main_page());
|
||||
wiki.Props().Siteinfo_mainpage_(nde.Main_page());
|
||||
Bry_bfr bfr = Bry_bfr_.New().Add_str_u8(nde.Site_name()).Add_byte_pipe().Add_str_u8(nde.Generator()).Add_byte_pipe().Add_str_u8(nde.Case_dflt()).Add_byte_pipe();
|
||||
wiki.Props().Siteinfo_misc_(bfr.To_bry_and_clear());
|
||||
}
|
||||
|
@ -30,18 +30,18 @@ public class Xowd_cfg_tbl_ {
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static void Insert__import(Xowe_wiki wiki) {
|
||||
public static void Upsert__import(Xowe_wiki wiki) {
|
||||
Db_cfg_tbl cfg_tbl = wiki.Data__core_mgr().Db__core().Tbl__cfg();
|
||||
cfg_tbl.Upsert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__bldr_version, wiki.Props().Bldr_version());
|
||||
cfg_tbl.Upsert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__siteinfo_misc, wiki.Props().Siteinfo_misc());
|
||||
cfg_tbl.Upsert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__siteinfo_mainpage, wiki.Props().Siteinfo_mainpage());
|
||||
}
|
||||
public static void Insert__create(Xowe_wiki wiki) {Insert__create(wiki.Data__core_mgr().Db__core().Tbl__cfg(), wiki.Domain_str(), wiki.Domain_str(), wiki.Props().Main_page());}
|
||||
public static void Insert__create(Db_cfg_tbl cfg_tbl, String domain, String name, byte[] main_page) {
|
||||
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__domain , domain);
|
||||
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__name , name);
|
||||
cfg_tbl.Insert_int(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__upgrade__version , gplx.xowa.addons.wikis.directorys.specials.items.bldrs.Xow_wiki_upgrade_.Upgrade_version__cur);
|
||||
cfg_tbl.Insert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__main_page , main_page);
|
||||
cfg_tbl.Insert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest , Datetime_now.Get().XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
|
||||
public static void Upsert__create(Xowe_wiki wiki) {Upsert__create(wiki.Data__core_mgr().Db__core().Tbl__cfg(), wiki.Domain_str(), wiki.Domain_str(), wiki.Props().Main_page());}
|
||||
public static void Upsert__create(Db_cfg_tbl cfg_tbl, String domain, String name, byte[] main_page) {
|
||||
cfg_tbl.Upsert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__domain , domain);
|
||||
cfg_tbl.Upsert_str(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__core__name , name);
|
||||
cfg_tbl.Upsert_int(Xowd_cfg_key_.Grp__empty , Xowd_cfg_key_.Key__wiki__upgrade__version , gplx.xowa.addons.wikis.directorys.specials.items.bldrs.Xow_wiki_upgrade_.Upgrade_version__cur);
|
||||
cfg_tbl.Upsert_bry(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__main_page , main_page);
|
||||
cfg_tbl.Upsert_str(Xowd_cfg_key_.Grp__wiki_init, Xowd_cfg_key_.Key__init__modified_latest , Datetime_now.Get().XtoStr_fmt(DateAdp_.Fmt_iso8561_date_time));
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ public class Xodb_load_mgr_sql implements Xodb_load_mgr {
|
||||
db_core.Tbl__site_stats().Select(wiki.Stats());
|
||||
db_core.Tbl__ns().Select_all(wiki.Ns_mgr());
|
||||
}
|
||||
private void Load_cfg(Xowe_wiki wiki) {
|
||||
private static void Load_cfg(Xow_wiki wiki) {
|
||||
byte[] main_page = null, bldr_version = null, siteinfo_misc = null, siteinfo_mainpage = null;
|
||||
DateAdp modified_latest = null;
|
||||
|
||||
|
@ -44,13 +44,7 @@ public class Xow_wiki_props {
|
||||
public void ContentLanguage_ (byte[] v) {content_language = v;}
|
||||
public void Bldr_version_ (byte[] v) {bldr_version = v;}
|
||||
public void Main_page_ (byte[] v) {main_page = v;}
|
||||
public void Main_page_update_(byte[] v) {
|
||||
// old main_page comes directly from <siteinfo>; store it in siteinfo_mainpage for record's sake
|
||||
this.siteinfo_mainpage = main_page;
|
||||
|
||||
// update main_page to new_main_page
|
||||
this.main_page = v;
|
||||
}
|
||||
public void Siteinfo_mainpage_(byte[] v) {siteinfo_mainpage = v;}
|
||||
public void Siteinfo_misc_(byte[] v) {
|
||||
this.siteinfo_misc = v;
|
||||
int pipe_0 = Bry_find_.Find_fwd(v, Byte_ascii.Pipe);
|
||||
|
Loading…
Reference in New Issue
Block a user