プロジェクト

全般

プロフィール

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

SNS内名称設定機能の追加

Kousuke Ebihara14年以上前に追加. 14年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2009-09-24
期日:
進捗率:

100%


説明

■概要

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() : 冠詞を付ける

関連するチケット

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

履歴

#1 Kousuke Ebihara14年以上前に更新

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

#2 Kousuke Ebihara14年以上前に更新

  • ステータスAccepted(着手) から Fixed(完了) に変更
  • 進捗率0 から 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)

他の形式にエクスポート: Atom PDF