• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

Hướng dẫn chuyển thanks từ vbulletin sang xenforo 1.5.x - Convert thanks vbulletin to like xenforo 1.5.x

Admin

Well-Known Member
Staff member
Administrator
Hôm nay tuoitreit.vn xin hướng dẫn các bạn cách chuyển đổi thanks từ vbulletin sang like cho xenforo
Sau khi bạn chuyển đổi mã nguồn sang xenforo thì vấn đề còn lại cần làm là làm sao có thể chuyển đổi thanks sang like được và giữ nguyên số lượng thanks từ vbulletin
Để giữ nguyên thanks và point từ vbulletin sang xenforo bạn làm như sau:
Trên database vbulletin bạn export lại 2 table đó là table postpost_thanks
Sau đó trên database của xenforo bạn import lại 2 table đó vào
Rồi chạy lệnh SQL sau:
Code:
INSERT INTO `xf_liked_content` (content_type, content_id, like_user_id, like_date, content_user_id)
   SELECT 'post', vl.postid, vl.userid, vl.date, post.userid
  FROM `post_thanks` AS vl
  LEFT JOIN `post` AS post ON (post.postid = vl.postid)
ON DUPLICATE KEY UPDATE
  content_id = VALUES(content_id);

Sau khi bạn chạy xong thì số like vẫn chưa cập nhật và chỉ hiển thị "you like this post" hoặc "1 person like this post"
Để hiển thị số like và tên người like bạn làm như sau:
Lưu file này với tên tuoitreit.php và chạy nó, bạn lưu ý là để thời gian time out trên server dài vào nhé, vì nếu lượng data của bạn lớn thì nó sẽ mất nhiều thời gian để chạy và bạn để time out ít thì sẽ không được

Code:
<?php

$startTime = microtime(true);
$fileDir = dirname(__FILE__);

