From df63a6ff6bbc957ccc86ccd87b0603a8c02af844 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Sat, 8 Jul 2017 17:02:17 -0400 Subject: [PATCH] Html: Add customizable footer --- 400_xowa/src/gplx/xowa/Xoa_app_.java | 4 ++-- .../src/gplx/xowa/htmls/Xoh_page_wtr_mgr.java | 1 + .../src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java | 1 + .../gplx/xowa/htmls/portal/Xow_portal_mgr.java | 18 ++++++++++++++++-- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/400_xowa/src/gplx/xowa/Xoa_app_.java b/400_xowa/src/gplx/xowa/Xoa_app_.java index c9b20729a..218d8aed9 100644 --- a/400_xowa/src/gplx/xowa/Xoa_app_.java +++ b/400_xowa/src/gplx/xowa/Xoa_app_.java @@ -30,8 +30,8 @@ public class Xoa_app_ { } } public static final String Name = "xowa"; - public static final int Version_id = 531; - public static final String Version = "4.5.9.1707"; + public static final int Version_id = 532; + public static final String Version = "4.5.10.1707"; public static String Build_date = "2012-12-30 00:00:00"; public static String Build_date_fmt = "yyyy-MM-dd HH:mm:ss"; public static String Op_sys_str; diff --git a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_mgr.java b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_mgr.java index dd4840508..60f376639 100644 --- a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_mgr.java +++ b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_mgr.java @@ -92,6 +92,7 @@ public class Xoh_page_wtr_mgr implements Gfo_invk { , "html_css_common_path", "html_css_wiki_path", "html_css_night_tag", "xowa_head" , "page_lang_ltr", "page_indicators", "page_content_sub", "page_jumpto", "page_pgbnr", "page_body_cls", "html_content_editable" , "page_data", "page_langs" + , "portal_div_footer" , "portal_div_personal", "portal_div_ns", "portal_div_view" , "portal_div_logo", "portal_div_home", "portal_div_xtn" , "portal_div_admin", "portal_div_wikis", "portal_sidebar" diff --git a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java index ea5519ff4..b05949444 100644 --- a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java +++ b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java @@ -115,6 +115,7 @@ public class Xoh_page_wtr_wkr { , page.Html_data().Head_mgr().Init(app, wiki, page).Init_dflts() , page.Lang().Dir_ltr_bry(), page.Html_data().Indicators(), page_content_sub, wiki.Html_mgr().Portal_mgr().Div_jump_to(), wiki.Xtn_mgr().Xtn_pgbnr().Write_html(page, ctx, hctx), page_body_class, html_content_editable , page_data, wdata_lang_wtr + , portal_mgr.Div_footer(modified_on_msg, Xoa_app_.Version, Xoa_app_.Build_date) // sidebar divs , portal_mgr.Div_personal_bry() diff --git a/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr.java b/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr.java index 05b5d095b..1e4f5f377 100644 --- a/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr.java +++ b/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr.java @@ -14,7 +14,7 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.htmls.portal; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; -import gplx.core.brys.*; import gplx.core.brys.fmtrs.*; +import gplx.core.brys.*; import gplx.core.brys.fmtrs.*; import gplx.core.brys.fmts.*; import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*; import gplx.xowa.guis.*; import gplx.xowa.addons.htmls.sidebars.*; import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.nss.*; @@ -41,7 +41,7 @@ public class Xow_portal_mgr implements Gfo_invk { lang_is_rtl = !lang.Dir_ltr(); } public void Init_by_wiki(Xowe_wiki wiki) { - wiki.App().Cfg().Bind_many_wiki(this, wiki, Cfg__missing_class, Cfg__sidebar_enabled__desktop, Cfg__sidebar_enabled__server); + wiki.App().Cfg().Bind_many_wiki(this, wiki, Cfg__divs__footer, Cfg__missing_class, Cfg__sidebar_enabled__desktop, Cfg__sidebar_enabled__server); } private void Sidebar_enabled_(boolean is_desktop, boolean val) { // set sidebar_enabled if (a) is_gui and is_desktop; or (b) is_server and !is_desktop @@ -87,6 +87,18 @@ public class Xow_portal_mgr implements Gfo_invk { fmtr.Bld_bfr_many(tmp_bfr, fmt_args); return tmp_bfr.To_bry_and_clear(); } + + // div_footer + private Bry_fmtr div_footer_fmtr = Bry_fmtr.keys_("page_modified_on_msg", "app_version", "app_build_date"); + private byte[] div_footer_bry = Bry_.Empty; + public byte[] Div_footer(byte[] page_modified_on_msg, String app_version, String app_build_date) { + if (div_footer_bry == Bry_.Empty) { + Bry_bfr tmp_bfr = Bry_bfr_.New(); + div_footer_bry = Init_fmtr(tmp_bfr, wiki.Eval_mgr(), div_footer_fmtr, page_modified_on_msg, app_version, app_build_date); + } + return div_footer_bry; + } + public byte[] Div_personal_bry() {return div_personal_bry;} private byte[] div_personal_bry = Bry_.Empty; public byte[] Div_ns_bry(Bry_bfr_mkr bfr_mkr, Xoa_ttl ttl, Xow_ns_mgr ns_mgr) { Xow_ns ns = ttl.Ns(); @@ -166,6 +178,7 @@ public class Xow_portal_mgr implements Gfo_invk { else if (ctx.Match(k, Cfg__missing_class)) missing_ns_cls = m.ReadBry("v"); else if (ctx.Match(k, Cfg__sidebar_enabled__desktop)) Sidebar_enabled_(Bool_.Y, m.ReadYn("v")); else if (ctx.Match(k, Cfg__sidebar_enabled__server)) Sidebar_enabled_(Bool_.N, m.ReadYn("v")); + else if (ctx.Match(k, Cfg__divs__footer)) div_footer_fmtr.Fmt_(m.ReadBry("v")); else return Gfo_invk_.Rv_unhandled; return this; } @@ -181,5 +194,6 @@ public class Xow_portal_mgr implements Gfo_invk { Cfg__missing_class = "xowa.html.portal.missing_class" , Cfg__sidebar_enabled__desktop = "xowa.html.portal.sidebar_enabled_desktop" , Cfg__sidebar_enabled__server = "xowa.html.portal.sidebar_enabled_server" + , Cfg__divs__footer = "xowa.html.divs.footer" ; }