$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;
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 ОТМЕНА Покатушки =========== }