ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 11 years ago

#3316 closed enhancement (invalid)

SNS内名称設定機能の追加

Reported by: kiwa Owned by: ebihara
Priority: minor Milestone: OpenPNE3.1.3
Component: core Version: 3.1.x
Keywords: 3系未実装項目 Cc:

Description (last modified by ebihara)

■概要

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

Change History (20)

comment:1 Changed 12 years ago by ebihara

Milestone: OpenPNE3.0beta2OpenPNE3.0beta3

comment:2 Changed 12 years ago by kiwa

Component: 指定しないcore

comment:3 Changed 12 years ago by kiwa

Version: 3.0.x

comment:4 Changed 12 years ago by nagasawa

Owner: changed from nobody to nagasawa
Status: newassigned

comment:5 Changed 12 years ago by ogawa

Milestone: OpenPNE3.0beta4OpenPNE3.0.1

comment:6 Changed 12 years ago by ebihara

Milestone: OpenPNE3.0.1OpenPNE3.0.2

comment:7 Changed 12 years ago by ebihara

Keywords: 3系未実装項目 added

comment:8 Changed 12 years ago by ebihara

Milestone: OpenPNE3.0.2

comment:9 Changed 12 years ago by ebihara

Owner: changed from nagasawa to nobody
Status: assignednew

一旦未着手の状態にします。

comment:10 Changed 12 years ago by ebihara

Milestone: OpenPNE3.0.3

comment:11 Changed 12 years ago by ebihara

Milestone: OpenPNE3.0.3OpenPNE3.0.4

comment:12 Changed 12 years ago by ebihara

Milestone: OpenPNE3.0.4OpenPNE3.0.5

comment:13 Changed 11 years ago by nagasawa

Owner: changed from nobody to nagasawa
Status: newassigned

やります

comment:14 Changed 11 years ago by nagasawa

Version: 3.0.x3.0.x & 3.1.x

comment:15 Changed 11 years ago by nagasawa

Version: 3.0.x & 3.1.x3.0.x

comment:16 Changed 11 years ago by ShogoKawahara

Milestone: OpenPNE3.0.5OpenPNE3.0.6
Version: 3.0.x3.0.x & 3.1.x

comment:17 Changed 11 years ago by ebihara

Milestone: OpenPNE3.0.6OpenPNE3.1.3
Version: 3.0.x & 3.1.x3.1.x

comment:18 Changed 11 years ago by ebihara

Description: modified (diff)

comment:19 Changed 11 years ago by ebihara

Owner: changed from nagasawa to ebihara
Status: assignednew

海老原が引き受けます。

comment:20 Changed 11 years ago by ebihara

Resolution: invalid
Status: newclosed
Note: See TracTickets for help on using tickets.