Trang nhất > Nukeviet > Hướng dẫn fix lỗi Nukeviet > Hướng dẫn lấy lại tên tác giả bài viết khi cập nhật lên NukeViet 4.5.00
Hướng dẫn lấy lại tên tác giả bài viết khi cập nhật lên NukeViet 4.5.00
admin, Phan Tấn Dũng
2022-03-27T02:56:47-04:00
2022-03-27T02:56:47-04:00
http://dacloi.net/huong-dan-fix-loi-nukeviet/huong-dan-lay-lai-ten-tac-gia-bai-viet-khi-cap-nhat-len-nukeviet-4-5-00-62.html
http://dacloi.net/uploads/news/2022_03/cai-dat-may-chu.jpg
Sourcode teamplate free | Nukeviet HCMC | PSD file teamplate | Figma teamplate | Nukeviet
http://dacloi.net/uploads/vncode.png
Khi cập nhật NukeViet 4.4 lên 4.5 trong quản trị module tin tức và module ảo của nó sẽ bị mất dữ liệu tại cột "Tác giả" nếu bài đăng đó không điền thông tin "Tác giả bài viết". Ở phiên bản 4.4 cột này sẽ hiển thị tên người đăng bài. Tool này giúp cập nhật người đăng bài thành tác giả bài viết.
Tạo file vinades/update_author.php với nội dung như sau
<?php
/**
* NukeViet Content Management System
* @version 4.x
* @author VINADES.,JSC <[email protected]>
* @copyright (C) 2009-2021 VINADES.,JSC. All rights reserved
* @license GNU/GPL version 2 or any later version
* @see https://github.com/nukeviet The NukeViet CMS GitHub project
*/
$_SERVER['HTTP_HOST'] = 'tmp.nukeviet4.my';
$_SERVER['HTTPS'] = 'off';
// Sửa cái này nếu chạy ngôn ngữ khác tiếng Việt
$_GET['language'] = 'vi';
// Chỗ này khỏi sửa
$_SERVER['SERVER_NAME'] = 'localhost';
$_SERVER['SERVER_PROTOCOL'] = 'http';
$_SERVER['REQUEST_URI'] = '';
$_SERVER['SERVER_PORT'] = '80';
$_SERVER['PHP_SELF'] = '';
$_SERVER['HTTP_CLIENT_IP'] = '127.0.0.1';
define('NV_SYSTEM', true);
// Nếu file này đặt vào thư mục gốc ngang hàng index.php thì bỏ cái đoạn /..
define('NV_ROOTDIR', str_replace(DIRECTORY_SEPARATOR, '/', realpath(pathinfo(__file__, PATHINFO_DIRNAME) . '/..')));
require NV_ROOTDIR . '/includes/mainfile.php';
require NV_ROOTDIR . '/includes/core/user_functions.php';
$sql = 'SELECT lang FROM ' . $db_config['prefix'] . '_setup_language WHERE setup=1 ORDER BY weight ASC';
$array_sitelangs = $db->query($sql)->fetchAll(PDO::FETCH_COLUMN);
foreach ($array_sitelangs as $lang) {
echo "Cập nhật ngôn ngữ " . $lang . "\n";
// Lấy tất cả các module và module ảo của nó
$mquery = $db->query('SELECT title, module_data FROM ' . $db_config['prefix'] . '_' . $lang . "_modules WHERE module_file = 'news'");
while (list ($mod, $mod_data) = $mquery->fetch(3)) {
echo "Cập nhật module " . $mod . "\n";
// Quét từng bài viết xử lý
$sql = "SELECT id, admin_id FROM " . $db_config['prefix'] . '_' . $lang . '_' . $mod_data . "_rows";
$result = $db->query($sql);
while ($row = $result->fetch()) {
if (!empty($row['admin_id'])) {
$sql = 'SELECT userid, username, first_name, last_name FROM ' . NV_USERS_GLOBALTABLE . ' WHERE userid=' . $row['admin_id'];
$admin = $db->query($sql)->fetch();
if (!empty($admin)) {
$admin['full_name'] = nv_show_name_user($admin['first_name'], $admin['last_name'], $admin['username']);
$admin['alias'] = strtolower(change_alias($admin['full_name']));
// Kiểm tra xem author có chưa
$sql = "SELECT id FROM " . $db_config['prefix'] . '_' . $lang . '_' . $mod_data . "_author
WHERE uid=" . $admin['userid'];
$admin['id'] = $db->query($sql)->fetchColumn();
// Thêm mới
if (empty($admin['id'])) {
try {
$sql = "INSERT INTO " . $db_config['prefix'] . '_' . $lang . '_' . $mod_data . "_author (
uid, alias, pseudonym, description, add_time, edit_time, active, numnews
) VALUES (
" . $admin['userid'] . ", " . $db->quote($admin['alias']) . ", " . $db->quote($admin['full_name']) . ",
'', " . NV_CURRENTTIME . ", 0, 1, 0
)";
$db->query($sql);
$admin['id'] = $db->lastInsertId();
} catch (Exception $e) {
echo print_r($e, true);
die("\nLỗi thêm admin\n");
}
if (empty($admin['id'])) {
die("Lỗi thêm tác giả\n");
}
echo "Thêm mới tác giả " . $admin['full_name'] . "\n";
}
// Thêm vào tác giả
$sql = "INSERT IGNORE INTO " . $db_config['prefix'] . '_' . $lang . '_' . $mod_data . "_authorlist (
id, aid, alias, pseudonym
) VALUES (
" . $row['id'] . ", " . $admin['id'] . ",
" . $db->quote($admin['alias']) . ", " . $db->quote($admin['full_name']) . "
)";
if ($db->exec($sql)) {
echo "Gán bài viết #" . $row['id'] . " cho tác giả " . $admin['full_name'] . "\n";
// Cập nhật số bài viết
$sql = "UPDATE " . $db_config['prefix'] . '_' . $lang . '_' . $mod_data . "_author
SET numnews=numnews+1 WHERE id=" . $admin['id'];
$db->exec($sql);
}
}
}
}
}
}
echo "\nKết thúc\n";
Sau đó từ SSH tại thư mục vinades chạy php update_author.php
Lưu ý: Chỉnh sửa các giá trị sau
$_SERVER['HTTP_HOST'] = 'tmp.nukeviet4.my';
chỉnhtmp.nukeviet4.my
thành domain của bạn$_SERVER['HTTPS'] = 'off';
chỉnhoff
thànhon
nếu site bạn chạy https$_GET['language'] = 'vi';
chỉnhvi
thànhen
nếu site bạn chạy tiếng Anh
Tác giả: admin, Phan Tấn Dũng
Ý kiến bạn đọc
Bạn cần đăng nhập với tư cách là Thành viên chính thức để có thể bình luận
Những tin mới hơn
-
Hướng dẫn thay đổi chữ "Trang nhất" thành trang chủ trên Nukeviet
(10/04/2022) -
Hướng dẫn fix lỗi không có og:image module download
(24/04/2022) -
Hướng dẫn fix lỗi 404 nukeviet
(03/05/2022) -
Hướng dẫn fix lỗi Function name must be a string nukeviet
(01/07/2022) -
Hướng dẫn cấu hình chức năng gửi mail server nukeviet
(04/08/2022) -
Lỗi Column not found: 1054 Unknown column 'description' nukeviet
(13/08/2022) -
Hướng dẫn thay đường dẫn đăng nhập vào admin trong nukeviet
(10/09/2022) -
Hướng dẫn thay đổi hoặc loại bỏ thẻ Generator trên NukeViet
(10/09/2022) -
Hướng dẫn đổi mật khẩu tài khoản quản trị tối cao trong NukeViet
(10/09/2022)
Những tin cũ hơn
Hỏi đáp với tôi
close- smart_toy Hi there 👋 How can I help you today?
send