You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
6.9 KiB
169 lines
6.9 KiB
<?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'] = '© 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; |
|
} |
|
} |
|
|
|
?>
|