plone サイトを firefox の検索プラグインに対応させる
このサイトを firefox の検索プラグインに対応させました。
firefox 2.0 では、検索プラグインが提供されいるページとされていないページでは、検索窓の表示が変わります。
上にある2つの画像を見比べてください。「検索プラグインあり」の場合は Google アイコンのまわりが青くなっています。
で、この青くなっているときは「このサイトに検索プラグインがありますよ」ってお知らせなので、ここをぽちっと押すと 「検索プラグインを追加」のようなものが表示されて、検索プラグインが追加できます。
検索プラグインを追加すると、いつでもこのサイトが firefox の検索ボックスから検索できるようになります。 (必要ない?)
やり方は以下のとおりです。
まず最初に検索方法を示す xml ファイルを作成します。
ZMI で portal_skins/custom に移動して、Page Template で search.xml というアイテムを作成します。
中身はこんな感じ。:
<?xml version="1.0" encoding="utf-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/"
xmlns:tal="http://xml.zope.org/namespaces/tal">
<ShortName tal:content="context/title">Title</ShortName>
<Description tal:content="string:${context/title}をサイト内検索">Search this site</Description>
<InputEncoding>utf-8</InputEncoding>
<Url type="text/html" method="GET" template=""
tal:attributes="template string:${context/portal_url}/search?SearchableText={searchTerms}" />
</OpenSearchDescription>
もう一つ、せっかくなので google で検索するバージョンも作ります。名前は search_google.xml にしておきます。:
<?xml version="1.0" encoding="utf-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/"
xmlns:tal="http://xml.zope.org/namespaces/tal">
<ShortName tal:content="string:${context/title}(Google)">Title</ShortName>
<Description tal:content="string:${context/title}(Google)">Search this site</Description>
<InputEncoding>utf-8</InputEncoding>
<Url type="text/html" method="GET" template=""
tal:define="inurl python:context.portal_url().replace('http://', '')"
tal:attributes="template string:http://www.google.co.jp/search?q={searchTerms}&hl=ja&ie=utf-8&oe=utf-8&hq=inurl:${inurl}" />
</OpenSearchDescription>
これらのコードは下にはってあるのでよかったらお使いください。
で、最後に portal_skins/plone_templates/header をカスタマイズして、検索プラグインがあることをヘッダに書きます。
私の場合はコードのこの部分の下に追加しました。:
<link rel="up" href="" title="Up one level"
tal:define="parent python:here.navigationParent(here, template_id)"
tal:condition="parent"
tal:attributes="href parent" />
検索プラグインのありかを教えるコードはこんな感じです。:
<link rel="search" type="application/opensearchdescription+xml" title="" href=""
tal:attributes="href string:${portal_url}/search.xml;
title string:${portal_title}">
<link rel="search" type="application/opensearchdescription+xml" title="" href=""
tal:attributes="href string:${portal_url}/search_google.xml;
title string:${portal_title}(Google)">
なお、検索プラグインを作るときに参考にしたのは以下のページです。
-
- ¦
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
- http://takanory.net/takalog/649/tbping
鈴木たかのりです。とりあえず日記っぽく雑多なことを書き込んでいこうと思っています。
zope/plone関係の技術的な内容については
検索用ファイル