Перейти к содержанию

(SOS40)_Invite_System_2.0.0


Trekkie

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

(SOS40)_Invite_System_2.0.0


 

This application will allow your community to use an invitation system for new registrations. You can make it mandatory (or not, depending on your configuration). In this case, an invitantion code will be required in order to register a new account in your community.

Public side features:

  • Users can send invitation in 2 places: + Create menu and Invitations on Account Settings.
  • New icon on board top (beside Notifications and Messenger) to display the converted invitees and how many invites the user has. This icon also shows the remaining invitations for the member (just like how many users are online on Chat).
  • 2 widgets: Top Inviters (per week, month, year and general) and Latest Converted Invitees, which are invitations converted to membership.
  • Shows "Invited by" on user profile and on profile card (hover on user link).

Settings:

  • Enable Invite System
  • Require an Invitation to Register an Account
  • Restore deleted or expired invitation
  • Display the popup Invitations link on board top?
  • Display total of remaining invitations
  • Invitation Expires after X days
  • Earn one Invitation at every X new content posted

ACP Features:

  • Invitations Management: a place where you can see the status of each invitation. The status are: PENDING, CONVERTED and EXPIRED. You can invite people, delete or resend invitations. You can also create batch invitations, to be used on a campaign or to be posted elsewhere. It won't send any emails.
  • Bonus form: you can give invitations to a specific member or to a whole member group
  •  

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

  • 2 месяца спустя...

Будет новая версия? А то в этой не работает SMTP и шлет от емейла пользователя

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

  • 1 месяц спустя...
  • 3 месяца спустя...
  • 3 месяца спустя...

Новая версия приложения 2.0.11

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

(SOS41) Invite System 2.0.11.zip

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

1 час назад, rustav сказал:

Новая версия приложения 2.0.11

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

(SOS41) Invite System 2.0.11.zip

Спасибо, под версию 4.1.13.2 наконец-то корректно пошло, а то пользователи (никакие) не могли отправить инвайт кроме как через админ-панель, был какой-то баг с тем, что кнопка "отправить инвайт" перенаправляла в детали аккаунта, которых при этом, ещё и не было в принципе.

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

  • 6 месяцев спустя...

Похоже, эта штука ломает дополнительные поля профиля при регистрации. Баг в хуке, перехватывающем контроллер регистрации. Исправление в файле (invite/hooks/is_registerScreen.php):

	public static function _createMember( $values, $profileFields )
	{
		if ( \IPS\Settings::i()->is_on )
		{
			$val = \IPS\Settings::i()->is_requireinvite ? 'invite_code_req' : 'invite_code_opt';

			if( $values[ $val ] )
			{
				$invite = \IPS\Db::i()->select( '*', 'invite_invites', array( 'invite_code=?', $values[ $val ] ) )->first();

				/* Force email address */
				if( \IPS\Settings::i()->is_emailfrominvite )
				{
					if( $values['email_address'] != $invite['invite_invited_email'] )
					{
						\IPS\Output::i()->error( 'is_error_notsameemails', '2S129/1', 403, '' );
					}
				}
			}
		}

		$member = parent::_createMember( $values, $profileFields );

		if ( \IPS\Settings::i()->is_on )
		{
			$val = \IPS\Settings::i()->is_requireinvite ? 'invite_code_req' : 'invite_code_opt';

			/* Update Member */
			if( $values[ $val ] )
			{
				$invite = \IPS\Db::i()->select( '*', 'invite_invites', array( 'invite_code=?', $values[ $val ] ) )->first();

				/* Force email address */
				if( \IPS\Settings::i()->is_emailfrominvite )
				{
					if( $values['email_address'] != $invite['invite_invited_email'] )
					{
						\IPS\Output::i()->error( 'is_error_notsameemails', '2S129/1', 403, '' );
						return $member;
					}
				}

				if( \IPS\Settings::i()->is_registrationgroup_toggle )
				{
					$member->member_group_id = \IPS\Settings::i()->is_registrationgroup;
				}

				$member->invited_by = $invite['invite_sender_id'];

				if( \IPS\Settings::i()->is_registration_earninvitations AND \IPS\Settings::i()->is_registration_earninvitations_nr > 0 )
				{
					$member->invites_remaining = \IPS\Settings::i()->is_registration_earninvitations_nr;
				}

				$member->save();

				/* Update Invite */
				\IPS\Db::i()->update( 'invite_invites', array( 'invite_status' => 1, 'invite_conv_member_id' => $member->member_id, 'invite_conv_date' => time(), 'invite_expiration_date' => 0 ), array( 'invite_id=?', $invite['invite_id'] ) );
			}
		}

		return $member;
	}

 

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

5 минут назад, Alexander_M сказал:

Похоже, эта штука ломает дополнительные поля профиля при регистрации. Баг в хуке, перехватывающем контроллер регистрации.

Уверены, что проблема в приложении? У меня стоит и есть проблема с доп полями при регистрации, но я знаю форум, где нет этого приложения, но проблема с полями есть

IPS 4.1.18.2

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

6 минут назад, Redneck сказал:

Уверены, что проблема в приложении?

да, мы только что отловили эту ошибку! Если на том форуме где есть проблема не стоит система инвайтов не записываются дополнительные поля при регистрации, значит что то еще у него установлено что мешает это делать. У нас проблема была именно в этом приложении! Сейчас все заработало, мы проверили!

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

Ну, я просто посмотрел на код и там было такое:

$member = parent::_createMember( $values );

Думаю, Вы понимаете, что это косяк: этому методу должен передаваться второй параметр - массив с дополнительными полями профиля (см. реализацию applications/core/modules/front/system/register.php).

