module-comment/comment/module.php

169 lines
6.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* AVE.cms - Модуль Комментарии
*
* @package AVE.cms
* @subpackage module_Comment
* @filesource
*/
if(!defined('BASE_DIR')) exit;
if (defined('ACP'))
{
$modul['ModuleName'] = 'Комментарии';
$modul['ModuleSysName'] = 'comment';
$modul['ModuleVersion'] = '1.2.2a';
$modul['ModuleDescription'] = 'Данный модуль предназначен для организации системы комментариев для документов на сайте. Для того, чтобы использовать данный модуль, разместите системный тег <strong>[mod_comment]</strong> в нужном месте шаблона рубрики.';
$modul['ModuleAutor'] = 'AVE.CMS Team';
$modul['ModuleCopyright'] = '&copy; 2007-2013 AVE.CMS';
$modul['ModuleIsFunction'] = 1;
$modul['ModuleTemplate'] = 0;
$modul['ModuleAdminEdit'] = 1;
$modul['ModuleFunction'] = 'mod_comment';
$modul['ModuleTag'] = '[mod_comment]';
$modul['ModuleTagLink'] = null;
$modul['ModuleAveTag'] = '#\\\[mod_comment]#';
$modul['ModulePHPTag'] = '<?php mod_comment(); ?>';
}
/**
* Функция, предназначенная для вывода списка комментариев к данному документу.
* Она будет выполнена при парсинге шаблона вместо системного тега [mod_comment].
*/
function mod_comment()
{
global $AVE_Template;
// Подключаем класс и создаем объект дял работы
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);
// Обращаемся к методу commentListShow() и отображаем список комментариев
$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);
// Определяем, какой параметр пришел из строки запроса браузера
switch($_REQUEST['action'])
{
// Если form, тогда отображаем форму для добавления нового комментария
case 'form':
$comment->commentPostFormShow($tpl_dir);
break;
// Если comment, тогда производим запись нового комментария в БД
case 'comment':
$comment->commentPostNew($tpl_dir);
break;
// Если edit, тогда открываем форму для редактирования текста комментария
case 'edit':
$comment->commentPostEdit((int)$_REQUEST['Id']);
break;
// Если delete, тогда удаляем комментарий
case 'delete':
if (UGROUP==1)
{
$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->commentAdminDelete((int)$_REQUEST['Id']);
break;
}
}
?>