Other Run query on user upgrade - Chạy truy vấn trong nâng cấp người dùng (code ví dụ)

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
17,150
Được Like
12,745
Run query on user upgrade - Chạy truy vấn trong nâng cấp người dùng (code ví dụ) 1.x

Bạn có thể chỉnh sửa tập tin library/ExtendUserUpgrade/UserUpgradeModel.php để thiết lập truy vấn hoặc mã của riêng bạn để thực thi khi người dùng trả tiền để nâng cấp. Các tập tin đã bao gồm một truy vấn mà tôi sử dụng cho người mà tôi thực hiện điều này:

Mã:
<?php

class ExtendUserUpgrade_UserUpgradeModel extends XFCP_ExtendUserUpgrade_UserUpgradeModel
{
    public function upgradeUser($userId, array $upgrade, $allowInsertUnpurchasable = false, $endDate = ****)
    {
        $retval = parent::upgradeUser($userId, $upgrade, $allowInsertUnpurchasable, $endDate);

        $db = XenForo_Application::get('db');

        $db->query("
            UPDATE iConomy
            SET Balance = Balance + 3000
            WHERE username = (
                SELECT username
                FROM xf_user
                WHERE user_id = " . $userId . "
            )
        ");

        return $retval;
    }
}

Nhưng họ đã kết thúc cần để kết nối với một cơ sở dữ liệu thứ hai để cập nhật hồ sơ người dùng cho máy chủ Minecraft của họ. Dưới đây là một ví dụ với một kết nối cơ sở dữ liệu thứ hai. $db là cơ sở dữ liệu cho XenForo. $mcdb là cơ sở dữ liệu cho máy chủ Minecraft. Điều này cho phép họtruy vấn cả cơ sở dữ liệu để cập nhật các giá trị điểm:
Mã:
<?php

class ExtendUserUpgrade_UserUpgradeModel extends XFCP_ExtendUserUpgrade_UserUpgradeModel
{
    public function upgradeUser($userId, array $upgrade, $allowInsertUnpurchasable = false, $endDate = ****)
    {
        $retval = parent::upgradeUser($userId, $upgrade, $allowInsertUnpurchasable, $endDate);

        $db = XenForo_Application::get('db');
        $mcdb = new Zend_Db_Adapter_Pdo_Mysql(array(
            'host'     => 'localhost',
            'username' => 'dbuser',
            'password' => 'dbpass',
            'dbname'   => 'dbname'
        ));

        $username = $db->fetchOne("
            SELECT username
            FROM xf_user
            WHERE user_id = " . $userId . "
        ");

        $mcdb->query("
            UPDATE iConomy
            SET Balance = Balance + 3000
            WHERE username = '" . addslashes($username) . "'
        ");

        return $retval;
    }
}

Chúc các bạn thành công.


Nguồn: xenforo.com​
 

Đính kèm

  • ExtendUserUpgrade.zip
    4.3 KB · Lượt xem: 1

Top Bottom