Esempio n. 1
0
 $db->sql_query('DELETE FROM ' . MEETING_USER_TABLE . ' WHERE meeting_id = ' . $id . ' AND user_id =' . $meeting_user);
 $cache->destroy('sql', MEETING_USER_TABLE);
 $db->sql_query('DELETE FROM ' . MEETING_GUESTNAMES_TABLE . ' WHERE meeting_id = ' . $id . ' AND user_id =' . $meeting_user);
 $cache->destroy('sql', MEETING_GUESTNAMES_TABLE);
 // -- C÷åò÷èê ïîêàòóøåê ïîëüçîâàòåëÿ--
 $meeting_user = intval($user_id);
 $sql = "SELECT user_id, pf_meeting_uchast, pf_user_km FROM " . PROFILE_FIELDS_DATA_TABLE . "\n\t\t\tWHERE user_id = {$meeting_user}";
 $result = $db->sql_query($sql);
 $row = $db->sql_fetchrow($result);
 $db->sql_freeresult($result);
 $new_meeting_km = $row['pf_user_km'] - $meeting_km;
 $count_uchast = $row['pf_meeting_uchast'] - 1;
 $sql = "UPDATE " . PROFILE_FIELDS_DATA_TABLE . "\n\t\t\tSET pf_meeting_uchast = {$count_uchast},\n\t\t\tpf_user_km = {$new_meeting_km}\n\t\t\tWHERE user_id = {$meeting_user}";
 $db->sql_query($sql);
 // Óäàëåíèå áàãàæíèêà
 delete_bagaze($id, $meeting_user);
 // Óäàëåíèå Ó÷àñòíèêà èç ãðóïïó "ó÷àñòíèêè", åñëè ïîêàçàòåëè ìåíüøå óñòàíîâëåííûõ
 if (!function_exists('auto_group')) {
     include $phpbb_root_path . 'includes/functions_autogroup.' . $phpEx;
 }
 auto_group($meeting_user);
 include_once $phpbb_root_path . 'informer.' . $phpEx;
 create_informer($id, 'del');
 if ($signoffs == 'other') {
     $redirect_url = append_sid("{$phpbb_root_path}pokat.{$phpEx}", "mode=detail&id={$id}");
     meta_refresh(5, $redirect_url);
     trigger_error(sprintf($user->lang['USER_SIGNOFF_2'], '<a href="' . $redirect_url . '">', '</a>'));
 } else {
     // Notyfy by author
     if (($meeting_config['meeting_notify'] || $meeting_notify) && $notyfy) {
         include_once $phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx;
Esempio n. 2
0
function otmena_meet($id, $meeting_reason)
{
    global $portal_config, $db, $cache, $config, $template, $SID, $_SID, $user, $auth, $phpEx, $phpbb_root_path;
    $id = request_var('id', '');
    $id = intval($id);
    if (!confirm_box(true)) {
        if ($meeting_reason == '' || !$meeting_reason) {
            trigger_error($user->lang['otmena_error']);
        } else {
            confirm_box(false, $user->lang['CONFIRM_OPERATION_OTMENA'], build_hidden_fields(array('id' => $id, 'otmena_meeting' => '1', 'meeting_reason' => $meeting_reason)));
        }
    } else {
        // Создание надписи ОТМЕНА
        $meeting_reason = utf8_normalize_nfc(request_var('meeting_reason', '', true));
        $bbcode_uid = $bbcode_bitfield = $flags = '';
        // will be modified by generate_text_for_storage
        generate_text_for_storage($meeting_reason, $bbcode_uid, $bbcode_bitfield, $flags, false, false, false);
        $sql_ary = array('meeting_otmena' => 1, 'meeting_reason' => $meeting_reason);
        $sql = 'UPDATE ' . MEETING_DATA_TABLE . '
			SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
			WHERE meeting_id = ' . $id;
        $db->sql_query($sql);
        // -- Cчетчик покатушек пользователя - АВТОР - уменьшение
        $sql = "SELECT user_id, pf_meeting_auth FROM " . PROFILE_FIELDS_DATA_TABLE . "\n\t\t\t\t\tWHERE user_id =" . $user->data['user_id'];
        $result = $db->sql_query($sql);
        $row = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
        if (!$row) {
            $sql = "INSERT INTO " . PROFILE_FIELDS_DATA_TABLE . " (user_id, pf_meeting_auth) VALUES (" . $user->data['user_id'] . ", 0)";
            $db->sql_query($sql);
        } else {
            $count_auth = $row['pf_meeting_auth'] - 1;
            $sql = "UPDATE " . PROFILE_FIELDS_DATA_TABLE . "\n\t\t\t\t\tSET pf_meeting_auth = {$count_auth}\n\t\t\t\t\tWHERE user_id =" . $user->data['user_id'];
            $db->sql_query($sql);
        }
        //------------------------------------
        // Уменьшение счетчика покат. у участников
        $sql = "SELECT m.*, u1.user_id as user, u1.pf_meeting_uchast, u1.pf_user_km, u.username, me.meeting_km, me.meeting_notify_user, me.meeting_by_user, me.meeting_subject  FROM " . MEETING_USER_TABLE . " m, " . PROFILE_FIELDS_DATA_TABLE . " u1, " . USERS_TABLE . " u, " . MEETING_DATA_TABLE . " me\n\t\t\tWHERE m.meeting_id = {$id}\n\t\t\tAND me.meeting_id = m.meeting_id\n\t\t\tAND m.user_id = u1.user_id\n\t\t\tAND u.user_id = u1.user_id";
        $result = $db->sql_query($sql);
        $vicherk_rows = array();
        while ($row = $db->sql_fetchrow($result)) {
            $vicherk_rows[] = $row;
        }
        $db->sql_freeresult($result);
        $total_uchast = count($vicherk_rows);
        // Цикл по участникам
        for ($i = 0; $i < $total_uchast; $i++) {
            $id_uchastnik = $vicherk_rows[$i]['user_id'];
            $user_meeting_uchast = $vicherk_rows[$i]['pf_meeting_uchast'] == 1 ? 0 : $vicherk_rows[$i]['pf_meeting_uchast'] - 1;
            $user_tekush_km = $vicherk_rows[$i]['pf_user_km'];
            $user_raschet_km = $user_tekush_km - $vicherk_rows[$i]['meeting_km'];
            $user_raschet_km = $user_raschet_km <= 0 ? 0 : $user_raschet_km;
            $sql = "UPDATE " . PROFILE_FIELDS_DATA_TABLE . "\n\t\t\t\tSET pf_meeting_uchast = {$user_meeting_uchast},\n\t\t\t\tpf_user_km = {$user_raschet_km}\n\t\t\t\tWHERE user_id = {$id_uchastnik}";
            $db->sql_query($sql);
            // PM участникам
            if ($vicherk_rows[$i]['meeting_notify_user']) {
                include_once $phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx;
                $meeting_subject = $vicherk_rows[$i]['meeting_subject'];
                $meeting_by_user = $vicherk_rows[$i]['meeting_by_user'];
                $sql = 'SELECT username, user_colour
					FROM ' . USERS_TABLE . '
					WHERE user_id = ' . (int) $meeting_by_user;
                $result = $db->sql_query($sql);
                $row = $db->sql_fetchrow($result);
                $db->sql_freeresult($result);
                $user->data = array_merge($user->data, array('user_id' => (int) $meeting_by_user, 'is_registered' => 0, 'username' => $row['username'], 'user_colour' => $row['user_colour']));
                $user->ip = '0.0.0.0';
                $username = $row['username'];
                // Parse the text with the bbcode parser and write into $text
                $subject = $user->lang['MEETING_PM_OTMENA'];
                $message = sprintf($user->lang['MEETING_PM_OTMENA_TEXT'], $meeting_reason);
                $text = utf8_normalize_nfc($message);
                $uid = $bitfield = $options = '';
                // will be modified by generate_text_for_storage
                $allow_bbcode = $allow_smilies = true;
                $allow_urls = false;
                generate_text_for_storage($text, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies);
                $text = generate_text_for_display($text, $uid, $bitfield, $options);
                $user->add_lang('ucp');
                // Switch array keys, with values in welcome pm.
                $pm_vars = array('{USERNAME}' => $username, '{MEETING_SUBJECT}' => $meeting_subject);
                $text = str_replace(array_keys($pm_vars), array_values($pm_vars), $text);
                $pm_data = array('address_list' => array('u' => array($id_uchastnik => 'to')), 'from_user_id' => $user->data['user_id'], 'from_user_ip' => $user->data['user_ip'], 'from_username' => $user->data['username'], 'enable_sig' => false, 'enable_bbcode' => true, 'enable_smilies' => true, 'enable_urls' => false, 'icon_id' => 0, 'bbcode_bitfield' => $bitfield, 'bbcode_uid' => $uid, 'message' => $text);
                submit_pm('post', $subject, $pm_data, false);
            }
        }
        // Вычеркивание участников
        $db->sql_query('DELETE FROM ' . MEETING_USER_TABLE . ' WHERE meeting_id = ' . $id);
        $cache->destroy('sql', MEETING_USER_TABLE);
        // Удаление гостей
        $db->sql_query('DELETE FROM ' . MEETING_GUESTNAMES_TABLE . ' WHERE meeting_id = ' . $id);
        $cache->destroy('sql', MEETING_GUESTNAMES_TABLE);
        //Удаление багажника
        delete_bagaze($id, 'all');
        // Проверка редактирования - если ОТМЕНА - редакт. не возможно
        // (сделано в панели модереации по сроку)
        if ($allow_mail && $meeting_reason != '') {
            if ($meeting_subject && $meeting_mail_text) {
                //$meeting_mail_subject = $lang['meeting_mail_subject_otmena'];
                //$meeting_mail_text = $meeting_reason;
                //E-mail
            }
        }
        $redirect_url = append_sid("{$phpbb_root_path}pokat.{$phpEx}", "mode=detail&id={$id}");
        meta_refresh(2, $redirect_url);
        trigger_error(sprintf($user->lang['MEETING_OTMEN'], '<a href="' . $redirect_url . '">', '</a>'));
    }
    $redirect_url = append_sid("{$phpbb_root_path}pokat.{$phpEx}", "mode=detail&id={$id}");
    redirect($redirect_url);
    //==================
    // Вывод комментариев только для тех кто должен видеть
    // Вывод календаря только для тех кто может видеть
    // ====== END ОТМЕНА Покатушки ===========
}