function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $c_commu_category_id = $requests['c_commu_category_id']; $name = $requests['name']; $info = $requests['info']; $is_admit = $requests['is_admit']; $is_open = $requests['is_open']; if (db_commu_is_commu4c_commu_name($name)) { $p = array('msg' => 49); openpne_redirect('ktai', 'page_h_com_add', $p); } if (!db_commu_c_commu_category_is_create_commu($c_commu_category_id)) { $p = array('msg' => 50); openpne_redirect('ktai', 'page_h_com_add', $p); } // ---------- $c_member_id = $u; $c_commu_id = db_commu_insert_c_commu($c_member_id, $name, $c_commu_category_id, $info, $is_admit, $is_open); //作成者をコミュメンバーにする db_commu_join_c_commu($c_commu_id, $c_member_id); $p = array('target_c_commu_id' => $c_commu_id); openpne_redirect('ktai', 'page_c_home', $p); }
function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $target_c_commu_id = $requests['target_c_commu_id']; $name = $requests['name']; $c_commu_category_id = $requests['c_commu_category_id']; $info = $requests['info']; $is_admit = $requests['is_admit']; $is_open = $requests['is_open']; $is_topic = $requests['is_topic']; $is_comment = $requests['is_comment']; if (db_commu_is_changed_c_commu_name($target_c_commu_id, $name) && db_commu_is_commu4c_commu_name($name)) { $p = array('target_c_commu_id' => $target_c_commu_id, 'msg' => 49); openpne_redirect('ktai', 'page_c_edit', $p); } $c_commu = db_commu_c_commu4c_commu_id($target_c_commu_id); if ($c_commu_category_id != $c_commu['c_commu_category_id'] && !db_commu_c_commu_category_is_create_commu($c_commu_category_id)) { $p = array('target_c_commu_id' => $target_c_commu_id, 'msg' => 50); openpne_redirect('ktai', 'page_c_edit', $p); } if ($is_open == 'member') { if ($is_topic == 'public') { $p = array('target_c_commu_id' => $target_c_commu_id, 'msg' => 53); openpne_redirect('ktai', 'page_c_edit', $p); } if ($is_comment == 'public') { $p = array('target_c_commu_id' => $target_c_commu_id, 'msg' => 54); openpne_redirect('ktai', 'page_c_edit', $p); } } // ---------- //--- 権限チェック //コミュニティ管理者 $status = db_common_commu_status($u, $target_c_commu_id); if (!$status['is_commu_admin']) { handle_kengen_error(); } //--- // 承認待ちメンバー登録処理 $c_commu = db_commu_c_commu4c_commu_id($target_c_commu_id); if ($is_admit == 'public' && $is_admit != $c_commu['is_admit']) { $c_commu_member_confirm_list = db_commu_c_commu_member_confirm4c_commu_id($target_c_commu_id); foreach ($c_commu_member_confirm_list as $c_commu_member_confirm) { db_commu_join_c_commu($target_c_commu_id, $c_commu_member_confirm['c_member_id']); do_inc_join_c_commu_send_mail($target_c_commu_id, $c_commu_member_confirm['c_member_id']); db_commu_delete_c_commu_member_confirm($c_commu_member_confirm['c_commu_member_confirm_id']); } } db_commu_update_c_commu($target_c_commu_id, $name, $is_topic, $is_comment, $c_commu_category_id, $info, $is_admit, $is_open); $p = array('target_c_commu_id' => $target_c_commu_id); openpne_redirect('ktai', 'page_c_home', $p); }
function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; $errors = array(); $validator = new OpenPNE_Validator(); $validator->addRequests($_REQUEST); $validator->addRules($this->_getValidateRules()); if (!$validator->validate()) { $errors = $validator->getErrors(); } $prof = $validator->getParams(); //--- c_profile の項目をチェック $validator = new OpenPNE_Validator(); $validator->addRequests($_REQUEST['profile']); $validator->addRules(util_get_validate_rules_profile('regist')); if (!$validator->validate()) { $errors = array_merge($errors, $validator->getErrors()); } // 値の整合性をチェック(DB) $c_member_profile_list = db_member_check_profile($validator->getParams(), $_REQUEST['public_flag']); // 必須項目チェック $profile_list = db_member_c_profile_list4null(); foreach ($profile_list as $profile) { $value = $c_member_profile_list[$profile['name']]['value']; if ($profile['disp_config'] && $profile['is_required']) { if (is_null($value) || $value === '' || $value === array()) { $errors[$profile['name']] = $profile['caption'] . 'を入力してください'; } } } // 生年月日のチェック if (!t_checkdate($prof['birth_month'], $prof['birth_day'], $prof['birth_year'])) { $errors[] = '生年月日を正しく入力してください'; } if (t_isFutureDate($prof['birth_day'], $prof['birth_month'], $prof['birth_year'])) { $errors[] = '生年月日を未来に設定することはできません'; } // 入力エラー if ($errors) { ktai_display_error($errors); } db_member_config_prof_new($u, $prof); // insert c_member_profile db_member_update_c_member_profile($u, $c_member_profile_list); //管理画面で指定したコミュニティに強制参加 $c_commu_id_list = db_commu_regist_join_list(); foreach ($c_commu_id_list as $c_commu_id) { db_commu_join_c_commu($c_commu_id, $u); } openpne_redirect('ktai', 'page_h_home'); }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); // --- リクエスト変数 $name = $requests['name']; $c_commu_category_id = $requests['c_commu_category_id']; $info = $requests['info']; $is_admit = $requests['is_admit']; $is_open = $requests['is_open']; $tmpfile = $requests['tmpfile']; $err_msg = array(); if (db_commu_is_commu4c_commu_name($name)) { $err_msg[] = 'その' . WORD_COMMUNITY . 'はすでに存在します'; } if (!db_commu_c_commu_category_is_create_commu($c_commu_category_id)) { $err_msg[] = '指定されたカテゴリは選択できません'; } // 画像アップロード可能サイズチェック if ($tmpfile) { $filesize = util_image_get_c_tmp_filesize4filename("c_{$c_commu_id}", $tmpfile); $result = util_image_check_add_image_upload($filesize, $u, 'other'); if ($result) { $err_msg[] = util_image_get_upload_err_msg($result); } } if ($err_msg) { $_REQUEST['err_msg'] = $err_msg; openpne_forward('pc', 'page', "h_com_add"); exit; } // ---------- // コミュニティ作成 $c_commu_id = db_commu_insert_c_commu($u, $name, $c_commu_category_id, $info, $is_admit, $is_open); if ($tmpfile) { $filename = image_insert_c_image4tmp("c_{$c_commu_id}", $tmpfile, $u); t_image_clear_tmp(session_id()); // 画像更新 if ($filename) { db_commu_update_c_commu_image_filename($c_commu_id, $filename); } } //作成者をコミュメンバーにする db_commu_join_c_commu($c_commu_id, $u); $p = array('target_c_commu_id' => $c_commu_id); openpne_redirect('pc', 'page_c_home', $p); }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); $target_c_commu_id = $requests['target_c_commu_id']; $status = db_commu_get_c_join_status($u, $target_c_commu_id); //非公開コミュニティに管理者から招待されている場合は強制的に承認を回避 $admin_invite = db_commu_c_commu4c_admin_invite_id($target_c_commu_id, $u); if ($admin_invite) { $status = STATUS_C_JOIN_REQUEST_FREE; db_commu_delete_c_commu_admin_invite($admin_invite); } switch ($status) { //承認必要なし case STATUS_C_JOIN_REQUEST_FREE: // 承認依頼があれば削除 if ($c_commu_member_confirm_id = db_commu_get_c_commu_member_confirm_id($u, $target_c_commu_id)) { db_commu_delete_c_commu_member_confirm($c_commu_member_confirm_id); } db_commu_join_c_commu($target_c_commu_id, $u); do_inc_join_c_commu_send_mail($target_c_commu_id, $u); $p = array('target_c_commu_id' => $target_c_commu_id); openpne_redirect('pc', 'page_c_join_commu_2', $p); break; //管理者承認必要 //管理者承認必要 case STATUS_C_JOIN_REQUEST_NEED: $p = array('target_c_commu_id' => $target_c_commu_id); openpne_redirect('pc', 'page_c_join_request', $p); break; //承認待ち //承認待ち case STATUS_C_JOIN_WAIT: $p = array('target_c_commu_id' => $target_c_commu_id); openpne_redirect('pc', 'page_c_join_err_wait', $p); break; //既に参加 //既に参加 case STATUS_C_JOIN_ALREADY: $p = array('target_c_commu_id' => $target_c_commu_id); openpne_redirect('pc', 'page_c_join_err_already', $p); break; } }
function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $target_c_commu_id = $requests['target_c_commu_id']; // ---------- $status = db_commu_get_c_join_status($u, $target_c_commu_id); $p = array('target_c_commu_id' => $target_c_commu_id); //非公開コミュニティに管理者から招待されている場合は強制的に承認を回避 $admin_invite = db_commu_c_commu4c_admin_invite_id($target_c_commu_id, $u); if ($admin_invite) { $status = STATUS_C_JOIN_REQUEST_FREE; db_commu_delete_c_commu_admin_invite($admin_invite); } switch ($status) { //承認必要なし case STATUS_C_JOIN_REQUEST_FREE: // 承認依頼があれば削除 if ($c_commu_member_confirm_id = db_commu_get_c_commu_member_confirm_id($u, $target_c_commu_id)) { db_commu_delete_c_commu_member_confirm($c_commu_member_confirm_id); } db_commu_join_c_commu($target_c_commu_id, $u); do_inc_join_c_commu_send_mail($target_c_commu_id, $u); openpne_redirect('ktai', 'page_c_home', $p); break; //管理者承認必要 //管理者承認必要 case STATUS_C_JOIN_REQUEST_NEED: openpne_redirect('ktai', 'page_c_join_request', $p); break; //承認待ち //承認待ち case STATUS_C_JOIN_WAIT: openpne_redirect('ktai', 'page_c_home', $p); break; //既に参加 //既に参加 case STATUS_C_JOIN_ALREADY: openpne_redirect('ktai', 'page_c_home', $p); break; } }
function do_inc_join_c_commu($c_commu_id, $c_member_id) { return db_commu_join_c_commu($c_commu_id, $c_member_id); }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); // --- リクエスト変数 $target_c_commu_id = $requests['target_c_commu_id']; $name = $requests['name']; $c_commu_category_id = $requests['c_commu_category_id']; $info = $requests['info']; $is_admit = $requests['is_admit']; $is_open = $requests['is_open']; $is_topic = $requests['is_topic']; $is_comment = $requests['is_comment']; $is_send_join_mail = $requests['is_send_join_mail']; // ---------- $upfile_obj = $_FILES['image_filename']; //--- 権限チェック //コミュニティ管理者 $status = db_common_commu_status($u, $target_c_commu_id); if (!$status['is_commu_admin']) { handle_kengen_error(); } //--- $err_msg = array(); $filesize = 0; $del_file = array(); if (!$name) { $err_msg[] = WORD_COMMUNITY . "名を入力してください"; } if (!$info) { $err_msg[] = WORD_COMMUNITY . "の説明を入力してください"; } if (db_commu_is_changed_c_commu_name($target_c_commu_id, $name) && db_commu_is_commu4c_commu_name($name)) { $err_msg[] = 'その' . WORD_COMMUNITY . 'はすでに存在します'; } $c_commu = db_commu_c_commu4c_commu_id($target_c_commu_id); if ($c_commu_category_id != $c_commu['c_commu_category_id'] && !db_commu_c_commu_category_is_create_commu($c_commu_category_id)) { $_REQUEST['c_commu_category_id'] = $c_commu['c_commu_category_id']; $err_msg[] = '指定されたカテゴリは選択できません'; } if ($is_open == 'member') { if ($is_topic == 'public') { $err_msg[] = '公開範囲とトピック作成権限が指定できない組み合わせです'; } if ($is_comment == 'public') { $err_msg[] = '公開範囲とコメント作成権限が指定できない組み合わせです'; } } if (!empty($upfile_obj) && $upfile_obj['error'] !== UPLOAD_ERR_NO_FILE) { if (!($image = t_check_image($upfile_obj))) { $err_msg[] = '画像は' . IMAGE_MAX_FILESIZE . 'KB以内のGIF・JPEG・PNGにしてください'; } $filesize = $image['size']; if ($c_commu['image_filename']) { $del_file[] = $c_commu['image_filename']; } } //---画像アップロードサイズチェック if (!$err_msg && $filesize) { $result = util_image_check_change_image_upload($filesize, $del_file, $u, 'other'); if ($result) { $err_msg[] = util_image_get_upload_err_msg($result); } } if ($err_msg) { $_REQUEST['err_msg'] = $err_msg; $_REQUEST['target_c_commu_id'] = $target_c_commu_id; $_REQUEST['name'] = $name; $_REQUEST['info'] = $info; openpne_forward('pc', 'page', "c_edit"); exit; } $c_commu = db_commu_c_commu4c_commu_id($target_c_commu_id); //画像アップデート $image_filename = image_insert_c_image_direct($upfile_obj, 'c_' . $target_c_commu_id, $u); if ($image_filename) { //画像削除 db_image_data_delete($c_commu['image_filename'], $u); } // 承認待ちメンバー登録処理 if ($is_admit == 'public' && $is_admit != $c_commu['is_admit']) { $member_confirm_list = db_commu_c_commu_member_confirm4c_commu_id($target_c_commu_id); foreach ($member_confirm_list as $confirm_id => $c_member_id) { db_commu_join_c_commu($target_c_commu_id, $c_member_id); do_inc_join_c_commu_send_mail($target_c_commu_id, $c_member_id); db_commu_delete_c_commu_member_confirm($confirm_id); } } db_commu_update_c_commu($target_c_commu_id, $name, $is_topic, $is_comment, $c_commu_category_id, $info, $is_admit, $is_open, $image_filename, $is_send_join_mail); $p = array('target_c_commu_id' => $target_c_commu_id); openpne_redirect('pc', 'page_c_home', $p); }
/** * メンバー登録を行う * * @param array $c_member * @param array $c_member_secure * @param array $c_member_profile_list * @param bool $is_password_encrypted パスワードが既に暗号化済みかどうか * @return int */ function util_regist_c_member($c_member, $c_member_secure, $c_member_profile_list = array(), $is_password_encrypted = false) { // メール受信設定をデフォルト値に $c_member['is_receive_mail'] = 1; $c_member['is_receive_ktai_mail'] = 1; $c_member['is_receive_daily_news'] = 1; // メンバー登録 $u = db_member_insert_c_member($c_member, $c_member_secure, $is_password_encrypted); if ($u === false) { // メンバー登録に失敗した場合 return false; } if (OPENPNE_USE_POINT_RANK) { //入会者にポイント加算 $point = db_action_get_point4c_action_id(1); db_point_add_point($u, $point); //メンバー招待をした人にポイント加算 $point = db_action_get_point4c_action_id(7); db_point_add_point($c_member['c_member_id_invite'], $point); } // c_member_profile db_member_update_c_member_profile($u, $c_member_profile_list); // 招待者とフレンドリンク db_friend_insert_c_friend($u, $c_member['c_member_id_invite']); //管理画面で指定したコミュニティに強制参加 $c_commu_id_list = db_commu_regist_join_list(); foreach ($c_commu_id_list as $c_commu_id) { db_commu_join_c_commu($c_commu_id, $u); } // ログインIDを登録 if (OPENPNE_AUTH_MODE == 'pneid') { $login_id = strtolower($c_member['login_id']); db_member_insert_username($u, $login_id); } return $u; }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); $mode = $requests['mode']; $errors = array(); $validator = new OpenPNE_Validator(); if ($mode == 'register') { $validator->addRequests($_SESSION['prof_req']); } else { $validator->addRequests($_REQUEST); } $validator->addRules($this->_getValidateRules()); if (!$validator->validate()) { $errors = array_merge($errors, $validator->getErrors()); } $prof = $validator->getParams(); //--- c_profile の項目をチェック $validator = new OpenPNE_Validator(); if ($mode == 'register') { $validator->addRequests($_SESSION['prof_req']['profile']); $request_public_flags = $_SESSION['prof_req']['public_flag']; } else { $validator->addRequests($_REQUEST['profile']); $request_public_flags = $_REQUEST['public_flag']; } $validator->addRules(util_get_validate_rules_profile('regist')); if (!$validator->validate()) { $errors = array_merge($errors, $validator->getErrors()); } // 値の整合性をチェック(DB) $c_member_profile_list = db_member_check_profile($validator->getParams(), $request_public_flags); // 必須項目チェック $profile_list = db_member_c_profile_list4null(); foreach ($profile_list as $profile) { $value = $c_member_profile_list[$profile['name']]['value']; if ($profile['disp_config'] && $profile['is_required']) { if (is_null($value) || $value === '' || $value === array()) { $errors[$profile['name']] = $profile['caption'] . 'を入力してください'; } } } // 生年月日のチェック if (!t_checkdate($prof['birth_month'], $prof['birth_day'], $prof['birth_year'])) { $errors[] = '生年月日を正しく入力してください'; } if (t_isFutureDate($prof['birth_day'], $prof['birth_month'], $prof['birth_year'])) { $errors[] = '生年月日を未来に設定することはできません'; } $prof['profile'] = $c_member_profile_list; if ($errors && $mode != "input") { $_REQUEST['msg'] = array_shift($errors); $mode = "input"; $_SESSION['prof'] = $prof; unset($_SESSION['prof_req']); } switch ($mode) { case "input": openpne_forward('pc', 'page', "h_regist_prof"); exit; break; default: case "confirm": $_SESSION['prof_req'] = $_REQUEST; $_SESSION['prof'] = $prof; openpne_forward('pc', 'page', "h_regist_prof_confirm"); exit; break; case "register": db_member_config_prof_new($u, $prof); db_member_update_c_member_profile($u, $c_member_profile_list); //管理画面で指定したコミュニティに強制参加 $c_commu_id_list = db_commu_regist_join_list(); foreach ($c_commu_id_list as $c_commu_id) { db_commu_join_c_commu($c_commu_id, $u); } unset($_SESSION['prof']); openpne_redirect('pc', 'page_h_home'); break; } }