Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Haktar

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

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Насколько я знаю, нет такого.

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

Share this post


Link to post
Share on other sites

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

Это где?

Тут можно:

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

@newbie,

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...