-オープンソースのSNSエンジン OpenPNEプロジェクト-

OpenPNE 3.6 の新機能について

10 / 07 金曜日 2011

OpenPNE 開発チームの今村です。

2010/3/13にOpenPNE 3.5.0 がリリースされてから約1年8ヶ月という長い道のりを経て、ついにOpenPNE 3.6.0 をリリースすることが出来ました。

OpenPNE 3.6.0 では非常に多くのバグフィックス、新機能追加、チューニングが施されています。
チケット数にすると約300チケットもの対応をし、紹介する新機能も非常に多くなっています。

非常に長いエントリになっていますので、時間ねーぜ!という方は、下記の見出しを参考に気になるところから御覧ください(^_^;)

ユーザー向け新機能・改良点
新機能では「部分SSL機能」や「インストール時にDBを造り直さないオプション」などが追加され、パフォーマンス面では、より高速化をめざし「opNonCountQueryPagerの利用」や「OpenPNE.ymlの結果をキャッシュする」といった改善が行なわれています。
バンドルプラグイン
opIntroFriendPlugin、opRankingPlugin、opFavoritePlugin が追加されました。
開発者向けの新機能・改良点
認証周りの仕様変更や、プラグインの依存性をサポートするようになりました。

3.6.0リリースにあたって、全ての機能の動作を確認する全機能テストも行なわれました。アクション一覧を参考に正常動作の確認がおこなわれ、新機能についても問題のないことを確認しました。

ユーザー向け新機能・改良点

部分SSL機能の追加


OpenPNEはpc_frontend、mobile_frontend、pc_backendといったアプリケーション、member/login や member/config といった数多くのアクションがあります。
部分SSL機能では、アプリケーションごとやアクションごとにSSLを使用するように出来ます。
設定方法は、config/OpenPNE.yml の103行目あたりから変更できます。
基本的には use_ssl を true にし、ssl_base_url を適宜変更することにより利用できます。
SSLに追加したいアプリケーションがある場合は、ssl_required_applications に追加をしてください。
SSLに追加したいアクションがある場合は、ssl_required_actions のそれぞれのアプリケーションに追加をしてください。

インストール時にDBを造り直さないオプションの追加

インストールタスク実行時に「–non-recreate-db」オプションを付けることによりDBを作り直さずにインストールすることが出来ます。
既存のDBを利用してOpenPNEをインストールしたい場合に有用な機能です。
OpenPNEと同名のテーブル名が存在するなどの場合に他のシステムのテーブルを予期せず削除してしまったりなどの危険を避けるため、OpenPNE.yml の設定で OpenPNE が使用するテーブルにプレフィックスを付けておく必要があります。
OpenPNE3_Setup_Guide.txt にも説明がありますのでインストール時にご確認ください。

OpenPNE.yml でセッション持続時間を設定

OpenPNE 3.6.0 ではセッションの有効期限を設定できるとようになりました。
セッションがすぐ切れてしまう!と感じている方はこの設定を見なおしてみてください。
OpenPNE.ymlにて設定をします。

モバイル用の自動リンク機能の追加


OpenPNE 3 はこれまでセキュリティ上の観点から、mobile版にてSNS内に外部サイトへのリンクを貼ってもリンクにはなりませんでした。
モバイル用の自動リンク機能が追加されたことにより、SNS内に貼られたURLから外部サイトにアクセスできるようになりました。
この機能を利用するためには、OpenPNE.ymlにて設定をします。
URLの他にメールアドレス、電話番号もリンク化することが出来ます。

外部サイトへのリンクをクリックすると、クッションページに遷移します。クッションページより、直接リンク、メールでURLを送る、Google Mobile Proxy(デフォルト)を利用する のいずれかを選択し目的のページにアクセスすることができます。

docomo と au では フルブラウザでアクセスする方法も選択できます。

次回から自動的にログイン機能の追加


ブラウザを閉じても、再度アクセスした際にログイン状態が維持されるという機能です。
多くのWebアプリケーションに付いている機能ですのでもうおなじみかとおもいます。

OpenPNE 3.5.3 でおこなった「かんたんログイン」の変更について

この件についてはこちらのエントリを読んでもらうのが良いと思いますので説明は割愛します。
→ OpenPNE 3.5.3 でおこなった「かんたんログイン」の変更について

バンドルプラグイン

OpenPNE 3.6.0 追加されたバンドルプラグイン

「opIntroFriendPlugin」「opRankingPlugin」「opFavoritePlugin」の3つがバンドルプラグインとして追加されました。
このプラグインにより、フレンドの紹介文の作成、ランキング機能の利用、お気に入り機能の利用、が可能になりました。

追加機能:アクティビティ更新設定

「opCommunityTopicPlugin」と「opDiaryPlugin」では、アクティビティ更新設定が追加され、トピックや日記が投稿された際にアクティビティに投稿を知らせる表示がされるようになりました。
管理画面の各プラグインの設定ページより設定できます。

開発者向けの新機能・改良点

アクティビティ入力フォームのデフォルト値をリクエストパラメータから渡せるように

http://redmine.openpne.jp/issues/1201
アクティビティ入力フォームが付属するガジェットを表示しているページにアクセスする際に、 body パラメータの値としてアクティビティ入力フォームにあらかじめ設定させておきたいテキストを設定しておくと、その値がアクティビティ入力フォームにあらかじめ入力された状態で表示されるようになりました。

コア側の web/image に存在している画像 (no_image.gif など) をスキンプラグインから変更できるように


