Открытый сайт + инвайты

Хочу реализовать следующее:
1) Оставить сайт открытым, но при этом чтобы у каждого пользователя в профиле остались инвайты.
2) Плюс чтобы у каждого пользователя по умолчанию сразу было неограниченное кол-во инвайтов.
3) Ну и чтобы можно было посмотреть потом кто пригласил больше всего людей, желательно чтобы эта информация была открытой для других пользователей.

РЕАЛИЗАЦИЯ ЗАДУМАННОГО:

1) добавил в шаблоне в action/ActionRegistrations/index.tpl
ПЕРЕД кодом:
{include file='footer.light.tpl'}

код:
<div class="lite-center">
			<form action="{router page='registration'}invite/" method="POST">
			<div class="lite-note">
				<button type="submit" name="submit_invite_link" class="button" style="float: none;"><span><em>{$aLang.registration_invite}</em></span></button>
			</div>
			</form>
		</div> 

это мы создаем для удобства пользователей кнопку «Регистрация по приглашению» на странице регистрации (под формой)

2) В настройках сайта включаем «Регистрацию по приглашению»

3) находим classes/actions/ActionRegistration.class.php

комментим в нем направление на страницу registration/invite

/**
		 * Если включены инвайты то перенаправляем на страницу регистрации по инвайтам
		 */
		/*if (!$this->User_IsAuthorization() and Config::Get('general.reg.invite') and !in_array(Router::GetActionEvent(),array('invite','activate','confirm')) and !$this->CheckInviteRegister()) {			
			return Router::Action('registration','invite');			
		}*/
		/* отключил перенаправление */


4) Решение с неограниченным кол-вом приглашений взял из коммента пользователя bafoed к данной ветке
/classes/modules/user/User.class.php
Ищем и меняем на:

/**
         * Получаем число доступных приглашений для юзера
         *
         * @param unknown_type $oUserFrom
         * @return unknown
         */
        public function GetCountInviteAvailable(ModuleUser_EntityUser $oUserFrom) {
                $iCountAvailable = 9999999;
                return $iCountAvailable;
        }


/templates/skin/new/actions/ActionSettings/invite.tpl

{$aLang.settings_invite_available}: <strong>{if $oUserCurrent->isAdministrator()}{$aLang.settings_invite_many}{else}{$iCountInviteAvailable}{/if}</strong><br />


меняем на:

{$aLang.settings_invite_available}: <strong>{$aLang.settings_invite_many}</strong><br />


Теперь сайт открыт пользователи могут рассылать приглашения, получившие приглашению люди могут регистрироваться, из задуманного мной осталось реализовать теперь общедоступную страницу на которой бы выводились все пользователи с кол-вом приглашенных ими пользователей

Буду благодарен за советы как это реализовать


Пример того как я это вижу:

9 комментариев

avatar
Мне тоже было бы это интересно
avatar
Вопрос с неограниченным количеством инвайтов у пользователей — это мысль. Я даже, наверное, знаю как это сделать. На досуге попробую попилить.
avatar
А почему бы не поделится мыслью?
avatar
потому как я не уверен в правильности своих мыслей. Если все получится, то обязательно поделюсь с сообществом.
avatar
/classes/modules/user/User.class.php
Ищем и меняем на:

/**
	 * Получаем число доступных приглашений для юзера
	 *
	 * @param unknown_type $oUserFrom
	 * @return unknown
	 */
	public function GetCountInviteAvailable(ModuleUser_EntityUser $oUserFrom) {
                $iCountAvailable = 9999999;
		return $iCountAvailable;
	}


/templates/skin/new/actions/ActionSettings/invite.tpl
{$aLang.settings_invite_available}: <strong>{if $oUserCurrent->isAdministrator()}{$aLang.settings_invite_many}{else}{$iCountInviteAvailable}{/if}</strong><br />


меняем на:

{$aLang.settings_invite_available}: <strong>{$aLang.settings_invite_many}</strong><br />
avatar
ну вот. взял и испортил момент интриги)))
avatar
отлично)
avatar
А как правильно сделать, чтобы допустим пользователю выдавался инвайт за 50 плюсов к посту и максимум 4 минуса?
avatar
а возможно ли реализовать что бы инвайт был скажем 1?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.