Перейти к публикации
View in the app

A better way to browse. Learn more.

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

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

Есть ли какой то способ что бы модераторам выдавались модерирующие функции временно, а через некоторое время (скажем 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? В самый низ файла?

 

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

Опубликовано:
  • Автор

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.