[library-web] switch site search to use google custom search engine (GNOME bug 655704)



commit 4629064e2a804fc529f6419f802c39ad8612afc9
Author: FrÃdÃric PÃters <fpeters 0d be>
Date:   Sun Aug 12 15:54:57 2012 +0200

    switch site search to use google custom search engine (GNOME bug 655704)
    
    With the help of Pascal Terjan; thanks.

 data/catalog.xml.in        |    1 +
 data/xslt/dev_indexes.xsl  |   61 ++++++++++++++++++++++++++++++++++++++++++++
 data/xslt/heading.xsl      |   14 +---------
 data/xslt/help_indexes.xsl |   61 ++++++++++++++++++++++++++++++++++++++++++++
 data/xslt/indexes.xsl      |   58 +++++++++++++++++++++++++++++++++++++++++
 web/api.py                 |    6 +---
 6 files changed, 183 insertions(+), 18 deletions(-)
---
diff --git a/data/catalog.xml.in b/data/catalog.xml.in
index 0a01a7f..75a6135 100644
--- a/data/catalog.xml.in
+++ b/data/catalog.xml.in
@@ -106,4 +106,5 @@ find information on tools and methods to work with many GNOME desktops.
   <_msgstr msgid="deprecated-api-references">Deprecated API References</_msgstr>
   <_msgstr msgid="welcome-to-gnome-devcenter">Welcome to GNOME. Getting started is easy - install our dev tools and take a look at a tutorial.</_msgstr>
   <_msgstr msgid="tarball-location">This documentation is generated from the following tarball:</_msgstr>
+  <_msgstr msgid="search">Search</_msgstr>
 </msgcat>
diff --git a/data/xslt/dev_indexes.xsl b/data/xslt/dev_indexes.xsl
index cc7a675..6274728 100644
--- a/data/xslt/dev_indexes.xsl
+++ b/data/xslt/dev_indexes.xsl
@@ -1034,6 +1034,66 @@ GStreamer <a href="http://www.gstreamer.net/documentation/";>C</a>, <a href="gstr
 
   </xsl:template>
 
+  <xsl:template match="home" mode="search">
+    <xsl:message>Writing search.<xsl:value-of select="@lang"/></xsl:message>
+    <exsl:document href="search html { lang}"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html lang="{ lang}">
+        <head>
+          <title>
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'search'"/>
+            </xsl:call-template>
+          â
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'sitetitle'"/>
+          </xsl:call-template>
+          </title>
+          <xsl:call-template name="libgo.head"/>
+          <script type="text/javascript" src="/js/strings.js" />
+        </head>
+        <body class="with-star">
+          <xsl:call-template name="libgo.header">
+	    <xsl:with-param name="channel">devel</xsl:with-param>
+          </xsl:call-template>
+          <div id="container" class="two_columns">
+            <div class="page_title"><h1 class="title">
+              <xsl:call-template name="gettext">
+                <xsl:with-param name="lang" select="@lang"/>
+                <xsl:with-param name="msgid" select="'search'"/>
+              </xsl:call-template>
+            </h1></div>
+            <div class="content">
+
+<script>
+(function() {
+ var cx = '003454451080581476612:oiv9x455vki'; // Insert your own Custom Search engine ID here
+ var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true;
+ gcse.src = (document.location.protocol == 'https' ? 'https:' : 'http:') + '//www.google.com/cse/cse.js?cx=' + cx;
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
+})();
+</script>
+<!-- and that namespace is not defined anywhere, luckily xsltproc do not barf on this... -->
+<gcse:search></gcse:search>
+
+            </div>
+            <div class="sidebar">
+              <script type="text/javascript" src="/js/language.js" />
+              <script type="text/javascript">display_remove_cookie_text()</script>
+            </div>
+            <div id="footer_art" class="default">Â</div>
+          </div>
+          <xsl:call-template name="libgo.footer"/>
+        </body>
+      </html>
+    </exsl:document>
+  </xsl:template>
+
+
   <!-- JavaScript related translations -->
   <xsl:template match="home" mode="javascript">
     <xsl:param name="lang" select="@lang"/>
