Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Лимит модерирования

Есть ли какой то способ что бы модераторам выдавались модерирующие функции временно, а через некоторое время (скажем 30 дней) с пользователя автоматически снимались такие функции?

Рекомендованные сообщения

Насколько я знаю, нет такого.

  • Автор
Насколько я знаю, нет такого.

А если в файле отвечающим за модерирование выставить такую выборку на лимит?

А если в файле отвечающим за модерирование выставить такую выборку на лимит?

Это где?

Тут можно:

- Добавить поле в таблицу модераторов

- Добавить поле в АЦ на страницу добавления/редактирования модераторов, в котором указывать время окончания модерирования

- Сравнивать временные метки, и, если время вышло, удалять запись из БД

  • Автор

- Добавить поле в таблицу модераторов

- Добавить поле в АЦ на страницу добавления/редактирования модераторов, в котором указывать время окончания модерирования

- Сравнивать временные метки, и, если время вышло, удалять запись из БД

Подходит любой метод, главное что бы он меньше всего загружал метод.

Подходит любой метод, главное что бы он меньше всего загружал метод.

Это описание 1 варианта, а не выбор.

  • Автор

Это описание 1 варианта, а не выбор.

Пожжжжаалуйста, напишите плиз как это реализовать :)

  • Автор

@newbie,

Так не поделитесь информацией как это реализовать? :(

Так не поделитесь информацией как это реализовать?

Как появится время.

  • Автор

Как появится время.

Спасибо, буду ждать.

Я в принципе написал черновик. Нужно только оформить и добраться до файлов.

Внимание! Перед тестами сделайте дамп таблицы 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

@newbie, ого, а Ваш способ подойдёт для версии 3.4? И останется ли с ним выбор, каким модераторам оставить права навсегда, а каким поставить ограничение?

а Ваш способ подойдёт для версии 3.4?

Не знаю. Можете проверить.

И останется ли с ним выбор, каким модераторам оставить права навсегда, а каким поставить ограничение?

Задачей будут удаляться модераторы, для которых установлен временной лимит. По умолчанию он равен 0.

Оставляйте поле пустым при создании/редактировании модератора, чтобы дать права на неограниченное время.

  • Автор

Добавить новый метод

А куда его именно добавлять в файле moderator.php? В самый низ файла?

 

Сейчас буду тестировать.

  • Автор

Кстати. А можно в темы вывести дату окончания модерирования? Даже лучше не дату, а кол-во дней модерирования?

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.