October 10, 20178 yr Есть ли какой то способ что бы модераторам выдавались модерирующие функции временно, а через некоторое время (скажем 30 дней) с пользователя автоматически снимались такие функции?
October 11, 20178 yr Author Насколько я знаю, нет такого.А если в файле отвечающим за модерирование выставить такую выборку на лимит?
October 12, 20178 yr А если в файле отвечающим за модерирование выставить такую выборку на лимит? Это где?Тут можно:- Добавить поле в таблицу модераторов- Добавить поле в АЦ на страницу добавления/редактирования модераторов, в котором указывать время окончания модерирования- Сравнивать временные метки, и, если время вышло, удалять запись из БД
October 12, 20178 yr Author - Добавить поле в таблицу модераторов - Добавить поле в АЦ на страницу добавления/редактирования модераторов, в котором указывать время окончания модерирования - Сравнивать временные метки, и, если время вышло, удалять запись из БДПодходит любой метод, главное что бы он меньше всего загружал метод.
October 12, 20178 yr Подходит любой метод, главное что бы он меньше всего загружал метод. Это описание 1 варианта, а не выбор.
October 12, 20178 yr Author Это описание 1 варианта, а не выбор.Пожжжжаалуйста, напишите плиз как это реализовать :)
October 17, 20178 yr Внимание! Перед тестами сделайте дамп таблицы moderators 1. Выполнить запросALTER TABLE `moderators` ADD `cmod_moderate_time` INT(10) NOT NULL DEFAULT '0'; 2. Открыть \admin\applications\forums\skin_cp\cp_skin_forums.phpНайти public function moderatorPermissionForm( $form, $form_code, $mid, $mem, $type, $gid, $gname, $button ) { Ниже добавить $cmodModTime = $form['cmod_moderate_time'] ? gmdate("d.m.Y", $form['cmod_moderate_time']) : null; Найти <li> <label>{$this->lang->words['frm_m_mm']}<span class='desctext'>( <a href='#' onClick="window.open('{$this->settings['_base_url']}app=core&module=help&id=mod_mmod','Help','width=250,height=400,resizable=yes,scrollbars=yes'); return false;">{$this->lang->words['frm_m_mm_info']}</a> )</span></label> {$form['can_mm']} </li> Ниже добавить <li> <label><span class='desc'>Дата окончания модерирования</span></label> <input type='text' size='20' name='cmod_moderate_time' id='cmod_moderate_time' class='input_text' value='{$cmodModTime}' /> <img src='{$this->settings['img_url']}/date.png' alt='{$this->lang->words['generic_date']}' id='cmod_moderate_time_icon' class='clickable' /> </li> <script type="text/javascript"> document.observe("dom:loaded", function() { $('cmod_moderate_time_icon').observe('click', function(){ new CalendarDateSelect( $('cmod_moderate_time'), { year_range: 6, close_on_click: true } ); }); }); </script> <script type='text/javascript' src='{$this->settings['public_dir']}js/3rd_party/calendar_date_select/calendar_date_select.js'></script> <link rel="stylesheet" type="text/css" media='screen' href="{$this->settings['public_dir']}/style_css/{$this->registry->output->skin['_csscacheid']}/calendar_select.css" /> 3. Открыть \admin\applications\forums\modules_admin\forums\moderator.php Найти 2 раза 'mod_can_set_close_time' => intval( $this->request['mod_can_set_close_time'] ), Ниже добавить 'cmod_moderate_time' => $this->modLimitDateToUnix($this->request['cmod_moderate_time']), Добавить новый метод private function modLimitDateToUnix($date) { $unixtime = strtotime($date); return ($unixtime > time()) ? $unixtime : 0; } 4. Загрузить файл \admin\applications\forums\tasks\modlimit.php 5. Импортировать задачуФайлыmodlimit.zip
October 17, 20178 yr @newbie, ого, а Ваш способ подойдёт для версии 3.4? И останется ли с ним выбор, каким модераторам оставить права навсегда, а каким поставить ограничение?
October 17, 20178 yr а Ваш способ подойдёт для версии 3.4? Не знаю. Можете проверить.И останется ли с ним выбор, каким модераторам оставить права навсегда, а каким поставить ограничение? Задачей будут удаляться модераторы, для которых установлен временной лимит. По умолчанию он равен 0. Оставляйте поле пустым при создании/редактировании модератора, чтобы дать права на неограниченное время.
October 17, 20178 yr Author Добавить новый методА куда его именно добавлять в файле moderator.php? В самый низ файла? Сейчас буду тестировать.
October 17, 20178 yr Author Кстати. А можно в темы вывести дату окончания модерирования? Даже лучше не дату, а кол-во дней модерирования?
Есть ли какой то способ что бы модераторам выдавались модерирующие функции временно, а через некоторое время (скажем 30 дней) с пользователя автоматически снимались такие функции?