ploneサイトを作成すると、このようなロゴが左上に表示されます。このロゴを自分が作成したファイルと入れ替えます。
まずはロゴを作成します。ロゴの作成は自分で一から作ったり、ツールを使ったりして、自分の気に入ったものを作成してください。(無責任)
ちなみに、私は Gimp for Windows を使用して作成しています。
ロゴ&バナー無料自動作成 などのサイトを利用するのも手だと思います。
それから TypeNow.net に面白いフォントがありますので、ここから好みのフォントを持ってくるのもよいと思います。
とりあえず、ここで作成したファイルは logo.png という名前の画像ファイルということにしておきます。
次に作成したファイルをZopeサーバにアップロードします。
アップロードする場所は、ploneサイトの直下ではありません。
portal_skins の下の custom フォルダに移動します。
初期状態では、このフォルダには何もアイテムは存在しません。
Image を追加します。
先ほど作成したファイルを参照して指定し、追加します。Titleには適当な名前を指定してください。(必須ではありません)
これだけでは、ロゴファイルは変更されません。次にPloneサイトに対して、ロゴファイル名が logo.jpg から logo.png に設定を変更する必要があります。
base_properties を開く Plone サイトの色やフォント、ロゴに関する設定は portal_skins/plone_styles の下の base_properties というアイテムに設定されています。このアイテムを選択して開きます。
この画面が base_properties の中身になります。3行目に logoName という項目が存在し値が logo.jpg に設定されているのがわかります。
しかし、この画面を見てのとおり、入力フィールド等がないため、値の変更ができません。また、アイテムの種類を表すアイコンも、変更できないことを表すために鍵のマーク(
)が付いてます。
なぜ、値の変更ができないかというと、この base_properties というアイテムはWindowsやLinuxのファイルシステム上のファイルとして存在しているからです。実際のファイルは以下の場所にあります。
CMFPlone/skins/plone_styles/base_properties.propsbase_properties をカスタマイズする このアイテムを変更するための仕組みが Plone には用意されています。そのためには変更したいアイテムで Customize ボタンをクリックします。
すると、base_properties の内容が portal_skins/custom の下にフォルダのプロパティという形でコピーされます。
これで、カスタマイズができるようになったので、logoName の値を logo.png に変更して保存します。
このように、Ploneサイトをカスタマイズするには、以下のような手順になります。
portal_skins の下から探す。Customize ボタンを押して custom フォルダにコピーを作成する。 ロゴファイルをカスタマイズしたので、ついでにお気に入り用アイコン favicon.ico ファイルもカスタマイズします。
Ploneサイトの初期設定では、お気に入りアイコンとして Plone のアイコンが使用されています。これを自分のサイト用アイコンに入れ替えます。
この手順はロゴファイルのアップロードとほぼ同様です。あらかじめ favicon.ico というファイルを用意し、Ploneサイトの下の portal_skins/custom フォルダにImageアイテムとして追加します。
あとは、Web browserでお気に入りのアイコンが変更になっていることを確認します。browserがキャッシュを読み込んで表示する場合があるので、browserの再起動やキャッシュの消去が必要な場合があります。
Ploneではさまざまな部分に対して柔軟にカスタマイズを行なうことができます。 しかし、逆に柔軟にカスタマイズができるために、ほとんどの部分を変更することが可能で、どこにどのような修正項目が存在するかがわかりづらくなっています。
ここでは、Ploneサイトをカスタマイズするときに、よく設定を変更すると思われるアイテムについて説明します。
ここでは、Ploneサイトに関する属性を設定することができます。
また、一部の項目については、Ploneの設定画面からも行なうことが可能です。 Ploneの設定画面へのアクセス方法は以下のとおりです。
ploneの設定 を選択します。
ポータルの設定 を選択します。
設定項目は以下のとおりです。
portlet を表示するかを指定します。ポートレットの変更については ポートレットのカスタマイズ を参照してください。この項目はポータルの設定画面からは変更できません。
ここにはポータルに関する4種類の属性が存在します。設定を変更することがよくあるのは site_properties だけだと思います。(他をどのように設定すべきかあまり知らないだけですが)
site_properties で変更する可能性がある主な項目を以下に記述します。
%Y-%m-%d となっています。%Y-%m-%d %H:%M となっています。ja を指定します。 ロゴを変更する でも説明した通り、Ploneサイトの見た目を変更するのは、主に portal_skins の下にあるアイテムを custom フォルダにコピーして編集することになります。
portal_skins フォルダの下で主にカスタマイズのために修正するアイテムが入っているフォルダについて説明します。
ploneCustom.css を使用して行います。base_template 等をカスタマイズします。Ploneサイトの初期状態では左右にportletが表示されます。この状態ではコンテンツを表示する領域が狭くなるので、左側にのみportletを表示するようにします。また、カレンダーとログイン用のportletは使用しないので削除します。
portlet_navigation, portlet_recent
here/portlet_navigation/macros/portlet here/portlet_recent/macros/portlet
portal_skins/plone_portlets にある、portletの名前とその内容を以下に説明します。他に ○○_slot という名前のものもありますが、これは古いバージョンの plone で使われていたものなので、気にしなくていいです。
画面左上のロゴの下表示されているポータルタブの項目を変更します。
ここではメンバータブを表示しないようにし、新規にblogを表示するタブを作成します。
ここでは、初期状態ではポータルタブの一番右側にある メンバー タブを表示しないようにします。
portal_actions にアクセスします。
portal_actions が表示されます。ここには、Ploneのどこでどのような操作ができるかのアクションが定義されています。
Members という名前のアクションが定義されているので、このアクションの Visible? チェックボックスのチェックをはずします。
Save ボタンをクリックし、設定を保存します。
メンバー タブが表示されなくなっていることが確認できます。
次に、/takalog という相対パスでアクセスできる、blog という名前のタブを作成します。タブを新規に作成するためには、portal_actions にアクセスしてアクションの追加を行なう必要があります。
portal_actions にアクセスします。
Add an action というフォームがあるので、以下の項目を記述して Add ボタンをクリックします。
設定項目の詳細は以下のとおりです。
string:$portal_url/takalog と指定します。View を指定します。portal_tabs というカテゴリを指定します。blog タブが表示されているが確認できます。なお、blog と小文字で表示されているのはploneのCSSの初期設定によるものです。
以上で、ポータルタブの変更は終了です。同じような手順で、他のアクションについても追加、変更、削除を行なうことができます。
「最近の公開」portlet(portlet_recent)は、最近公開したアイテムを5件まで表示してくれる便利な portlet です。
しかし、これをサイトの新着情報変わりに使おうとすると、以下の不満になるので変更しようと思います。
以下にカスタマイズの手順を記述します。
portal_skins/plone_portlets にアクセスします。
portlet_recent を選択して開きます。
Customize ボタンをクリックして custom フォルダーにコピーを作成します。
私が変更したソースの例を portlet_recentソース においておきます。
ここでは、ploneサイトの色とフォントを変更する方法について記述します。
ploneサイトのフォントや色を変更するためには、どこをどのように変更すればよいかについて説明します。
ploneサイトの色やフォントの設定は、CSS(Cascading Style Sheet)で行なわれています。
ploneサイトの色やフォントを変更するためには、ロゴの変更
で説明した base_properties のプロパティの値を変更します。
また、実際にここで変更したフォントや色についての設定は、plonePresentation.css というcssファイル上で定義されて見た目を変更しています。
フォントは初期状態では、
"Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif
と設定されています。
なお、フォントを設定する項目は2種類あります。
fontFamily 全体的に使用されるフォント。headingFontFamily heading(見出し)に使用されるフォント。
ここをどのように変更するかは好みの問題なのですが、ここでは
Verdana, Arial, sans-serif
と設定することにします。
主なフォントのサンプルです。
色もフォントの変更と同様に base_properties で値を変更します。
色の設定項目と初期設定の値を以下に載せます。
fontColor BlackbackgroundColor WhiteglobalBorderColor #8cacbbglobalBackgroundColor #dee7ecglobalFontColor #436976
linkColor #436976linkActiveColor RedlinkVisitedColor Purple
contentViewBorderColor #74ae0bcontentViewBackgroundColor #cde2a7contentViewFontColor #578308notifyBorderColor #ffa500notifyBackgroundColor #ffce7b
evenRowBackgroundColor #f7f9faoddRowBackgroundColor transparentdiscreetColor #76797chelpBackgroundColor #ffffe1inputFontColor Black
ここでは、下記のようなploneサイトのフッターの表示を変更する方法について説明します。
まず最初に、フッターがどこに定義されているかを探す必要があります。
フッターの定義を探すために、main_template というPage Templateを参照します。
Zopeの管理画面で、portal_skins/plone_template を選択します。
次に、ploneのページの全体の構成が記述してある、mainn_template を選択して参照します。
main_template を参照すると、一番下の方に以下のように記述してある部分があります。:
<metal:block i18n:domain="plone">
<div id="portal-footer" metal:use-macro="here/footer/macros/portal_footer">
Footer
</div>
<div id="portal-colophon" metal:use-macro="here/colophon/macros/colophon">
The colophon area - contains details about the production of
the site. Typically "powered by" buttons, standards, tools used.
</div>
</metal:block>
この記述を読むと、フッター部分は footer と colophon の2ヶ所で定義されていることがわかります。(use-macro の部分です。)
定義されている部分がわかったので、以下でそれぞれの部分を編集します。
まずは、上の部分 footer の定義を変更します。
footer も plone_templates に定義してあります。
Customize ボタンをクリックして、custom フォルダにコピーを作成します。
このサイトでは以下のように変更しました。:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"
i18n:domain="plone">
<body>
<div id="portal-footer" metal:define-macro="portal_footer">
Copyright © 2005 -
<span tal:define="now modules/DateTime/DateTime" tal:content="now/year" />
by
<a href="http://takanory.net">takanori</a>
</div>
</body>
</html>
続いて動揺に下の部分 colophon の定義を変更します。
colophon も plone_templates に定義してあります。
Customize ボタンをクリックして、custom フォルダにコピーを作成します。
このサイトでは以下のように変更しました。:
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en" lang="en"
i18n:domain="plone">
<head><title></title></head>
<body>
<div id="portal-colophon" metal:define-macro="colophon">
Powered by
<a href="http://vinelinux.org">Vine Linux</a> /
<a href="http://zope.org">Zope</a> /
<a href="http://plone.org">Plone</a>
</div>
</body>
</html>
上記の変更により、以下のようにフッターが変更できました。
ある特定のアイテム(例えばこの文書)に対してコメントが付けられるようにするには、まず プロパティ タブをクリックします。
すると、このアイテムに対するプロパティ(metadataという言い方もします)の設定画面が表示されます。ここにはキーワードや公開年月日の著作権などの様々な入力欄があります。
このアイテムに対してコメントが付けられるようにするには、
'このアイテムの議論を許可する' という設定項目の値を
'デフォルト' から 許可する に変更します。
すると、このように コメントを追加 ボタンが表示されるようになります。
このボタンをクリックすることにより、特定のアイテムに対してコメントをつけられるようになります。
上記の方法でアイテムに対してコメントを付けられるようにする設定はわかりました。しかし、この方法ではploneサイト上の全てのアイテムに対して同様の処理を行なわないといけないため、非常に大変です。
そのような場合、ploneではアイテムの種類(タイプ)毎にコメントを付けられるかの設定を行ないます。
(その値が、デフォルト としてアイテムに反映されます。)
その設定を行なうためには、zopeの管理画面を開いて portal_types を選択します。
すると、このploneサイトで扱えるアイテムの一覧が表示されます。
ここで、コメントを付けられるようにしたいアイテムの種類(タイプ)を選択します。
ここでは Document( = 文書)を選択しています。
Document タイプの詳細を表示すると、Allow Discussion? というチェックボックスがあります。ここが、この種類(タイプ)のアイテムのコメントを付けられるかどうかの初期値となっています。ここをチェックして保存します。
このように設定すると、このploneサイト上の全ての文書タイプのアイテムに対して、コメントを追加 ボタンが表示されるようになります。
初期設定ではコメントの追加は、ploneサイトのメンバーでなければ実行できません。もし、ログインしていない状態でコメントをつけられるアイテムを表示した場合には コメントを追加するためにログイン というボタンが表示されます。
このように表示されるのは、ploneの初期設定ではコメントの追加は匿名ユーザに対して許可されていないからです。
もしも匿名ユーザでもコメントを書き込みできるようにするためには、権限の変更を行なう必要があります。
権限の変更はzopeの管理画面でploneサイトのトップのアクセスした状態で
Security タブをクリックします。
この、セキュリティ設定の画面では Manager, Member 等の各ロール(ユーザが属するグループのようなもの)ごとに、許可する操作をチェックしています。
コメントを追加する操作は Reply to item なので、ここを Anonymous (匿名)でも書き込みができるようにチェックボックスをチェックして保存します。
すると、このサイトのように文書に対して匿名でもコメントが追加できるようになります。
ここまでの設定で匿名ユーザもコメントを書けるようになりましたが、↓のコメントに書いてある通り匿名の場合は必ず「投稿者 無名ユーザ」と表示されるようになっていました。
そこで、匿名ユーザでも(信頼性はないけれど)名前を書けたほうがいいだろう、ということでカスタマイズしてみました。
なお、下記の設定変更の例は plone 2.1 をベースに書いているので、いじるポイントは近いと思いますが plone 2.0.x ではちょっと違う感じになると思います。
まず、コメントを書く込むためのスクリプト
/portal_skins/plone_form_scripts/discussion_reply
をカスタマイズします。
まず、if username or password: にぶらさがっている部分をばっさり削除かコメントアウトします。ここは匿名ユーザがユーザ名とパスワードを指定したときに入ってくる部分ですが「コメント書き込み時に初めて認証などしない!!」とわりきってばっさり削除です。
次にユーザ名を取得している部分を変更します。元のコードでは下記のように認証されたユーザのユーザ名を取得しています。
creator = mtool.getAuthenticatedMember().getUserName()
ここを単純に入力フォームに入力されたユーザ名を設定するようにします。
creator = username
これで、コメント追加時に匿名ユーザは自分の名前を指定してコメントを書き込めるようになります。
また、このサイトではついでに
/portal_skins/plone_forms/discussion_reply_form
もカスタマイズして、パスワード入力フォームを表示しないようしています。
匿名ユーザでのコメント追加のテスト用文書を作成しました。 コメント追加テスト からどうぞ。
匿名でコメントを追加できるようにするのは、書き込みが気安く活発になる反面、下記のような危険性があるので注意が必要だと思います。
とりあえずこのサイトでは、文書とファイルに対しては、匿名ユーザによるコメントを許可しておこうと思います。 なにか問題があったらやめるかも知れませんが。
イベントを作成するときには、イベントの種類 が設定できます。
しかし、初期状態では選択肢は英語のものしか存在しません。
ここでは、ここに表示される内容を日本語の選択肢に変更する手順について説明します。
portal_metadata に設定されています。
zopeの管理画面でploneサイトのルートにある portal_metadata を選択します。
portal_metadata を開いたら、値が設定してある Elements タブをクリックします。
Subject をクリックします。
Subject エレメントを表示すると、Event に対して Appointment 等の見たことのある単語が設定されています。
Update ボタンをクリックします。
イベントの種類 の選択肢が日本語のものに変更されていることが確認できます。
RSSは色々と規格が存在するようで、今回は RSS 1.0 と RSS 2.0 に対応するようにします。
portal_skin/custom フォルダにアクセスします。
Content-Type が text/xml ではなく text/html となっているためです。
(画像の右上をチェックしてください。)
Content-Type を text/xml に変更して保存すると、以下のようにエラーメッセージが表示されなくなります。
index.rdf, index.xml という2つのアイテムを作成します。
作成した2つのファイルが配信する内容が、フォーマット的に正しいかを Feed Validator を使用してチェックします。
下記のURLを使ってチェックして、フォーマットに問題がないことを確認しました。
配信対象となるのは、最近公開(published)したアイテムを新しい順に15件としています。 件数や対象とするアイテムの種類を限定したい場合は、両方のソースの下記のアイテムを検索する部分を書き換えてください。:
<tal:search tal:define="results python:here.portal_catalog.searchResults(
sort_on='modified',
sort_order='reverse',
review_state='published')[:15]">
まずは、検索部分について説明します。
[:15] の部分の数字を変更します。portal_type という条件を追加します。
例えば、文書とフォルダのみを対象とする場合は以下のように変更します。:
review_state='published', portal_type=['Document','Folder'])[:15]">
次に、RSS情報へのリンクをHTMLのヘッダに入れるために、ploneのヘッダを定義している部分を変更します。
portal_skins/plone_templates にアクセスします。
header を選択して Customize ボタンをクリックして、編集用に custom フォルダにコピーします。
header に以下のようにRSS情報へのリンクを追加します。変更前:
<!-- Basic crude style for Netscape4.x - This can be removed
if you don't want the special NS4 look - it will still work,
just be plain text instead. Column layout for Netscape4.x included -->
<link rel="Stylesheet" type="text/css" href="" tal:attributes="href string:$portal_url/ploneNS4.css" />
変更後:
<link rel="alternate" type="application/rss+xml" title="RSS 1.0" href=""
tal:attributes="href string:$portal_url/index.rdf" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href=""
tal:attributes="href string:$portal_url/index.xml" />
<!-- Basic crude style for Netscape4.x - This can be removed
if you don't want the special NS4 look - it will still work,
just be plain text instead. Column layout for Netscape4.x included -->
<link rel="Stylesheet" type="text/css" href="" tal:attributes="href string:$portal_url/ploneNS4.css" />
plone の portlet を表示するときに、偶数行には色がつくようになっています。
この色は初期状態では
#f7f9fa
という薄い水色になっています。
この色だとこのサイトの他の色と合わないので、変更します。
色を変更するために、portal_skins/custom/base_properties にアクセスします。
(custom フォルダに base_properties が存在しない場合は、
/portal_skins/plone_styles/base_properties にアクセスして
Customize ボタンをクリックしてコピーを作成します。)
次に、Properties タブをクリックして、プロパティを表示します。
portlet の偶数行の色は evenRowBackgroundColor というプロパティに設定してあります。
ここでは値を
#e9ebb1
に変更します。
変更を保存して portlet を再表示すると、偶数行の背景色が変更されていることが確認できます。
次に、portlet の表示幅を変更します。 blog エントリーなどでタイトルを表示すると、たくさん改行されて窮屈な感じが吸うrので、portlet の表示幅を標準よりも広げようと思います。
portlet の表示幅は portal_skins/custom/base_properties の
columnOneWidth (左側の表示幅)と
columnTwoWidth (右側の表示幅)というプロパティで設定しています。
ここでは、左側の portlet の表示幅を広げるので、columnOneWidth
プロパティの値を初期値の 16em から 24em に変更します。
最後に、portlet の中の行間が広く高さをとるので、この幅を狭くします。
この行間の幅は今まで設定してきたプロパティではなく、plone.css に記述してあります。
しかしここでは、plone.css は直接編集しないで ploneCustom.css に記述を追加する形で設定を変更します。
base_properties と同様に portal_skins/plone_styles にアクセスし、
ploneCustom.css を custom フォルダにコピーします。
次に、ploneCustom.css に以下のように記述します。:
/* <dtml-var "enableHTTPCompression(request=REQUEST, debug=1, css=1)"> (this is for http compression) */
/* <dtml-with base_properties> (do not remove this :) */
/* <dtml-call "REQUEST.set('portal_url', portal_url())"> (not this either :) */
.portletContent {
padding: 0.3em 0.5em;
}
/* </dtml-with> */
真中の .portletContent が追加した記述で、余白を上下に 0.3em 左右に 0.5em とるように指定しています。(初期値ではどちらも 1em となっています。)
これらの変更により、 portlet は以下のように表示されるようになりました。
Google Adsense は、自分が持っている Web のコンテンツと一緒に、Google さんがそのコンテンツの内容にあった広告を表示してくれる仕組みです。
で、その広告がクリックされると広告収入がちょっとだけ入ったりするんですが、まぁとりあえず自分のサイトの内容にどれだけマッチした広告が表示されるかを見ていても、なかなか楽しいです。
まずはコンテンツに連動して Google Adsense が表示されるようにします。
以前は google adsence ポートレットを入れてみた に書いたとおり、 Ploneのサイト構築メモ 2 --- コンテンツの配置とタブ --- Emerge Technology にある portlet を使っていました。 でも、portlet が縦に長くなりすぎてコンテンツと関連しているって感じがでないので、コンテンツの下に表示するようにしてみました。
実際に Google Adsense を表示するためのコードは portal_skins の plone_template/main_template をカスタマイズして記述します。
変更前:
</div>
</metal:block>
</td>
<!-- end of main content block -->
変更後:
</div>
<div id="content">
<div class="documentContent" id="region-content">
<h1>Google Adsense</h1>
<script type="text/javascript"><!--
google_ad_client = "pub-8733335389423940";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text";
google_ad_channel ="";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFFF";
google_color_link = "436976";
google_color_url = "436976";
google_color_text = "000000";
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
</div>
</metal:block>
</td>
<!-- end of main content block -->
google_ad_client や色の指定のパラメータなどは、環境に合わせて適宜変更してください。
次に、plone の右上の検索ボックスを検索向けの AdSense に変更します。
plone 2.1 では検索結果を動的に表示してくれる LiveSearch という機能があるんですが、日本語処理とかがちょっと微妙だったりします。 というわけで、ためしに検索ボックスも Google Adsense のものに変えてみます。
方法は簡単で zope の管理画面で global_searchbox という Page Template
をカスタマイズして使用します。
カスタマイズの方法は通常通り protal_skins/plone_templates にあるものをコピーしてから編集する形でも構いませんが、ここでは
global_searchbox のソース
をそのまま利用して portal_skins/custom フォルダに
global_searchbox という名前の
Page Template を作成します。
なお、このコードをコピーして使用する場合、サイトに合わせて変更した方がいいポイントは以下の通りです。
このサイトのコンテンツは plone と COREBlog によって記述しております。 その全コンテンツを Google Sitemaps という形式で出力して、Google に正しくクロールしてもらおうと思います。
その方法は、 sitemaps.xml という名前の Page Template を、plone サイトのルートフォルダに作成します。
実行結果は http://takanory.net/sitemap.xml を参照してください。
なお、Page Template を作成するときに Content-Type を text/xml
に変更することを忘れないで下さい。
とりあえず Sitemaps の登録は Google Sitemaps のページでアカウントを作成し、そこから行う必要があるようです。
sitemaps.xml のコードは Add a Google Sitemap のページに書いてあるコードを参考に作ってあります。
カスタマイズのポイントは以下の通りです。
portal_type で対象とする plone のコンテンツの種類を指定してあります。この内容を plone サイトにあわせて修正します。Topic や News Item が対象になるサイトもあると思います。review_state で visible は対象としない場合は、リストからはずします。File の場合とそれ以外の場合で、対象とする URL を変更してあります。blog 等に修正してください。
内容はとくにありません。
plone 2.1 ではフォルダにたくさんある画像をアルバムっぽく見せるための atct_album_view という表示形式が最初からついています。
ここでは、その atct_album_view をカスタマイズして、 Lightbox JS というものを使用して、Web 2.0 っぽく表示させる方法について説明します。
Lightbox JS のページから以下の4つのファイルをダウンロードします。
ダウンロード後、ZMI から
portal_skins/custom/ にこれらのファイルをアップロードします。
つぎに、アップロードした lightbox.js を plone に登録します。
javascript を登録するために、ZMI で portal_javascripts をクリックします。
すると、plone 2.1 に登録されている javascript の一覧が表示されます。
ここに、lightbox.js を追加します。ID に lightbox.js と記述して Add
ボタンをクリックします。他の項目は初期状態のままです。
これで、lightbox.js もマージされた javascript が plone のサイトで読み込まれるようになります。
同様に lightbox.css も plone に登録します。
css を登録するために、ZMI で portal_css をクリックします。
そして lightbox.js のときと同じように、lightbox.css を追加します。
CSS Media には screen と記述します。他の項目は初期状態のままです。
これで、lightbox.css がマージされた css を plone サイトが読み込むようになります。
ここまでの設定で lightbox.js を plone サイトで使えるようになっています。
ちなみに、上のほうにある lightbox.js と lightbox.css の追加画面は lightbox を使用しているため、画像をクリックすると周辺がグレイになって拡大画像が表示されるようになっています。
この部分は StructuredText で以下のように記述してあります。:
<a href="../images/lightbox02.png" rel="lightbox">
"Add lightbox.js":img:../images/lightbox02.png/image_preview
</a>
このように、リンク先に画像を指定して rel="lightbox" という記述を追加すると、
lightbox を使用して表示するようになります。
最後に atct_album_view をカスタマイズして、アルバムの画像を lightbox を使用して表示するようにします。
portal_skins/ATContentTypes に移動して atct_album_view
を開き、Customize ボタンをクリックして custom フォルダにコピーを作成します。
そして 41, 42 行目あたりを以下のように変更します。
変更前:
<a tal:define="id python:int(b_start)+int(repeat['image'].number()-1)"
tal:attributes="href string:${image/absolute_url}/view;
title image/Description">
変更後:
<a tal:define="id python:int(b_start)+int(repeat['image'].number()-1)"
tal:attributes="href string:${image/absolute_url}/image_large;
title string:${image/title} ${image/Description}" rel="lightbox">
変更した内容は以下の通りです。
${image/absolute_url}/view
(画像の表次ページ)
となっているのを ${image/absolute_url}/image_large
(最大 768x768 の画像)に変更します。リンク先はオリジナルの画像でもいいんですが、PC 上で 1600x1200 の画像とか表示してもしょうがないかなと思い、とりあえず image_large にしています。
title の中身をキャプションとして表示するようになったので、画像の title と Description を使うように変更します。rel="lightbox" という記述を追加して、lightbox を使用するように変更します。以上で、atct_album_view が lightbox を使用して拡大画像を表示するようになりました。
実際の動作は 写真のページ で画像をクリックして確認してみてください。
ハイ・パフォーマンスなHTTPアクセラレーター varnish をインストールします。
Vine Linux 用の RPM は存在しないため、src.rpm から Vine Linux 用の RPM を構築してインストールします。
% rpmbuild --rebuild varnish-1.1.2-5.src.rpm % cd ~rpm/RPMS/i386 % ls varnish-1.1.2-5.i386.rpm varnish-libs-devel-1.1.2-5.i386.rpm varnish-libs-1.1.2-5.i386.rpm % sudo rpm -i varnish-1.1.2-5.i386.rpm varnish-libs-1.1.2-5.i386.rpm
varnish の RPM をインストールすると、主には下記のファイルがインストールされます。 詳細は rpm -ql varnish などして確認してください。
OS起動時に varnish、varnishlog が自動的に立ち上がるように設定します。
% chkconfig --list | egrep varnish varnish 0:off 1:off 2:off 3:off 4:off 5:off 6:off varnishlog 0:off 1:off 2:off 3:off 4:off 5:off 6:off % sudo chkconfig varnish on % sudo chkconfig varnishlog on % chkconfig --list | egrep varnish varnish 0:off 1:off 2:off 3:on 4:on 5:on 6:off varnishlog 0:off 1:off 2:off 3:on 4:on 5:on 6:off
CacheFu に付属している、設定ファイルを生成するスクリプトを使用して、varnish 用の設定ファイルを作成します。
(apache用、squid用もあります)
後述する、定義ファイル makeconfig.cfg に必要な情報を記述して、 PYTHONPATH に zope の python を設定して実行します。 (makeconfig.cfg の記述方法については後述します。)
% tar xfz CacheFu-1.1.2.tar.gz % cd CacheFu-1.1.2/cachefu-proxy-configs/varnish-apache % vi makeconfig.cfg % setenv PYTHONPATH /usr/lib/zope/lib/python/ % python makeconfig Configuration file [makeconfig.cfg]: Template directory [templates]: Output directory [output]: Generating files for varnish behind apache Generating .../output/deploy Generating .../output/httpd.conf Generating .../output/varnish-start Generating .../output/varnish-stop Generating .../output/varnish.vcl
すると、 output ディレクトリに以下の5つのファイルが生成されます。
このうち、varnish-start, varnish-stop は RPM でインストールした場合は /etc/init.d/varnish スクリプトを使用するため不要です。
必要な設定作業としては、 httpd.conf の記述を追加することと、 varnish.vcl を適当なディレクトリに配置し、起動スクリプトで読み込むようにすることです。
ここでは /etc/varnish に varnish.vcl を配置し、 /etc/sysconfig/varnish を以下のように書き換えます。 ついでに、varnish へのアクセス元を localhost のみにしておきます。
変更前:
DAEMON_OPTS="-a :6081 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-u varnish -g varnish \
-s file,/var/lib/varnish/varnish_storage.bin,1G"
変更後:
DAEMON_OPTS="-a localhost:6081 \
-T localhost:6082 \
-f /etc/varnish/varnish.vcl \
-u varnish -g varnish \
-s file,/var/lib/varnish/varnish_storage.bin,1G"
CacheFu と varnish を組み合わせて使用するときの各種設定ファイルを生成します。 ファイルを生成するための設定ファイル makeconfig.cfg には下記のように記述します。
[varnish] # address/port that varnish should listen to (defaults to 127.0.0.1:8000) address: 127.0.0.1 port: 6081 # size of cache in MB (defaults to %50 of filesystem free space) cache_size: 1000 # varnish paths (see examples below) binary: /usr/sbin/varnishd config_dir: /etc/ cache_dir: /var/lib/varnish [virtualhosts] # Syntax --> host: zope_domain:zope_port/zope_path takanory.net: localhost:8080/takanory
重要な設定項目について説明します。
virtualhosts plone 用のバーチャルホストの設定を記述します。 ホスト名: zopeサーバのホストまたはIP:ポート番号/パス の形式で記述します。
バーチャルホストについては Apache 2との連携 を参照してください。
生成された httpd.conf ファイルのうち、RewriteRule に関する部分は以下のような形式になります。
RewriteRule ^/(.*)/$ http://127.0.0.1:6081/VirtualHostBase/http/takanory.net:80/takanory/VirtualHostRoot/$1 [P] RewriteRule ^/(.*) http://127.0.0.1:6081/VirtualHostBase/http/takanory.net:80/takanory/VirtualHostRoot/$1 [P]
この内容を Apache の httpd.conf に記述します。
設定を反映させるために、varnish の起動と apache への設定ファイルの再読み込みを行います。
% sudo /etc/init.d/varnish start % sudo /etc/init.d/apache2 reload
この状態で、plone サイトにアクセスしてコンテンツが表示されれば、varnish が正常に動作しているということが確認できます。
また varnishstat コマンドで、状態を確認することができます。
最後に、plone 側で CacheFu の設定を行います。ここでは CacheFu 1.1.2 がすでにインストールされているものとします。
サイト設定→Cache Configuration Tool を選択して、設定画面を表示します。
とりあえずここでは簡単に plone 側で Cache を有効にするために、以下の項目を設定します。
以上で、 varnish と CacheFu を組み合わせて plone サイトのキャッシュを行うための設定は終了です。
あとは CacheFu 側で細かいキャッシュに関する設定(どういうヘッダを返すか等)を行うことになります。