Project

General

Profile

Enhancement(機能追加・改善) #6

SNS内名称設定機能の追加

Added by Kousuke Ebihara about 14 years ago. Updated about 14 years ago.

Status:
Fixed(完了)
Priority:
Normal(通常)
Target version:
Start date:
2009-09-24
Due date:
% Done:

100%


Description

■概要

OpenPNE2にあるSNS内名称設定機能をOpenPNE3に追加する。

■仕様

対応する文言

OpenPNE3 としては少なくとも以下のような文言を変更できるようにする。

OpenPNE2 と同様、アプリケーション毎に設定を分けるようにする。

  • フレンド名称
    • フレンド(PC)
    • マイフレンド(PC)
    • フレンド(携帯)
    • マイフレンド(携帯)
  • コミュニティ名称
    • コミュニティ(PC)
    • コミュニティ(携帯)
  • ニックネーム名称
    • ニックネーム(PC)
    • ニックネーム(携帯)

対応する言語

現時点では日本語と英語のみを想定する。

実装内容

テンプレートから以下のように設定値を利用できるようにする。

<?php echo __('%community% are created successfully.', array(
  '%community%' => $op_term['community']->fronting()->pluralize(),
));

// result: Communities are created successfully.
?>

これを実現するための実装方法を以下に示す。

  • 以下のようなモデルを作成する。(一部簡略化している)
          SnsTerm:
            actAs:
              I18n:
                fields: [value]
                length: 5
            columns:
              name: { type: string }
              value: { type: string }
  • モデルのテーブルクラスに ArrayAccess インターフェースを実装し、配列のエントリとして、指定されたキーと同じ name カラムの値を持つレコードのインスタンスを返す
  • モデルのレコードクラスには __toString() メソッドを定義し、国際化された value カラムの値を返すようにする
  • モデルのテーブルクラスはテンプレートから $op_term という変数で参照できるようにする
  • 設定ファイルで対応する名称の追加がプラグインからおこなえるようにする
  • モデルのレコードクラスには、以下のような有用なメソッドを用意する。これらのメソッドはメソッドチェーンできるようにする
    • fronting() : 文頭にくる語として適切な形に変換する(英語の場合、最初の文字を大文字にする)
    • titleize() : 表題として用いる語として適切な形に変換する(英語の場合、すべての単語の最初の文字を大文字にする)
    • pluralize() : 語を複数形にする
    • withArticle() : 冠詞を付ける

Related issues

Related to opDiaryPlugin - Enhancement(機能追加・改善) #98: SNS内名称設定機能への対応 Fixed(完了) 2009-10-19
Related to opDiaryPlugin - Enhancement(機能追加・改善) #111: SNS内名称設定機能で「Diary (日記)」という名称を設定できるようにする New(新規) 2009-10-20

History

#1 Updated by Kousuke Ebihara about 14 years ago

以前は http://trac.openpne.jp/ticket/3316 で進行していました。

#2 Updated by Kousuke Ebihara about 14 years ago

  • Status changed from Accepted(着手) to Fixed(完了)
  • % Done changed from 0 to 100

コミット時にこのチケットとの紐付けを忘れましたが、以下でコミットしました。

b4f0e3b0 (Merge branch 'ebihara_sns_term')
32cf69c7 (changed the mobile_frontend for replacing terms)
8374d6ea (changed the pc_frontend for replacing terms)
ac37e104 (changed common part for replacing terms)
16f75d42 (added ability to automatically replacing terms in form label)
6f5b0d4b (added ability to automatically replacing terms)
5ecb7af0 (added ability to replace terms)

Also available in: Atom PDF