■まず以下から、0.9.0をダウンロード(テストバージョンじゃなくても大丈夫でした)。
http://blog.justoneplanet.info/2008/09/06/openpneで全員マイフレンドになるphpを書いてみよう/
■ダウンロードしたものを解凍。そして、inc/function.phpの46行目に「$c_member_id = trim($c_member_id); 」の部分を追加。(このtrimを入れないと、重複登録されます。この部分を忘れて、慌てました(^^;)
- $c_member_id = mysql_real_escape_string($_GET['c_member_id']);$c_member_id = trim($c_member_id);
■そして、modules/にpc/というディレクトリをつくり、アップロード。
■また、
webapp/modules/pc/templates/new_templates/my_friend_list.tpl
ノ127行目あたりに、
- <a href="/modules/pc/add_all_friends/set.php?c_member_id= ({$c_member.c_member_id})">みんなフレンド!</a>
■後は、ログインした人ごとに、「みんなフレンド」というリンクをクリックしてもらえば、全員がマイフレンドに登録されます。
社内SNSなどで、全員フレンド状態のSNSを作る際には有益です。
メモでした。
==========================
重要な追記です。
(以下の追記は、いつもお世話になっている、Usagi Project concrete5日本チームリーダーのKatzさんからご指摘いただきました。この場を借りてお礼申し上げます。)
MyNETSは、データベースにprefixを設定できます。
しかし、上記の大本のソースは、元々OpenPNE用でしたので、MyNETS1系prefix対応の部分がありませんでした。
もしMyNETS1系でprefix設定されている方は、以下のソースのように、" . MYNETS_PREFIX_NAME . "を加える修正が必要となります。
修正箇所は四か所です。
ソースにおけるだいたいの行番号は、16行、30行、63行、86行です。
以上、よろしくお願いいたします。
<?php /** * Mitsuaki Ishimoto * justoneplanet.info * 2009-04-07 * ver 0.9.0 * functions.php /*==========================================================================================*/ /** * get all user list * @return (array) all users list */ function getAllUserList(){ global $dbh; $user_id_list = array(); $sql = "SELECT DISTINCT `c_member_id` FROM `" . MYNETS_PREFIX_NAME . "c_member`"; $result = mysql_query($sql, $dbh); while($row = mysql_fetch_array($result)){ $user_id_list[] = $row['c_member_id']; } return $user_id_list; } /** * get all combinations * @return (array) all users combinations */ function getAllCombinations(){ global $dbh; $combination_list = array(); $sql = "SELECT `c_member_id_from`,`c_member_id_to` FROM `" . MYNETS_PREFIX_NAME . "c_friend`"; $result = mysql_query($sql, $dbh); while($row = mysql_fetch_array($result)){ $combination_list[] = "'$row[c_member_id_from]','$row[c_member_id_to]'"; } return $combination_list; } /** * set friends * @return (array) result status */ function setFriends($user_id_list, $combination_list){ global $dbh; $date = date("Y-m-d H:i:s"); $msg = MSG_BECAME; if(isset($_GET['c_member_id']) && in_array($_GET['c_member_id'], $user_id_list)){ $c_member_id = mysql_real_escape_string($_GET['c_member_id']); $c_member_id = trim($c_member_id); $value_list = ''; for($i=0; $i<count($user_id_list); $i++){ if($c_member_id != $user_id_list[$i]){ $register_list = "'$c_member_id','$user_id_list[$i]'"; if(!in_array($register_list, $combination_list)){ $value_list .= ",('',$register_list,'$date','','')"; } $register_list = "'$user_id_list[$i]','$c_member_id'"; if(!in_array($register_list, $combination_list)){ $value_list .= ",('',$register_list,'$date','','')"; } } } if($value_list != ''){ $value_list = substr($value_list, 1); $sql = "INSERT INTO " . MYNETS_PREFIX_NAME . "c_friend (`c_friend_id`,`c_member_id_from`,`c_member_id_to`,`r_datetime`,`intro`,`r_datetime_intro`) VALUES $value_list"; $result = mysql_query($sql, $dbh); } else{ $msg = MSG_ALREADY; } } else{ $register_list = array(); for($s=0; $s<count($user_id_list); $s++){ for($t=0; $t<count($user_id_list); $t++){ if($s != $t){ $register_list[] = "'$user_id_list[$s]','$user_id_list[$t]'"; } } } for($i=0; $i<count($register_list); $i++){ if(!in_array($register_list[$i], $combination_list)){ $value_list .= ",('',$register_list[$i],'$date','','')"; } } if($value_list != ''){ $value_list = substr($value_list, 1); $sql = "INSERT INTO" . MYNETS_PREFIX_NAME . "c_friend (`c_friend_id`,`c_member_id_from`,`c_member_id_to`,`r_datetime`,`intro`,`r_datetime_intro`) VALUES $value_list"; $result = mysql_query($sql, $dbh); } else{ $msg = MSG_ALREADY; } } return $msg; } ?>
0 件のコメント:
コメントを投稿