Я исправил. У нас проблема исчезла.

Теперь по поводу Вашего товарища с такой же проблемой: тут проблема может быть в каких-то других хуках, или в ошибке совершенно такого же рода в подобном же хуке метода _createMember.

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

Только что, gudman1 сказал:

да, мы только что отловили эту ошибку! Если на том форуме где есть проблема не стоит система инвайтов не записываются дополнительные поля при регистрации, значит что то еще у него установлено что мешает это делать. У нас проблема была именно в этом приложении! Сейчас все заработало, мы проверили!

я отключил приложение и зарегистрировал аккаунт - проблема осталась. И появилась она начиная с 18 версии, до этого проблемы не было

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

А вообще, этот движок по определению полон сюрпризов - потому что он написан косорукими обезъянами. Даже удивительно, что за него просят денег и он так нравится людям, я как адепт phpBB ещё со времен второй версии, помня, какое качества кода там, поражаюсь тому, какое оно в этом движке.

Just now, Redneck said:

я отключил приложение и зарегистрировал аккаунт - проблема осталась. И появилась она начиная с 18 версии, до этого проблемы не было

Вы кеш почистили естественно? Хуки компиллируются и могли закешироваться.

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

Если проблема у Вас не устраняется даже после отключения плагина и чистки кеша - нужно смотреть какие ещё плагины из установленных у Вас могут перегружать контроллер регистрации. И грешить надо на них.

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

@gudman1 @Alexander_M я удалил приложение, почистил кеш - проблема осталась. Думаю, что дело не в нем. :) 

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

5 минут назад, Redneck сказал:

я удалил приложение, почистил кеш - проблема осталась. Думаю, что дело не в нем

очевидно не в нем! Какие еще плагины стоят на форуме. Что то может перегружать контроллер регистрации. Какой то из плагинов не дает отправить информацию в базу данных.

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

8 minutes ago, Redneck said:

@gudman1 @Alexander_M я удалил приложение, почистил кеш - проблема осталась. Думаю, что дело не в нем. :) 

Ну я Вам выше всё сказал и объяснил, что у Вас могут быть ещё источники проблем.

Моё дело маленькое - указать на явный баг (я Вам привел строчку) и предложить исправление.

Успехов!

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

Ну, собственно, разобрались. Мои слова про косоруких обезъян подтверждены.

Разработчики поменяли интерфейс функции _createMember в версии 4.1.18.

Вот результаты сравнения:

diff -r ./17 ./18 > 17_to_18.txt
< 	 * @param	array	$values	Values from form
---
> 	 * @param	array	$values				Values from form
> 	 * @param	array	$profileFields		Profile field values from registration
369c368
< 	public static function _createMember( $values )
---
> 	public static function _createMember( $values, $profileFields )

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

В Release Notes ни слова... я в шоке.

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

2 часа назад, Alexander_M сказал:

А вообще, этот движок по определению полон сюрпризов - потому что он написан косорукими обезъянами. Даже удивительно, что за него просят денег и он так нравится людям, я как адепт phpBB ещё со времен второй версии, помня, какое качества кода там, поражаюсь тому, какое оно в этом движке.

Вы кеш почистили естественно? Хуки компиллируются и могли закешироваться.

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

Если проблема у Вас не устраняется даже после отключения плагина и чистки кеша - нужно смотреть какие ещё плагины из установленных у Вас могут перегружать контроллер регистрации. И грешить надо на них.

Ну так сидите на phpBB, или напишите свой движек (ты ведь не обезьяна), смысл его использовать, но при этом поносить движек и его разработчиков?

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

3 часа назад, Alexander_M сказал:

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

Я весь мозг чуть не сломал :) Нашел еще 3 приложения с такой проблемой :) Только после того как все исправил - поля при регистрации стали сохраняться :) 

@gudman1 @Alexander_M спасибо за наводку!!!

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

3 часа назад, Alexander_M сказал:

Ну, собственно, разобрались. Мои слова про косоруких обезъян подтверждены.

Разработчики поменяли интерфейс функции _createMember в версии 4.1.18.

...

В Release Notes ни слова... я в шоке.

Не знаю, что такое "интерфейс функции", даже про функции в ООП слышал только от тех самых "криворуких обезъян". :)

Вижу, что добавили аргумент, в метод " _createMember " класса Members. На мой взгляд, это говорит о том что, в отличии от PHPBB, движок все ещё, развивается.

Что до несовершенства документации... охшит, а покажите мне доки хоть одного командного проекта, где нет и не было подобных ляпов. И уж точно не "поклоннику PHBB" об этом не знать.

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

2 hours ago, Dmitriy427 said:

Не знаю, что такое "интерфейс функции", даже про функции в ООП слышал только от тех самых "криворуких обезъян". :)

Вижу, что добавили аргумент, в метод " _createMember " класса Members. На мой взгляд, это говорит о том что, в отличии от PHPBB, движок все ещё, развивается.

Что до несовершенства документации... охшит, а покажите мне доки хоть одного командного проекта, где нет и не было подобных ляпов. И уж точно не "поклоннику PHBB" об этом не знать.

Добавление аргумента метода означает развитие? ;-)

Ну вот кстати как раз в phpBB-то никогда посреди минорного апгрейда не менялся программный интерфейс. Там с этим строго.

 

3 hours ago, ZeRik said:

Ну так сидите на phpBB, или напишите свой движек (ты ведь не обезьяна), смысл его использовать, но при этом поносить движек и его разработчиков?

Ну многоуважаемый, уж простите, что я Вас так сильно задел - выложил тут решение проблемы, описал механизм возникновения. Я просто ужасен. ;-)

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

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

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

Гость
Ответить в этой теме...

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...