http://redmine.openpne.jp/issues/1116
この目的のためにヘルパー関数 op_image_tag_sf_image(), op_image_tag(), op_image_path() が追加されました。この関数はまず有効なスキンプラグインのなかからその画像を探し、見つかればその画像、見つからない場合にコアに存在する画像に関するパス名などの情報を返します。
スキンプラグインから変更されることが期待される種類の画像を image_tag_sf_image(), image_tag(), image_path() によって表示しようとしている箇所は、これらの新しく追加されたヘルパー関数に置き換える必要があります。

(実験的な機能) 画像ストレージを変更できるように

http://redmine.openpne.jp/issues/1087
OpenPNE 3 はデフォルトではデータベースに画像バイナリを保存しますが、他のストレージにも保存できるようにしました。
代替の画像ストレージとして、ファイルシステムへの保存をサポートしました (sfImageStorageFilesystem)。
画像ストレージはプラグインから追加することができます。実装例はこちらです。(Amazon S3 を画像ストレージとして使えるようにするプラグイン)

認証プラグインにキャプションをつけられるように

http://redmine.openpne.jp/issues/1010
いままで、携帯版のログインフォームには内部的な認証モード名が表示されていましたが、各認証プラグインでユーザフレンドリーな認証名を auth_mode_caption から設定できるようにし、その値を携帯版のログインフォームに表示できるようにしました。
実装例はこちらです。

認証プラグイン用の API の変更

http://redmine.openpne.jp/issues/1009
http://redmine.openpne.jp/issues/960
招待機能が opAuthMailAddressPlugin に依存してしまっていた問題を発端として、「登録フローの変更」および「登録処理に使用していたクレデンシャルの廃止」をおこないました。
この変更以前の OpenPNE 3 で登録処理を備えた認証プラグインを作るのは困難でしたが、もしそのようなプラグインが存在するのであればこの変更の影響を受けますのでご注意ください。
変更の詳細はこちらです。

Doctrine のイベントが symfony のイベントとして通知されるように

http://redmine.openpne.jp/issues/933
Docrineはsymfonyと同様、データベースとの接続開始時、レコードの追加時や削除時、DQLの実行時などのタイミングでイベントを発行します。しかし、それらのイベントは Doctrine_Connection::addListener() メソッドなどを利用し、 Doctrine 側での設定をおこなわなければ利用することができませんでした。
この変更によって Doctrine のイベントが opDoctrineEventNotifier によって op_doctrine.post.save.Member といったイベントが symfony のイベントとして通知されるようになりました。

プラグインの依存性のサポート

http://redmine.openpne.jp/issues/557
プラグインが特定のバージョンの OpenPNE やプラグインとの依存関係を持てるようになりました。
詳細はこちらです。

お知らせメール件名を管理画面から変更可能に

http://redmine.openpne.jp/issues/471
お知らせメール件名を管理画面から変更可能にしました。従来通り変更不可にしたい場合は mail_template.yml で title_configurable を false に設定してください。
いままで、お知らせメールに使うテンプレートを追加するためには PHP ファイルのテンプレートと mail_template.yml の両方を用意する必要がありましたが、この変更以降、 mail_template.yml への記述の追加のみおこなうだけでよくなりました。

コメント:4

桃原 11-10-11 (火) 16:29

画面の配色や、左上のロゴの差し替えなどは管理画面のどこから変更できますか?

下記ページとデザインが変わってしまって、探せません。
「スキン画像変更」などもできません。
http://www.tejimaya.com/admin_manual/manual05/#5-1

kiwa 11-10-12 (水) 19:03

桃原さん>

桃原さんがご覧になっているマニュアルは、 OpenPNE 2 のものですね。
OpenPNE 3 と OpenPNE 2 は機能・設定方法などがかなり異なるので、
そのページは参考にならないかもしれないです。
(どのページを見ればいいか・・・というのは、私からはいい提案ができないです。すみません)

デフォルトのスキンをご利用の場合、画面の配色・ロゴの差し替えをおこなう機能はありません。
管理機能の カスタムCSS からCSSを書き換えて配色を変更したり、
plugins/opSkinBasicPlugin/images/ にある画像を直接差し替えるような変更方法になると思います。

OpenPNE 2 風のスキン(ご覧になっているマニュアルで表示されるようなデザインですね。)でいいという場合、そっちのスキンに変更すれば管理画面から配色・画像を差し替えることができます。

スキンの変更は「スキンプラグイン設定」から行えます。

【スキンプラグイン設定 アクセス方法】
管理画面 > プラグイン設定 > スキンプラグイン設定

スキンプラグイン設定にアクセスすると、スキンの選択フォームが表示されます。
ここで「有効/無効」の選択を『opSkinClassicPlugin』を選択するようにし、「設定変更」ボタンを押します。
これで、OpenPNE 2 風のスキンに切り替わります。

このスキンに切り替えると、(上の説明でアクセスした)スキンプラグイン設定画面の
『opSkinClassicPlugin』の表示に「設定」というリンクが表示されるようになります。
この「設定」のリンクをたどると、配色やスキン画像を変更する画面にアクセスできます。

桃原 11-10-14 (金) 16:59

>kiwaさん
ありがとうございます。
その手順通りに試してみます。

中谷 11-11-05 (土) 11:07

OpenPNE3.6 をインストールさせて戴きました。上記コメントの件も理解できました。
自力で、画像差し替えを行いたいのですが、plugins/opSkinBasicPlugin/images/ にある各画像が画面上のどこに適用されているかを記した、画面配置図のような開発資料を公開して頂けないでしょうか?
その他、画面のカスタマイズに関する開発資料を公開して頂けないでしょうか?

ページの先頭に戻る