Описание:
Каждому пользователю предоставляется уникальная реферальная ссылка, и если кто-то регистрируется по этой ссылке, то начисляется карма. Настраивается в ReferralService.
Пример с форумом: +5 кармы за каждые 50 постов реферала. +5 бонусом за каждые 500. Можете разместить ссылку на реферальную страницу где угодно. Она будет доступна по адресу: site.ru/referrals. Там же “мои рефералы”. Карма добавляется от имени администратора.
Не будет работать если ip одинаковые.

Установка:
1. Распакуйте архив в корневой каталог вашего сайта.
2. В файле \config\autoload\modules.local.php
добавьте 'referrals' в массив 'installed_modules'.
Пример:
﻿return [
'modules' => [
  'installed_modules' => [
'referrals',
  ],
],
];
3. В файле \config\routes.local.php добавьте следующую строку:
$map->addRoute(['GET'], '/referrals[/]', [\Referrals\Controllers\ReferralsController::class, 'index']);

4. В файле \modules\registration\index.php, после создания пользователя (от строки 131-156):
$new_user =(new User())->create(
…
);
добавьте следующую строчку:
(new \Referrals\Services\ReferralService)->registration($new_user->id);
5. В файле \system\src\Users\UserRelations.php добавьте следующий код:
public function referrals(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
{
return $this->belongsToMany(User::class, 'user_referrals', 'user_id', 'referred_user_id');
}
6. Установите таблицы, перейдя по ссылке: site.ru/referrals?act=install
7. Для удаления таблиц используйте: site.ru/referrals?act=uninstall
8. В файле \system\src\Users\UserFactory.php, после строки 57:
$this->ipHistory($user);// Фиксируем историю IP
добавьте следующий код:
(new \Referrals\Services\ReferralService)->calculateAndGrantKarma($user, $user->postforum, $user->postguest, $user->komm);