@@ -1070,6 +1130,7 @@ var remove_cookie_text = "<xsl:value-of select="$remove_cookie"/>";
       </xsl:apply-templates>
     </xsl:for-each>
     <xsl:apply-templates select="." mode="languages"/>
+    <xsl:apply-templates select="." mode="search"/>
     <xsl:apply-templates select="home" mode="javascript"/>
   </xsl:template>
 
diff --git a/data/xslt/heading.xsl b/data/xslt/heading.xsl
index b46d5c3..6c80790 100644
--- a/data/xslt/heading.xsl
+++ b/data/xslt/heading.xsl
@@ -88,20 +88,8 @@
                 <form role="search" method="get" id="searchform">
                   <xsl:attribute name="action">
                     <xsl:if test="$channel = 'devel' and $libgo.dbm_support">/symbols/</xsl:if>
-                    <xsl:if test="$channel != 'devel' or not($libgo.dbm_support)">http://www.google.com/custom</xsl:if>
+                    <xsl:if test="$channel != 'devel' or not($libgo.dbm_support)">/search</xsl:if>
                   </xsl:attribute>
-                  <xsl:choose>
-                    <xsl:when test="$channel = 'devel'">
-                      <xsl:if test="not($libgo.dbm_support)">
-                        <input type="hidden" name="domains" value="developer.gnome.org" />
-                        <input type="hidden" name="sitesearch" value="developer.gnome.org" />
-                      </xsl:if>
-                    </xsl:when>
-                    <xsl:otherwise>
-                      <input type="hidden" name="domains" value="library.gnome.org" />
-                      <input type="hidden" name="sitesearch" value="library.gnome.org" />
-                    </xsl:otherwise>
-                  </xsl:choose>
                     <div>
                         <label class="hidden" for="q">
                         <xsl:call-template name="gettext"><xsl:with-param name="lang"
diff --git a/data/xslt/help_indexes.xsl b/data/xslt/help_indexes.xsl
index f3c43f9..2b1ae8e 100644
--- a/data/xslt/help_indexes.xsl
+++ b/data/xslt/help_indexes.xsl
@@ -794,6 +794,66 @@ doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
     </exsl:document>
   </xsl:template>
 
+  <xsl:template match="home" mode="search">
+    <xsl:message>Writing search.html.<xsl:value-of select="@lang"/></xsl:message>
+    <exsl:document href="search html { lang}"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html lang="{ lang}">
+        <head>
+          <title>
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'search'"/>
+            </xsl:call-template>
+          â
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'sitetitle'"/>
+          </xsl:call-template>
+          </title>
+          <xsl:call-template name="libgo.head"/>
+          <script type="text/javascript" src="/js/strings.js" />
+        </head>
+        <body class="with-star">
+          <xsl:call-template name="libgo.header"/>
+          <div id="container" class="two_columns">
+            <div class="page_title"><h1 class="title">
+              <xsl:call-template name="gettext">
+                <xsl:with-param name="lang" select="@lang"/>
+                <xsl:with-param name="msgid" select="'search'"/>
+              </xsl:call-template>
+            </h1></div>
+            <div class="content">
+
+<script>
+(function() {
+ var cx = '003454451080581476612:osbhtsmrn9g'; // Insert your own Custom Search engine ID here
+ var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true;
+ gcse.src = (document.location.protocol == 'https' ? 'https:' : 'http:') + '//www.google.com/cse/cse.js?cx=' + cx;
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
+})();
+</script>
+<!-- and that namespace is not defined anywhere, luckily xsltproc do not barf on this... -->
+<gcse:search></gcse:search>
+
+
+            </div>
+            <div class="sidebar">
+              <script type="text/javascript" src="/js/language.js" />
+              <script type="text/javascript">display_remove_cookie_text()</script>
+            </div>
+            <div id="footer_art" class="default">Â</div>
+          </div>
+          <xsl:call-template name="libgo.footer"/>
+        </body>
+      </html>
+    </exsl:document>
+  </xsl:template>
+
+
+
   <!-- JavaScript related translations -->
   <xsl:template match="home" mode="javascript">
     <xsl:param name="lang" select="@lang"/>
