Gmail カレンダー ドキュメント リーダー ウェブ その他 »
最近アクセスしたグループ | ヘルプ | ログイン
Google グループ
[OpenPNE3] プラグインを承認待ち一覧機能に対応させる
現在、このグループで最初に表示するトピックが多すぎます。このトピックを最初に表示するには、別のトピックからこのオプションを削除してください。
リクエストの処理中にエラーが発生しました。 もう一度やり直してください。
フラッグ
  メッセージ 1 件 - すべて折りたたんで表示  -  すべてをに翻訳 翻訳(すべてのオリジナルを表示)
投稿先のグループは Usenet グループです。このグループにメッセージを投稿すると、インターネット上のユーザーがメール アドレスを閲覧できるようになります。
返信メッセージが送信されていません。
投稿しました。
 
差出人:
宛先:
Cc:
フォローアップ先:
Cc を追加 | フォローアップ先を追加 | 件名を編集
件名:
確認:
確認のため、下の画像に表示されている文字か、アクセシビリティ アイコンをクリックすると聞こえる数字を入力してください。 聞こえた番号を入力します
 
Kousuke Ebihara  
プロフィールを表示  
 詳細オプション 2009年11月16日, 午後4:13
差出人: Kousuke Ebihara <ebih...@tejimaya.com>
日付: Mon, 16 Nov 2009 16:13:32 +0900
ローカル: 2009年11月16日(月) 午後4:13
件名: [openpne-dev:563] [OpenPNE3] プラグインを承認待ち一覧機能に対応させる
OpenPNE 開発チームの海老原です。

11 月 1 日にリリースした OpenPNE 3.1.4 で追加した承認待ち一覧機能の技術的な詳細と、プラグインからの対応方法についてお知らせします。

承認待ち一覧機能について
========================

この機能では、 confirmation モジュールの list アクションから「フレンドリンク承認待ち」「コミュニティ参加申請待ち」といったリクエストの許可、拒否をおこなうことができます。

承認待ち一覧機能の詳細
======================

承認待ち一覧表示
----------------

list アクションは category というパラメータを受け付け、 op_confirmation.list というイベントを発行します。
op_confirmation.list イベントにより、あらかじめディスパッチされたメソッドが実行されます。
実行されたメソッドが承認待ち一覧表示用の配列を返り値として返した場合、その配列をベースに承認待ち一覧ページを組み立てます。

op_confirmation.list イベントを発行したのち、今度は op_confirmation.list_filter イベントを発行します。これは op_confirmation.list イベントで得られた配列をフィルタリングするためのもので、たとえば「『フレンドリンク承認待ち』リクエストに対応するメッセージを配列に追加する」といった用 途で利用できます。

承認処理
--------

list アクションで表示される、各承認待ちリクエストの「承認」「拒否」のボタンを押下すると confirmation モジュールの decision アクションが実行されます。

decision アクションは category パラメータ、 id パラメータ、 is_accepted パラメータを受け付けます。
category と id が承認の対象となるものを特定するためのパラメータで、 is_accepted が承認されたかどうかを表すパラメータです。

decision アクションは op_confirmation.decision イベントを発行します。ディスパッチされているいずれかのメソッドがパラメータを元に承認処理をおこないます。実行されたメソッドの返り値は、 sfUser::setFlash() メソッドの引数にセットされ、処理結果を通知するメッセージとして画面上に表示されます。

承認待ち一覧機能の拡張
======================

承認待ち一覧表示
----------------

op_confirmation.list に対応する
+++++++++++++++++++++++++++++++

このイベントによりリストを生成するためのメソッドの第一引数は sfEvent のインスタンスになります。
現在ページを閲覧しているメンバーのインスタンスは、 sfEvent のインスタンスに member というパラメータのオプションとして格納されています。メソッドの第一引数が $event だった場合、 $event['member'] という風にしてアクセスすることができます。
また、承認の種類(list アクションで category パラメータとして指定されるもの)は $event['category'] という形でアクセスできます。

