[DEV] Referral MOD With Contests ระบบการอ้างอิงสมาชิกที่แนะนำ

แนะนำ Mod ต่างๆ ของ PHPBB3 แนะนำความสามารถ ของ mod การติดตั้ง การเข้ากันได้กับเวอร์ชั่น

Moderator: mindphp

User avatar
M004
PHP VIP Members
PHP VIP Members
Posts: 1323
Joined: 01/01/1970 7:00 am

[DEV] Referral MOD With Contests ระบบการอ้างอิงสมาชิกที่แนะนำ

Post by M004 » 30/04/2013 5:24 pm

รายละเอียดเกี่ยวกับ [DEV] Referral MOD With Contests ระบบการอ้างอิงสมาชิกที่แนะนำ

พัฒนาโดย : Siropu
Version : 1.1.4
phpBB Version(s) : phpBB 3.0.10 3.0.11
ดาวน์โหลดได้ที่ : https://www.phpbb.com/community/viewtop ... &t=2158483
1.jpg
1.jpg (12.64 KiB) Viewed 4660 times
2.jpg
2.jpg (20.94 KiB) Viewed 4660 times
3.jpg
3.jpg (14.89 KiB) Viewed 4660 times
4.jpg
4.jpg (15.1 KiB) Viewed 4660 times
ขั้นตอนการติดตั้ง
เปิดไฟล์ index.php
ค้นหา

Code: Select all

display_forums('', $config['load_moderators']); 
เติมก่อนคำที่หา

Code: Select all

// 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  
เปิดไฟล์ memberlist.php
ค้นหา

Code: Select all

        'WARNINGS'        => isset($data['user_warnings']) ? $data['user_warnings'] : 0, 
เติมหลังคำค้นหา

Code: Select all

        'REFERRALS'        => (!empty($config['user_referrals_profile']) && $config['user_referrals_profile'] == true && !empty($data['user_referrals'])) ? $data['user_referrals'] : 0, 
เปิดไฟล์ viewtopic.php
ค้นหา

Code: Select all

                'age'            => '', 
เติมหลังคำค้นหา

Code: Select all

                'referrals'     => (!empty($row['user_referrals'])) ? $row['user_referrals'] : 0, 
ค้นหา

Code: Select all

        'POSTER_AGE'        => $user_cache[$poster_id]['age'], 
เติมหลังคำค้นหา

Code: Select all

        'POSTER_REFERRALS'  => (!empty($config['user_referrals_viewtopic']) && $config['user_referrals_viewtopic'] == true) ? $user_cache[$poster_id]['referrals'] : 0, 
เปิดไฟล์ includes/constants.php
ค้นหา

Code: Select all

// Additional tables  
เติมหลังคำค้นหา

Code: Select all

define('REFERRALS_TABLE',              $table_prefix . 'referrals');
define('REFERRAL_CONTESTS_TABLE',              $table_prefix . 'referral_contests'); 
เปิดไฟล์ includes/ucp/ucp_register.php
ค้นหา

Code: Select all

                // Register user...
                $user_id = user_add($user_row, $cp_data); 
เติมหลังคำค้นหา

Code: Select all

                // 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  
เปิดไฟล์ language/en/common.php

Code: Select all

?>
เติมก่อนคำที่ค้นหา

Code: Select all

$lang = array_merge($lang, array(
    'REFERRALS' => 'Referrals',
)); 
เปิดไฟล์ styles/prosilver/template/index_body.html
ค้นหา

Code: Select all

<!-- IF S_DISPLAY_SEARCH or (S_USER_LOGGED_IN and not S_IS_BOT) -->
เติมก่อนคำค้นหา

Code: Select all

<!-- IF CONTEST_NAME and CONTEST_DISPLAY -->
<!-- INCLUDE referral/referral_contest.html -->
<!-- ENDIF -->
ค้นหา

Code: Select all

<!-- INCLUDE overall_footer.html -->
เติมก่อนคำที่ค้นหา

Code: Select all

<!-- IF TOP_FIVE_REFERRERS -->
<!-- INCLUDE referral/top_five_referrers.html -->
<!-- ENDIF -->
เปิดไฟล์ styles/prosilver/template/memberlist_view.html
ค้นหา

Code: Select all

			<!-- IF S_SHOW_ACTIVITY and POSTS -->
เติมก่อนคำค้นหา

Code: Select all

			<!-- IF REFERRALS -->
			<dt>{L_REFERRALS}:</dt>
			    <dd>{REFERRALS}</dd>
			<!-- ENDIF -->
เปิดไฟล์ styles/prosilver/template/viewtopic_body.html
ค้นหา

Code: Select all

		<!-- END custom_fields -->
เติมหลังคำค้นหา

Code: Select all

		<!-- IF postrow.POSTER_REFERRALS --><dd><strong>{L_REFERRALS}:</strong> {postrow.POSTER_REFERRALS}</dd><!-- ENDIF -->
เปิดไฟล์ styles/prosilver/theme/colours.css
ค้นหา

Code: Select all

input.disabled {
	color: #666666;
}
เติมหลังคำค้นหา

Code: Select all

.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;
}
ติดตั้งไฟล์

Code: Select all

referral_mod_install.php

Return to “PHPBB3.0 Mod Review”

Who is online

Users browsing this forum: No registered users and 4 guests