Количество инвайтов
17
Как увеличить первоначальное значение количества инвайтов для обычных юзеров?
- +4
- 18 января 2009, 01:18
- strog
<code>public function GetCountInviteAvailable(UserEntity_User $oUserFrom) {
$sDay=7;
$iCountUsed=$this->GetCountInviteUsedByDate($oUserFrom->getId(),date("Y-m-d 00:00:00",mktime(0,0,0,date("m"),date("d")-$sDay,date("Y"))));
$iCountAllAvailable=round($oUserFrom->getRating()+$oUserFrom->getSkill());
$iCountAllAvailable = $iCountAllAvailable<0 ? 0 : $iCountAllAvailable;
$iCountAvailable=$iCountAllAvailable-$iCountUsed;
$iCountAvailable = $iCountAvailable<0 ? 0 : $iCountAvailable;
return $iCountAvailable;
}</code>Судя по этому куску кода, количество инвайтов пользователя зависит от его активности на сайте, а точнее кармы и рейтинга.
Особо не заморачиваясь, можно просто прописать «$iCountAvailable = 100;» перед «return $iCountAvailable;», тогда у пользователя всегда будет 100 инвайтов и тратиться они не будут, но пропадёт тот самый элемент социальности в котором, собственно, и есть вся фишка этого замечательного скрипта.
нее лучше сделать привязку к карме, тогда было бы очень круто!
Где на эту тему можно how-to достать?
Где на эту тему можно how-to достать?
Привязку к кареме? Не совсем понял. Сейчас количество инвайтов зависит от «рейтинга» (аналог «кармы» на хабре) и силы. Чем оба эти показателя выше, тем больше у юзера инвайтов. Вы хотите предложить что-то другое?
нет нет, я хочу включить эту функцию, где она включается, я найти просто не могу и как она работает?
Допустим у юзера карма = 1 то соклько это инвайтов?
Они даются один раз или могут выдаваться раз в неделю?
а если у юзера карма = 2 то как тогда?
Какой алгоритм?
Допустим у юзера карма = 1 то соклько это инвайтов?
Они даются один раз или могут выдаваться раз в неделю?
а если у юзера карма = 2 то как тогда?
Какой алгоритм?
Она включена по умолчанию и отключение её без правки кода не предусмотрено. Вот строчка непосредственно считающая количество инвайтов:
Количество инвайтов= Округляем до целого (рейтинг+сила).
Например, имеем рейтинг 5.1 и силу 1.1, получаем 6 инвайтов, или 1.1 рейтинг, 0.4 сила, получаем 2 инвайта.
<code>$iCountAllAvailable=round($oUserFrom->getRating()+$oUserFrom->getSkill());</code>
Количество инвайтов= Округляем до целого (рейтинг+сила).
Например, имеем рейтинг 5.1 и силу 1.1, получаем 6 инвайтов, или 1.1 рейтинг, 0.4 сила, получаем 2 инвайта.
Если текущая форма подсчёта Вас не устраивает, инвайтов Вам не хватает, но вы не хотите делать их бесконечными, можно заменить строку
<code>$iCountAllAvailable=round($oUserFrom->getRating()+$oUserFrom->getSkill());</code>на
<code>$iCountAllAvailable=round($oUserFrom->getRating()+$oUserFrom->getSkill())*2;</code>в файле «classes\modules\user\User.class.php», где *2 умножает количество инвайтов, считающихся по формуле рейтинг+сила, вдвое. Соотственно, цифру 2 можно заменить на любую другую.
Задача следующая. Надо, чтобы в проекте регистрация была стандартная открытая. Но при этом необходимо, чтобы работал функционал инвайтов для приглашения новых пользователей на сайт. Инвайты нужны для раскрутки проекта, чтобы каждый юзер мог пригласить своих друзей. Закрыть регистрацию и делать её только по инвайтам не хочется, так как это противоречит философии проекта. Что нужно сделать, чтобы активировать механизм инвайтов и при этом оставить открытой обычную регистрацию?
Комментарии (26)
RSS свернуть / развернуть