diff --git a/doc/source/images/search/opensearch-firefox.png b/doc/source/images/search/opensearch-firefox.png new file mode 100644 index 0000000000..bec7e8e7c0 Binary files /dev/null and b/doc/source/images/search/opensearch-firefox.png differ diff --git a/doc/source/utils/opensearch.rst b/doc/source/utils/opensearch.rst new file mode 100644 index 0000000000..33321dff92 --- /dev/null +++ b/doc/source/utils/opensearch.rst @@ -0,0 +1,8 @@ +=================================================== +Installer un plugin de recherche à votre navigateur +=================================================== + +Vous pouvez installer un plugin de recherche à votre navigateur en deux clics. + + .. figure:: ../images/search/opensearch-firefox.png + :align: center \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index b34f6c6f62..be4cdd0258 100644 --- a/templates/base.html +++ b/templates/base.html @@ -111,6 +111,9 @@ {# RSS links #} + + {# OpenSearch plugin autodiscovery #} + diff --git a/templates/search/opensearch.xml b/templates/search/opensearch.xml new file mode 100644 index 0000000000..405d8d0dad --- /dev/null +++ b/templates/search/opensearch.xml @@ -0,0 +1,19 @@ + + +{% load static %} + + + {{ site_name }} + Rechercher sur {{ site_name}} + UTF-8 + UTF-8 + false + {{ language }} + http://zestedesavoir.com/pages/contact/ + {{ site_url }}{% static "images/favicon.png" %} + + + + + \ No newline at end of file diff --git a/zds/search/urls.py b/zds/search/urls.py index 60c9ee7583..d96eabba92 100644 --- a/zds/search/urls.py +++ b/zds/search/urls.py @@ -8,9 +8,12 @@ from zds.search.forms import CustomSearchForm urlpatterns = patterns('haystack.views', - url(r'^$', search_view_factory( - view_class=CustomSearchView, - template='search/search.html', - form_class=CustomSearchForm - ), name='haystack_search'), + url(r'^$', search_view_factory( + view_class=CustomSearchView, + template='search/search.html', + form_class=CustomSearchForm + ), name='haystack_search')) + +urlpatterns += patterns('', + url(r'^opensearch.xml', 'zds.search.views.opensearch') ) diff --git a/zds/search/views.py b/zds/search/views.py index c5e4befda3..0c45c70c02 100644 --- a/zds/search/views.py +++ b/zds/search/views.py @@ -1,9 +1,11 @@ # coding: utf-8 from django.shortcuts import render +from django.core.urlresolvers import reverse from haystack.views import SearchView +from zds import settings from zds.search.constants import MODEL_NAMES from zds.utils.paginator import paginator_range @@ -31,3 +33,14 @@ def create_response(self): context.update(self.extra_context()) return render(self.request, self.template, context) + + +def opensearch(request): + """Generate OpenSearch Description file""" + + return render(request, 'search/opensearch.xml', { + 'site_name': settings.ZDS_APP['site']['litteral_name'], + 'site_url': settings.ZDS_APP['site']['url'], + 'language': settings.LANGUAGE_CODE, + 'search_url': settings.ZDS_APP['site']['url'] + reverse('haystack_search') + }, content_type='application/opensearchdescription+xml')