Code hoặc hướng dẫn này được sử dụng trên phiên bản Xenforo cũ đã quá hạn sử dụng. Bạn hãy
click để tìm bản mới hơn
Hiển thị địa chỉ IP trong Users -> Users Awaiting Approval
*** Chú ý: Sự thay đổi này có thể là một nguyên nhân gây tăng tải trên máy chủ. Nên lưu ý khi sử dụng. ***
Nếu bạn muốn có một số thông tin có sẵn trong danh sách "Users Awaiting Approval", đây là một ví dụ cơ bản để làm như vậy. Ví dụ này sẽ cho bạn thấy làm thế nào để thêm địa chỉ IP của người dùng vào danh sách.
Cảnh báo, điều này sẽ yêu cầu thay đổi các mã cơ sở của XenForo, có nghĩa là bạn sẽ phải làm lại chúng khi bạn nâng cấp XenForo.
Mở tập tin sau đây: library/XenForo/ControllerAdmin/User.php
Tìm (khoảng dòng 597-599):
Thay đổi thành:
Lưu lại và mở library/XenForo/Model/USer.php
Tìm (khoảng dòng 13/14):
Thay đổi thành:
Tìm (khoảng dòng 458-466, số dòng sau khi chỉnh sửa ở trên):
Xin lưu ý rằng sẽ có HAI cặp dấu ngoặc ở dòng đó. Thấp nhất sẽ được đặt trên dòng 467, và sẽ là một tab ít thụt vào so với dòng 466.
Bạn cần phải dán mã dưới đây vào giữa hai dấu ngoặc nhọn.
Thêm bên dưới (không loại bỏ các mã trên):
Lưu lại.
Để hiển thị các giá trị IP mới được thêm vào trong Admin CP, bây giờ bạn sẽ cần phải chắc chắn rằng bạn có bật chế độ gỡ lỗi. Điều này có thể được thực hiện bằng cách chỉnh sửa tập tin config.php mà có thể được tìm thấy trong thư mục library.
Khoảng phía dưới, thêm:
Thay 127.0.0.1 với IP riêng của bạn (nếu bạn không biết, www.whatsmyip.org).
Bây giờ bạn đăng nhập vào Admin CP của bạn, bạn sẽ thấy một tab mới được gọi là Development. Nhấn vào đó, và sau đó chọn "Admin Templates". Tìm "user_moderated", và chỉnh sửa nó.
Tìm:
Thay bằng:
Xong.
Nếu bây giờ bạn vào Users -> Users Awaiting Approval, địa chỉ IP của người dùng sẽ được hiển thị:
Chúc các bạn thành công.
*** Chú ý: Sự thay đổi này có thể là một nguyên nhân gây tăng tải trên máy chủ. Nên lưu ý khi sử dụng. ***
Nếu bạn muốn có một số thông tin có sẵn trong danh sách "Users Awaiting Approval", đây là một ví dụ cơ bản để làm như vậy. Ví dụ này sẽ cho bạn thấy làm thế nào để thêm địa chỉ IP của người dùng vào danh sách.
Cảnh báo, điều này sẽ yêu cầu thay đổi các mã cơ sở của XenForo, có nghĩa là bạn sẽ phải làm lại chúng khi bạn nâng cấp XenForo.
Mở tập tin sau đây: library/XenForo/ControllerAdmin/User.php
Tìm (khoảng dòng 597-599):
Mã:
$users = $this->_getUserModel()->getUsers(array(
'user_state' => 'moderated'
));
Thay đổi thành:
Mã:
$users = $this->_getUserModel()->getUsers(array(
'user_state' => 'moderated'), array('join' => XenForo_Model_User::FETCH_USER_IP
));
Lưu lại và mở library/XenForo/Model/USer.php
Tìm (khoảng dòng 13/14):
Mã:
const FETCH_USER_PERMISSIONS = 0x08;
const FETCH_LAST_ACTIVITY = 0x10;
Thay đổi thành:
Mã:
const FETCH_USER_PERMISSIONS = 0x08;
const FETCH_USER_IP = 0x09;
const FETCH_LAST_ACTIVITY = 0x10;
Tìm (khoảng dòng 458-466, số dòng sau khi chỉnh sửa ở trên):
Mã:
if ($fetchOptions['join'] & self::FETCH_LAST_ACTIVITY)
{
$selectFields .= ',
IF (session_activity.view_date IS ****, user.last_activity, session_activity.view_date) AS effective_last_activity,
session_activity.view_date, session_activity.controller_name, session_activity.controller_action, session_activity.params, session_activity.ip';
$joinTables .= '
LEFT JOIN xf_session_activity AS session_activity ON
(session_activity.user_id = user.user_id AND session_activity.unique_key = user.user_id)';
}
Xin lưu ý rằng sẽ có HAI cặp dấu ngoặc ở dòng đó. Thấp nhất sẽ được đặt trên dòng 467, và sẽ là một tab ít thụt vào so với dòng 466.
Bạn cần phải dán mã dưới đây vào giữa hai dấu ngoặc nhọn.
Thêm bên dưới (không loại bỏ các mã trên):
Mã:
if ($fetchOptions['join'] & self::FETCH_USER_IP)
{
$selectFields .= ',
INET_NTOA(ip.ip) AS ip';
$joinTables .= '
LEFT JOIN xf_ip AS ip ON
(ip.user_id = user.user_id)';
}
Lưu lại.
Để hiển thị các giá trị IP mới được thêm vào trong Admin CP, bây giờ bạn sẽ cần phải chắc chắn rằng bạn có bật chế độ gỡ lỗi. Điều này có thể được thực hiện bằng cách chỉnh sửa tập tin config.php mà có thể được tìm thấy trong thư mục library.
Khoảng phía dưới, thêm:
Mã:
if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1')
{
$config['debug'] = true;
}
Thay 127.0.0.1 với IP riêng của bạn (nếu bạn không biết, www.whatsmyip.org).
Bây giờ bạn đăng nhập vào Admin CP của bạn, bạn sẽ thấy một tab mới được gọi là Development. Nhấn vào đó, và sau đó chọn "Admin Templates". Tìm "user_moderated", và chỉnh sửa nó.
Tìm:
Mã:
<xen:controlunit label="{xen:phrase user}:"><a href="{xen:adminlink users/edit, $user}" target="_blank">{$user.username}</a> ({$user.email})</xen:controlunit>
Thay bằng:
Mã:
<xen:controlunit label="{xen:phrase user}:"><a href="{xen:adminlink users/edit, $user}" target="_blank">{$user.username}</a> ({$user.email}) - {$user.ip}</xen:controlunit>
Xong.
Nếu bây giờ bạn vào Users -> Users Awaiting Approval, địa chỉ IP của người dùng sẽ được hiển thị:
Nguồn: xenforo.com
Bài viết liên quan
Bài viết mới
Bị lỗi data
bởi bloghocpiano,