Tutorial 2x How to clean up Xenforo 1 after upgrading to Xenforo 2 - Cách dọn dẹp XenForo 1 sau khi nâng cấp lên XenForo 2

PVS

Super Moderator
Thành viên BQT
How to clean up Xenforo 1 after upgrading to Xenforo 2 - Cách dọn dẹp XenForo 1 sau khi nâng cấp lên XenForo 2


Bài viết này sẽ chỉ cho các bạn cách dọn dẹp Xenforo 1 sau khi nâng cấp lên Xenforo 2.

delete.webp

Để dọn dẹp, có một add-on có tên là XF1 Cleanup Command, nhưng nhiều người dùng có thể không có quyền CLI và cảm thấy nó chậm hơn.

Một phương pháp nhanh hơn là sử dụng code viết bên dưới. Tạo một tệp có tên delete.php ngang với index.php và dán code sau vào đó:
PHP:
<?php
// Directory path containing the files to delete
$baseDir = __DIR__;

// Function to safely delete a file
function safeDeleteFile($filePath) {
    if (file_exists($filePath) && is_file($filePath)) {
        return unlink($filePath);
    }
    return false; // Return false if file doesn't exist or is not a regular file
}

// Function to safely delete a directory and its contents recursively
function safeDeleteDirectory($dirPath) {
    if (file_exists($dirPath) && is_dir($dirPath)) {
        $files = array_diff(scandir($dirPath), array('.', '..'));
        foreach ($files as $file) {
            $path = $dirPath . DIRECTORY_SEPARATOR . $file;
            is_dir($path) ? safeDeleteDirectory($path) : unlink($path);
        }
        return rmdir($dirPath);
    }
    return false; // Return false if directory doesn't exist or is not a directory
}

// List of files to delete, including delete.php itself
$filesToDelete = [
    'admindav.php',
    'deferred.php',
    'fb_channel.php',
    'rgba.php',
    'install/language_en.php',
    'styles/default/xenforo/clear.png',
    'styles/default/xenforo/connect_sprite.png',
    'styles/default/xenforo/favicon.ico',
    'styles/default/xenforo/gplus.png',
    'styles/default/xenforo/logo.og.png',
    'styles/default/xenforo/logo.png',
    'styles/default/xenforo/magnifier.png',
    'styles/default/xenforo/node-sprite.png',
    'styles/default/xenforo/twitter-bird.png',
    'styles/default/xenforo/warning_stripes.png',
    'styles/default/xenforo/XenForo-small.png',
    'styles/default/xenforo/xenforo-smilies-sprite.png',
    'styles/default/xenforo/xenforo-ui-sprite.png',
    'styles/default/xenforo/XenForo.png',
    'styles/default/xenforo/smilies/alien.png',
    'styles/default/xenforo/smilies/barefoot.png',
    'styles/default/xenforo/smilies/biggrin.png',
    'styles/default/xenforo/smilies/cautious.png',
    'styles/default/xenforo/smilies/coffee.png',
    'styles/default/xenforo/smilies/confused.png',
    'styles/default/xenforo/smilies/cool.png',
    'styles/default/xenforo/smilies/cry.png',
    'styles/default/xenforo/smilies/devilish.png',
    'styles/default/xenforo/smilies/eek.png',
    'styles/default/xenforo/smilies/frown.png',
    'styles/default/xenforo/smilies/geek.png',
    'styles/default/xenforo/smilies/giggle.png',
    'styles/default/xenforo/smilies/inlove.png',
    'styles/default/xenforo/smilies/laugh.png',
    'styles/default/xenforo/smilies/mad.png',
    'styles/default/xenforo/smilies/ninja.png',
    'styles/default/xenforo/smilies/notworthy.png',
    'styles/default/xenforo/smilies/O_o.png',
    'styles/default/xenforo/smilies/poop.png',
    'styles/default/xenforo/smilies/redface.png',
    'styles/default/xenforo/smilies/roflmao.png',
    'styles/default/xenforo/smilies/rolleyes.png',
    'styles/default/xenforo/smilies/sick.png',
    'styles/default/xenforo/smilies/sleep.png',
    'styles/default/xenforo/smilies/smile.png',
    'styles/default/xenforo/smilies/sneaky.png',
    'styles/default/xenforo/smilies/speechless.png',
    'styles/default/xenforo/smilies/thumbsdown.png',
    'styles/default/xenforo/smilies/thumbsup.png',
    'styles/default/xenforo/smilies/tongue.png',
    'styles/default/xenforo/smilies/unsure.png',
    'styles/default/xenforo/smilies/whistling.png',
    'styles/default/xenforo/smilies/wink.png',
    'styles/default/xenforo/smilies/x3.png',
    'delete.php' // Include delete.php itself in the list of files to delete
];

// Directories to delete
$dirs = [
    'install/data',
    'install/templates',
    'js/flot',
    'js/flow.js',
    'js/jquery',
    'js/redactor',
    'js/sortable',
    'js/swfupload',
    'js/videojs',
    'js/xenforo',
    'library',
    'styles/videojs',
    'styles/default/xenforo/acp-icons',
    'styles/default/xenforo/avatars',
    'styles/default/xenforo/color-picker',
    'styles/default/xenforo/editor',
    'styles/default/xenforo/gradients',
    'styles/default/xenforo/icons',
    'styles/default/xenforo/overlay',
    'styles/default/xenforo/permissions',
    'styles/default/xenforo/smilies.doodle',
    'styles/default/xenforo/widgets',
    'js/xengallery',
    'js/xenresource',
    'styles/default/xengallery',
    'styles/default/xenresource'
];

// Attempt to delete files
foreach ($filesToDelete as $file) {
    $filePath = $baseDir . DIRECTORY_SEPARATOR . $file;

    if (safeDeleteFile($filePath)) {
        echo "Deleted file: $file<br>";
    } else {
        echo "Failed to delete file: $file<br>";
    }
}

// Attempt to delete directories
foreach ($dirs as $dir) {
    $dirPath = $baseDir . DIRECTORY_SEPARATOR . $dir;

    if (safeDeleteDirectory($dirPath)) {
        echo "Deleted directory: $dir<br>";
    } else {
        echo "Failed to delete directory: $dir<br>";
    }
}

// Attempt to delete delete.php itself
$selfFilePath = __FILE__;

if (safeDeleteFile($selfFilePath)) {
    echo "Deleted delete.php itself successfully.<br>";
} else {
    echo "Failed to delete delete.php itself.<br>";
}
?>

Sau đó, truy cập domain/delete.php để hoàn tất quá trình.

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


Nguồn: xenforo.com​
 
Back
Top