コンテンツに飛ぶ | ナビゲーションに飛ぶ

パーソナルツール
ログイン
現在位置: ホーム Blog Entry Plone4のページアイテムに独自の表示形式を追加する。(その2)

Plone4のページアイテムに独自の表示形式を追加する。(その2)

作者: Yazaki - 最終変更 2011年12月10日 16時24分
タグ:

Plone Advent Calender 2011 (10日目)

今までもPlone系のイベントに参加したいと思ってはいたのですが、北海道に住んでいるとやはり難しいです。
それでも、アドベントカレンダーのようなネット上のイベントであれば参加可能なので、今後は可能な限り参加させていていただきたいと思っています。

という事で、Plone Advent Calender 2011、寺田さん(@terapyon 9日目記事)に続き、自分担当分としては2回目の記事は前回の続きです。

概要

前回はページアイテムに独自の表示形式を追加しました。
今回は、その表示形式を選択した際のページフッターにFacebookコメントプラグインが表示されるようにしていきます。
(最後に表示形式の名称を翻訳する方法についても触れます。)

PageTempalteを完成させる

ここまで使用してきた最低限page templateの内容を埋めていきます。

基本はデフォルト表示形式をそのまま使用したいので、ページアイテムのデフォルトのページテンプレートの内容をコピーします。

補足として、page templateファイルの探し方について触れておきます。

  1. ZMIでportal_typesに行き、Document(Page)を開きます。
  2. Default view methodの値が、document_viewである事がわかります。
  3. 次にZMIでportal_skinsに行き、Findタブのwith ids:にdocument_viewと入力し検索をします。
  4. plone_content/document_viewがヒットするので、これを開きます。
  5. Source fileを見るとファイルのフルパス名がわかります。

このファイルをexsoft.fbcommentviewパッケージにfb_comment_document_view.ptとしてコピーし、これを編集していきます。

$ cp [original document_view.pt] $PKG_ROOT/fb_comment_document_view.pt

Facebookコメントプラグインのコードは以下から取得します。
https://developers.facebook.com/docs/reference/plugins/comments/

表示されたコードをfb_comment_document_view.pt内のページフッター部に貼付けます。

$ vim $PKG_ROOT/fb_comment_document_view.pt
<html>
...

<!-- fb comment -->
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ja_JP/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class="fb-comments" data-href="www.exsoft.net" data-num-posts="2" 
    data-width="500"></div>

</metal:content-core>

</body>
</html>

この時点でブラウザからページを見るとFacebookコメントが追加されているはずです。
[表示形式]を通常に戻すとFacebookコメントが消える事が確認できると思います。

翻訳する

動きとしては以上で完成しましたが、[表示形式]がfb_comment_document_viewと、viewの名前になっているので、最後にこの部分を日本語に翻訳したいと思います。

先ずは翻訳ファイルを所定の場所に作成します。

$ mkdir -p $PKG_ROOT/locales/ja/LC_MESSAGES/
$ vim $PKG_ROOT/locales/ja/LC_MESSAGES/plone.po
msgid ""
msgstr ""
"Project-Id-Version: Examples\n"
"PO-Revision-Date: 2011-12-01 23:35+0900\n"
"Last-Translator: Junichi Yazaki (jy) \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0\n"
"Language-Code: ja\n"
"Language-Name: Japanese\n"
"Preferred-Encodings: utf-8 latin1\n"
"Domain: plone\n"

msgid "fb_comment_document_view"
msgstr "ページ with Facebookコメント"

作成した翻訳ファイルをコンパイルします。

$ cd $PKG_ROOT/locales/ja/LC_MESSAGES/
$ msgfmt -o plone.mo plone.po

最後に翻訳ファイル(というかディレクトリ)の登録を設定ファイルに追記します。

$ vim $PKG_ROOT/configure.zcml
<i18n:registerTranslations directory="locales" />

Ploneを起動します。

$ cd $INSTANCE_ROOT
$ bin/buildout
$ bin/instance fg

表示形式が翻訳されている事が確認できます。

完成です

おつかれさまでした。

Advent Calendar 11日目は、またまた@takanoryさん、よろしくお願いします!