list アクションが期待する配列の構造は以下のようになります::

  array(
    0 => array(  // 0 番目の承認待ちリクエスト
      'id' => /* このリクエストを特定するための id */,
      'image' => array( // 画像の情報を格納する配列
        'url' => /* 画像のファイル名、 URL */,
        'link' => /* 画像に貼られるリンクの URL (url_for() に渡すことのできる形式) */,
      ),
      'list' => array(  // このリクエストのテキスト情報のリストを格納する配列
        '%nickname%' => array(  // 1 行目のテキスト情報 (キー名はそのまま項目名として表示され、翻訳対象になる)
          'text' => /* 表示されるテキスト */,
          'link' => /* テキストに貼られるリンクの URL (url_for() に渡すことのできる形式) (省略可) */,
        ),
        'Message' => array(  // 2 行目のテキスト情報
          'text' => /* 表示されるテキスト */,
        ),
      ),
    ),
    1 => array(  // 1 番目の承認待ちリクエスト
      'id' => /* このリクエストを特定するための id */,
      'image' => array( // 画像の情報を格納する配列
        'url' => /* 画像のファイル名、 URL */,
        'link' => /* 画像に貼られるリンクの URL (url_for() に渡すことのできる形式) */,
      ),
      'list' => array(  // このリクエストのテキスト情報のリストを格納する配列
        '%nickname%' => array(  // 1 行目のテキスト情報 (キー名はそのまま項目名として表示され、翻訳対象になる)
          'text' => /* 表示されるテキスト */,
          'link' => /* テキストに貼られるリンクの URL (url_for() に渡すことのできる形式) (省略可) */,
        ),
        'Message' => array(  // 2 行目のテキスト情報
          'text' => /* 表示されるテキスト */,
        ),
      ),
    ),
  );

op_confirmation.list_filter に対応する
++++++++++++++++++++++++++++++++++++++

このイベントによりリストをフィルタリングするためのメソッドは第一引数に sfEvent のインスタンスを、第二引数にフィルタリングの対象となる配列を受け付けます。

第二引数の配列は op_confirmation.list で生成された配列なので、たとえば 0 番目のリクエストのテキスト情報を追加したい場合は、以下のようにすることができます(第二引数が $list の場合)::

  $list[0]['list']['AdditionalMessage'] = array('text' => 'message');

このメソッドの返り値は必ずフィルタリング後の配列にしてください。

承認処理
--------

op_confirmation.decision に対応する
+++++++++++++++++++++++++++++++++++

このイベントにより承認待ちリクエストを処理するためのメソッドの第一引数は sfEvent のインスタンスになります。

このインスタンスは、 id というパラメータに対象の ID を、 category というパラメータに承認の種類を、 member というパラメータに現在ページを閲覧しているメンバーのインスタンスを、 is_accepted というパラメータに承認するかどうかの bool 値を持っています。

これらの値を利用して適切に承認処理をおこなってください。

このメソッドの返り値は flash のテキストとして扱われるので、処理結果によって適切な案内文を文字列で返却してください。
--
海老原昂輔 (Kousuke Ebihara)
ebih...@tejimaya.com
http://sns.openpne.jp/?a=page_f_home&target_c_member_id=807
OpenPNEプロジェクト http://www.openpne.jp
株式会社手嶋屋 http://tejimaya.com


    転送  
メッセージを投稿するには、ログインする必要があります。
メッセージを投稿するには、まず最初にこのグループに参加する必要があります。
投稿する前に、[設定] ページでニックネームを更新してください。
投稿に必要な権限がありません。
メッセージの終わり
« ディスカッションに戻る « 新しいトピック     過去のトピック »

グループを作成 - Google グループ - Google ホーム - 利用規約 - プライバシー ポリシー
©2010 Google