พัฒนาโดย : Siropu
Version : 1.1.4
phpBB Version(s) : phpBB 3.0.10 3.0.11
ดาวน์โหลดได้ที่ : https://www.phpbb.com/community/viewtop ... &t=2158483 ขั้นตอนการติดตั้ง
เปิดไฟล์ index.php
ค้นหา
โค้ด: เลือกทั้งหมด
display_forums('', $config['load_moderators']);
โค้ด: เลือกทั้งหมด
// Begin Referral MOD
// Get referrer user ID
$r = request_var('r', 0);
// Let's check if the referrer is valid
if ($r > 0)
{
$sql = 'SELECT user_id
FROM ' . USERS_TABLE . '
WHERE user_id=' . $r . '
AND user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')';
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
// If the referrer is valid, set the cookie
if (!empty($row['user_id']))
{
$user->set_cookie('referrer_id', $r, time()+60*60*24*365);
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . generate_board_url());
}
}
if (!empty($config['referral_mod_version']))
{
$user->add_lang('mods/referral');
if ($config['referral_contests_display'])
{
// Get the last contest
$sql = 'SELECT *
FROM ' . REFERRAL_CONTESTS_TABLE . '
ORDER BY contest_end_date DESC';
$result = $db->sql_query_limit($sql, 1, 0);
$row = $db->sql_fetchrow($result);
$template->assign_vars(array(
'CONTEST_DISPLAY' => $config['referral_contests_display'],
'CONTEST_NAME' => $row['contest_name'],
'CONTEST_DESCRIPTION' => html_entity_decode($row['contest_description']),
'CONTEST_START_DATE' => $user->format_date($row['contest_start_date']),
'CONTEST_END_DATE' => $user->format_date($row['contest_end_date']),
'CONTEST_DURATION' => $row['contest_duration'],
'CONTEST_STATUS' => ($row['contest_end_date'] < time()) ? '<span style="color:red;">' . $user->lang['CONTEST_OVER'] . '</span>' : '<span style="color:green;">' . $user->lang['CONTEST_IN_PROGRESS'] . '</span>',
)
);
// Set some variables to use in statistics
$contest_id = $row['contest_id'];
$contest_start_date = $row['contest_start_date'];
$contest_end_date = $row['contest_end_date'];
$ref_min_posts = $row['contest_condition'];
$db->sql_freeresult($result);
if ($row)
{
// Get contest statistics
$sql = 'SELECT * ,
COUNT(referrer_username) AS referrals_count
FROM ' . REFERRALS_TABLE . '
LEFT JOIN ' . USERS_TABLE . '
ON referral_username=username
WHERE referral_since
BETWEEN ' . $contest_start_date . ' AND ' . $contest_end_date . '
AND user_posts >= ' . $ref_min_posts . '
GROUP BY referrer_username
ORDER BY referrals_count DESC';
$result = $db->sql_query_limit($sql, 3, 0);
$i = 1;
while ($row = $db->sql_fetchrow($result))
{
if ($i == 1)
{
$referrer_username = $row['referrer_username'];
}
$template->assign_block_vars('contest_stats', array(
'REFERRER_USERNAME' => $row['referrer_username'],
'REFERRALS_COUNT' => $row['referrals_count'],
'CONTEST_POS' => '<img src="' . $phpbb_root_path . 'images/contest_pos_' . $i . '.gif" alt="' . $i . '" />',
)
);
$i++;
}
$db->sql_freeresult($result);
// If contest is over, save contest winner
if ($contest_end_date < time())
{
$sql = 'UPDATE ' . REFERRAL_CONTESTS_TABLE . '
SET contest_winner = "' . $referrer_username . '"
WHERE contest_id = ' . $contest_id;
$db->sql_query($sql);
}
}
}
// Get top 5 referrers
if ($config['top_five_referrers'])
{
$sql = 'SELECT *
FROM ' . USERS_TABLE . '
WHERE user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')
AND user_referrals >=1
ORDER BY user_referrals DESC';
$result = $db->sql_query_limit($sql, 5, 0);
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('top_five_referrers', array(
'USERNAME' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
'REFERRALS' => $row['user_referrals'],
)
);
}
$db->sql_freeresult($result);
// Set template variables
$template->assign_vars(array(
'TOP_FIVE_REFERRERS' => $config['top_five_referrers'],
)
);
}
}
// End Referral MOD
ค้นหา
โค้ด: เลือกทั้งหมด
'WARNINGS' => isset($data['user_warnings']) ? $data['user_warnings'] : 0,
โค้ด: เลือกทั้งหมด
'REFERRALS' => (!empty($config['user_referrals_profile']) && $config['user_referrals_profile'] == true && !empty($data['user_referrals'])) ? $data['user_referrals'] : 0,
ค้นหา
โค้ด: เลือกทั้งหมด
'age' => '',
โค้ด: เลือกทั้งหมด
'referrals' => (!empty($row['user_referrals'])) ? $row['user_referrals'] : 0,
โค้ด: เลือกทั้งหมด
'POSTER_AGE' => $user_cache[$poster_id]['age'],
โค้ด: เลือกทั้งหมด
'POSTER_REFERRALS' => (!empty($config['user_referrals_viewtopic']) && $config['user_referrals_viewtopic'] == true) ? $user_cache[$poster_id]['referrals'] : 0,
ค้นหา
โค้ด: เลือกทั้งหมด
// Additional tables
โค้ด: เลือกทั้งหมด
define('REFERRALS_TABLE', $table_prefix . 'referrals');
define('REFERRAL_CONTESTS_TABLE', $table_prefix . 'referral_contests');
ค้นหา
โค้ด: เลือกทั้งหมด
// Register user...
$user_id = user_add($user_row, $cp_data);
โค้ด: เลือกทั้งหมด
// Begin Referral MOD
$rid = request_var($config['cookie_name'] . '_referrer_id', '', false, true);
if (!empty($rid))
{
$sql = 'SELECT username, user_referrals
FROM ' . USERS_TABLE . '
WHERE user_id = ' . $rid;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
$sql_ary = array(
'referral_username' => $data['username'],
'referrer_id' => $rid,
'referrer_username' => $row['username'],
'referral_since' => time(),
);
$db->sql_query('INSERT INTO ' . REFERRALS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary));
$user_referrals = $row['user_referrals'] + 1;
$sql = 'UPDATE ' . USERS_TABLE . '
SET user_referrals = ' . $user_referrals . '
WHERE user_id = ' . $rid;
$db->sql_query($sql);
}
// End Referral MOD
โค้ด: เลือกทั้งหมด
?>
โค้ด: เลือกทั้งหมด
$lang = array_merge($lang, array(
'REFERRALS' => 'Referrals',
));
ค้นหา
โค้ด: เลือกทั้งหมด
<!-- IF S_DISPLAY_SEARCH or (S_USER_LOGGED_IN and not S_IS_BOT) -->
โค้ด: เลือกทั้งหมด
<!-- IF CONTEST_NAME and CONTEST_DISPLAY -->
<!-- INCLUDE referral/referral_contest.html -->
<!-- ENDIF -->
โค้ด: เลือกทั้งหมด
<!-- INCLUDE overall_footer.html -->
โค้ด: เลือกทั้งหมด
<!-- IF TOP_FIVE_REFERRERS -->
<!-- INCLUDE referral/top_five_referrers.html -->
<!-- ENDIF -->
ค้นหา
โค้ด: เลือกทั้งหมด
<!-- IF S_SHOW_ACTIVITY and POSTS -->
โค้ด: เลือกทั้งหมด
<!-- IF REFERRALS -->
<dt>{L_REFERRALS}:</dt>
<dd>{REFERRALS}</dd>
<!-- ENDIF -->
ค้นหา
โค้ด: เลือกทั้งหมด
<!-- END custom_fields -->
โค้ด: เลือกทั้งหมด
<!-- IF postrow.POSTER_REFERRALS --><dd><strong>{L_REFERRALS}:</strong> {postrow.POSTER_REFERRALS}</dd><!-- ENDIF -->
ค้นหา
โค้ด: เลือกทั้งหมด
input.disabled {
color: #666666;
}
โค้ด: เลือกทั้งหมด
.contest {
font-size: 12px;
}
#contest-info {
float: left;
width: 45%;
padding: 5px;
margin: 5px;
border-right: 1px #fff solid;
line-height: 16px;
}
#contest-info b {
margin-right: 5px;
}
#contest-stastistics {
float: left;
width: 45%;
padding: 10px;
}
#contest-stastistics p {
margin-bottom: 2px;
}
โค้ด: เลือกทั้งหมด
referral_mod_install.php