Exemplo n.º 1
0
function dispatch()
{
	global $xoopsUser, $xoopsUserIsAdmin;
	
	if($this->isGuest() || !$this->validateToken('MEMBER_EDIT')){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	$own_uid = $xoopsUser->getVar('uid');
	
	$cid = $this->getIntRequest('cid');
	$uid = $this->getIntRequest('uid');
	if(!$cid || !$uid || $uid == $own_uid){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// コミュニティの取得
	$perm = XSNS_AUTH_XOOPS_ADMIN | XSNS_AUTH_ADMIN;
	$commu_handler =& XsnsCommunityHandler::getInstance();
	$community =& $commu_handler->get($cid);
	if(!is_object($community) || !$community->checkAuthority($perm)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// 対象コミュニティメンバーの取得
	$c_member_handler =& XsnsMemberHandler::getInstance();
	$c_member =& $c_member_handler->getOne($cid, $uid);
	if(!is_object($c_member)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	$c_member_info =& $c_member->getInfo();
	
	// コミュニティメンバーの強制退会
	if($c_member_handler->delete($c_member)){
		
		// 既存の依頼を削除
		$confirm_handler =& XsnsConfirmHandler::getInstance();
		$criteria = new CriteriaCompo(new Criteria('c_commu_id', $cid));
		$criteria->add(new Criteria('uid_from', $own_uid));
		$criteria->add(new Criteria('uid_to', $uid));
		$criteria->add(new Criteria('mode', '(1,2)', 'IN'));	// 管理者交代 or 副管理者就任
		$confirm_handler->deleteObjects($criteria);
		
		// XOOPS管理者による特別な処理
		if($xoopsUserIsAdmin){
			// 対象が管理者の場合、自分が管理者に代わる
			if($uid == $community->getVar('uid_admin')){
				$community->setVar('uid_admin', $own_uid);
			}
			// 対象が副管理者の場合、副管理者は無しにする
			elseif($uid == $community->getVar('uid_sub_admin')){
				$community->setVar('uid_sub_admin', 0);
			}
			$commu_handler->insert($community);
		}
		
		redirect_header(XSNS_URL_COMMU.'?cid='.$cid, 2, sprintf(_MD_XSNS_MEMBER_LEAVE_OK, $c_member_info['name']));
	}
	redirect_header(XSNS_URL_COMMU, 2, _MD_XSNS_MEMBER_LEAVE_NG);
}
function dispatch()
{
	global $xoopsUser;
	
	$confirm_id = $this->getIntRequest('confirm_id');
	if($confirm_id < 1){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	if($this->isGuest() || !$this->validateToken('CONFIRM_REJECT_ID'.$confirm_id)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// 依頼情報の取得
	$confirm_handler =& XsnsConfirmHandler::getInstance();
	$confirm =& $confirm_handler->get($confirm_id);
	if(!is_object($confirm)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$cid = $confirm->getVar('c_commu_id');
	$uid_from = $confirm->getVar('uid_from');
	$uid_to = $confirm->getVar('uid_to');
	$mode = $confirm->getVar('mode');
	
	if($uid_to != $xoopsUser->getVar('uid')){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// ユーザーの取得(依頼者が存在しなくても処理を続行)
	$user_handler =& XsnsUserHandler::getInstance();
	$user_to =& $user_handler->get($uid_to);
	if(!is_object($user_to)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	if($mode < 3){
		// コミュニティの取得
		$commu_handler =& XsnsCommunityHandler::getInstance();
		$community =& $commu_handler->get($cid);
		if(!is_object($community) || $community->getAuthority() < XSNS_AUTH_MEMBER){
			redirect_header(XOOPS_URL, 2, _NOPERM);
		}
	}
	
	// 依頼の削除
	if($confirm_handler->delete($confirm)){
		$url = ($confirm_handler->getCount(new Criteria('uid_to', $uid_to)) > 0) ?
			XSNS_URL_MYPAGE.'&'.XSNS_ACTION_ARG.'=confirm' : XSNS_URL_MYPAGE;
		redirect_header($url, 2, sprintf(_MD_XSNS_CONFIRM_REJECT_OK, $user_to->getVar('uname')));
	}
	redirect_header(XSNS_URL_MYPAGE, 2, _MD_XSNS_CONFIRM_REJECT_NG);
}
Exemplo n.º 3
0
function dispatch()
{
	if($this->isGuest() || !$this->validateToken('COMMUNITY_DELETE')){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$cid = $this->getIntRequest('cid');
	if(!isset($cid)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// コミュニティの取得
	$perm = XSNS_AUTH_XOOPS_ADMIN | XSNS_AUTH_ADMIN;
	$commu_handler =& XsnsCommunityHandler::getInstance();
	$community =& $commu_handler->get($cid);
	if(!is_object($community) || !$community->checkAuthority($perm) || $community->getTopicCount() > 0){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$old_name = $community->getVar('name');
	
	if($commu_handler->delete($community)){
		
		$category_handler =& XsnsCategoryHandler::getInstance();
		if($category_handler->updateSelector()){
			
			$criteria = new Criteria('c_commu_id', $cid);
			
			// 所属メンバーデータの削除
			$c_member_handler =& XsnsMemberHandler::getInstance();
			$c_member_handler->deleteObjects($criteria);
			
			// 依頼データの削除
			$confirm_handler =& XsnsConfirmHandler::getInstance();
			$confirm_handler->deleteObjects($criteria);
			
			// アクセスログの削除
			$access_log_handler =& XsnsAccessLogHandler::getInstance();
			$access_log_handler->deleteObjects($criteria);
			
			// 画像の削除
			$image_criteria = new CriteriaCompo(new Criteria('target', 1));
			$image_criteria->add(new Criteria('target_id', $cid));
			$image_handler =& XsnsImageHandler::getInstance();
			$image_handler->deleteObjects($image_criteria);
			
			redirect_header(XSNS_URL_COMMU, 2, sprintf(_MD_XSNS_INDEX_DEL_OK, $old_name));
		}
	}
	redirect_header(XSNS_URL_COMMU, 2, _MD_XSNS_INDEX_DEL_NG);
}
Exemplo n.º 4
0
	function XsnsUser()
	{
		$this->XoopsUser();
		
		$this->ts =& XsnsTextSanitizer::getInstance();
		
		$this->handler = array(
			'community' => XsnsCommunityHandler::getInstance(),
			'member' => XsnsMemberHandler::getInstance(),
			'user' => XsnsUserHandler::getInstance(),
			'friend' => XsnsFriendHandler::getInstance(),
			'confirm' => XsnsConfirmHandler::getInstance(),
			'module_config' => XsnsModuleConfigHandler::getInstance(),
			'intro' => XsnsIntroductionHandler::getInstance(),
		);
	}
Exemplo n.º 5
0
function dispatch()
{
	global $xoopsUser;
	
	if($this->isGuest() || !$this->validateToken('FRIEND_DELETE')){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	$own_uid = $xoopsUser->getVar('uid');
	
	$uid = $this->getIntRequest('uid');
	if(!$uid){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$user_handler =& XsnsUserHandler::getInstance();
	$user =& $user_handler->get($own_uid);
	$friend =& $user_handler->get($uid);
	$friend_name = is_object($friend) ? $friend->getVar('uname') : "";
	
	if(is_object($user) && is_object($friend) && $user->unsetFriend($uid)){
		
		// 削除した旨を送信
		$confirm_handler =& XsnsConfirmHandler::getInstance();
		$new_confirm =& $confirm_handler->create();
		$new_confirm->setVars(array(
			'uid_from' => $own_uid,
			'uid_to' => $uid,
			'mode' => 4,
			'r_datetime' => date('Y-m-d H:i:s'),
		));
		$confirm_handler->insert($new_confirm);
		
		// 互いの紹介文を削除
		$intro_handler =& XsnsIntroductionHandler::getInstance();
		$criteria1 = new CriteriaCompo(new Criteria('uid_to', $own_uid));
		$criteria1->add(new Criteria('uid_from', $uid));
		$criteria2 = new CriteriaCompo(new Criteria('uid_to', $uid));
		$criteria2->add(new Criteria('uid_from', $own_uid));
		$criteria1->add($criteria2, 'OR');
		$intro_handler->deleteObjects($criteria1);
		
		redirect_header(XSNS_URL_MYPAGE, 2, sprintf(_MD_XSNS_FRIEND_DELETE_OK, $friend_name));
	}
	redirect_header(XSNS_URL_MYPAGE, 2, _MD_XSNS_FRIEND_DELETE_NG);
}
Exemplo n.º 6
0
function dispatch()
{
	global $xoopsUser;
	
	if($this->isGuest()){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	$own_uid = $xoopsUser->getVar('uid');
	
	$cid = $this->getIntRequest('cid', XSNS_REQUEST_GET);
	if(!isset($cid)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// コミュニティの取得
	$perm = XSNS_AUTH_NON_MEMBER;
	$commu_handler =& XsnsCommunityHandler::getInstance();
	$community =& $commu_handler->get($cid);
	
	if(!is_object($community) || !$community->checkAuthority($perm)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$public_flag = $community->getVar('public_flag');
	$is_public = true;
	
	if($public_flag > 1){
		$is_public = false;
		
		// 依頼送信済みかどうかの確認
		$uid_admin = $community->getVar('uid_admin');
		$confirm_handler =& XsnsConfirmHandler::getInstance();
		if($confirm_handler->getOne($cid, $own_uid, $uid_admin, 0)){
			redirect_header(XSNS_URL_COMMU.'?cid='.$cid, 2, _MD_XSNS_INDEX_JOIN_REQ_NG_ALREADY);
		}
	}
	
	$commu = array(
		'id' => $cid, 
		'name' => $community->getVar('name'), 
		'is_public' => $is_public,
	);
	$this->context->setAttribute('commu', $commu);
}
Exemplo n.º 7
0
function dispatch()
{
	global $xoopsUser;
	
	if($this->isGuest() || !$this->validateToken('FRIEND_ADD')){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$uid = $this->getIntRequest('uid');
	$own_uid = $xoopsUser->getVar('uid');
	if(!$uid || $uid == $own_uid){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$user_handler =& XsnsUserHandler::getInstance();
	$own_user =& $user_handler->get($own_uid);
	$target_user =& $user_handler->get($uid);
	if(!is_object($own_user) || !is_object($target_user) || $own_user->isFriend($uid)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$message = $this->getTextRequest('message');
	
	$confirm_handler =& XsnsConfirmHandler::getInstance();
	$confirm =& $confirm_handler->getOne(0, $own_uid, $uid, 3);
	if(!is_object($confirm)){
		$confirm =& $confirm_handler->create();
	}
	$confirm->setVars(array(
		'uid_from' => $own_uid,
		'uid_to' => $uid,
		'mode' => 3,
		'r_datetime' => date('Y-m-d H:i:s'),
		'message' => $message,
	));
	
	if($confirm_handler->insert($confirm)){
		redirect_header(XSNS_URL_MYPAGE, 2, 
						sprintf(_MD_XSNS_FRIEND_ADD_OK, $target_user->getVar('uname')));
	}
	redirect_header(XSNS_URL_MYPAGE, 2, _MD_XSNS_FRIEND_ADD_NG);
}
Exemplo n.º 8
0
function dispatch()
{
	global $xoopsUser;
	
	if($this->isGuest()){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$own_uid = $xoopsUser->getVar('uid');
	
	$confirm_handler =& XsnsConfirmHandler::getInstance();
	$user_handler =& XsnsUserHandler::getInstance();
	$commu_handler =& XsnsCommunityHandler::getInstance();
	
	$own_user =& $user_handler->get($own_uid);
	if(!is_object($own_user)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$criteria = new CriteriaCompo(new Criteria('uid_to', $own_uid));
	$criteria->setSort('r_datetime');
	$criteria->setOrder('DESC');
	
	$confirm_obj_list =& $confirm_handler->getObjects($criteria);
	
	$confirm_list_all = array();
	
	if(count($confirm_obj_list) > 0){
		$confirm_format = array(
			0 => array(
				'title' => _MD_XSNS_CONFIRM_JOIN_TITLE,
				'desc' => _MD_XSNS_CONFIRM_JOIN_DESC,
				'show_commu' => true,
				'show_message' => true,
				'accept_only' => false,
				),
			1 => array(
				'title' => _MD_XSNS_CONFIRM_ADMIN_TITLE,
				'desc' => _MD_XSNS_CONFIRM_ADMIN_DESC,
				'show_commu' => true,
				'show_message' => true,
				'accept_only' => false,
				),
			2 => array(
				'title' => _MD_XSNS_CONFIRM_SUB_ADMIN_TITLE,
				'desc' => _MD_XSNS_CONFIRM_SUB_ADMIN_DESC,
				'show_commu' => true,
				'show_message' => true,
				'accept_only' => false,
				),
			3 => array(
				'title' => _MD_XSNS_CONFIRM_FRIEND_TITLE,
				'desc' => _MD_XSNS_CONFIRM_FRIEND_DESC,
				'show_commu' => false,
				'show_message' => true,
				'accept_only' => false,
				),
			4 => array(
				'title' => _MD_XSNS_CONFIRM_FRIEND_DEL_TITLE,
				'desc' => _MD_XSNS_CONFIRM_FRIEND_DEL_DESC,
				'show_commu' => false,
				'show_message' => false,
				'accept_only' => true,
				),
		);
		$confirm_format_count = count($confirm_format);
		
		$user_info = $commu_info = array();
		
		foreach($confirm_obj_list as $confirm_obj){
			$rows = 2;
			$id = $confirm_obj->getVar('c_commu_confirm_id');
			$uid_from = $confirm_obj->getVar('uid_from');
			$mode = $confirm_obj->getVar('mode');
			
			if(!isset($user_info[$uid_from])){
				$user =& $user_handler->get($uid_from);
				if(is_object($user)){
					$user_info[$uid_from] =& $user->getInfo();
				}
				unset($user);
			}
			
			$cid = $confirm_obj->getVar('c_commu_id');
			if($cid > 0 && !isset($commu_info[$cid])){
				$community =& $commu_handler->get($cid);
				if(is_object($community)){
					$commu_info[$cid] =& $community->getInfo();
					$commu_info[$cid]['url'] = XSNS_URL_COMMU.'?cid='.$cid;
				}
				unset($community);
			}
			
			$form_vars = array('confirm_id' => $id);
			$form_accept = $this->getFormHeader('post', 'mypage', 'confirm_accept_exec', false, $form_vars, 'CONFIRM_ACCEPT_ID'.$id);
			$form_reject = !$confirm_format[$mode]['accept_only'] ? $this->getFormHeader('post', 'mypage', 'confirm_reject_exec', false, $form_vars, 'CONFIRM_REJECT_ID'.$id) : NULL;
			
			if($confirm_format[$mode]['show_commu']){
				$rows++;
			}
			if($confirm_format[$mode]['show_message']){
				$rows++;
			}
			
			$confirm_list[$mode][$id] = array(
				'member' => $user_info[$uid_from],
				'commu' => ($cid>0)? $commu_info[$cid] : NULL,
				'req_mode' => $mode,
				'time' => $confirm_obj->getVar('r_datetime'),
				'message' => $confirm_obj->getVar('message'),
				'show_commu' => $confirm_format[$mode]['show_commu'],
				'show_message' => $confirm_format[$mode]['show_message'],
				'accept_only' => $confirm_format[$mode]['accept_only'],
				'rows' => $rows,
				'form_accept' => $form_accept,
				'form_reject' => $form_reject,
			);
		}
		
		for($i=0; $i<$confirm_format_count; $i++){
			$req_count = isset($confirm_list[$i])? count($confirm_list[$i]) : 0;
			$confirm_list_all[$i] = array(
				'lang_title' => $confirm_format[$i]['title'],
				'lang_desc' => $confirm_format[$i]['desc'],
				'request_count' => $req_count,
				'confirm_list' => ($req_count>0)? $confirm_list[$i] : NULL,
			);
		}
	
	}
	$this->context->setAttribute('user_menu', $own_user->getMypageMenu());
	$this->context->setAttribute('confirm_list_all', $confirm_list_all);
}
Exemplo n.º 9
0
function dispatch()
{
	global $xoopsUser, $xoopsUserIsAdmin;
	
	if($this->isGuest() || !$this->validateToken('MEMBER_EDIT')){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	$own_uid = $xoopsUser->getVar('uid');
	
	$cid = $this->getIntRequest('cid');
	$uid = $this->getIntRequest('uid');
	$message = $this->getTextRequest('message');
	
	if(!$cid || !$uid || $uid == $own_uid){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// コミュニティの取得
	$perm = XSNS_AUTH_XOOPS_ADMIN | XSNS_AUTH_ADMIN;
	$commu_handler =& XsnsCommunityHandler::getInstance();
	$community =& $commu_handler->get($cid);
	if(!is_object($community) || !$community->checkAuthority($perm)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	if($xoopsUserIsAdmin && $own_uid != $community->getVar('uid_admin')){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// 対象コミュニティメンバーの取得
	$c_member_handler =& XsnsMemberHandler::getInstance();
	$c_member =& $c_member_handler->getOne($cid, $uid);
	if(!is_object($c_member)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	$c_member_info =& $c_member->getInfo();
	
	// 既存の依頼を削除(重複を防ぐため)
	$confirm_handler =& XsnsConfirmHandler::getInstance();
	$criteria = new CriteriaCompo(new Criteria('c_commu_id', $cid));
	$criteria->add(new Criteria('uid_from', $own_uid));
	$criteria->add(new Criteria('uid_to', $uid));
	$criteria->add(new Criteria('mode', '(1,2)', 'IN'));	// 管理者交代 or 副管理者就任
	$confirm_handler->deleteObjects($criteria);
	
	// 新規依頼の送信
	$confirm =& $confirm_handler->create();
	$confirm->setVars(array(
		'c_commu_id' => $cid,
		'uid_from' => $own_uid,
		'uid_to' => $uid,
		'mode' => 1,	// 管理者交代
		'r_datetime' => date('Y-m-d H:i:s'),
		'message' => $message,
	));
	
	if($confirm_handler->insert($confirm)){
		redirect_header(XSNS_URL_COMMU.'?cid='.$cid, 2, sprintf(_MD_XSNS_MEMBER_ADMIN_OK, $c_member_info['name']));
	}
	redirect_header(XSNS_URL_COMMU, 2, _MD_XSNS_MEMBER_ADMIN_NG);
}
Exemplo n.º 10
0
function dispatch()
{
	global $xoopsUser;
	
	$confirm_id = $this->getIntRequest('confirm_id');
	if($confirm_id < 1){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	if($this->isGuest() || !$this->validateToken('CONFIRM_ACCEPT_ID'.$confirm_id)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// 依頼情報の取得
	$confirm_handler =& XsnsConfirmHandler::getInstance();
	$confirm =& $confirm_handler->get($confirm_id);
	if(!is_object($confirm)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$cid = $confirm->getVar('c_commu_id');
	$uid_from = $confirm->getVar('uid_from');
	$uid_to = $confirm->getVar('uid_to');
	$mode = $confirm->getVar('mode');
	
	if($uid_to != $xoopsUser->getVar('uid')){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// ユーザーの取得
	$user_handler =& XsnsUserHandler::getInstance();
	$user_from =& $user_handler->get($uid_from);	// 依頼者(他人)
	$user_to =& $user_handler->get($uid_to);		// 自分
	if(!is_object($user_from) || !is_object($user_to)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	if($mode < 3){
		// コミュニティの取得
		$commu_handler =& XsnsCommunityHandler::getInstance();
		$community =& $commu_handler->get($cid);
		if(!is_object($community) || $community->getAuthority() < XSNS_AUTH_MEMBER){
			redirect_header(XOOPS_URL, 2, _NOPERM);
		}
	}
	
	switch($mode){
		case 0:	// コミュニティ参加
			$ret = $user_from->joinCommunity($cid);
			$msg = _MD_XSNS_CONFIRM_JOIN;
			break;
		
		case 1:	// 管理者交代
			$ret = $user_to->setCommunityAdmin($cid);
			$msg = _MD_XSNS_CONFIRM_ADMIN;
			break;
		
		case 2:	// 副管理者就任
			$ret = $user_to->setCommunitySubAdmin($cid);
			$msg = _MD_XSNS_CONFIRM_SUB_ADMIN;
			break;
		
		case 3:	// 友達リスト登録
			$ret1 = $user_to->setFriend($uid_from);
			$ret2 = $user_from->setFriend($uid_to);
			$ret = $ret1 | $ret2;
			$msg = _MD_XSNS_CONFIRM_FRIEND;
			break;
		
		case 4:	// 友達リスト登録解除(確認のみ)
			if($confirm_handler->delete($confirm)){
				header("Location: ".XSNS_URL_MYPAGE);
				exit;
			}
			redirect_header(XOOPS_URL, 2, _NOPERM);
			break;
			
		default:
			redirect_header(XOOPS_URL, 2, _NOPERM);
			break;
	}
	
	if($ret && $confirm_handler->delete($confirm)){
		$url = ($confirm_handler->getCount(new Criteria('uid_to', $uid_to)) > 0) ?
			XSNS_URL_MYPAGE.'&'.XSNS_ACTION_ARG.'=confirm' : XSNS_URL_MYPAGE;
		redirect_header($url, 2, sprintf(_MD_XSNS_CONFIRM_ACCEPT_OK. $msg, $user_from->getVar('uname')));
	}
	redirect_header(XSNS_URL_MYPAGE, 2, _MD_XSNS_CONFIRM_ACCEPT_NG);
}
Exemplo n.º 11
0
function dispatch()
{
	global $xoopsUser;
	
	if($this->isGuest() || !$this->validateToken('COMMUNITY_JOIN')){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	$own_uid = $xoopsUser->getVar('uid');
	
	$cid = $this->getIntRequest('cid');
	if(!isset($cid)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	// コミュニティの取得
	$perm = XSNS_AUTH_NON_MEMBER;
	$commu_handler =& XsnsCommunityHandler::getInstance();
	$community =& $commu_handler->get($cid);
	if(!is_object($community) || !$community->checkAuthority($perm)){
		redirect_header(XOOPS_URL, 2, _NOPERM);
	}
	
	$public_flag = $community->getVar('public_flag');
	$is_public = true;
	$name = $community->getVar('name');
	$redirect_url = XSNS_URL_COMMU.'?cid='.$cid;
	
	if($public_flag > 1){
		// 参加の際に管理者の承認が必要なコミュニティ
		
		// 依頼送信済みかどうかの確認
		$uid_admin = $community->getVar('uid_admin');
		$confirm_handler =& XsnsConfirmHandler::getInstance();
		if($confirm_handler->getOne($cid, $own_uid, $uid_admin, 0)){
			redirect_header($redirect_url, 2, _MD_XSNS_INDEX_JOIN_REQ_NG_ALREADY);
		}
		
		// 依頼の送信
		$new_confirm =& $confirm_handler->create();
		$new_confirm->setVars(array(
			'c_commu_id' => $cid,
			'uid_from' => $own_uid,
			'uid_to' => $uid_admin,
			'mode' => 0,	// コミュニティ参加
			'r_datetime' => date('Y-m-d H:i:s'),
			'message' => $this->getTextRequest('message'),
		));
		
		if($confirm_handler->insert($new_confirm)){
			redirect_header($redirect_url, 2, sprintf(_MD_XSNS_INDEX_JOIN_REQ_OK, $name));
		}
		redirect_header($redirect_url, 2, _MD_XSNS_INDEX_JOIN_REQ_NG);
	}
	else{
		// 誰でも参加可能なコミュニティ
		
		$c_member_handler =& XsnsMemberHandler::getInstance();
		$new_member =& $c_member_handler->create();
		$new_member->setVars(array(
			'uid' => $own_uid,
			'c_commu_id' => $cid,
			'r_datetime' => date('Y-m-d H:i:s'),
		));
		
		if($c_member_handler->insert($new_member)){
			redirect_header($redirect_url, 2, sprintf(_MD_XSNS_INDEX_JOIN_OK, $name));
		}
		redirect_header($redirect_url, 2, _MD_XSNS_INDEX_JOIN_NG);
	}
}