require($fileDir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');

XenForo_Application::initialize($fileDir . '/library', $fileDir);
XenForo_Application::set('page_start_time', $startTime);

####################

ini_set('max_execution_time', 5000);
ini_set('memory_limit', -1);
ini_set('display_errors', true);
ini_set('display_startup_errors', true);

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

$batchSize = 1000;

$contentTypes = array(
    'profile_post',
    'post'
);

echo "Dang rebuild lai tong so like cho thanh vien . . . ";

// REBUILD TONG SO LIKE CHO THANH VIEN
$db->query("
    UPDATE xf_user AS u
    SET u.like_count = (
        SELECT COUNT(*)
        FROM xf_liked_content AS lc
        INNER JOIN xf_user_authenticate AS ua ON (ua.user_id = lc.like_user_id)
        WHERE lc.content_user_id = u.user_id
    )
");

echo "Thanh cong!<br /><br />";

foreach ($contentTypes AS $contentType)
{
    echo "Dang rebuild lai tong so like cho {$contentType}s . . . ";

    // REBUILD LAI TONG SO LIKE CHO NOI DUNG
    $db->query("
        UPDATE xf_{$contentType} AS content
        SET content.likes = (
            SELECT COUNT(*)
            FROM xf_liked_content AS lc
            INNER JOIN xf_user AS u ON (u.user_id = lc.like_user_id)
            WHERE lc.content_type = ?
            AND lc.content_id = content.{$contentType}_id
        )
    ", $contentType);

    echo "Thanh cong!<br />";

    $totalIds = $db->fetchOne("
        SELECT COUNT(*)
        FROM xf_{$contentType}
        WHERE likes > 0
    ");

    echo "Dang rebuild lai cache cho {$contentType}s . . . ";

    // REBUILD SERIAL CACHE OF RECENT LIKERS

    // CHO 0 LIKE
    $db->query("
        UPDATE xf_{$contentType}
        SET like_users = 'a:0:{}'
        WHERE likes = 0
    ");

    // CHO LIKE KHAC 0
    for ($offset = 0; $offset < $totalIds; $offset += $batchSize)
    {
        $ids = $db->fetchCol("
            SELECT {$contentType}_id
            FROM xf_{$contentType}
            WHERE likes > 0
            ORDER BY {$contentType}_id
            ASC
            LIMIT {$offset}, {$batchSize}
        ");

        foreach ($ids AS $id)
        {
            $likes = $db->fetchAll("
                SELECT lc.like_user_id, u.username
                FROM xf_liked_content AS lc
                INNER JOIN xf_user AS u ON (u.user_id = lc.like_user_id)
                WHERE lc.content_type = ?
                AND lc.content_id = ?
                ORDER BY lc.like_date
                DESC
                LIMIT 0, 5
            ", array($contentType, $id));

            $writeVal = array();
            foreach ($likes AS $like)
            {
                $writeVal[] = array(
                    'user_id' => $like['like_user_id'],
                    'username' => $like['username']
                );
            }

            $writeVal = serialize($writeVal);

            $db->query("
                UPDATE xf_{$contentType}
                SET like_users = ?
                WHERE {$contentType}_id = ?
            ", array($writeVal, $id));

            unset($id, $likes, $like, $writeVal);
        }

        unset($ids);
    }

    echo "Thanh cong!<br /><br />";
}

echo "Tat ca da hoan tat roi, cam on ban da ung ho tuoitreit.vn!";

Mọi sao chép vui lòng ghi rõ nguồn tuoitreit.vn
Chúc các bạn thành công!
 
Last edited:
Hình như code này giờ ko còn dùng được nữa phải không ads? Mình test trên server nginx thấy báo lỗi 500
 
Hình như code này giờ ko còn dùng được nữa phải không ads? Mình test trên server nginx thấy báo lỗi 500
Vẫn dùng bình thường bạn nhé
 

Facebook Comments

Similar threads
Thread starter Title Forum Replies Date
Admin Miễn phí Video Converter: Mp4 to Audio 49.99$ - Chuyển đổi video sang âm thanh miễn phí cho iOS Android, iOS 0
katy MobiFone tặng gói cước 360GB data cho khách hàng khi chuyển đổi lên smartphone Thông tin các mạng di động 4
katy Android MobiFone tặng gói cước 360GB data cho khách hàng khi chuyển đổi lên smartphone Thông tin các mạng di động 6
tunglamed Bùng nổ Chuyển mạng giữ số sang Mobifone vì gói cước C120 Điện thoại di động 4
tunglamed Chuyển tiền qua App My Mobifone - Đơn giản - nhanh chóng - an toàn - tiết kiệm Điện thoại di động 3
tunglamed MobiFone triển khai gói data chuyển vùng quốc tế Roam Plus (RP1) Điện thoại di động 0
tunglamed Chuyển tiền liền tay – Ngất ngây ưu đãi trên MobiFone NEXT Điện thoại di động 0
Admin Hướng dẫn chuyển số sang chữ C# C# / C++ 0
B MobiFone tặng ưu đãi khủng cho thuê bao chuyển từ trả trước sang trả sau Thông tin các mạng di động 2
N MobiFone ưu đãi khủng cho KH chuyển từ trả trước sang trả sau Thông tin các mạng di động 11
Admin Chuyển vùng Apple ID sang Canada, Mỹ, Singapore, Trung Quốc - Fake Address For Apple ID US, Canada, Singapore, China, Hong Kong... Android, iOS 0
B Những ưu đãi “vàng” dành cho thuê bao chuyển mạng sang MobiFone Thông tin các mạng di động 2
T Blockchain chuyển tiền rất nhanh chóng Tin tức CNTT 0
P Phần mềm PC First PDF v4.3 - Phần mềm chuyển đổi file PDF sang Word Phần mềm 0
B Ưu đãi đặc biệt khi chuyển mạng giữ số sang MobiFone Thông tin các mạng di động 2
N Tổng hợp ưu đãi cho thuê bao trả trước chuyển mạng giữ số qua MobiFone Thông tin các mạng di động 2
B Hướng dẫn Chuyển mạng giữ số cho thuê bao trả trước sang MobiFone Thông tin các mạng di động 2
N Mobifone triển khai gói cước MFC99 cho thuê bao trả sau Chuyển mạng giữ số Thông tin các mạng di động 2
B Tin nóng - chuyển mạng giữ số sang Mobifone ngay tại nhà Thông tin các mạng di động 2
N Trải nghiệm các gói cước trả sau cho thuê bao chuyển mạng giữ số sang mạng Mobifone Thông tin các mạng di động 10
B Tặng 25% cước tiêu dùng khi chuyển mạng giữ số sang MobiFone Thông tin các mạng di động 2
P Phần mềm PC Leawo Prof. Media 8.0.0 - Phần mềm chuyển đổi video số 1 thế giới Phần mềm 0
tunglamed Hướng dẫn chuyển mạng giữ số sang Mobifone tại nhà Thông tin các mạng di động 2
N Cách chuyển mạng giữ số từ nhà mạng khác sang MobiFone Thông tin các mạng di động 2
N Ưu đãi lớn cho khách hàng khi chuyển sang sử dụng dịch vụ MobiFone Thông tin các mạng di động 2
tunglamed Chuyển mạng giữ số - Ưu đãi lớn cho khách hàng khi chuyển sang sử dụng dịch vụ MobiFone Thông tin các mạng di động 10
tunglamed Mobifone triển khai chuyển đổi đầu số đợt cuối vào ngày 02/10/2018 Thông tin các mạng di động 2
tunglamed Mobifone tiếp tục chuyển đổi đầu số 0126 về đầu số 076 vào ngày 28/09/2018 Thông tin các mạng di động 2
B Mobifone chuyển đổi đầu số 0122 về đầu số 077 vào ngày 25/9/2018 Thông tin các mạng di động 2
tunglamed Mobifone sẽ chuyển đổi đầu số 0121 về đầu số 079 vào ngày 21/9/2018 Thông tin các mạng di động 2
B Kế hoạch chuyển đổi thuê bao 11 số thành 10 số của MobiFone Thông tin các mạng di động 2
tunglamed Kế hoạch chuyển đổi thuê bao 11 số thành 10 số của Mobifone Thông tin các mạng di động 2
tunglamed MobiFone Next cung cấp tính năng Chuyển tiền nhanh Thông tin các mạng di động 2
Admin Hướng dẫn chuyển hướng https://www sang https:// trên nginx và ngược lại đơn giản VPS & Dedicated Server 0
M Share Vận chuyển hàng đi Đà Nẵng giá rẻ Thảo luận SEO 0
M Thảo luận Dịch vụ vận chuyển tủ kệ trưng bày sản phẩm uy tín Thảo luận SEO 0
B Dịch vụ Chuyển vùng quốc tế “Đi khắp thế gian” của Mobifone Thông tin các mạng di động 1
P Phần mềm PC Wondershare Video Converter Ultimate 10.0.2.64 - Phần mềm chuyển đổi video Phần mềm 0
P Foxit PhantomPDF Business 8.3.0.14878 Portable - Phần mềm đọc, chỉnh sửa và chuyển đổi file PDF Phần mềm 0
A Thị trường dự án căn hộ quận 4 đang bắt đầu "chuyển mình" Tin tức, sự kiện thường ngày 1
P Wondershare Video Converter Ultimate 9.0.1 full - Phần mềm chuyển đổi video Phần mềm 0
P Phần mềm PC Foxit PhantomPDF Business 8.2.0.2192 - Phần mềm đọc, chỉnh sửa và chuyển đổi file PDF Phần mềm 0
P Phần mềm PC First PDF v4.1 - Phần mềm chuyển đổi file PDF sang Word và các định dạng khác Phần mềm 1
A Dịch vụ vận chuyển hàng hoá từ Hà Nội vào HCM Trò chuyện linh tinh 0
A Dịch vụ vận chuyển hàng bao bì đi Hà Nội Trò chuyện linh tinh 0
T Chuyển vùng quốc tế - Gói Roam Saver Thông tin các mạng di động 3
tunglamed Chuyển vùng quốc tế - Gói Roam Saver Thông tin các mạng di động 6
A dịch vụ vận chuyển hàng hóa đi Lào, Campuchia Trò chuyện linh tinh 0
B MobiFone ưu đãi cho khách VIP chuyển vùng quốc tế tháng 11 và 12 Thông tin các mạng di động 4
A Vận chuyển hàng ở đâu rẻ Thảo luận chung 0

Similar threads

New posts New threads New resources

Back
Top