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

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

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

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

Или как лучший вариант, внести информацию о оставшихся кол-вах дней на страницу модераторов - /index.php?app=forums&module=extras&section=stats&do=leaders

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

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

Без разницы. Лишь бы в класс попасть.

Если сомневаетесь, то добавьте перед

	/**
 * Rebuild moderator cache
 *
 * @return	void		[Outputs to screen]
 */
public function rebuildModeratorCache()

Или как лучший вариант, внести информацию о оставшихся кол-вах дней на страницу модераторов - /index.php?app=forums&module=extras&section=stats&do=leaders

Всем? Там же и администрация и супермодераторы

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

Без разницы. Лишь бы в класс попасть.

Если сомневаетесь, то добавьте перед

Добавил в самый низ, сработало. Но лучше сделаю как вы советуете.

 

Всем? Там же и администрация и супермодераторы

Да, но админы и супермодераторы по умолчанию модерят все разделы, поэтому на них нет записей в таблице модераторов. Хотелось что бы там были записи о тех на кого есть запись в таблице модераторов.

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

Да, но админы и супермодераторы по умолчанию модерят все разделы, поэтому на них нет записей в таблице модераторов. Хотелось что бы там были записи о тех на кого есть запись в таблице модераторов.

 

Что делать, если юзер модерирует 2 и более форумов, и для каждого установлено свое время?

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

Что делать, если юзер модерирует 2 и более форумов, и для каждого установлено свое время?

На этой странице есть список выпадающих кто какие разделы модерит. Так не возможно?

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

@newbie,

Пожалуйста очень нужно вывести где то информацию что бы человек знал сколько у него лимита модерирования дней (или до какого числа). Можно в профилях, можно на странице модераторов - главное что бы выводилась эта информация для ознакомления модераторов.

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

Открыть \admin\applications\forums\modules_public\extras\stats.php

Найти

			$mod_array = array();

Выше добавить

			$modMidsWithLimit = array();
		$modGidsWithLimit = array();

		foreach ($this->cache->getCache('moderators') as $mod)
		{
			if (isset($mod['cmod_moderate_time']) and $mod['cmod_moderate_time'] > 0 and ($mod['cmod_moderate_time'] > time()))
			{
				$days = IPSTime::time_ago($mod['cmod_moderate_time'] - time());

				if ($mod['is_group'])
				{
					$modGidsWithLimit[$mod['group_id']][$mod['forum_id']] = $days;
				}
				else
				{
					$modMidsWithLimit[$mod['member_id']][$mod['forum_id']] = $days;
				}
			}
		}

 

Найти

						$mod_array[ $i['member_id'] ]['forums'][ $fid ] = ipsRegistry::getClass('class_forums')->forum_by_id[ $fid ]['name'];

Заменить на

						$d = '';
					if (isset($modMidsWithLimit[$i['member_id']][$fid]))
					{
						$d = $modMidsWithLimit[$i['member_id']][$fid];
					}
					elseif (isset($modGidsWithLimit[$i['member_group_id']][$fid]))
					{
						$d = $modGidsWithLimit[$i['member_group_id']][$fid];
					}
					$mod_array[ $i['member_id'] ]['forums'][ $fid ] = ipsRegistry::getClass('class_forums')->forum_by_id[ $fid ]['name'] . ($d ? ' Осталось ' . $d: '');

 

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

@newbie,

Большое спасибо, то что надо!

 

Скажите, а как изменить английское days на русское дней? И можно дату красным цветом выделить?

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

Скажите, а как изменить английское days на русское дней?

\admin\sources\base\core.php

Смотрите метод time_ago

	static public function time_ago( $ts )

 

Только там еще и часы/минуты могут быть.

Для дней можно использовать

$days = floor(($mod['cmod_moderate_time'] - time()) / 86400);

И можно дату красным цветом выделить?

Нельзя использовать теги внутри option.

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

@newbie,

А возможно что то подобное и для групп реализовывать? Что бы можно было назначать пользователю выбранную группу временно, а потом при истечение времени автоматически пользователь возвращался в исходную группу.

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

А возможно что то подобное и для групп реализовывать? Что бы можно было назначать пользователю выбранную группу временно, а потом при истечение времени автоматически пользователь возвращался в исходную группу.

Это вопрос для другой темы.

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

Сейчас на странице 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.