Kết quả 1 đến 1 của 1
-
08-03-14, 05:50 PM #1
- Ngày tham gia
- Sep 2011
- Đang ở
- Localhost
- Bài viết
- 229
- Thanks
- 101
- Thanked 36 Times in 27 Posts
Delete Duplicate Posts - Hướng dẩn xóa các bài viết trùng trong Vbb
Thông thường các bạn muốn xóa các chủ đề trùng lặp thì vào ACP => Maintenance => Update Counters => Delete Duplicate Threadsnhưng hầu như hiệu quả thấp. Hôm nay mình sẽ hướng dẩn các bạn cách xóa các bài viết trùng nhau bằng cách hack thêm một số câu lệnh cho vBulletin.
Bước 1:
mở file misc.php nằm theo đường dẩn {forums}/admincp/misc.php, tìm:
PHP Code:
print_form_header('misc', 'removedupe');
print_table_header($vbphrase['delete_duplicate_threads'], 2, 0);
print_description_row($vbphrase['note_duplicate_threads_have_same']);
print_input_row($vbphrase['number_of_threads_to_process_per_cycle'], 'perpage', 500);
print_submit_row($vbphrase['delete_duplicate_threads']);
PHP Code:
// Delete Duplicate Posts
print_form_header('misc', 'removedupeposts');
print_table_header('Delete Duplicate Posts', 2, 0);
print_description_row('<strong>Note:</strong> Duplicate posts are posts that have the same title, post user name name, and post time within the same thread.');
print_input_row('Number of threads to process per cycle', 'perpage', 500);
print_submit_row('Delete Duplicate Posts');
// /Delete Duplicate Posts
Vẫn trong misc.php tìm:
PHP Code:
// ###################### Start find lost users #######################
if ($_POST['do'] == 'lostusers')
Thêm vào bên trên:
PHP Code:
// Delete Duplicate Posts
// ###################### Start remove dupe posts #######################
if ($_REQUEST['do'] == 'removedupeposts')
{
if (empty($vbulletin->GPC['perpage']))
{
$vbulletin->GPC['perpage'] = 500;
}
$finishat = $vbulletin->GPC['startat'] + $vbulletin->GPC['perpage'];
echo '<p>Removing duplicate posts</p>';
$posts = $db->query_read("
SELECT postid, post.title, post.threadid, post.username, post.dateline, thread.title as threadtitle
FROM " . TABLE_PREFIX . "post as post
INNER JOIN " . TABLE_PREFIX . "thread AS thread ON(thread.threadid = post.threadid)
WHERE postid >= " . $vbulletin->GPC['startat'] . " AND
postid < $finishat
ORDER BY postid
");
while ($post = $db->fetch_array($posts))
{
$deleteposts = $db->query_read("
SELECT *
FROM " . TABLE_PREFIX . "post
WHERE title = '" . $db->escape_string($post['title']) . "' AND
threadid = $post[threadid] AND
username = '" . $db->escape_string($post['username']) . "' AND
dateline = $post[dateline] AND
postid > $post[postid]
");
while ($deletepost = $db->fetch_array($deleteposts))
{
$postman =& datamanager_init('Post', $vbulletin, ERRTYPE_SILENT, 'threadpost');
$postman->set_existing($post);
$postman->delete();
unset($postman);
echo " ".construct_phrase($vbphrase['delete_x'], $deletepost['postid'] . ' ' . $deletepost['title'])."<br />";
}
echo construct_phrase($vbphrase['processing_x'], $post['postid'] . ' ' . iif(!empty($post['title']),$post['title'],$post['threadtitle']) ) . "<br />\n";
vbflush();
}
if ($checkmore = $db->query_first("SELECT postid FROM " . TABLE_PREFIX . "post WHERE postid >= $finishat LIMIT 1"))
{
print_cp_redirect("misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=removedupeposts&startat=$finishat&pp=" . $vbulletin->GPC['perpage']);
echo "<p><a href=\"misc.php?" . $vbulletin->session->vars['sessionurl'] . "do=removedupeposts&startat=$finishat&pp=" . $vbulletin->GPC['perpage'] . "\">" . $vbphrase['click_here_to_continue_processing'] . "</a></p>";
}
else
{
define('CP_REDIRECT', 'misc.php');
print_stop_message('deleted_duplicate_threads_successfully');
}
}
// /Delete Duplicate Posts
vào ACP => Maintenance => Update Counters sẽ thấy một điều mới đó là nó có thêm chức năng Delete Duplicate Posts (Xem hình).
Chức năng cũng tương tự như Delete Duplicate Threads nhưng mà cơ chế hoạt động của nó sẽ hay hơn và hiệu quả hơn!!
VD như ta post 1 bài như bài này:
khi ta viết tiếp một bài khác có nội dung tương tự rồi nhấn gởi bài mới:
thì hệ thống sẽ thông báo cho chúng ta là bài này đã có rồi và sẽ được chuyển hướng ra ngoài.
Cách này còn một số hạn chế các bạn tự fix và bổ xung nha! Done tại đây!!
Hay thì thank phát [Only registered and activated users can see links. ]
Nguồn : CungHoaNhip.Net
Khách viếng thăm hãy cùng ShineGhost xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
Các Chủ đề tương tự
-
My Threads & My Posts Links in a Drop-Down Menu
Bởi PandavB trong diễn đàn vBulletin 4.x Add-onsTrả lời: 0Bài viết cuối: 11-02-14, 10:49 AM -
Display Unread Posts (and Reputation Comments in 4.1)
Bởi PandavB trong diễn đàn vBulletin 4.x Add-onsTrả lời: 0Bài viết cuối: 11-02-14, 08:53 AM -
Change Threads/Posts Owner/Date for vB4
Bởi PandavB trong diễn đàn vBulletin 4.x Add-onsTrả lời: 0Bài viết cuối: 10-02-14, 04:41 PM -
Change Threads/Posts Owner/Date for vB3.8
Bởi KingSky trong diễn đàn vBulletin 3.8 Add-onsTrả lời: 0Bài viết cuối: 10-02-14, 02:12 PM -
Pr0 nào giúp em delete cái ông Peddler (kẻ bán dạo)trong shopgame
Bởi thiepls trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 2Bài viết cuối: 30-09-11, 02:56 AM