0) ? (int)$p[0] : 0; // Y - количество символов (по умолчанию 150) $chars = (isset($p[1]) && $p[1] > 0) ? (int)$p[1] : 150; if ($limit > 0) { $tpl_dir = BASE_DIR . '/modules/comment/templates/'; $lang_file = BASE_DIR . '/modules/comment/lang/' . ($_SESSION['user_language'] ?? 'ru') . '.txt'; if (file_exists($lang_file)) $AVE_Template->config_load($lang_file, 'module'); // Передаем в метод ДВА значения: лимит и обрезку $items = $comment->getLatestComments($limit, $chars); $AVE_Template->assign('last_comments_items', $items); echo $AVE_Template->fetch($tpl_dir . 'last_comments.tpl'); return; } // --- СТАНДАРТНЫЙ РЕЖИМ --- $tpl_dir = BASE_DIR . '/modules/comment/templates/'; $lang_file = BASE_DIR . '/modules/comment/lang/' . ($_SESSION['user_language'] ?? 'ru') . '.txt'; if (file_exists($lang_file)) $AVE_Template->config_load($lang_file, 'module'); $comment->commentListShow($tpl_dir); } /** * Следующий раздел описывает правила поведения модуля и его функциональные возможности * только при работе в Публичной части сайта. */ // Определяем, что мы не находимся в Панели управления и в строке запроса происходит обращение именно к данному модулю if (!defined('ACP') && isset($_REQUEST['module']) && $_REQUEST['module'] == 'comment' && isset($_REQUEST['action'])) { // Подключаем основной класс и создаем объект require_once(BASE_DIR . '/modules/comment/class/comment.php'); $comment = new Comment; // Определяем директори, где хранятся файлы с шаблонами модуля и подключаем языковые переменные $tpl_dir = BASE_DIR . '/modules/comment/templates/'; $lang_file = BASE_DIR . '/modules/comment/lang/' . $_SESSION['user_language'] . '.txt'; $AVE_Template->config_load($lang_file, 'module'); // Определяем, какой параметр пришел из строки запроса браузера switch($_REQUEST['action']) { // Если form, тогда отображаем форму для добавления нового комментария case 'form': $comment->commentPostFormShow($tpl_dir); break; // Если comment, тогда производим запись нового комментария в БД case 'comment': $comment->commentPostNew($tpl_dir); break; // --- НОВОЕ: ОБРАБОТКА ГОЛОСОВАНИЯ (РЕЙТИНГ) --- case 'vote': $comment->commentVote(); break; // Если edit, тогда открываем форму для редактирования текста комментария case 'edit': if (!empty(UGROUP)) { $comment->commentPostEdit((int)$_REQUEST['Id']); } break; // Если delete, тогда удаляем комментарий case 'delete': if (!empty(UGROUP)) { $comment->commentPostDelete((int)$_REQUEST['Id']); } break; // Если postinfo, тогда отображаем окно с информацией об авторе комментария case 'postinfo': $comment->commentPostInfoShow($tpl_dir); break; // Если lock или unlock, тогда запрещаем или разрешаем оставлять ответы для имеющихся комментариев case 'lock': case 'unlock': if (UGROUP==1) { $comment->commentReplyStatusSet((int)$_REQUEST['Id'], $_REQUEST['action']); } break; // Если open или close, тогда разрешаем или запрещаем полное комментирование документа case 'open': case 'close': if (UGROUP==1) { $comment->commentStatusSet((int)$_REQUEST['docid'], $_REQUEST['action']); } break; } } /** * Следующий раздел описывает правила поведения модуля и его функциональные возможности * только при работе в Административной части сайта. */ if (defined('ACP') && !empty($_REQUEST['moduleaction'])) { // Подключаем основной класс и создаем объект require_once(BASE_DIR . '/modules/comment/class/comment.php'); $comment = new Comment; // Определяем директори, где хранятся файлы с шаблонами модуля и подключаем языковые переменные $tpl_dir = BASE_DIR . '/modules/comment/templates/'; $lang_file = BASE_DIR . '/modules/comment/lang/' . $_SESSION['admin_language'] . '.txt'; $AVE_Template->config_load($lang_file, 'admin'); // Определяем, какой параметр пришел из строки запроса браузера switch ($_REQUEST['moduleaction']) { // Если 1, тогда отображаем список всех комментариев с постраничной навигацией case '1': $comment->commentAdminListShow($tpl_dir); break; // Если admin_edit, тогда открываем форму для редактирования выбранного комментария case 'admin_edit': $comment->commentAdminPostEdit($tpl_dir); break; // Если settings, тогда открываем страницу с настройками данного модуля case 'settings': // Подключаем файл класса для работы с пользователями, создаем объект и получаем список // всех групп пользователей, имеющихся в системе. require_once(BASE_DIR . '/class/class.user.php'); $AVE_User = new AVE_User; $AVE_Template->assign('groups', $AVE_User->userGroupListGet()); $comment->commentAdminSettingsEdit($tpl_dir); break; case 'admin_del': $comment_id = $_REQUEST['id'] ?? $_REQUEST['Id']; $comment->commentAdminDelete($comment_id); break; case 'view_logs': $comment->commentAdminLogsShow($tpl_dir); // Называем его так break; case 'clear_logs': $comment->commentAdminClearLogs(); break; case 'mark_log_read': if (isset($_SESSION['user_group']) && $_SESSION['user_group'] == 1) { $_SESSION['last_log_view_time'] = time(); echo json_encode(['status' => 'ok']); } exit; } } ?>