/** * Отдает HTML для Редактирование Блоги: посты и комментарии * * @param object $objResponse xajaxResponse * @param string $rec_id идентификатор записи * @param string $rec_type тип записи * @param array $aParams дополнительные параметры. остальные * @return string */ function _admEditBlogsParseForm(&$objResponse, $rec_id = '', $rec_type = '', $aParams = array()) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/blogs.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/attachedfiles.php'; $error = $perm = null; $blogs = new blogs(); $edit_msg = $blogs->GetMsgInfo($rec_id, $error, $perm); $groups = $blogs->GetThemes($error, 1); $answers = $edit_msg['poll'] ? $edit_msg['poll'] : array(array('id' => 0, 'answer' => '')); ob_start(); include_once $_SERVER['DOCUMENT_ROOT'] . '/user/adm_edit_tpl/blogs.php'; $sHtml = ob_get_contents(); ob_end_clean(); // аттачи $sAttach = getAttachedFilesJs(blogs::getAttachedFiles($rec_id), blogs::MAX_FILES, blogs::MAX_FILE_SIZE, 'blog'); // текст блога и опрос $sOnReady = "if (document.getElementById('adm_edit_question')) {\n document.getElementById('adm_edit_question').value = document.getElementById('adm_edit_question_source').value;\n if(document.getElementById('adm_edit_msg')) \n document.getElementById('adm_edit_msg').value = (\$('adm_edit_msg_source')? \$('adm_edit_msg_source').value : null);\n poll.init('Blogs', document.getElementById('div_adm_edit'), " . blogs::MAX_POLL_ANSWERS . ", '" . $_SESSION['rand'] . "');\n maxChars('adm_edit_question', 'adm_edit_question_warn', " . blogs::MAX_POLL_CHARS . ");\n }\n else {\n if(document.getElementById('adm_edit_msg')) \n document.getElementById('adm_edit_msg').value = (\$('adm_edit_msg_source')? \$('adm_edit_msg_source').value : null);\n }"; $objResponse->assign('h4_adm_edit', 'innerHTML', 'Редактировать ' . ($rec_type == '2' ? 'комментарий' : 'сообщение')); $objResponse->assign('div_adm_edit', 'innerHTML', $sHtml); $objResponse->script("\$('div_adm_reason').setStyle('display', 'none');"); $objResponse->script("adm_edit_content.editMenuItems = ['', 'Основное', 'Файлы'" . ($rec_type == 1 ? ", 'Опрос'" : '') . "];"); $objResponse->script('adm_edit_content.edit();'); $objResponse->script($sAttach); $objResponse->script($sOnReady); $objResponse->script('xajax_getAdmEditReasons(' . admin_log::ACT_ID_EDIT_BLOGS . ');'); }
<table class="tbl-projects-draft"> <colgroup> <col width="30" /> <col width="" /> <col width="200" /> <col width="120" /> <col width="80" /> <col width="60" /> </colgroup> <?php foreach ($drafts as $draft) { ?> <?php if ($draft['post_id']) { $blogmsg = blogs::GetMsgInfo($draft['post_id'], $error, $perm); } ?> <tr class="b-layout__tr"> <td class="b-layout__one b-layout__one_bordbot_ccc b-layout__one_padtb_10"><div class="b-check b-check_padleft_10 b-check_top_2"><input id="del_draft_<?php echo $draft['id']; ?> " class="b-check__input" type="checkbox" name="del_draft[]" value="<?php echo $draft['id']; ?> " onClick="DraftsCheckToggleDeleteAll(this);" /></div></td> <td class="b-layout__one b-layout__one_bordbot_ccc b-layout__one_padtb_10"><div class="b-layout__txt"> <?php if ($is_ban || $draft['is_blocked']) { ?> <?php
/** * Регистрирует сообщение-предупреждение о некорректном поведении в блогах. * * @param int $login логин пользователя-получателя * @param int $msgid id сообщения * @param int $thid id ветки в блогах * * @return @see messages::Add() */ public function SendWarn($login, $msgid = 0, $thid = 0) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/blogs.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php'; $f_user = new users(); $f_user->GetUser($login); $msg = new blogs(); if ($thid) { $w_msg = $msg->GetThreadMsgInfo($thid, $error, $perm); //print_r($w_msg); // exit; } else { $w_msg = $msg->GetMsgInfo($msgid, $error, $perm); } $message = "\n{$f_user->uname} {$f_user->usurname}!\n\nМодераторы нашего ресурса нашли ваш комментарий некорректным:\n\n\"{$f_user->uname} {$f_user->usurname}. [{$login}] " . date('[d.m.Y | H:i]', strtotimeEx($w_msg['post_time'])) . ' ' . reformat($w_msg['title']) . ' ' . reformat($w_msg['msgtext']) . ' " Мы призываем вас впредь не делать подобных комментариев, иначе модераторы лишат ваш аккаунт доступа к сайту. Это сообщение было выслано автоматически, и ответ на него не будет рассматриваться. Надеемся на понимание, Команда Free-lance.ru.'; self::Add(users::GetUid($err, 'admin'), $login, $message, '', 1); }
if ($prev_gr != $gr) { $aData = blogs::getGroupAndPos($thread_id, get_uid(false), $t_ord); $page = ceil($aData['pos'] / $blogspp); $gr = $aData['id_gr']; } header('Location: ' . getFriendlyURL('blog_group', $gr) . "?t={$t}{$ord_get_part}&tr={$thread}" . ($page > 1 ? "&page={$page}" : '')); exit; } case 'edit': if (!get_uid()) { header('Location: /fbd.php'); die; } $edit_tr = $edit_id = intval(trim($tr)); if ($edit_tr) { $edit_msg = $blog_obj->GetMsgInfo($edit_tr, $error, $perm); if ($edit_msg['fromuser_id'] != get_uid() && $mod) { unset($edit_msg); unset($action); header('Location: ' . getFriendlyURL('blog_group', $gr) . "?t={$t}{$ord_get_part}"); } } break; } } stat_collector::setStamp(); // stamp $blog = new blogs(); //$thread = $blog->GetThread($thread, $error); if (!$page) { $page = intval(trim($_GET['page']));
/** * Отсылка уведомления в личку об Утверждение/удаление записи * * @param int $user_id идентификатор модератора * @param int $from_id идентификатор пользователя * @param int $content_id идентификатор сущности из admin_contents * @param int $rec_id идентификатор записи * @param int $rec_type тип записи * @param int $action действие: 1 - утверждено, 2 - удалено * @param string $reason причина * @return bool true - успех, false - провал */ function sendNotification($user_id = 0, $from_id = 0, $content_id = 0, $rec_id = 0, $rec_type = 0, $action = 1, $reason = '') { global $DB; if ($action != 2) { return; } require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/admin_parent.php'; $need_send = false; $users = new users(); $users->GetUserByUID($from_id); $reason = str_replace('%USERNAME%', $users->uname . ' ' . $users->usurname, $reason); switch ($content_id) { case self::MODER_MSSAGES: // Личные сообщения $DB9 = new DB('plproxy'); $sQuery = 'SELECT * FROM messages_moder_send_get(?i, ?i);'; $aMsg = $DB9->row($sQuery, $from_id, $rec_id); $msg = $aMsg['msg_text']; $message = "Сообщение заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; $need_send = true; break; case self::MODER_BLOGS: // Блоги: посты и комментарии require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/blogs.php'; $aMsg = blogs::GetMsgInfo($rec_id, $ee, $tt); $msg = $aMsg['msgtext']; if ($rec_type == 1) { $message = "Сообщение в блоге заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; } if ($rec_type == 2) { $message = "Комментарий в блоге заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; } $need_send = true; break; case self::MODER_COMMUNITY: // Сообщества: посты и комментарии $sql = "SELECT * FROM commune_messages WHERE id = ?i"; $aMsg = $DB->row($sql, $rec_id); $msg = $aMsg['msgtext']; if ($rec_type == 1) { $message = "Сообщение в сообществе заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; } if ($rec_type == 2) { $message = "Комментарий в сообществе заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; } $need_send = true; break; case self::MODER_PROJECTS: // Проекты $sql = "SELECT * FROM projects WHERE id= ?i"; $aMsg = $DB->row($sql, $rec_id); $msg = $aMsg['descr']; $message = "Проект заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; $need_send = true; break; case self::MODER_PRJ_OFFERS: // Предложения в проектах $sql = "SELECT * FROM projects_offers WHERE id = ?i"; $aMsg = $DB->row($sql, $rec_id); $msg = $aMsg['descr']; $message = "Предложение в проекте заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; $need_send = true; break; case self::MODER_ART_COM: // Комментарии в статьях $sql = "SELECT * FROM articles_comments WHERE id = ?i"; $aMsg = $DB->row($sql, $rec_id); $msg = $aMsg['msgtext']; $message = "Комментарий в статьях заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; $need_send = true; break; case self::MODER_PROFILE: // Изменения в профилях $message = "Изменение в профиле отредактировано.\n\nПричина: {$reason}"; $need_send = true; break; case self::MODER_PRJ_DIALOG: // Комментарии к предложениям по проектам $sql = "SELECT * FROM projects_offers_dialogue WHERE id = ?i"; $aMsg = $DB->row($sql, $rec_id); $msg = $aMsg['post_text']; $message = "Комментарий к предложению проекта заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; $need_send = true; break; case self::MODER_CONTEST_COM: // Комментарии к предложениям конкурсов $sql = "SELECT * FROM projects_contest_msgs WHERE id = ?i"; $aMsg = $DB->row($sql, $rec_id); $msg = $aMsg['msg']; $message = "Комментарии к предложению конкурса заблокирован.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; $need_send = true; break; case self::MODER_PORTF_CHOISE: // Уточнения к разделам в портфолио $message = "Уточнения к разделам в портфолио отредактированы.\n\nПричина: {$reason}"; $need_send = true; break; case self::MODER_PORTFOLIO: // Работы в портфолио $message = "Работа в портфолио заблокирована.\n\nПричина: {$reason}"; $need_send = true; break; case self::MODER_SDELAU: // Предложения фрилансеров "Сделаю" $sql = "SELECT * FROM freelance_offers WHERE id = ?i"; $aMsg = $DB->row($sql, $rec_id); $msg = $aMsg['descr']; $message = "Объявление в предложениях фрилансеров заблокировано.\n\n" . ($msg ? "-----\n\n{$msg}\n\n-----\n\n" : "") . "Причина: {$reason}"; $need_send = true; break; } if ($need_send) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $users = new users(); messages::Add(users::GetUid($err, 'admin'), $users->GetField($from_id, $err, 'login'), $message, '', 1); } }
} header("Location: " . getFriendlyURL("blog", $thread) . "?pagefrom=" . intval($_POST['pagefrom']) . '&openlevel=' . $reply . "&ord=" . $_GET["ord"]); } } } if ($error_flag) { $action = "edit"; $edit_id = $reply; } else { break; } case "edit": $edit_id = intval(trim($_GET['id'])); $form_uri = "/blogs/view.php?id=" . htmlspecialchars($_GET['id']); $blogs = new blogs(); $edit_msg = $blogs->GetMsgInfo($edit_id, $error, $perm); if ($PDA) { $edit_comment = true; $form_uri .= ($error_flag ? '&action=edit&editcnt' : '') . "&tr=" . intval($_GET['tr']); $content = "edit_cnt.php"; } break; case "deletewinner": $winner = intval(trim($_GET['winner'])); if ($winner && $thread && $_SESSION['uid']) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/projects.php"; projects::DeleteWinner($_SESSION['uid'], $winner); header("Location: /blogs/view.php?tr={$thread}&ord=" . $_GET["ord"]); exit; } break;
/** * Публикация черновика * * @param int $draft_id ID черновика * @param int $type Тип черновика * @param bool $is_edit false - публикация нового поста/прокта, true - публикация существующего поста/проекта */ function PostDraft($draft_id, $type, $is_edit = false) { $objResponse = new xajaxResponse(); session_start(); $draft_id = intval($draft_id); $uid = get_uid(false); if ($uid) { require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/drafts.php"; $draft = drafts::getDraft($draft_id, $uid, $type); if ($draft) { switch ($type) { case 2: // Личка require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php"; $attachedfiles = new attachedfiles($attachedfiles_session); $attachedfiles_tmpdraft_files = drafts::getAttachedFiles($draft_id, 3); if ($attachedfiles_tmpdraft_files) { $attachedfiles_draft_files = array(); foreach ($attachedfiles_tmpdraft_files as $attachedfiles_draft_file) { $attachedfiles_draft_files[] = $attachedfiles_draft_file; } $attachedfiles->setFiles($attachedfiles_draft_files); } $objResponse->assign("f_attachedfiles_session", "value", $attachedfiles->getSession()); $objResponse->assign("f_msg", "innerHTML", $draft['msg']); $objResponse->assign("f_msg_to", "value", $draft['to_login']); $objResponse->assign("f_draft_id", "value", $draft['id']); $objResponse->assign("f_to_login", "value", $draft['to_login']); $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='/contacts/?from=" . $draft['to_login'] . "'; \$('f_frm').setAttributeNode(attrAction);"); $objResponse->script('$("f_frm").submit();'); break; case 3: // Блоги require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/blogs.php"; $objResponse->assign("f_draft_id", "value", $draft['id']); $objResponse->assign("f_msg", "value", $draft['msgtext']); $objResponse->assign("f_yt_link", "value", $draft['yt_link']); if ($draft['is_close_comments'] == 't') { $objResponse->script('$("f_is_close_comments").set("checked",true);'); } if ($draft['is_private'] == 't') { $objResponse->script('$("f_is_private").set("checked",true);'); } $objResponse->assign("f_category", "value", $draft['category'] . '|0'); if ($is_edit) { $blogmsg = blogs::GetMsgInfo($draft['post_id'], $error, $perm); $objResponse->assign("f_msg_name", "value", $draft['title']); $objResponse->assign("f_tr", "value", $blogmsg['thread_id']); $objResponse->assign("f_olduser", "value", $blogmsg['fromuser_id']); $objResponse->assign("f_reply", "value", $draft['post_id']); $objResponse->assign("f_action", "value", 'change'); $objResponse->assign("f_msg_name", "value", $draft['title']); $objResponse->assign("f_draft_post_id", "value", $draft['post_id']); $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='/blogs/view.php?id=" . $draft['post_id'] . "'; \$('f_frm').setAttributeNode(attrAction);"); } else { $objResponse->assign("f_name", "value", $draft['title']); $objResponse->assign("f_sub_ord", "value", 'new'); $objResponse->assign("f_action", "value", 'new_tr'); $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='/blogs/viewgroup.php?gr=" . $draft['category'] . "&ord=new&tr='; \$('f_frm').setAttributeNode(attrAction);"); } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php"; $attachedfiles = new attachedfiles($attachedfiles_session); $attachedfiles_tmpdraft_files = drafts::getAttachedFiles($draft_id, 1); if ($attachedfiles_tmpdraft_files) { $attachedfiles_draft_files = array(); foreach ($attachedfiles_tmpdraft_files as $attachedfiles_draft_file) { $attachedfiles_draft_files[] = $attachedfiles_draft_file; } $attachedfiles->setFiles($attachedfiles_draft_files, 1); } $objResponse->assign("f_attachedfiles_session", "value", $attachedfiles->getSession()); $objResponse->assign("f_poll_question", "value", $draft['poll_question']); $objResponse->assign("f_poll_type", "value", $draft['poll_type']); $answers = $draft['poll_answers']; if (count($answers)) { $out = ''; foreach ($answers as $answer) { $out .= '<input type="hidden" value="' . htmlspecialchars($answer, ENT_QUOTES) . '" name="answers[]" />'; } $objResponse->assign("f_poll_answers", "innerHTML", $out); } $objResponse->script('$("f_frm").submit();'); break; case 4: // Сообщества $objResponse->assign("f_id", "value", $draft['commune_id']); $objResponse->assign("f_draft_id", "value", $draft['id']); $objResponse->assign("f_category_id", "value", intval($draft['category'])); $objResponse->assign("f_title", "value", $draft['title']); $objResponse->assign("f_msgtext", "value", $draft['msg']); $objResponse->assign("f_youtube_link", "value", $draft['yt_link']); if ($draft['close_comments'] == 't') { $objResponse->script('$("f_close_comments").set("checked",true);'); } if ($draft['is_private'] == 't') { $objResponse->script('$("f_is_private").set("checked",true);'); } if ($is_edit) { $objResponse->assign("f_draft_post_id", "value", $draft['post_id']); $objResponse->assign("f_top_id", "value", $draft['post_id']); $objResponse->assign("f_message_id", "value", $draft['post_id']); $objResponse->assign("f_page", "value", 0); $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='" . getFriendlyURL('commune', $draft['post_id']) . "'; \$('f_frm').setAttributeNode(attrAction);"); $objResponse->assign("f_action", "value", "do.Edit.post"); } else { $objResponse->script("var attrAction = document.createAttribute('action'); attrAction.value='" . getFriendlyURL('commune_commune', $draft['commune_id']) . "#o'; \$('f_frm').setAttributeNode(attrAction);"); $objResponse->assign("f_action", "value", "do.Create.post"); } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php"; $attachedfiles = new attachedfiles($attachedfiles_session); if (!$is_edit) { $attachedfiles_tmpdraft_files = drafts::getAttachedFiles($draft_id, 2); if ($attachedfiles_tmpdraft_files) { $attachedfiles_draft_files = array(); foreach ($attachedfiles_tmpdraft_files as $attachedfiles_draft_file) { $attachedfiles_draft_files[] = $attachedfiles_draft_file; } $attachedfiles->setFiles($attachedfiles_draft_files, 1); } } $objResponse->assign("f_attachedfiles_session", "value", $attachedfiles->getSession()); $objResponse->assign("f_poll_question", "value", $draft['poll_question']); $objResponse->assign("f_poll_type", "value", $draft['poll_type']); $answers = $draft['poll_answers']; if (count($answers)) { $out = ''; foreach ($answers as $answer) { $out .= '<input type="hidden" value="' . htmlspecialchars($answer, ENT_QUOTES) . '" name="answers[]" />'; } $objResponse->assign("f_poll_answers", "innerHTML", $out); } $objResponse->script('$("f_frm").submit();'); break; } } } return $objResponse; }