ブログ

2012/06/29 OpenPNE テクニカルガイド更新情報

OpenPNE 技術サポートの坂田です。
2012年6月29日、新たに追加されたテクニカルガイドをご紹介いたします。
本日の更新は OpenPNE2 および OpenPNE3 に関するガイドを2つ追加いたしました。
追加した記事全文を以下にご紹介いたしますので、よろしければご覧ください。

2系と3系のあしあとの表示仕様

以下は、opAshiatoPlugin 1.1.1に対する説明となっています。

あしあとカウント対象画面

以下のページにアクセスすると、あしあとをカウントします。

OpenPNE2

・プロフィール画面 (f_home)
・アルバム詳細画面 (fh_album)
・アルバム画像画面 (fh_album_image_show)
・アルバム一覧画面 (fh_album_list)
・日記画面 (fh_diary)
・日記一覧画面 (fh_diary_list)
・[携帯のみ] アルバム画像一覧画面 (fh_album_image_list)
・[携帯のみ] プロフィール詳細画面 (fh_profile_detail)
・[PCのみ] フレンドリスト画面 (fh_friend_list)

OpenPNE3

・プロフィール画面 (member/[member_id])
・フレンドリスト (friend/list)
・日記画面 (diary/show)
・日記一覧 (diary/listMember)

OpenPNE2系と3系の違い

・3系はアルバム系の画面がカウントされない
・2系はフレンドリストのカウントがPCのみだったが、3系では携帯もカウントされる
・(fh_profile_detailは 3系にありません)

あしあとカウントのタイミング(2系3系共通)

先述のページにアクセスした場合に、カウントされます。
ただし、以下の場合はカウントされません。

・同一メンバーの5分以内のアクセス(3系はapp.ymにて、時間を変更することが可能です)
・ユーザ自身のページ

あしあと表示仕様(2系3系共通)

アクセス日時の降順で、PCは30件、携帯は20件まで表示されます。
同日に複数回アクセスしたメンバーについては、リストに表示されるのは最終アクセスのみとなります。

3系の場合は以下のファイルで表示件数を変更可能です。
最終行の max_ashiato の値が表示件数です。

opAshiatoPlugin/apps/[pc|mobile]_frontend/modules/ashiato/config/module.yml

all:
  .settings:                                                                    
    max_ashiato: 30

OpnePNEの翻訳機構

英語と日本語について

OpenPNEでは国際化(翻訳)機構を用いています。テンプレートファイルには英語(原語)を記述しておき、翻訳ファイルに、英語に紐付く日本語を記述するという仕組みです。
この仕組みにより、多国語対応が可能となっています。

・テンプレート側:

$var = __('hello');

・翻訳ファイル側:

<source>hello</source>
<target>こんにちは</target>

このような記述がソースコードに存在しています。

翻訳ファイルには変数を直接含むことができません。このため、翻訳対象が変数を含みたい場合には、テンプレート側で %activity% のように % で括った文字列を使い、その部分に変数の値を渡すような記述を行います。

翻訳機能を使っていない場合(日本語のみ変更したい場合)

日本語での表示しか想定していないのであれば、次の2つの方法があります。

1. テンプレートだけ書き換える

テンプレート上では以下のような記述があります。

 'title' => __("SNS Member's %activity%", array(
     '%activity%' => $op_term['activity']->titleize()->pluralize()
 )),

文言が日本語固定でよいのであれば、次のように書き換えます。

 'title' => 'みんなの'.$op_term['activity']->titleize()->pluralize(),

書き換えた後、ファイルを保存すれば変更が適用されます。
「アクティビティ」という文言は管理画面から名称変更が可能なため、テンプレート上では名称を変数()から参照しています。
$op_term['activity']→titleize()→pluralize() の部分

2. 翻訳ファイルだけ書き換える

翻訳ファイル上では以下のような記述があります。

 <trans-unit id="">
   <source>SNS Member's %activity%</source>
   <target>SNSメンバーの%activity%</target>
 </trans-unit>

日本語の部分を書き換えます。

 <trans-unit id="">
   <source>SNS Member's %activity%</source>
   <target>みんなの%activity%</target>
 </trans-unit>

書き換えた後、ファイルを保存し、次のコマンドを実行すれば変更が適用されます。

$ ./symfony cc

翻訳ファイルや設定ファイルなどはキャッシュ機構が働いているため、内容を書き換えた後はキャッシュクリア (symfony cc) をしないと反映されません。

英語と日本語を両方変更したい場合

テンプレートと翻訳ファイルの以下の部分を書き換えます。 以下は、2012/06/27現在のOpenPNE3.6.4および3.8.0に対する説明です。
テンプレートと翻訳ファイルの以下の部分を書き換えます。
・テンプレートファイル

"SNS Member's %activity%" 

・翻訳ファイル

<source>SNS Member's %activity%</source>
<target>みんなの%activity%</target>

書き換えた後、ファイルを保存し、キャッシュクリアを行います。

$ ./symfony cc

以上で適用されます。

これらのテーブルに、下記のINSERTクエリを実行していきます。
OpenPNE3.6を前提とした説明です。

テンプレートと翻訳ファイルの箇所

左端の数値は行数を示しています。 場合によっては、お手元のファイルと行数が若干異なっているかもしれません。

1. apps/pc_frontend/i18n/messages.ja.xml

1290- <trans-unit id="">
1291-   <source>SNS Member's %activity%</source>
1292-   <target>SNSメンバーの%activity%</target>
1293- </trans-unit>

2. apps/pc_frontend/modules/member/templates/showAllMemberActivitySuccess.php

8- <?php $params = array(
9-   'title' => __("SNS' Members %activity%", array(
10-  '%activity%' => $op_term['activity']->titleize()->pluralize()
11- )),

3. apps/pc_frontend/modules/member/templates/_allMemberActivityBox.php

5-   'title' => __("SNS Member's %activity%", array(
6-     '%activity%' => $op_term['activity']->titleize()->pluralize()
7-   )),

4. apps/mobile_frontend/i18n/messages.ja.xml

1190- <trans-unit id="">
1191-   <source>SNS Member's %activity%</source>
1192-   <target>SNSメンバーの%activity%</target>
1193- </trans-unit>

5. apps/mobile_frontend/modules/member/templates/showAllMemberActivitySuccess.php

1- <?php op_mobile_page_title(__("SNS Member's %activity%", array(
2-   '%activity%' => $op_term['activity']->pluralize()->titleize(),
3- ))) ?'$gt;

6. apps/mobile_frontend/modules/member/templates/_allMemberActivityBox.php

5-   'title' =$gt; __("SNS Member's %activity%", array(
6-     '%activity%' =$gt; $op_term['activity']-$gt;titleize()-$gt;pluralize()
7-   )),

今回新たに追加した記事は、以上です。
これからも随時テクニカルガイドの更新を行い、更新情報をブログでお知らせしていく予定です。