/** * Сохранение Личные сообщения * * @param object $objResponse xajaxResponse * @param string $rec_id идентификатор записи * @param string $rec_type тип записи * @param array $aForm массив данных * @param string $sDrawFunc имя функции для выполнения после сохранения */ function _admEditContactsSaveForm(&$objResponse, $rec_id = '', $rec_type = '', $aForm = array(), $sDrawFunc = '') { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php'; $bValid = true; $msg = change_q_x($aForm['msg_text'], false, true, null, false, false); $attachedfiles_session = change_q_x($aForm['attachedfiles_session'], true); $attachedfiles = new attachedfiles($attachedfiles_session); $attachedfiles_info = $attachedfiles->calcFiles(); $attachedfiles_files = $attachedfiles->getFiles(array(1, 3, 4)); if ((!$msg || trim($msg) == '') && !$attachedfiles_info['count']) { $bValid = false; $objResponse->script("\$('adm_edit_err_msg').set('html', 'Поле заполнено некорректно.'); "); $objResponse->script("\$('div_adm_edit_err_msg').setStyle('display', '');"); } elseif ($msg && strlen($msg) > messages::MAX_MSG_LENGTH) { $bValid = false; $objResponse->script("\$('adm_edit_err_msg').set('html', 'Вы ввели слишком большое сообщение. Текст сообщения не должен превышать 20 000 символов.'); "); $objResponse->script("\$('div_adm_edit_err_msg').setStyle('display', '');"); } $sParent = $sDrawFunc == 'stream0' || $sDrawFunc == 'stream1' || $sDrawFunc == 'stream2' ? 'parent.' : ''; if ($bValid) { $sReason = _parseReason($aForm['p_from_id'], $aForm['adm_edit_text']); messages::Update($aForm['p_from_id'], $_SESSION['uid'], $rec_id, $msg, $attachedfiles_files, $sReason); $attachedfiles->clear(); messages::messageModifiedNotification($aForm['p_from_id'], $aForm['to_id'], $msg, $sReason); $objResponse->script($sParent . 'adm_edit_content.cancel();'); if ($sDrawFunc == 'stream0' || $sDrawFunc == 'stream1' || $sDrawFunc == 'stream2') { // если случаев будет больше - вынести в отдельную функцию if ($sDrawFunc != 'stream1') { resolveContent(user_content::MODER_MSSAGES, $aForm['p_stream_id'], user_content::MODER_MSSAGES . '_' . $rec_id . '_0', 1, $aForm['p_from_id'], $aForm['p_content_cnt'], $aForm['p_status'], $aForm['p_is_sent'], '', $objResponse); } else { $objResponse->script('window.location.reload(true)'); } } elseif ($sDrawFunc == 'blocked') { // из админки "заблокированные" global $user_content; $user_content->resolveMessages($_SESSION['uid'], $aForm['p_from_id'], $rec_id, 0, 1); $objResponse->script("\$('my_div_content_{$rec_id}').destroy();"); $objResponse->script('user_content.spinner.hide();'); } else { // действие после редактирования по умолчанию $objResponse->script('window.location.reload(true)'); } } else { $objResponse->script("{$sParent}adm_edit_content.disabled = false; {$sParent}adm_edit_content.button();"); } }