示例#1
0
function rcl_apply_group_request()
{
    global $rcl_group, $user_ID;
    $user_id = intval($_POST['user_id']);
    $apply = intval($_POST['apply']);
    $group_id = intval($_POST['group_id']);
    $rcl_group = rcl_get_group($group_id);
    if ($rcl_group->admin_id != $user_ID) {
        return false;
    }
    $requests = rcl_get_group_option($group_id, 'requests_group_access');
    $key = array_search($user_id, $requests);
    if (!$requests || false === $key) {
        return false;
    }
    unset($requests[$key]);
    if ($apply) {
        $subject = __('Request access to the group approved!', 'wp-recall');
        $textmail = '
        <h3>Добро пожаловать в группу "' . $rcl_group->name . '"!</h3>
        <p>Поздравляем, ваш запрос на доступ к приватной группе на сайте "' . get_bloginfo('name') . '" был одобрен.</p>
        <p>Теперь вы можете принимать участие в жизни этой группы как полноценный ее участник.</p>
        <p>Вы можете перейти в группу прямо сейчас, перейдя по ссылке:</p>
        <p>' . get_term_link((int) $group_id, 'groups') . '</p>';
        rcl_group_add_user($user_id, $group_id);
        $log['result'] = '<span class="success">' . __('The request was accepted', 'wp-recall') . '</span>';
    } else {
        $log['result'] = '<span class="error">' . __('Request rejected', 'wp-recall') . '</span>';
        $subject = __('The request to access the group rejected.', 'wp-recall');
        $textmail = '
        <p>Сожалеем, но ваш запрос на доступ к приватной группе "' . $rcl_group->name . '" на сайте "' . get_bloginfo('name') . '" был отклонен ее админом.</p>';
    }
    $user_email = get_the_author_meta('user_email', $user_id);
    rcl_mail($user_email, $subject, $textmail);
    rcl_update_group_option($group_id, 'requests_group_access', $requests);
    $log['user_id'] = $user_id;
    echo json_encode($log);
    exit;
}
function rcl_group_avatar_upload()
{
    require_once ABSPATH . "wp-admin" . '/includes/image.php';
    require_once ABSPATH . "wp-admin" . '/includes/file.php';
    require_once ABSPATH . "wp-admin" . '/includes/media.php';
    global $user_ID, $rcl_options, $rcl_avatar_sizes;
    if (!$user_ID) {
        return false;
    }
    $upload = array();
    $group_id = $_POST['group_id'];
    $maxsize = $rcl_options['avatar_weight'] ? $rcl_options['avatar_weight'] : ($maxsize = 2);
    $tmpname = current_time('timestamp') . '.jpg';
    //print_r($_FILES['uploadfile']);exit;
    if ($_FILES['uploadfile']) {
        foreach ($_FILES['uploadfile'] as $key => $data) {
            $upload['file'][$key] = $data;
        }
    }
    $filename = $upload['file']['name'];
    $mime = explode('/', $upload['file']['type']);
    $tps = explode('.', $upload['file']['name']);
    $cnt = count($tps);
    if ($cnt > 2) {
        $type = $mime[$cnt - 1];
        $filename = str_replace('.', '', $filename);
        $filename = str_replace($type, '', $filename) . '.' . $type;
    }
    $filename = str_replace(' ', '', $filename);
    $mb = $upload['file']['size'] / 1024 / 1024;
    if ($mb > $maxsize) {
        $res['error'] = __('Size over', 'wp-recall');
        echo json_encode($res);
        exit;
    }
    $ext = explode('.', $filename);
    if ($mime[0] != 'image') {
        $res['error'] = __('The file is not an image', 'wp-recall');
        echo json_encode($res);
        exit;
    }
    $image = wp_handle_upload($_FILES['uploadfile'], array('test_form' => FALSE));
    if ($image['file']) {
        if ($avatar_id = rcl_get_group_option($group_id, 'avatar_id')) {
            wp_delete_post($avatar_id, true);
        }
        $attachment = array('post_mime_type' => $image['type'], 'post_title' => 'image_group_' . $group_id, 'post_content' => $image['url'], 'guid' => $image['url'], 'post_parent' => '', 'post_status' => 'inherit');
        $imade_id = wp_insert_attachment($attachment, $image['file']);
        $attach_data = wp_generate_attachment_metadata($imade_id, $image['file']);
        wp_update_attachment_metadata($imade_id, $attach_data);
        rcl_update_group_option($group_id, 'avatar_id', $imade_id);
    } else {
        $res['error'] = 'Ошибка загрузки!';
        echo json_encode($res);
        exit;
    }
    $res['avatar_url'] = $image['url'];
    $res['success'] = __('Avatar has successfully loaded', 'wp-recall');
    echo json_encode($res);
    exit;
}
function rcl_update_group_widgets($group_id, $args)
{
    global $rcl_group_widgets, $rcl_group_area;
    //print_r($_POST);exit;
    $zones = array();
    $options = array();
    foreach ($args as $widget) {
        if (isset($widget['content'])) {
            $key = $widget['content'];
            continue;
        }
        foreach ($widget['widget'] as $widget_id => $data) {
            if ($data['id']) {
                $zones[$key][] = $widget_id;
            }
            if (isset($data['options'])) {
                $optionsData[$widget_id][] = $data['options'];
            }
        }
    }
    if ($optionsData) {
        foreach ($optionsData as $id_widget => $opts) {
            foreach ($opts as $k => $option) {
                foreach ($option as $key => $val) {
                    $options[$id_widget][$key] = $val;
                }
            }
        }
    }
    //print_r($options);exit;
    if ($zones) {
        rcl_update_group_option($group_id, 'group_widgets', $zones);
    } else {
        rcl_delete_group_option($group_id, 'group_widgets');
    }
    if ($options) {
        rcl_update_group_option($group_id, 'widgets_options', $options);
    } else {
        rcl_delete_group_option($group_id, 'widgets_options');
    }
}
function rcl_group_add_request_for_membership($user_id, $group_id)
{
    $rcl_group = rcl_get_group($group_id);
    $requests = rcl_get_group_option($group_id, 'requests_group_access');
    $requests[] = $user_id;
    rcl_update_group_option($group_id, 'requests_group_access', $requests);
    $subject = __('Request for access to the group', 'wp-recall');
    $textmail = '
    <p>Вы получили новый запрос на доступ к администрируемой вами группе "' . $rcl_group->name . '" на сайте "' . get_bloginfo('name') . '".</p>
    <h3>Информация о пользователе:</h3>
    <p><b>Профиль пользователя</b>: <a href="' . get_author_posts_url($user_id) . '">' . get_the_author_meta('display_name', $user_id) . '</a></p>
    <p>Вы можете одобрить или отклонить запрос перейдя по ссылке:</p>
    <p>' . get_term_link((int) $group_id, 'groups') . '</p>';
    $admin_email = get_the_author_meta('user_email', $rcl_group->admin_id);
    rcl_mail($admin_email, $subject, $textmail);
}