forum/index.php
'jsoption' => array('Themes.php', 'SetJavaScript'),
'invite' => array('Invite.php', 'InviteMain'),
Sources/ModSettings.php
$context['sub_template'] = 'show_settings';
$subActions = array(
'invite' => 'ModifyInviteSettings',
require_once($sourcedir . '/ManageServer.php');
$subActions = array(
'invite' => 'ModifyInviteSettings',
'layout' => array(
'title' => $txt['mods_cat_layout'],
'href' => $scripturl . '?action=featuresettings;sa=layout;sesc=' . $context['session_id'],
),
'invite' => array(
'title' => $txt['invite_title'],
'href' => $scripturl . '?action=featuresettings;sa=invite;sesc=' . $context['session_id'],
),
function ModifyKarmaSettings()
// Invite MOD
function ModifyInviteSettings()
{
global $sourcedir;
require_once($sourcedir . '/Invite.php');
InviteSettings();
}
Sources/ManagePermissions.php
$groupLevels['global']['restrict'] = array(
'invitees_any',
$groupLevels['global']['standard'] = array_merge($groupLevels['global']['restrict'], array(
'invite',
'invite_unlimited',
'invitees_own',
'pm' => array(
'pm_read' => false,
'pm_send' => false,
),
'invite' => array(
'invite' => false,
'invite_unlimited' => false,
'invitees' => true,
),
$non_guest_permissions = array(
'invite',
'invite_unlimited',
Sources/Register.php
// Check if the administrator has it disabled.
if (!empty($modSettings['registration_method']) && $modSettings['registration_method'] == 3)
fatal_lang_error('registration_disabled', false);
// Invite MOD; check if we're only accepting invites, and if so check for a valid invite key.
global $sourcedir;
require_once($sourcedir . '/Invite.php');
$context['invite_key'] = validateInviteKey(empty($_REQUEST['invite_key']) ? '' : $_REQUEST['invite_key'], !empty($modSettings['invite_only']));
// You can't register if it's disabled.
if (!empty($modSettings['registration_method']) && $modSettings['registration_method'] == 3)
fatal_lang_error('registration_disabled', false);
// Invite MOD; check if we're only accepting invites, and if so check for a valid invite key.
global $sourcedir;
require_once($sourcedir . '/Invite.php');
$context['invite_key'] = validateInviteKey(empty($_REQUEST['invite_key']) ? '' : $_REQUEST['invite_key'], !empty($modSettings['invite_only']));
$memberID = registerMember($regOptions);
// Invite MOD; looks like registration went ok, let's mark the invite key as used and who it was used by.
if ($context['invite_key'] !== false)
{
db_query("
UPDATE {$db_prefix}invites
SET ID_REGISTRATION = '$memberID'
WHERE inviteKey = '{$context['invite_key']}'
LIMIT 1", __FILE__, __LINE__);
}
elseif (!empty($_REQUEST['inviter']) && (int)$_REQUEST['inviter'] !== 0)
{
db_query("
INSERT INTO {$db_prefix}invites (ID_MEMBER, ID_REGISTRATION, inviteTime)
VALUES ('" . (int)$_REQUEST['inviter'] . "', '$memberID', " . time() . ")
", __FILE__, __LINE__);
}
Sources/Memberlist.php
// They're searching..
if (isset($_REQUEST['search']) && isset($_REQUEST['fields']))
// Invite MOD. Not really a user search, just using the fine table and such that's already here for the invitees list...
if (isset($_REQUEST['inviter']) && loadMemberData(array($_REQUEST['inviter'])))
{
global $user_profile;
if (($_REQUEST['inviter'] == $context['user']['id'] && !allowedTo('invitees_own')) || !allowedTo('invitees_any'))
fatal_lang_error('invitees_any', false);
// Just to let the members know it's not really a search.
$context['page_title'] = $txt['invited_by'] . ' ' . $user_profile[$_REQUEST['inviter']]['realName'];
$context['sort_links'][1]['label'] = $context['page_title'];
// We need this so it thinks it's a regular search and won't be all ******y about variables...
$context['old_search'] = '';
$context['old_search_value'] = '';
// Find the number of results.
$request = db_query("
SELECT COUNT(*)
FROM {$db_prefix}members AS mem
LEFT JOIN {$db_prefix}invites AS inv ON (inv.ID_REGISTRATION = mem.ID_MEMBER)
WHERE inv.ID_MEMBER = $_REQUEST[inviter]
AND is_activated = 1", __FILE__, __LINE__);
list ($numResults) = mysql_fetch_row($request);
mysql_free_result($request);
$context['page_index'] = constructPageIndex($scripturl . '?action=mlist;sa=search;inviter=' . $_GET['inviter'], $_REQUEST['start'], $numResults, $modSettings['defaultMaxMembers']);
// Find the members from the database.
// !!!SLOW This query is slow.
$request = db_query("
SELECT mem.ID_MEMBER
FROM {$db_prefix}members AS mem
LEFT JOIN {$db_prefix}invites AS inv ON (inv.ID_REGISTRATION = mem.ID_MEMBER)
LEFT JOIN {$db_prefix}log_online AS lo ON (lo.ID_MEMBER = mem.ID_MEMBER)
LEFT JOIN {$db_prefix}membergroups AS mg ON (mg.ID_GROUP = IF(mem.ID_GROUP = 0, mem.ID_POST_GROUP, mem.ID_GROUP))
WHERE inv.ID_MEMBER = $_REQUEST[inviter]
AND is_activated = 1
LIMIT $_REQUEST[start], $modSettings[defaultMaxMembers]", __FILE__, __LINE__);
printMemberListRows($request);
mysql_free_result($request);
} // End Invite MOD.
// They're really doing a search.
elseif (isset($_REQUEST['search']) && isset($_REQUEST['fields']))
Sources/Stats.php
// Activity by month.
// Invite MOD. Top 10 Inviters.
global $sourcedir;
require_once($sourcedir . '/Invite.php');
InviteStats();
// End Invite MOD.
Sources/Profile.php
// This block is only concerned with email address validation..
// Invite MOD. Change the number of inviter.
if (!empty($_POST['inviter']) && (int)$_POST['inviter'] != 0 && (int)$_POST['inviter'] != $memID && allowedTo('moderate_forum'))
{
global $sourcedir;
require_once($sourcedir . '/Invite.php');
if (inviter($memID))
db_query("
UPDATE {$db_prefix}invites SET ID_MEMBER = {$_POST['inviter']}
WHERE ID_REGISTRATION = $memID
LIMIT 1", __FILE__, __LINE__);
else
db_query("
INSERT INTO {$db_prefix}invites (ID_MEMBER, ID_REGISTRATION)
VALUES ({$_POST['inviter']}, $memID)", __FILE__, __LINE__);
}
elseif (isset($_POST['inviter']) && empty($_POST['inviter']))
{
db_query("
DELETE FROM {$db_prefix}invites
WHERE ID_REGISTRATION = $memID
LIMIT 1", __FILE__, __LINE__);
}
/index.template.php
)))
$current_action = $context['current_action'];
, 'invite'
// If the user is a guest, show [login] button.
// Invite MOD.
if (allowedTo('invite'))
{
global $modSettings;
echo ($current_action == 'invite' || $context['browser']['is_ie4']) ? '<td class="maintab_active_' . $first . '"> </td>' : '' , '
<td valign="top" class="maintab_' , $current_action == 'invite' ? 'active_back' : 'back' , '">
<a href="', $scripturl, '?action=invite">' , (!empty($modSettings['invite_menu_title']) ? $modSettings['invite_menu_title'] : $txt['invite_title']) , '</a>
</td>' , $current_action == 'invite' ? '<td class="maintab_active_' . $last . '"> </td>' : '';
}
/Profile.template.php
<td>', $context['member']['registered'], '</td>
</tr><tr>
<td><b>', $txt['lastLoggedIn'], ': </b></td>
<td>', $context['member']['registered'], '</td>
</tr>';
// Invite MOD.
global $sourcedir;
require_once($sourcedir . '/Invite.php');
if (($context['user']['is_owner'] && allowedTo('invitees_own')) || allowedTo('invitees_any'))
{
if (inviter($context['member']['id']))
echo '
<tr>
<td><b>', $txt['invited_by'], ': </b></td>
<td><a href="', $scripturl, '?action=profile;u=', $context['member']['invited_by'], '">', $context['member']['invited_by_name'], '</a></td>
</tr>';
if ($context['member']['invitees_count'] = invitees($context['member']['id']))
echo '
<tr>
<td><b>', $txt['invitees_count'], ': </b></td>
<td><a href="', $scripturl, '?action=mlist;sa=search;inviter=', $context['member']['id'], '">', $context['member']['invitees_count'], '</a></td>
</tr>';
}
// End Invite MOD.
echo '
<tr>
<td><b>', $txt['lastLoggedIn'], ': </b></td>
// Only display if admin has enabled "user selectable language".
// Invite MOD. Allow the administrator to change the inviter.
if ($context['user']['is_admin'])
{
global $sourcedir;
require_once($sourcedir . '/Invite.php');
echo '
<tr>
<td><b>', $txt['invited_by'], ' (ID): </b></td>
<td><input type="text" name="inviter" size="4" value="', inviter($context['member']['id']), '" /></td>
</tr>';
}
/Stats.template.php
</tr><tr>
<td class="catbg" colspan="4"><b>', $txt['smf_stats_5'], '</b></td>
</tr><tr>
<td class="catbg" colspan="2" width="50%"><b>', $txt['top_inviters'], '</b></td>
<td class="catbg" colspan="2" width="50%"><b>', $txt['top_inviters_by_posts'], '</b></td>
</tr><tr>
<td class="windowbg" width="20" valign="middle" align="center"><img src="', $settings['images_url'], '/stats_posters.gif" width="20" height="20" alt="" /></td>
<td class="windowbg2" width="50%" valign="top">
<table border="0" cellpadding="1" cellspacing="0" width="100%">';
foreach ($context['top_inviters'] as $inviter)
echo '
<tr>
<td width="60%" valign="top">', $inviter['link'], '</td>
<td width="20%" align="left" valign="top">', $inviter['num'] > 0 ? '<img src="' . $settings['images_url'] . '/bar.gif" width="' . $inviter['percent'] . '" height="15" alt="" />' : ' ', '</td>
<td width="20%" align="right" valign="top">', $inviter['num'], '</td>
</tr>';
echo '
</table>
</td>
/Register.template.php
echo '
<br />
<div align="center">
<input type="submit" name="regSubmit" value="', $txt[97], '" />
</div>
// Invite MOD
if (!empty($context['invite_key']))
echo '
<input type="hidden" name="invite_key" value="', $context['invite_key'], '" />';
elseif (!empty($_REQUEST['inviter']) && (int)$_REQUEST['inviter'] !== 0)
echo '
<input type="hidden" name="inviter" value="', $_REQUEST['inviter'], '" />';
/Modifications.portuguese.php
?>
// Version: 1.1; Modifications translate By Candidosa2
$txt['invite_title'] = 'Convite';
$txt['invite_only'] = 'Permita somente registos através do Convite.';
$txt['invite_menu_title'] = 'Título do menu convite.';
$txt['invite_days'] = 'O número dos dias para que os membros comecem um novo crédito de convites.<div class="smalltext">(0 nenhum limite, admins e o exemplo)</div>';
$txt['invite_max'] = 'O número máximo de convites créditos.<div class="smalltext">(0 nenhum limit, admins o exemplo)</div>';
$txt['invite_expire'] = 'Número dos dias para que uma chave convidar seja válida.<div class="smalltext">(0 nenhum limit)</div>';
$txt['invite_group_settings'] = 'Ajuste o grupo que tenha permissão para emitir convites';
$txt['invite_email_disable'] = 'Incapacite a característica de enviar email.';
$txt['invite_email_subject'] = 'E-mail assunto.';
$txt['invite_email_message'] = 'E-mail messagem.
<div class="smalltext">{invitee} = Nome do convidado</div>
<div class="smalltext">{inviter} = Nome do Anfitrião</div>
<div class="smalltext">{forum} = Nome do Forum </div>
<div class="smalltext">{link} = Ligação à página do registo (com chave)</div>
<div class="smalltext">{message} = Mensagem pelo convidado</div>';
$txt['invite_default_email_subject'] = '{invitee}, você recebeu um convite do {forum} por {inviter}!';
$txt['invite_default_email_message'] = 'Ola {invitee},
Acabou de receber um convite para {forum}, clica no link para efectuares o registo:
{link}
{inviter} também enviou este comentário para si:
{message}
Esta mensagem não é spam.';
$txt['invite_someone'] = 'Convide alguém';
$txt['invite_info'] = 'Você pode convidar alguém novo se você tiver permissoes para fazer uma chave nova e emitindo lhes a ligação.';
$txt['invite_link'] = 'Podes convidar alguém enviando-lhe o link seguinte.';
$txt['invitees'] = 'Convidados';
$txt['invitees_info'] = 'A seguinte lista dos membros que você convidou.';
$txt['no_invitees'] = 'Não há nenhum convidado a indicar';
$txt['invite_unlimited'] = 'ilimitado';
$txt['invite_max_reached'] = 'o máximo alcançando';
$txt['make_new_invite_key'] = 'Faça nova chave para convidados';
$txt['invite_credits'] = 'Convidados créditos';
$txt['next_invite_credit'] = 'credito seguinte';
$txt['invite_key'] = 'Chave do convidado';
$txt['invite_email'] = 'E-mail Do convidado';
$txt['invite_send_email'] = 'Enviar E-mail ao convidado';
$txt['invite_expires'] = 'Expira';
$txt['invited_by'] = 'Convinte por';
$txt['invitees_count'] = 'Membro convidado';
$txt['show_invitees'] = 'Mostre os membros convidados por esta pessoa';
$txt['invite_email_info'] = 'Enter o nome e o email da pessoa que você deseja convidar, e a ligação convidar ser-lhes-á emitida.';
$txt['invite_recipient_name'] = 'Nome do convidado';
$txt['invite_recipient_email'] = 'e-mail do convidado';
$txt['invite_message'] = 'Mensagem pessoal ao receptor';
$txt['invite_sent'] = 'O Convite foi enviado.';
$txt['invite_no_name'] = 'Você não deu entrada do nome.';
$txt['invite_no_email'] = 'Você não incorporou o endereço válido de E-mail.';
$txt['cannot_send_invite'] = 'Desculpa, a chave não pode ser enviada (talvez ja foi enviada?).';
$txt['permissiongroup_invite'] = 'Convite';
$txt['permissionname_invite'] = 'Convite';
$txt['permissionhelp_invite'] = 'Quando o forum é ajustado para aceitar registos pelo convite somente, esta permissão permitirá que um groupo convide pessoas ao forum assim e que podem se registar.';
$txt['permissionname_invite_unlimited'] = 'convites ilimitados';
$txt['permissionhelp_invite_unlimited'] = 'Quando o forum é ajustado para aceitar registos pelo convites somente, esta permissão permitirá que um groupo tenha ilimitado convites a créditar.';
$txt['permissionname_invitees'] = 'Ver convidados';
$txt['permissionhelp_invitees'] = 'Isto mostrará uma lista dos membros que o usuário convidou ao forum usando a modificação convidar.';
$txt['permissionname_invitees_own'] = 'Proprios convites';
$txt['permissionname_invitees_any'] = 'qualquer convite';
$txt['cannot_invite'] = 'Desculpa, nao tem permissao para enviar convites.';
$txt['cannot_invite_as_other'] = 'Desculpa, nao tem permissao para enviar convite para qualquer pessoa.';
$txt['cannot_invitees_any'] = 'Desculpa, nao tem permissoa para ver os membros convidados.';
$txt['registration_invite_only'] = 'Desculpa, o registo so por convite.<br /><br />se tiver uma chave certa coloque para enviar:<br /><form method="POST" action="index.php?action=register"><input type="text" name="invite_key" size="40"> <input type="submit" value="Register"></form>';
$txt['registration_invite_expired'] = 'Desculpa, a chave para convidar expirou.';
$txt['top_inviters'] = 'Top convidados (por Convidados)';
$txt['top_inviters_by_posts'] = 'Top Convidados (Por poste de convidados)';
// End Invite MOD.