AllLangPackage_html_lang.mk             |   10 +
 CustomTarget_html.mk                    |   23 ++++
 help3xsl/default.css                    |   16 ++
 help3xsl/localized.xsl                  |   45 --------
 help3xsl/online_transform.xsl           |   41 ++-----
 help3xsl/xap_templ_query.xsl            |  175 ++++++++++++++++++++++++++++++++
 source/text/shared/help/browserhelp.xhp |   16 ++
 7 files changed, 249 insertions(+), 77 deletions(-)

New commits:
commit aa45ded698f25e8d3bc8eef621d727186fe18dd2
Author:     Olivier Hallot <[email protected]>
AuthorDate: Fri Aug 23 06:50:58 2019 -0300
Commit:     Olivier Hallot <[email protected]>
CommitDate: Tue Oct 1 15:00:44 2019 +0200

    redmine#2555 replace Help online Google search
    
    This is the helpcontent2/ part of the patch.
    
    Add xapian-omega search to online Help.
    
    The patch replaces Google custom search with xapian-omega search.
    
    A new build key is introduced.
    
    --with-omindex=server : Localizes and adds the xapian result page
    template, adds the xapian form to each Help page.
    
    --with-omindex=noxap : do not localize the result template and
    do not add a form in the Help page.
    
    --with-omindex= will force Online Help build.
    
    Default is noxap
    
    NOTES:
    - xapian-omega databases are built in the server.
    - searches returns results only on localized Help pages, avoiding same
    resulis in many languages.
    
    TODO:
    - Tweak the xapian-omega result page CSS and markup.
    
    Change-Id: I3dc2b79c4111f61fd5fea01b1f8c95bfacab1e8f
    Reviewed-on: https://gerrit.libreoffice.org/79366
    Tested-by: Jenkins
    Reviewed-by: Guilhem Moulin <[email protected]>
    Tested-by: Guilhem Moulin <[email protected]>

diff --git a/AllLangPackage_html_lang.mk b/AllLangPackage_html_lang.mk
index d0b436f84..c3b25a09c 100644
--- a/AllLangPackage_html_lang.mk
+++ b/AllLangPackage_html_lang.mk
@@ -19,4 +19,14 @@ $(eval $(call 
gb_AllLangPackage_add_files,helpcontent2_html_lang,$(LIBO_SHARE_HE
        ) \
 ))
 
