Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Trotor

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

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

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

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

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

×
×
  • Создать...