Ejemplo n.º 1
0
 function execute($requests)
 {
     $target_c_commu_ids = $requests['target_c_commu_ids'];
     if (empty($target_c_commu_ids)) {
         admin_client_redirect('list_c_commu', WORD_COMMUNITY . 'が選択されていません');
     }
     foreach ($target_c_commu_ids as $target_c_commu_id) {
         db_common_delete_c_commu($target_c_commu_id);
     }
     admin_client_redirect('list_c_commu', WORD_COMMUNITY . 'の削除が完了しました');
 }
 function execute($requests)
 {
     $id_ary = split(":", $requests['target_c_commu_ids']);
     foreach ($id_ary as $id) {
         $commu = db_commu_c_commu4c_commu_id($id);
         if (!$commu) {
             admin_client_redirect('list_c_commu', '指定された' . WORD_COMMUNITY . 'は存在しません');
         }
     }
     foreach ($id_ary as $id) {
         db_common_delete_c_commu($id);
     }
     admin_client_redirect('list_c_commu', WORD_COMMUNITY . 'を削除しました');
 }
 function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     // --- リクエスト変数
     $target_c_commu_id = $requests['target_c_commu_id'];
     // ----------
     //--- 権限チェック
     //コミュニティ管理者
     //コミュニティ副管理者でない
     $status = db_common_commu_status($u, $target_c_commu_id);
     if (!$status['is_commu_admin']) {
         handle_kengen_error();
     }
     if ($status['is_commu_sub_admin']) {
         handle_kengen_error();
     }
     //---
     db_common_delete_c_commu($target_c_commu_id);
     openpne_redirect('pc', 'page_h_com_find_all');
 }
 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_common_commu_status($u, $target_c_commu_id);
     if (!$status['is_commu_admin']) {
         handle_kengen_error();
     }
     if ($status['is_commu_sub_admin']) {
         handle_kengen_error();
     }
     //---
     db_common_delete_c_commu($target_c_commu_id);
     openpne_redirect('ktai', 'page_h_home');
 }
Ejemplo n.º 5
0
/**
 * SNSメンバー退会
 *
 * @param int $c_member_id
 */
