■まず以下から、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 件のコメント:
コメントを投稿