Jump to content
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 дней) с пользователя автоматически снимались такие функции?

Featured Replies

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

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

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

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

Это где?

Тут можно:

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

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

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

  • Author

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

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

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

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

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

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

  • Author

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

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

  • Author

@newbie,

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

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

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

  • Author

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

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

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

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

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

  • Author

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

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

 

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

  • Author

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

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

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.