2009年7月 4日

【OpenPNE】強制マイフレンド機能実装方法

正確に言うと僕が自力でやったわけではないんですが、
先日OpenPNEでSNSを立ち上げる機会があり、その折に
後輩と一緒に強制マイフレンド機能を実装したので、その方法を載せておきます。
(いそっちマジありがとう!)

どういう機能か一言で言うと、
「ユーザ登録したと同時に、自動的に全てのユーザとマイフレンドになる」
という機能です。
OpenPNEで社内SNSを立ち上げたりする際には、非常に便利な機能だと思います。

いじくるのは以下の二つのファイルです。
/webapp/lib/db/friend.php (フレンド操作系の関数が記載されたファイル)
/webapp/module/pc/do/h_regist_prof.php (入会時の処理が記載されたファイル)

【1】freind.phpの適当な箇所に、以下の関数を追加します。
名前は仮にallmyfriendsにしていますが、何でも大丈夫です。

[friend.php]
function allmyfrineds($c_member_id)
{
    //メンバーの数だけループし、フレンド申請、登録を行う
    foreach(db_member_c_member_id_list4null() as $value){
    if(intval($value) != intval($c_member_id)) {   
          db_friend_insert_c_friend(intval($c_member_id), intval($value));
    }
    }
}


【2】h_regist_prof.php内の94行目付近
  (unset($_SESSION['prof']); の上辺り)に以下の関数呼び出しを記述

[h_regist_prof.php]
allmyfrineds($u);

これだけで一応実装は完了です。

大分ざっくりとした処理なので、例外とかあまり考えていません。
同じタイミングで入会されるとデータベースの整合性が保てないかも...。

何かの参考にしていただけたら幸いです。

トラックバックURL

このエントリーのトラックバックURL:
http://hau.sakura.ne.jp/mt/mt-tb.cgi/142

コメントする