@@ -825,6 +885,7 @@ var remove_cookie_text = "<xsl:value-of select="$remove_cookie"/>";
     </xsl:for-each>
     <xsl:apply-templates select="." mode="nightly"/>
     <xsl:apply-templates select="." mode="languages"/>
+    <xsl:apply-templates select="." mode="search"/>
     <xsl:apply-templates select="home" mode="javascript"/>
   </xsl:template>
 
diff --git a/data/xslt/indexes.xsl b/data/xslt/indexes.xsl
index f7cc284..3467f23 100644
--- a/data/xslt/indexes.xsl
+++ b/data/xslt/indexes.xsl
@@ -865,6 +865,63 @@ div.body-sidebar { width: 100%; }
     </exsl:document>
   </xsl:template>
 
+  <xsl:template match="home" mode="search">
+    <xsl:message>Writing search.html.<xsl:value-of select="@lang"/></xsl:message>
+    <exsl:document href="search html { lang}"
+        method="html" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"
+        doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+        doctype-system="http://www.w3.org/TR/html4/loose.dtd";>
+      <html lang="{ lang}">
+        <head>
+          <title>
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'search'"/>
+            </xsl:call-template>
+          â
+          <xsl:call-template name="gettext">
+            <xsl:with-param name="lang" select="@lang"/>
+            <xsl:with-param name="msgid" select="'sitetitle'"/>
+          </xsl:call-template>
+          </title>
+          <xsl:call-template name="libgo.head"/>
+          <script type="text/javascript" src="/js/strings.js" />
+        </head>
+        <body class="with-star">
+          <xsl:call-template name="libgo.header"/>
+          <div id="container" class="two_columns">
+            <div class="page_title"><h1 class="title">
+              <xsl:call-template name="gettext">
+                <xsl:with-param name="lang" select="@lang"/>
+                <xsl:with-param name="msgid" select="'search'"/>
+              </xsl:call-template>
+            </h1></div>
+            <div class="content">
+
+<script>
+(function() {
+ var cx = '003454451080581476612:osbhtsmrn9g'; // Insert your own Custom Search engine ID here
+ var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true;
+ gcse.src = (document.location.protocol == 'https' ? 'https:' : 'http:') + '//www.google.com/cse/cse.js?cx=' + cx;
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s);
+})();
+</script>
+<!-- and that namespace is not defined anywhere, luckily xsltproc do not barf on this... -->
+<gcse:search></gcse:search>
+
+            </div>
+            <div class="sidebar">
+              <script type="text/javascript" src="/js/language.js" />
+              <script type="text/javascript">display_remove_cookie_text()</script>
+            </div>
+            <div id="footer_art" class="default">Â</div>
+          </div>
+          <xsl:call-template name="libgo.footer"/>
+        </body>
+      </html>
+    </exsl:document>
+  </xsl:template>
+
   <!-- JavaScript related translations -->
   <xsl:template match="home" mode="javascript">
     <xsl:param name="lang" select="@lang"/>
@@ -896,6 +953,7 @@ var remove_cookie_text = "<xsl:value-of select="$remove_cookie"/>";
     </xsl:for-each>
     <xsl:apply-templates select="." mode="nightly"/>
     <xsl:apply-templates select="." mode="languages"/>
+    <xsl:apply-templates select="." mode="search"/>
     <xsl:apply-templates select="home" mode="javascript"/>
   </xsl:template>
 
diff --git a/web/api.py b/web/api.py
index 2ce1c8f..36f53f9 100644
--- a/web/api.py
+++ b/web/api.py
@@ -62,8 +62,4 @@ def redirect(request):
         path = path[0]
         return HttpResponseRedirect(path)
     # fallback to a Google search
-    return HttpResponseRedirect(
-            'http://www.google.com/custom?'\
-            'domains=library.gnome.org&'\
-            'sitesearch=library.gnome.org&'\
-            'q=%s' % urllib.quote(symbol))
+    return HttpResponseRedirect('/search?q=%s' % urllib.quote(symbol))



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]