function db_common_delete_c_member($c_member_id)
{
    //function cache削除
    cache_drop_c_member($c_member_id);
    //// --- 双方向パターン
    $double = array(intval($c_member_id), intval($c_member_id));
    // c_access_block
    $sql = 'DELETE FROM c_access_block WHERE c_member_id = ? OR c_member_id_block = ?';
    db_query($sql, $double);
    // c_bookmark
    $sql = 'DELETE FROM c_bookmark WHERE c_member_id_from = ? OR c_member_id_to = ?';
    db_query($sql, $double);
    // c_friend
    $sql = 'DELETE FROM c_friend WHERE c_member_id_from = ? OR c_member_id_to = ?';
    db_query($sql, $double);
    // c_friend_confirm
    $sql = 'DELETE FROM c_friend_confirm WHERE c_member_id_from = ? OR c_member_id_to = ?';
    db_query($sql, $double);
    //// --- 単一パターン
    $single = array(intval($c_member_id));
    // c_ktai_address_pre
    $sql = 'DELETE FROM c_ktai_address_pre WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_member_ktai_pre
    $sql = 'DELETE FROM c_member_ktai_pre WHERE c_member_id_invite = ?';
    db_query($sql, $single);
    // c_pc_address_pre
    $sql = 'DELETE FROM c_pc_address_pre WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_review_clip
    $sql = 'DELETE FROM c_review_clip WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_review_comment
    $sql = 'DELETE FROM c_review_comment WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_rss_cache
    $sql = 'DELETE FROM c_rss_cache WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_schedule
    $sql = 'DELETE FROM c_schedule WHERE c_member_id = ?';
    db_query($sql, $single);
    //// --- 特殊パターン
    ///コミュニティ関連
    // c_commu_member
    $sql = 'DELETE FROM c_commu_member WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_commu.c_member_id_sub_admin
    $data = array('c_member_id_sub_admin' => 0);
    $where = array('c_member_id_sub_admin' => intval($c_member_id));
    db_update('c_commu', $data, $where);
    // c_commu (画像)
    $sql = 'SELECT * FROM c_commu WHERE c_member_id_admin = ?';
    $c_commu_list = db_get_all($sql, $single, 'main');
    foreach ($c_commu_list as $c_commu) {
        $sql = 'SELECT COUNT(*) FROM c_commu_member WHERE c_commu_id = ?';
        $count = db_get_one($sql, array(intval($c_commu['c_commu_id'])), 'main');
        if (!$count) {
            // コミュニティ削除
            db_common_delete_c_commu($c_commu['c_commu_id'], $c_member_id);
        } else {
            // 管理者交代
            //     副管理者がいる場合:副管理者に交代
            //     副管理者がいない場合:参加日時が一番古い人に交代
            $new_admin_id = 0;
            if (empty($c_commu['c_member_id_sub_admin'])) {
                $sql = 'SELECT c_member_id FROM c_commu_member WHERE c_commu_id = ?' . ' ORDER BY r_datetime';
                $params = array(intval($c_commu['c_commu_id']));
                $new_admin_id = db_get_one($sql, $params, 'main');
            } else {
                $new_admin_id = $c_commu['c_member_id_sub_admin'];
            }
            do_common_send_mail_c_commu_admin_change($new_admin_id, $c_commu['c_commu_id']);
            $data = array('c_member_id_admin' => intval($new_admin_id), 'c_member_id_sub_admin' => 0);
            $where = array('c_commu_id' => intval($c_commu['c_commu_id']));
            db_update('c_commu', $data, $where);
        }
    }
    // c_commu_admin_confirm
    $sql = 'DELETE FROM c_commu_admin_confirm WHERE c_member_id_to = ?';
    db_query($sql, $single);
    // c_commu_member_confirm
    $sql = 'DELETE FROM c_commu_member_confirm WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_commu_review
    $sql = 'DELETE FROM c_commu_review WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_event_member
    $sql = 'DELETE FROM c_event_member WHERE c_member_id = ?';
    db_query($sql, $single);
    ///日記関連
    db_diary_delete4c_member_id($c_member_id);
    // c_diary (画像)
    $sql = 'SELECT * FROM c_diary WHERE c_member_id = ?';
    $c_diary_list = db_get_all($sql, $single, 'main');
    foreach ($c_diary_list as $c_diary) {
        db_image_data_delete($c_diary['image_filename_1'], $c_member_id);
        db_image_data_delete($c_diary['image_filename_2'], $c_member_id);
        db_image_data_delete($c_diary['image_filename_3'], $c_member_id);
        // アルバム
        db_album_delete4c_member_id($c_member_id);
        // c_diary_comment
        $sql = 'SELECT * FROM c_diary_comment WHERE c_diary_id = ?';
        $params = array(intval($c_diary['c_diary_id']));
        $c_diary_comment_list = db_get_all($sql, $params, 'main');
        foreach ($c_diary_comment_list as $c_diary_comment) {
            db_image_data_delete($c_diary_comment['image_filename_1'], $c_member_id);
            db_image_data_delete($c_diary_comment['image_filename_2'], $c_member_id);
            db_image_data_delete($c_diary_comment['image_filename_3'], $c_member_id);
        }
        $sql = 'DELETE FROM c_diary_comment WHERE c_diary_id = ?';
        db_query($sql, $params);
    }
    $sql = 'DELETE FROM c_diary WHERE c_member_id = ?';
    db_query($sql, $single);
    ///アルバム関連
    $sql = 'SELECT c_album_id FROM c_album WHERE c_member_id = ?';
    $c_album_id_list = db_get_col($sql, $single, 'main');
    foreach ($c_album_id_list as $c_album_id) {
        db_album_delete_c_album($c_album_id, $c_member_id);
    }
    ///メンバー関連
    // c_member_pre
    $sql = 'SELECT * FROM c_member_pre WHERE c_member_id_invite = ?';
    $c_member_pre_list = db_get_all($sql, $single, 'main');
    foreach ($c_member_pre_list as $c_member_pre) {
        // c_member_pre_profile
        $sql = 'DELETE FROM c_member_pre_profile WHERE c_member_pre_id = ?';
        $params = array(intval($c_member_pre['c_member_pre_id']));
        db_query($sql, $params);
    }
    $sql = 'DELETE FROM c_member_pre WHERE c_member_id_invite = ?';
    db_query($sql, $single);
    // c_member_profile
    $sql = 'DELETE FROM c_member_profile WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_member_secure
    $sql = 'DELETE FROM c_member_secure WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_member (画像)
    $sql = 'SELECT image_filename_1, image_filename_2, image_filename_3' . ' FROM c_member WHERE c_member_id = ?';
    $c_member = db_get_row($sql, $single, 'main');
    db_image_data_delete($c_member['image_filename_1'], $c_member_id);
    db_image_data_delete($c_member['image_filename_2'], $c_member_id);
    db_image_data_delete($c_member['image_filename_3'], $c_member_id);
    // c_member (メンバー情報)
    $sql = 'DELETE FROM c_member WHERE c_member_id = ?';
    db_query($sql, $single);
    // c_username
    $sql = 'DELETE FROM c_username WHERE c_member_id = ?';
    db_query($sql, $single);
    ///グループ関連
    // biz_group_member
    $sql = 'DELETE FROM biz_group_member ' . 'WHERE c_member_id = ? ';
    db_query($sql, $single);
    $sql = 'SELECT * FROM biz_group ' . 'WHERE admin_id = ? ';
    $biz_group_list = db_get_all($sql, $single, 'main');
    foreach ($biz_group_list as $biz_group) {
        // 管理者交代
        // biz_group_member_idが一番早い人に交代
        $sql = 'SELECT c_member_id FROM biz_group_member ' . 'WHERE biz_group_id = ? ' . 'ORDER BY biz_group_member_id ';
        $params = array(intval($biz_group['biz_group_id']));
        $new_admin_id = db_get_one($sql, $params, 'main');
        if ($new_admin_id) {
            if (USE_BIZ_DIR) {
                do_common_send_mail_biz_group_admin_change($new_admin_id, $biz_group['biz_group_id']);
            }
            $data = array('admin_id' => intval($new_admin_id));
            $where = array('biz_group_id' => intval($biz_group['biz_group_id']));
            db_update('biz_group', $data, $where);
        } else {
            require_once OPENPNE_MODULES_BIZ_DIR . '/biz/lib/mysql_functions.php';
            biz_deleteGroup($biz_group['biz_group_id'], $c_member_id);
        }
    }
    // 画像容量管理テーブルから情報を削除
    db_image_delete_c_image_size4c_member_id($c_member_id);
}