+ifeq ($(HELP_OMINDEX_PAGE),TRUE)
+
+$(eval $(call 
gb_AllLangPackage_add_files,helpcontent2_html_lang,$(LIBO_SHARE_HELP_FOLDER)$(if
 $(HELP_ONLINE),/$(PRODUCTVERSION)),\
+       $(foreach lang,$(gb_HELP_LANGS),\
+               $(lang)/xap_tpl \
+       ) \
+))
+               
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/CustomTarget_html.mk b/CustomTarget_html.mk
index de972bb73..e43c17a48 100644
--- a/CustomTarget_html.mk
+++ b/CustomTarget_html.mk
@@ -20,6 +20,7 @@ $(eval $(call 
gb_CustomTarget_register_targets,helpcontent2/help3xsl,\
        $(foreach lang,$(gb_HELP_LANGS),\
                $(lang)/bookmarks.js \
                $(lang)/contents.js \
+               $(if $(HELP_OMINDEX_PAGE),$(lang)/xap_tpl) \
                $(lang)/html.text \
                $(lang)/langnames.js \
                $(foreach 
module,$(html_TREE_MODULES),$(module)/$(lang)/contents.part) \
@@ -53,6 +54,24 @@ $(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/hid2file.js : \
                ) > $@ \
        )
 
+# Xapian localized templates
+ifeq ($(HELP_OMINDEX_PAGE),TRUE)
+
+$(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/%/xap_tpl : \
+               $(SRCDIR)/helpcontent2/help3xsl/xap_templ_query.xsl \
+               $(call gb_ExternalExecutable_get_dependencies,xsltproc) \
+               $(SRCDIR)/helpcontent2/CustomTarget_html.mk
+       $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),XAT,1)
+       $(call gb_Helper_abbreviate_dirs,\
+               $(call gb_ExternalExecutable_get_command,xsltproc) \
+               --stringparam lang $* \
+               -o $@ \
+               $(SRCDIR)/helpcontent2/help3xsl/xap_templ_query.xsl \
+               $(SRCDIR)/helpcontent2/source/text/shared/help/browserhelp.xhp \
+       )
+
+endif
+
 # set of installed languages - has to be language independent
 $(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/languages.js : \
                $(SRCDIR)/helpcontent2/CustomTarget_html.mk
@@ -62,6 +81,7 @@ $(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/languages.js : \
                printf ']);\n' \
        ) > $@
 
+
 define html_gen_langnames_js_dep
 $(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/$(1)/langnames.js : \
        $(if $(filter en-US,$(1)),$(SRCDIR),$(call 
gb_HelpTranslatePartTarget_get_workdir,$(1)))/helpcontent2/source/text/shared/help/browserhelp.xhp
@@ -152,6 +172,7 @@ $(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/%/html.text : \
                                --stringparam root $(if $(filter 
WNT,$(OS)),$$(cygpath -m `pwd`),`pwd`)/ \
                                --stringparam productname "$(PRODUCTNAME)" \
                                --stringparam productversion 
"$(PRODUCTVERSION)" \
+                               --stringparam xapian $(if $(filter TRUE, 
$(HELP_OMINDEX_PAGE)),'yes','no') \
                                -o $(dir $@)$${xhp%.xhp}.html \
                                
$(SRCDIR)/helpcontent2/help3xsl/online_transform.xsl \
                                $(if $(filter WNT,$(OS)),$$(cygpath -m 
`pwd`),`pwd`)/$$xhp \
@@ -160,7 +181,7 @@ $(call 
gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/%/html.text : \
                && rm "$$RESPONSEFILE" \
                && touch $@ \
        )
-
+       
 $(call gb_CustomTarget_get_workdir,helpcontent2/help3xsl)/%/bookmarks.js :
        $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),CAT,2)
        $(call gb_Helper_abbreviate_dirs,\
diff --git a/help3xsl/default.css b/help3xsl/default.css
index 50a67b752..f71cb6885 100644
--- a/help3xsl/default.css
+++ b/help3xsl/default.css
@@ -577,7 +577,7 @@ li.disabled a {
 #search-bar::placeholder {
     font-style: italic;
 }
-.google-donation {
+.xapian-donation {
     border-top: 2px solid #148603;
     background-color: #FCFCFC;
     box-shadow: 0 2px 8px 0 rgba(0,0,0,.05);
@@ -607,9 +607,15 @@ li.disabled a {
     font-size:1.2rem;
     text-align: center;
 }
-.google-search {
+/*.xapian-omega-search {
     max-width: 300px;
     margin: 40px auto 0 auto;
+}*/
+.xapian-omega-search {
+    margin: 0;
+    /*position: absolute;*/
+    top: 19px;
+    left: 360px;
 }
 .modules {
     border-bottom: 2px solid #f3f3f3;
@@ -803,7 +809,7 @@ li.disabled a {
     .rightside {
         grid-area: rightside;
     }
-    .google-donation {
+    .xapian-donation {
         grid-area: google;
         position: sticky;
         top: 0px;
@@ -857,14 +863,14 @@ li.disabled a {
 /* Use @supports to sneak these rules past IE */
 @supports (grid-area: auto) {
     @media screen and (min-width: 960px) {
-        .google-donation {
+        .xapian-donation {
             display: flex;
             justify-content: space-between;
             align-items: center;
             background-color: #18A303;
             border-top: none;
         }
-        .google-search {
+        .xapian-omega-search {
             margin: 0;
         }
         .donation {
diff --git a/help3xsl/localized.xsl b/help3xsl/localized.xsl
deleted file mode 100644
index c648049d5..000000000
--- a/help3xsl/localized.xsl
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
--->
-<!--
-Stylesheet map language-dependent parameters and translation
--->
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
-
-<!-- Token for Google search WIP -->
-<xsl:template name="getToken">
-    <xsl:param name="lang"/>
-    <xsl:choose>
-        <xsl:when test="$lang='en-US'"><xsl:text>var cx = 
'010161382024564278136:stzujqtpnve';</xsl:text></xsl:when>
-        <xsl:when test="$lang='ca'"><xsl:text>var cx = 
'010161382024564278136:lcrnyzte-bs';</xsl:text></xsl:when>
-        <xsl:when test="$lang='ca-valencia'"><xsl:text>var cx = 
'010161382024564278136:lcrnyzte-bs';</xsl:text></xsl:when>
-        <xsl:when test="$lang='cs'"><xsl:text>var cx = 
'010161382024564278136:ruz0pcebqyi';</xsl:text></xsl:when>
-        <xsl:when test="$lang='da'"><xsl:text>var cx = 
'010161382024564278136:icywq-zn8hi';</xsl:text></xsl:when>
-        <xsl:when test="$lang='de'"><xsl:text>var cx = 
'010161382024564278136:5xb_5bltsto';</xsl:text></xsl:when>
-        <xsl:when test="$lang='el'"><xsl:text>var cx = 
'010161382024564278136:6ihy44_5qqu';</xsl:text></xsl:when>
-        <xsl:when test="$lang='es'"><xsl:text>var cx = 
'010161382024564278136:cdcn_oz4txg';</xsl:text></xsl:when>
-        <xsl:when test="$lang='fi'"><xsl:text>var cx = 
'010161382024564278136:op1o8h6jnu8';</xsl:text></xsl:when>
-        <xsl:when test="$lang='fr'"><xsl:text>var cx = 
'010161382024564278136:mimp7dbi-eq';</xsl:text></xsl:when>
-        <xsl:when test="$lang='hu'"><xsl:text>var cx = 
'010161382024564278136:imtiawlmhnk';</xsl:text></xsl:when>
-        <xsl:when test="$lang='it'"><xsl:text>var cx = 
'010161382024564278136:xdxa9y906g0';</xsl:text></xsl:when>
-        <xsl:when test="$lang='ja'"><xsl:text>var cx = 
'010161382024564278136:7wxg-zakzmu';</xsl:text></xsl:when>
-        <xsl:when test="$lang='ko'"><xsl:text>var cx = 
'010161382024564278136:czaiuh5qxzu';</xsl:text></xsl:when>
-        <xsl:when test="$lang='nl'"><xsl:text>var cx = 
'010161382024564278136:ndba33-gnzq';</xsl:text></xsl:when>
-        <xsl:when test="$lang='pt'"><xsl:text>var cx = 
'010161382024564278136:1x2uk8j-rbw';</xsl:text></xsl:when>
-        <xsl:when test="$lang='pt-BR'"><xsl:text>var cx = 
'010161382024564278136:1x2uk8j-rbw';</xsl:text></xsl:when>
-        <xsl:when test="$lang='ru'"><xsl:text>var cx = 
'010161382024564278136:syzgysikzms';</xsl:text></xsl:when>
-        <xsl:when test="$lang='sl'"><xsl:text>var cx = 
'010161382024564278136:5varjpouixi';</xsl:text></xsl:when>
-        <xsl:when test="$lang='tr'"><xsl:text>var cx = 
'010161382024564278136:gzcz3ueyhkw';</xsl:text></xsl:when>
-        <xsl:when test="$lang='zh-CN'"><xsl:text>var cx = 
'010161382024564278136:vkf9curztm8';</xsl:text></xsl:when>
-        <xsl:when test="$lang='zh-TW'"><xsl:text>var cx = 
'010161382024564278136:_goysgr6ptm';</xsl:text></xsl:when>
-        <xsl:otherwise><xsl:text>var cx = 
'010161382024564278136:stzujqtpnve';</xsl:text></xsl:otherwise>
-</xsl:choose>
-</xsl:template>
-</xsl:stylesheet>
-
diff --git a/help3xsl/online_transform.xsl b/help3xsl/online_transform.xsl
index 2ca8deded..f8d6dc2f9 100644
--- a/help3xsl/online_transform.xsl
+++ b/help3xsl/online_transform.xsl
@@ -21,7 +21,6 @@
 
 <xsl:output indent="yes" method="html" doctype-system= "about:legacy-compat"/>
 
-<xsl:include href="localized.xsl"/>
 <xsl:include href="links.txt.xsl"/>
 <!--
 ############################
@@ -34,6 +33,7 @@
 <xsl:param name="Language"/>
 <xsl:param name="productname"/>
 <xsl:param name="productversion"/>
+<xsl:param name="xapian"/>
 
 <xsl:param name="System" select="'WIN'"/>
 <xsl:param name="imgtheme" select="''"/>
@@ -142,7 +142,7 @@
         <base href="{$install}"/>
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
         <xsl:if test="$online">
-            <meta http-equiv="Content-Security-Policy" content="script-src 
'self' 'unsafe-inline' 'unsafe-eval' piwik.documentfoundation.org *.google.com 
*.googleapis.com"/>
+            <meta http-equiv="Content-Security-Policy" content="script-src 
'self' 'unsafe-inline' 'unsafe-eval' piwik.documentfoundation.org"/>
         </xsl:if>
         <title><xsl:value-of select="$titleL10N"/></title>
         <link rel="shortcut icon" 
href="{$target}media/navigation/favicon.ico"/>
@@ -221,32 +221,21 @@
     <div id="DisplayArea" itemprop="articleBody">
         <xsl:apply-templates select="/helpdocument/body"/>
     </div>
-    <div class="google-donation">
-        <xsl:if test="$online">
-            <div class="google-search">
-                <script type="text/javascript">
-                    <![CDATA[
-                    (function() {]]>
-                    <xsl:call-template name="getToken"><xsl:with-param 
name="lang" select="$lang"/></xsl:call-template>
-                    <![CDATA[
-                    var gcse = document.createElement('script');
-                    gcse.type = 'text/javascript';
-                    gcse.async = true;
-                    gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
-                    var s = document.getElementsByTagName('script')[0];
-                    s.parentNode.insertBefore(gcse, s);
-                    })();
-                    ]]>
-                </script>
-                <xsl:text 
disable-output-escaping="yes">&lt;gcse:search&gt;&lt;/gcse:search&gt;</xsl:text>
-            </div>
+    <xsl:if test="$online">
+        <div class="xapian-donation">
+            <xsl:if test="$xapian='yes'">
+                <div class="xapian-omega-search">
+                    <form name="P" method="get" 
action="/{$productversion}/{$lang}/search" target="_top">
+                        <input id="omega-autofocus" type="search" name="P" 
size="65"/>
+                        <input type="submit" 
class="xapian-omega-search-button" value="&#x1f50d;"/>
+                    </form>
+                </div>
+            </xsl:if>
             <div class="donation">
-                <p><a 
href="https://www.libreoffice.org/donate/?pk_campaign=help"; target ="_blank">
-                    <xsl:value-of select="$ui_donate"/>
-                </a></p>
+                <p><a 
href="https://www.libreoffice.org/donate/?pk_campaign=help"; target 
="_blank"><xsl:value-of select="$ui_donate"/></a></p>
             </div>
-        </xsl:if>
-    </div>
+        </div>
+    </xsl:if>
     <footer>
         <xsl:if test="$online">
             <p><a href="https://www.libreoffice.org/imprint"; 
target="_blank">Impressum (Legal Info)</a> | <a 
href="https://www.libreoffice.org/privacy"; target="_blank">Privacy Policy</a> | 
<a href="https://www.documentfoundation.org/statutes.pdf"; 
target="_blank">Statutes (non-binding English translation)</a> - <a 
href="https://www.documentfoundation.org/satzung.pdf"; target="_blank">Satzung 
(binding German version)</a> | Copyright information: Unless otherwise 
specified, all text and images on this website are licensed under the <a 
href="https://www.libreoffice.org/download/license/"; target="_blank">Mozilla 
Public License v2.0</a>. “LibreOffice” and “The Document Foundation” are 
registered trademarks of their corresponding registered owners or are in actual 
use as trademarks in one or more countries. Their respective logos and icons 
are also subject to international copyright laws. Use thereof is explained in 
our <a href="https://wiki.documentfoundation.org/TradeMark_Policy"; 
 target="_blank">trademark policy</a>. LibreOffice was based on 
OpenOffice.org.</p>
diff --git a/help3xsl/xap_templ_query.xsl b/help3xsl/xap_templ_query.xsl
new file mode 100644
index 000000000..aa15b3f3b
--- /dev/null
+++ b/help3xsl/xap_templ_query.xsl
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+* This file is part of the LibreOffice project.
+*
+* This Source Code Form is subject to the terms of the Mozilla Public
+* License, v. 2.0. If a copy of the MPL was not distributed with this
+* file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<!--
+Stylesheet to create the localized xapian template.
+Based on the query template from xapian
+Usage:
+xsltproc xap_template_query.xsl <file.xhp>
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
+    <xsl:param name="lang"/>
+    <xsl:output indent="yes" method="text"/>
+<xsl:template match="/">
+<![CDATA[$httpheader{Content-Type,text/html; charset=utf-8}<!DOCTYPE 
html><html lang="]]><xsl:value-of select="$lang"/><![CDATA[">
+$set{flag_spelling,$ne{$cgi{SPELL},0}}
+$set{flag_spelling_correction,true}
+$set{thousand,$.}$set{decimal,.}
+$setmap{prefix,,$split{ S B F},title,S,author,A,topic,B}
+${
+$def{PREV,
+$if{$ne{$topdoc,0},<input type=image name="&lt;" alt="&lt;"
+src="/images/xapian-omega/prev.png" height=30 width=30>,
+<img alt="" src="/images/xapian-omega/prevoff.png" height=30 width=30>}
+}
+
+$def{NEXT,
+$if{$ne{$last,$msize},<input type=image name="&gt;" alt="&gt;"
+src="/images/xapian-omega/next.png" height=30 width=30>,
+<img alt="" src="/images/xapian-omega/nextoff.png" height=30 width=30>}
+}
+
+$def{P,<input type=image name="$1" value="$1" 
src="/images/xapian-omega/page-$2.png" $opt{a} alt="$1">}
+$def{PAGE,$if{$gt{$1,9},$if{$gt{$1,99},$P{$1,$div{$1,100}}}$P{$1,$mod{$div{$1,10},10}}}$P{$1,$mod{$1,10}}}
+
+$def{S,<img src="/images/xapian-omega/page-$2s.png" $opt{a} alt=$1>}
+$def{SPAGE,$if{$gt{$1,9},$if{$gt{$1,99},$S{$1,$div{$1,100}}}$S{$1,$mod{$div{$1,10},10}}}$S{$1,$mod{$1,10}}}
+}
+
+$def{PREV,$if{$ne{$topdoc,0},<input type=submit name="&lt;" 
value="]]><xsl:apply-templates 
select="//variable[@id='xap_previous']"/><![CDATA[">}}
+
+$def{PAGE,<input type=submit name="[" value="$1">}
+
+$def{SPAGE,<input type=submit name="[" value="$1" disabled=disabled>}
+
+    $def{NEXT,$if{$ne{$last,$msize},<input type=submit name="&gt;" 
value="]]><xsl:apply-templates 
select="//variable[@id='xap_next']"/><![CDATA[">}}
+
+<head>
+<title>$if{$query,Omega Search: $html{$query},Omega Search}</title>
+<!--$if{$opt{topterms},$include{inc/toptermsjs}}-->
+<style>
+input[type=image] {
+  border: 0px;
+  }
+</style>
+<script type="text/javascript">
+function f2(n) {return (n>9?"":"0")+n;}
+function write_date(time_t) {
+var d=new Date();d.setTime(time_t*1000);
+var D=d.getFullYear()+"-"+f2(d.getMonth()+1)+"-"+f2(d.getDate());
+var T=f2(d.getHours())+":"+f2(d.getMinutes())+":"+f2(d.getSeconds());
+document.write("<span title=\""+D+" "+T+"\">]]><xsl:apply-templates 
select="//variable[@id='xap_modified']"/><![CDATA[<br><b>"+D+"</b></span>");
+}
+</script>
+</head>
+<body bgcolor="#ffffff">
+<form name=P method=get
+action="$html{$or{$env{SCRIPT_NAME},omega}}" target="_top">
+<center>
+<input id="omega-autofocus" type=search name=P value="$html{$query}" size=65 
autofocus>
+<script>
+if (!("autofocus" in document.createElement("input")))
+ document.getElementById("omega-autofocus").focus();
+</script>
+<input type=submit value="Search">
+<hr>
+<input type=radio name=DEFAULTOP value=and 
$if{$eq{$defaultop,and},checked}>]]><xsl:apply-templates 
select="//variable[@id='xap_match_all']"/><![CDATA[
+<input type=radio name=DEFAULTOP value=or 
$if{$eq{$defaultop,or},checked}>]]><xsl:apply-templates 
select="//variable[@id='xap_match_any']"/><![CDATA[
+$if{$opt{topterms},
+ <div title="Suggested terms to add to your query"
+ style="text-align:left;background:#cfc;border:1px solid 
green;padding:2px;font:11px verdana$. arial$. helvetica$. sans-serif;">
+ $map{$topterms,<span style="white-space:nowrap"><input type=checkbox name=X 
value="$html{$prettyterm{$_}}" onClick="C(this)">$html{$prettyterm{$_}}</span> }
+ <br><noscript><input type=hidden name=ADD value=1></noscript>
+ </div>
+}
+<br>
+$if{$suggestion,]]><xsl:apply-templates 
select="//variable[@id='xap_didyoumean']"/><![CDATA[ <a 
href="$html{$or{$env{SCRIPT_NAME},omega}?P=$url{$suggestion}$if{$ne{$hitsperpage,10},&HITSPERPAGE=$hitsperpage}$if{$cgi{COLLAPSE},&COLLAPSE=$url{$cgi{COLLAPSE}}}$map{$relevants,&R=$_}$if{$cgi{THRESHOLD},&THRESHOLD=$url{$cgi{THRESHOLD}}}$map{$cgilist{B},&B=$url{$_}}&SPELL=0}">$html{$suggestion}</a><br>}
+
+$or{$html{$error},
+$if{$eq{$msize,0},
+$if{$query,]]><xsl:apply-templates 
select="//variable[@id='xap_no_match']"/><![CDATA[,
+<hr>]]><xsl:apply-templates 
select="//variable[@id='xap_searching_doc']"/><![CDATA[
+},
+$if{$not{$msizeexact},
+$nice{$add{$topdoc,1}}-$nice{$last} ]]><xsl:apply-templates 
select="//variable[@id='xap_about']"/><![CDATA[,
+ $if{$and{$eq{$last,$msize},$eq{$topdoc,0}},
+ ]]><xsl:apply-templates select="//variable[@id='xap_allmatches']"/><![CDATA[ ,
+ $nice{$add{$topdoc,1}}$if{$ne{$add{$topdoc,1},$last},-$nice{$last}} 
]]><xsl:apply-templates select="//variable[@id='xap_exactly']"/><![CDATA[}
+}
+<hr>
+</center>
+$if{$map{$queryterms,$set{U,$unstem{$_}}$set{F_$opt{U},$add{$opt{F_$opt{U}},$freq{$_}}}},$list{$unique{$map{$queryterms,$set{U,$unstem{$_}}$list{$html{$unique{$opt{U}}},<b>,</b>/<b>,</b>}:&nbsp;$nice{$opt{F_$opt{U}}}}},]]><xsl:apply-templates
 select="//variable[@id='xap_term_frequencies']"/><![CDATA[ ,$. ,}}
+<br><small>]]><xsl:apply-templates 
select="//variable[@id='xap_searchtimes']"/><![CDATA[</small>
+<table>
+$hitlist{<tr><td valign=top>
+${<img src="/images/xapian-omega/score-$div{$percentage,10}.png" 
alt="$percentage%" height=16 width=32>}
+<div title="$percentage%" style='float:left;width:60px;height:10px;border:1px 
solid black;margin-top:4px;'>
+<div style='width:$div{$mul{$percentage,6},10}px; height:10px; 
background-color: red;'>
+</div></div>
+<div style='float:left;margin-top:2px;font-size:x-small;'>
+$if{$and{$field{modtime},$ne{$field{modtime},-1}},
+<script type="text/javascript">write_date($add{$field{modtime}});</script>
+<noscript>
+<span title="$html{$date{$field{modtime},%Y-%m-%d %H:%M:%S}}">
+    ]]><xsl:apply-templates 
select="//variable[@id='xap_modified']"/><![CDATA[<br><b>$html{$date{$field{modtime},%Y-%m-%d}}</b></span>
+</noscript><br>
+}
+$if{$field{language},Language: <b>$html{$field{language}}</b><br>}
+$if{$field{size},<span title="$html{$field{size}} bytes">Size: 
<b>$html{$filesize{$field{size}}}</b></span><br>}
+<div title="]]><xsl:apply-templates 
select="//variable[@id='xap_relevant']"/><![CDATA[" 
style="float:left;background-color:#cfc;border:1px solid green;margin-top:2px;">
+<input type=checkbox name=R value=$id$if{$relevant, checked}>
+</div>
+</div>
+</td>
+<td><b><a 
href="$html{$field{url}}">$html{$or{$field{caption},$field{title},$prettyurl{$field{url}},Untitled}}</a></b><br>
+<small>$snippet{$field{sample}}</small><br>
+<a href="$html{$field{url}}">$html{$prettyurl{$field{url}}}</a><br>
+<small>
+]]><xsl:apply-templates select="//variable[@id='xap_matching']"/><![CDATA[
+<i>$list{$map{$terms,$html{$prettyterm{$_}}},</i>$. <i>,</i> and 
<i>}</i></small>${for lynx:}<p></td></tr>}
+</table>
+
+<br><center>
+
+${suppress next, prev, and page links if there's only one page}
+$if{$ne{$lastpage,1},
+$set{a,$if{$opt{pagelink_height}, 
HEIGHT=$opt{pagelink_height}}$if{$opt{pagelink_width}, 
WIDTH=$opt{pagelink_width}}}
+
+${1-W ... X-(this)-Y ...}
+$set{w,$min{3,$add{$thispage,-1}}}
+$set{x,$max{$add{$opt{w},1},$add{$thispage,-3}}}
+$set{y,$min{$lastpage,$add{$thispage,8}}}
+$PREV
+$map{$range{1,$opt{w}},$PAGE{$_}}
+$if{$ne{$add{$opt{w},1},$opt{x}},...}
+$map{$range{$opt{x},$add{$thispage,-1}},$PAGE{$_}}
+$SPAGE{$thispage}
+$map{$range{$add{$thispage,1},$opt{y}},$PAGE{$_}}
+$if{$ne{$opt{y},$lastpage},...}
+$NEXT
+}
+}}
+</center><br>
+$if{$ne{$topdoc,0},<input type=hidden name=TOPDOC value=$topdoc>}
+$if{$ne{$hitsperpage,10},<input type=hidden name=HITSPERPAGE 
value=$hitsperpage>}
+$if{$cgi{COLLAPSE},<input type=hidden name=COLLAPSE 
value="$html{$cgi{COLLAPSE}}">}
+$if{$queryterms,<input type=hidden name=xP value="$html{$queryterms}">}
+<input type=hidden name=xFILTERS value="$html{$filters}">
+$list{$relevants,<input type=hidden name=R value=",.,">}
+$if{$cgi{THRESHOLD},<input type=hidden name=THRESHOLD 
value="$html{$cgi{THRESHOLD}}">}
+${Preserve any B filters used - this needs modifying if you modify this 
template
+  to have B on radio buttons, SELECT, etc}
+$map{$cgilist{B},<input type=hidden name=B value="$html{$_}">}
+</form>
+<hr><div align=right><i><small><a 
href="https://xapian.org/";>$html{$version}</a></small></i></div>
+</body>
+</html>
+$log{query.log}]]>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/source/text/shared/help/browserhelp.xhp 
b/source/text/shared/help/browserhelp.xhp
index e4245d143..1f3cba850 100644
--- a/source/text/shared/help/browserhelp.xhp
+++ b/source/text/shared/help/browserhelp.xhp
@@ -95,5 +95,21 @@
     <paragraph role="paragraph" id="lang_id611525748224412" 
xml-lang="en-US"><variable id="vi">Vietnamese</variable></paragraph>
     <paragraph role="paragraph" id="lang_id981525748227614" 
xml-lang="en-US"><variable id="zh-CN">Chinese 
(Simplified)</variable></paragraph>
     <paragraph role="paragraph" id="lang_id361525748230858" 
xml-lang="en-US"><variable id="zh-TW">Chinese 
(Traditional)</variable></paragraph>
+    <!-- xapian pages -->
+    <paragraph role="paragraph" id="xap_id731567798901011"><variable 
id="xap_next">Next</variable></paragraph>
+    <paragraph role="paragraph" id="xap_id651567798907947"><variable 
id="xap_previous">Previous</variable></paragraph>
+    <paragraph role="paragraph" id="par_id381567799640454"><variable 
id="xap_modified">Modified:</variable></paragraph>
+    <paragraph role="paragraph" id="par_id411567800419493"><variable 
id="xap_searching_doc">Searching $nice{$dbsize} documents</variable></paragraph>
+    <paragraph role="paragraph" id="par_id281567800425143"><variable 
id="xap_allmatches">All $nice{$msize} matches</variable></paragraph>
+    <paragraph role="paragraph" id="par_id401567800429827"><variable 
id="xap_searchtime">Search took $time seconds</variable></paragraph>
+    <paragraph role="paragraph" id="par_id671567860834840"><variable 
id="xap_no_match">No documents match your query</variable></paragraph>
+    <paragraph role="paragraph" id="par_id991568223765528"><variable 
id="xap_match_all">Matching all words</variable></paragraph>
+    <paragraph role="paragraph" id="par_id251568223770924"><variable 
id="xap_match_any">Matching any words</variable></paragraph>
+    <paragraph role="paragraph" id="par_id111568264237145"><variable 
id="xap_about">of about $nice{$msize} matches</variable></paragraph>
+    <paragraph role="paragraph" id="par_id261568264244822"><variable 
id="xap_exactly">of exactly $nice{$msize} matches</variable></paragraph>
+    <paragraph role="paragraph" id="par_id91568265911789"><variable 
id="xap_term_frequencies">Term frequencies: </variable></paragraph>
+    <paragraph role="paragraph" id="par_id901568266092266"><variable 
id="xap_matching">matching:</variable></paragraph>
+    <paragraph role="paragraph" id="par_id511568266279483"><variable 
id="xap_relevant">Mark this document as relevant</variable></paragraph>
+    <paragraph role="paragraph" id="par_id841569449577334"><variable 
id="xap_didyoumean">Did you mean:</variable></paragraph>
 </body>
 </helpdocument>
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to