Перейти к контенту

создание опроса в чужой теме


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

Нужно разрешить некоторым пользователям создавать опросы в темах, созданных другими авторами. Эти пользователи не являются модераторами.

Как вариант через отдельную группу и маску.

 

Добавление опроса через создание поста в теме - нужно чтобы у пользователей в форме ответа была строчка:

Опции опроса Нажмите сюда для управления опросом в этой теме

 

IPB 2.3.1

 

Готов оплатить модификацию.

Изменено пользователем vladimir_k
Ссылка на комментарий
Поделиться на других сайтах

Сейчас гляну в коды; на "однушке" такое можно сделать довольно просто; надо посмотреть, что изменилось в старших версиях.

 

 

UPD: Собственно, готово, опробовано на 2.3.6.

Аська в профиле, можно здесь в ПМ.

Изменено пользователем FatCat
Ссылка на комментарий
Поделиться на других сайтах

С разрешения vladimir_k, сам мод:

 

Мод через дополнительную маску доступа / вторичную группу.

 

1. Создаете новую группу, назвать можно "Модераторы опросов" или как угодно. Если нужно, под нее создать предварительно маску доступа; или использовать любую из имеющихся.

 

Важно, что функция создания опросов в чужих темах будет только при выборе этой маски вторичной. Если выбрать ее первичной - функция не появится.

 

2. Смотрите айдишник этой группы, например он будет "7". Используете свою цифру вместо "7" в двух следующих заменах кодах:

 

3. sources\classes\post\class_post.php

Найти:

		$this->can_add_poll				  = intval($this->ipsclass->member['g_post_polls']);
	$this->max_poll_choices_per_question = intval($this->ipsclass->vars['max_poll_choices']);
	$this->max_poll_questions			= intval($this->ipsclass->vars['max_poll_questions']);
	$this->can_edit_poll				 = ( $this->ipsclass->member['g_is_supmod'] ) ? $this->ipsclass->member['g_is_supmod'] : ( isset($this->ipsclass->member['_moderator'][ $this->forum['id'] ]['edit_post']) ? intval( $this->ipsclass->member['_moderator'][ $this->forum['id'] ]['edit_post'] ) : 0 );

и добавить ниже:

		if( stristr($this->ipsclass->member['mgroup_others'],",7,") )$this->can_add_poll = 1;

 

4. sources\classes\post\class_post_reply.php

Найти:

		if ( $this->can_add_poll )
	{
		$this->can_add_poll = 0;

		if ( ! $this->topic['poll_state'] )
		{
			if ( $this->ipsclass->member['id'] and ! $this->obj['moderate'] )
			{
				if ( $this->ipsclass->member['g_is_supmod'] == 1 )
				{
					$this->can_add_poll = 1;
				}
				else if ( $this->topic['starter_id'] == $this->ipsclass->member['id'] )
				{
					if ( ($this->ipsclass->vars['startpoll_cutoff'] > 0) AND ( $this->topic['start_date'] + ($this->ipsclass->vars['startpoll_cutoff'] * 3600) > time() ) )
					{
						$this->can_add_poll = 1;
					}
				}
			}
		}
	}

и добавить ниже:

		if( stristr($this->ipsclass->member['mgroup_others'],",7,") )$this->can_add_poll = 1;

 

Как заметили, добавляемая строка в двух файлах одинаковая.

Если нужно, чтобы могло работать и по первичной группе, строка будет чуть иной:

if( stristr($this->ipsclass->member['mgroup_others'],",7,") or $this->ipsclass->member['mgroup'] == "7" )$this->can_add_poll = 1;

Если нужно только по первичной группе, оставьте в условии только проверку mgroup без проверки mgroup_others. И не забывать отличий, что в строке mgroup_others может быть несколько цифр, поэтому запятые с двух сторон; в поле mgroup может быть только одна цифра, поэтому никаких запятых.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.