Danh sách hook
Danh sách được sinh từ các lời gọi nv_apply_hook trong mã nguồn. Hàm xử lý nhận $vars là mảng dữ liệu đầu vào, $from_data là thông tin module nguồn, $receive_data là thông tin module nhận.
Hook hệ thống
before_rss_output_xml
Trước khi xuất dữ liệu RSS hoặc Atom
- Nguồn: Hệ thống
- Vị trí: src/includes/core/theme_functions.php:400
Dữ liệu đầu vào ($vars)
$vars[0]là$channelarray: Thông tin kênh$vars[1]là$itemsarray: Các mục tin$vars[2]là$xslstring: URL file XSL$vars[3]là$typestring: rss hoặc atom$vars[4]là$timemodestring: GMT hoặc ISO8601
Giá trị trả về
- Hàm xử lý trả về
array: [$channel, $items, $xsl, $type, $timemode] - Gán vào
[$channel, $items, $xsl, $type, $timemode] - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
[$channel, $items, $xsl, $type, $timemode]
Ví dụ
nv_add_hook($module_name, 'before_rss_output_xml', $priority, function ($vars, $from_data, $receive_data) {
$channel = $vars[0];
$items = $vars[1];
$xsl = $vars[2];
$type = $vars[3];
$timemode = $vars[4];
// Xử lý tại đây
return [$channel, $items, $xsl, $type, $timemode];
});change_site_buffer
Trước khi xuất nội dung trang, sau khi đã tối ưu HTML
- Nguồn: Hệ thống
- Vị trí: src/includes/footer.php:39
Dữ liệu đầu vào ($vars)
$vars[0]là$global_configarray: Cấu hình hệ thống$vars[1]là[$contents, $headers]array: Mảng gồm nội dung HTML và các header HTTP
Giá trị trả về
- Hàm xử lý trả về
array: [$contents, $headers] - Gán vào
[$contents, $headers] - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
[$contents, $headers]
Ví dụ
nv_add_hook($module_name, 'change_site_buffer', $priority, function ($vars, $from_data, $receive_data) {
$global_config = $vars[0];
[$contents, $headers] = $vars[1];
// Xử lý tại đây
return [$contents, $headers];
});check_inform
Khi trình duyệt kiểm tra định kỳ số thông báo mới của thành viên, trước khi đọc số thông báo
- Nguồn: Hệ thống
- Vị trí: src/includes/core/check_inform.php:29
Dữ liệu đầu vào ($vars)
$vars[0]là$useridint: ID thành viên$vars[1]là$groupsstring: Các nhóm của thành viên, ngăn cách bởi dấu phẩy
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'check_inform', $priority, function ($vars, $from_data, $receive_data) {
$userid = $vars[0];
$groups = $vars[1];
// Xử lý tại đây
});check_server
Sau khi nạp các plugin, trước khi thiết lập CDN. Dùng để kiểm tra yêu cầu truy cập ở mức máy chủ, VD chuyển hướng tên miền
- Nguồn: Hệ thống
- Vị trí: src/includes/mainfile.php:240
Dữ liệu đầu vào ($vars)
Không có.
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'check_server', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
});cron_user_datadeletion_handling
Đầu tiến trình tự động xóa dữ liệu thành viên đã lên lịch xóa
- Nguồn: Hệ thống
- Vị trí: src/includes/cronjobs/user_datadeletion_handling.php:31
Dữ liệu đầu vào ($vars)
Không có.
Giá trị trả về
- Hàm xử lý trả về
mixed: Khác null thì bỏ qua xử lý mặc định của hệ thống - Gán vào
$skiped
Ví dụ
nv_add_hook($module_name, 'cron_user_datadeletion_handling', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
return $skiped;
});cron_user_datadeletion_handling_row
Sau khi tiến trình tự động xóa xong dữ liệu của một thành viên
- Nguồn: Hệ thống
- Vị trí: src/includes/cronjobs/user_datadeletion_handling.php:208
Dữ liệu đầu vào ($vars)
$vars[0]là$rowarray: Yêu cầu xóa dữ liệu, bảng users_deleted$vars[1]là$user_infoarray: Thông tin thành viên đã xóa
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'cron_user_datadeletion_handling_row', $priority, function ($vars, $from_data, $receive_data) {
$row = $vars[0];
$user_info = $vars[1];
// Xử lý tại đây
});emailtemplates_after_delete
Sau khi xóa một mẫu email
- Nguồn: Hệ thống
- Vị trí: src/admin/emailtemplates/main.php:43
Dữ liệu đầu vào ($vars)
$vars[0]là$emailidint: ID mẫu email đã xóa
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'emailtemplates_after_delete', $priority, function ($vars, $from_data, $receive_data) {
$emailid = $vars[0];
// Xử lý tại đây
});emailtemplates_content_after_save
Sau khi thêm mới hoặc cập nhật mẫu email thành công
- Nguồn: Hệ thống
- Vị trí: src/admin/emailtemplates/contents.php:564
Dữ liệu đầu vào ($vars)
$vars[0]là$arrayarray: Dữ liệu mẫu email đã lưu
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'emailtemplates_content_after_save', $priority, function ($vars, $from_data, $receive_data) {
$array = $vars[0];
// Xử lý tại đây
});emailtemplates_content_correct_before_save
Xử lý dữ liệu mẫu email trước khi lưu vào CSDL, sau khi đã kiểm tra hợp lệ
- Nguồn: Hệ thống
- Vị trí: src/admin/emailtemplates/contents.php:395
Dữ liệu đầu vào ($vars)
$vars[0]là$arrayarray: Dữ liệu mẫu email
Giá trị trả về
- Hàm xử lý trả về
array: Dữ liệu mẫu email sau khi xử lý - Gán vào
$array - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$array
Ví dụ
nv_add_hook($module_name, 'emailtemplates_content_correct_before_save', $priority, function ($vars, $from_data, $receive_data) {
$array = $vars[0];
// Xử lý tại đây
return $array;
});emailtemplates_content_from_db
Xử lý dữ liệu mẫu email sau khi đọc từ CSDL
Gọi khi mở form sửa mẫu email và khi gửi thử mẫu email
- Nguồn: Hệ thống
- Vị trí: src/admin/emailtemplates/contents.php:126
- Vị trí: src/admin/emailtemplates/test.php:41
Dữ liệu đầu vào ($vars)
$vars[0]là$arrayarray: Dữ liệu mẫu email
Giá trị trả về
- Hàm xử lý trả về
array: Dữ liệu mẫu email sau khi xử lý - Gán vào
$array - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$array
Ví dụ
nv_add_hook($module_name, 'emailtemplates_content_from_db', $priority, function ($vars, $from_data, $receive_data) {
$array = $vars[0];
// Xử lý tại đây
return $array;
});emailtemplates_on_emailtemplate_save_error
Khi lưu mẫu email vào CSDL bị lỗi
- Nguồn: Hệ thống
- Vị trí: src/admin/emailtemplates/contents.php:580
Dữ liệu đầu vào ($vars)
$vars[0]là$arrayarray: Dữ liệu mẫu email$vars[1]là$eThrowable: Lỗi phát sinh
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'emailtemplates_on_emailtemplate_save_error', $priority, function ($vars, $from_data, $receive_data) {
$array = $vars[0];
$e = $vars[1];
// Xử lý tại đây
});event_before_sending_test_mail
Trước khi gửi thử mẫu email, sau khi đã dựng nội dung
- Nguồn: Hệ thống
- Vị trí: src/admin/emailtemplates/test.php:172
Dữ liệu đầu vào ($vars)
$vars[0]là$emailidint: ID mẫu email$vars[1]là$email_dataarray: Dữ liệu mẫu email$vars[2]là$merge_fieldsarray: Các trường dữ liệu của mẫu email$vars[3]là$field_dataarray: Dữ liệu thử của các trường
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'event_before_sending_test_mail', $priority, function ($vars, $from_data, $receive_data) {
$emailid = $vars[0];
$email_data = $vars[1];
$merge_fields = $vars[2];
$field_data = $vars[3];
// Xử lý tại đây
});generating_sitemap_module
Khi tạo sitemap index, gọi với từng module có sitemap
- Nguồn: Hệ thống
- Vị trí: src/includes/core/theme_functions.php:536
- Vị trí: src/includes/core/theme_functions.php:566
Dữ liệu đầu vào ($vars)
$vars[0]là$modnamestring: Tên module$vars[1]là$sitemapsarray: Các file funcs/sitemap*.php của module
Giá trị trả về
- Hàm xử lý trả về
array: [$modname, $sitemaps] - Gán vào
[$modname, $sitemaps] - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
[$modname, $sitemaps]
Ví dụ
nv_add_hook($module_name, 'generating_sitemap_module', $priority, function ($vars, $from_data, $receive_data) {
$modname = $vars[0];
$sitemaps = $vars[1];
// Xử lý tại đây
return [$modname, $sitemaps];
});get_email_content_before_send
Xử lý nội dung email theo mẫu trước khi gửi
- Nguồn: Hệ thống
- Vị trí: src/includes/functions.php:4589
Dữ liệu đầu vào ($vars)
$vars[0]là$email_contentstring: Nội dung email đã dựng$vars[1]là$_email_dataarray: Dữ liệu mẫu email$vars[2]là$rowarray: Dữ liệu gửi cho một lượt nhận$vars[3]là$emailidint: ID mẫu email
Giá trị trả về
- Hàm xử lý trả về
string|array: Nội dung email, hoặc mảng [nội dung, ngôn ngữ] để đổi ngôn ngữ email - Gán vào
$email_content - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$email_content
Ví dụ
nv_add_hook($module_name, 'get_email_content_before_send', $priority, function ($vars, $from_data, $receive_data) {
$email_content = $vars[0];
$_email_data = $vars[1];
$row = $vars[2];
$emailid = $vars[3];
// Xử lý tại đây
return $email_content;
});get_email_data_before_fetch
Xử lý dữ liệu email trước khi dựng nội dung bằng Smarty, khi gửi email theo mẫu
- Nguồn: Hệ thống
- Vị trí: src/includes/functions.php:4571
Dữ liệu đầu vào ($vars)
$vars[0]là$emailidint: ID mẫu email$vars[1]là$email_dataarray: Dữ liệu mẫu email$vars[2]là$merge_fieldsarray: Các trường dữ liệu của mẫu email$vars[3]là$rowarray: Dữ liệu gửi cho một lượt nhận, một phần tử của $data truyền vào nv_sendmail_from_template
Giá trị trả về
- Hàm xử lý trả về
array: Dữ liệu email sau khi xử lý - Gán vào
$_email_data - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$email_data
Ví dụ
nv_add_hook($module_name, 'get_email_data_before_fetch', $priority, function ($vars, $from_data, $receive_data) {
$emailid = $vars[0];
$email_data = $vars[1];
$merge_fields = $vars[2];
$row = $vars[3];
// Xử lý tại đây
return $_email_data;
});get_email_data_before_fetch_test
Xử lý dữ liệu email trước khi dựng nội dung bằng Smarty, khi gửi thử mẫu email
- Nguồn: Hệ thống
- Vị trí: src/admin/emailtemplates/test.php:148
Dữ liệu đầu vào ($vars)
$vars[0]là$emailidint: ID mẫu email$vars[1]là$email_dataarray: Dữ liệu mẫu email$vars[2]là$merge_fieldsarray: Các trường dữ liệu của mẫu email$vars[3]là$field_dataarray: Dữ liệu thử của các trường
Giá trị trả về
- Hàm xử lý trả về
array: Dữ liệu email sau khi xử lý - Gán vào
$email_data - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$email_data
Ví dụ
nv_add_hook($module_name, 'get_email_data_before_fetch_test', $priority, function ($vars, $from_data, $receive_data) {
$emailid = $vars[0];
$email_data = $vars[1];
$merge_fields = $vars[2];
$field_data = $vars[3];
// Xử lý tại đây
return $email_data;
});get_email_merge_fields
Lấy các trường dữ liệu (merge field) dùng trong mẫu email
Mỗi trình xử lý trả về các trường của mình, kết quả được gộp lại.
Khi gửi email, mảng đầu vào có thêm dữ liệu truyền vào nv_sendmail_from_template
- Nguồn: Hệ thống
- Vị trí: src/admin/emailtemplates/contents.php:67
- Vị trí: src/admin/emailtemplates/test.php:98
- Vị trí: src/includes/functions.php:4534
Dữ liệu đầu vào ($vars)
$varslà$args$vars['mode']string: PRE khi chỉ lấy danh sách trường, FULL khi lấy kèm dữ liệu để gửi email$vars['setpids']array: ID các trình xử lý được chọn cho mẫu email
Giá trị trả về
- Hàm xử lý trả về
array: Các trường dữ liệu, key là tên trường, value gồm name và data - Gán vào
$merge_fields - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
[] - Kết quả các hàm xử lý được gộp bằng
array_merge
Ví dụ
nv_add_hook($module_name, 'get_email_merge_fields', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
return $merge_fields;
});get_global_admin_theme
Chọn giao diện chung của khu vực quản trị
- Nguồn: Hệ thống
- Vị trí: src/admin/index.php:127
Dữ liệu đầu vào ($vars)
$vars[0]là$admin_info['admin_theme']string: Giao diện quản trị đang dùng$vars[1]là$module_namestring: Module đang truy cập$vars[2]là$module_infoarray: Thông tin module đang truy cập$vars[3]là$opstring: Chức năng đang truy cập
Giá trị trả về
- Hàm xử lý trả về
string: Tên giao diện, phải có file themes/<tên giao diện>/theme.php - Gán vào
$admin_info['admin_theme'] - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$admin_info['admin_theme']
Ví dụ
nv_add_hook($module_name, 'get_global_admin_theme', $priority, function ($vars, $from_data, $receive_data) {
$arg0 = $vars[0];
$module_name = $vars[1];
$module_info = $vars[2];
$op = $vars[3];
// Xử lý tại đây
return $admin_info['admin_theme'];
});get_module_admin_theme
Chọn giao diện cho phần quản trị của module đang truy cập
- Nguồn: Hệ thống
- Vị trí: src/admin/index.php:145
Dữ liệu đầu vào ($vars)
$vars[0]là$global_config['module_theme']string: Giao diện đã chọn, rỗng nếu không có giao diện nào chứa module$vars[1]là$module_namestring: Module đang truy cập$vars[2]là$module_infoarray: Thông tin module đang truy cập$vars[3]là$opstring: Chức năng đang truy cập
Giá trị trả về
- Hàm xử lý trả về
string: Tên giao diện chứa thư mục modules/<module_file> - Gán vào
$global_config['module_theme'] - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$global_config['module_theme']
Ví dụ
nv_add_hook($module_name, 'get_module_admin_theme', $priority, function ($vars, $from_data, $receive_data) {
$arg0 = $vars[0];
$module_name = $vars[1];
$module_info = $vars[2];
$op = $vars[3];
// Xử lý tại đây
return $global_config['module_theme'];
});get_qr_code
Ngoài site, xuất ảnh QR code khi có yêu cầu
- Nguồn: Hệ thống
- Vị trí: src/index.php:33
Dữ liệu đầu vào ($vars)
$vars[0]là$nv_RequestNukeViet\Core\Request: Đối tượng request
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'get_qr_code', $priority, function ($vars, $from_data, $receive_data) {
$nv_Request = $vars[0];
// Xử lý tại đây
});get_rewrite_domain
Lấy tên miền đặt trước URL khi rewrite URL và khi tạo URL gọi API
Khi rewrite URL hook nhận 6 dữ liệu đầu vào, khi tạo URL gọi API hook không nhận dữ liệu đầu vào
- Nguồn: Hệ thống
- Vị trí: src/includes/functions.php:2811
- Vị trí: src/includes/functions.php:2885
- Vị trí: src/includes/functions.php:2909
Dữ liệu đầu vào ($vars)
$vars[0]là$op_rewrite_countint: Số phần op đã rewrite$vars[1]là$op_rewritearray: Các phần op đã rewrite$vars[2]là$rewrite_endstring: Phần đuôi URL$vars[3]là$query_arrayarray: Các tham số còn lại trên URL$vars[4]là$is_ampbool: Dùng&để nối tham số$vars[5]là$is_acpbool: URL khu vực quản trị
Giá trị trả về
- Hàm xử lý trả về
string: Tên miền kèm giao thức, VD https://example.com. Rỗng thì dùng đường dẫn tương đối - Gán vào
$rewrite_string - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
''
Ví dụ
nv_add_hook($module_name, 'get_rewrite_domain', $priority, function ($vars, $from_data, $receive_data) {
$op_rewrite_count = $vars[0];
$op_rewrite = $vars[1];
$rewrite_end = $vars[2];
$query_array = $vars[3];
$is_amp = $vars[4];
$is_acp = $vars[5];
// Xử lý tại đây
return $rewrite_string;
});modify_global_config
Sau khi xác định ngôn ngữ, trước khi đọc danh sách module. Dùng để thay đổi $global_config
- Nguồn: Hệ thống
- Vị trí: src/includes/mainfile.php:536
Dữ liệu đầu vào ($vars)
Không có.
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'modify_global_config', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
});modify_sso_login_url
Thay đổi URL đăng nhập SSO
- Nguồn: Hệ thống
- Vị trí: src/modules/users/blocks/global.user_button.php:53
- Vị trí: src/modules/users/funcs/login.php:100
Dữ liệu đầu vào ($vars)
$vars[0]là$urlstring: URL đăng nhập SSO
Giá trị trả về
- Hàm xử lý trả về
string: URL sau khi xử lý - Gán vào
$url - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$url
Ví dụ
nv_add_hook($module_name, 'modify_sso_login_url', $priority, function ($vars, $from_data, $receive_data) {
$url = $vars[0];
// Xử lý tại đây
return $url;
});nv_redirect_location
Trước khi chuyển hướng bằng nv_redirect_location
- Nguồn: Hệ thống
- Vị trí: src/includes/functions.php:3626
Dữ liệu đầu vào ($vars)
$vars[0]là$urlstring: URL chuyển đến$vars[1]là$error_codeint: Mã trạng thái HTTP$vars[2]là$noreferrerbool: Có gửi header Referrer-Policy: no-referrer
Giá trị trả về
- Hàm xử lý trả về
string: URL chuyển đến sau khi xử lý - Gán vào
$url - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$url
Ví dụ
nv_add_hook($module_name, 'nv_redirect_location', $priority, function ($vars, $from_data, $receive_data) {
$url = $vars[0];
$error_code = $vars[1];
$noreferrer = $vars[2];
// Xử lý tại đây
return $url;
});sector1
Sau khi kiểm tra chống flood, trước khi kết nối CSDL
- Nguồn: Hệ thống
- Vị trí: src/includes/mainfile.php:327
Dữ liệu đầu vào ($vars)
Không có.
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'sector1', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
});sector2
Cuối mainfile.php, sau khi đọc danh sách module $sys_mods
- Nguồn: Hệ thống
- Vị trí: src/includes/mainfile.php:544
Dữ liệu đầu vào ($vars)
Không có.
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'sector2', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
});sector3
Cuối mỗi lượt truy cập, trước khi đóng kết nối CSDL và gửi header
- Nguồn: Hệ thống
- Vị trí: src/includes/footer.php:44
Dữ liệu đầu vào ($vars)
Không có.
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'sector3', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
});sector4
Ngoài site, khi bắt đầu dựng giao diện chung của theme, sau khi đọc ngôn ngữ giao diện
- Nguồn: Hệ thống
- Vị trí: src/themes/default/theme.php:60
Dữ liệu đầu vào ($vars)
Không có.
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'sector4', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
});sector5
Ngoài site, sau khi kiểm tra thành viên đăng nhập, trước khi cập nhật trạng thái online và thống kê
- Nguồn: Hệ thống
- Vị trí: src/index.php:67
Dữ liệu đầu vào ($vars)
Không có.
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'sector5', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
});sendmail_others_actions
Trước khi gửi email bằng nv_sendmail, dùng để thiết lập thêm cho đối tượng gửi mail
- Nguồn: Hệ thống
- Vị trí: src/includes/functions.php:1926
Dữ liệu đầu vào ($vars)
$vars[0]là$gconfigsarray: Cấu hình gửi mail$vars[1]là$mailNukeViet\Core\Sendmail: Đối tượng gửi mail
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'sendmail_others_actions', $priority, function ($vars, $from_data, $receive_data) {
$gconfigs = $vars[0];
$mail = $vars[1];
// Xử lý tại đây
});Module feeds
before_generate_rss
Trước khi lấy danh sách các module có RSS để hiển thị ở trang chính module feeds
- Nguồn: Module
feeds - Vị trí: src/modules/feeds/theme.php:56
Dữ liệu đầu vào ($vars)
$vars[0]là$rsscontentsstring: Nội dung giới thiệu trang RSS
Giá trị trả về
- Hàm xử lý trả về
array: Danh sách module có RSS, key là tên module, value là thông tin module. Rỗng thì dùng danh sách mặc định - Gán vào
$rss_array - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
[]
Ví dụ
nv_add_hook($module_name, 'before_generate_rss', $priority, function ($vars, $from_data, $receive_data) {
$rsscontents = $vars[0];
// Xử lý tại đây
return $rss_array;
});Module inform
get_all_inform_link
Lấy link xem tất cả thông báo trong block thông báo
- Nguồn: Module
inform - Vị trí: src/modules/inform/blocks/global.inform.php:52
Dữ liệu đầu vào ($vars)
Không có.
Giá trị trả về
- Hàm xử lý trả về
string: URL trang danh sách thông báo - Gán vào
$viewall_url - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$module_url
Ví dụ
nv_add_hook($module_name, 'get_all_inform_link', $priority, function ($vars, $from_data, $receive_data) {
// Xử lý tại đây
return $viewall_url;
});get_list_inform
Lấy danh sách thông báo của thành viên, dùng để thay cách lấy mặc định
- Nguồn: Module
inform - Vị trí: src/modules/inform/funcs/main.php:577
Dữ liệu đầu vào ($vars)
$vars[0]là$user_infoarray: Thành viên đang đăng nhập$vars[1]là$filterstring: Bộ lọc: rỗng, unviewed, favorite, hidden$vars[2]là$pageint: Trang hiện tại$vars[3]là$per_pageint: Số thông báo mỗi trang
Giá trị trả về
- Hàm xử lý trả về
array: [$num_items, $items, $count] gồm tổng số thông báo, các thông báo, số thông báo mới hiển thị. Phần tử đầu là null thì dùng cách lấy mặc định - Gán vào
[$num_items, $items, $count] - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
[null, null, null]
Ví dụ
nv_add_hook($module_name, 'get_list_inform', $priority, function ($vars, $from_data, $receive_data) {
$user_info = $vars[0];
$filter = $vars[1];
$page = $vars[2];
$per_page = $vars[3];
// Xử lý tại đây
return [$num_items, $items, $count];
});inform_get_list_after
Sau khi lấy danh sách thông báo từ CSDL, trước khi đánh dấu đã hiển thị
- Nguồn: Module
inform - Vị trí: src/modules/inform/funcs/main.php:712
Dữ liệu đầu vào ($vars)
$vars[0]là$itemsarray: Các thông báo, key là ID$vars[1]là$filterstring: Bộ lọc: rỗng, unviewed, favorite, hidden$vars[2]là$pageint: Trang hiện tại$vars[3]là$per_pageint: Số thông báo mỗi trang
Giá trị trả về
- Hàm xử lý trả về
array: Các thông báo sau khi xử lý - Gán vào
$items - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$items
Ví dụ
nv_add_hook($module_name, 'inform_get_list_after', $priority, function ($vars, $from_data, $receive_data) {
$items = $vars[0];
$filter = $vars[1];
$page = $vars[2];
$per_page = $vars[3];
// Xử lý tại đây
return $items;
});set_status_inform
Trước khi thành viên đổi trạng thái của một thông báo
- Nguồn: Module
inform - Vị trí: src/modules/inform/funcs/main.php:487
Dữ liệu đầu vào ($vars)
$vars[0]là$idint: ID thông báo$vars[1]là$statusstring: Trạng thái mới: viewed, unviewed, favorite, unfavorite, hidden, unhidden$vars[2]là$user_infoarray: Thành viên đang đăng nhập
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'set_status_inform', $priority, function ($vars, $from_data, $receive_data) {
$id = $vars[0];
$status = $vars[1];
$user_info = $vars[2];
// Xử lý tại đây
});Module news
before_detail_theme
Trước khi dựng giao diện trang chi tiết bài viết
- Nguồn: Module
news - Vị trí: src/modules/news/funcs/detail.php:651
Dữ liệu đầu vào ($vars)
$vars[0]là$news_contentsarray: Dữ liệu bài viết$vars[1]là$array_keywordarray: Các từ khóa của bài viết$vars[2]là$related_new_arrayarray: Bài viết mới hơn cùng chuyên mục$vars[3]là$related_arrayarray: Bài viết cũ hơn cùng chuyên mục$vars[4]là$topic_arrayarray: Bài viết cùng dòng sự kiện$vars[5]là$content_commentstring: HTML khu vực bình luận
Giá trị trả về
- Hàm xử lý trả về
array: Các dữ liệu đầu vào sau khi xử lý, đúng thứ tự - Gán vào
[$news_contents, $array_keyword, $related_new_array, $related_array, $topic_array, $content_comment] - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
[$news_contents, $array_keyword, $related_new_array, $related_array, $topic_array, $content_comment]
Ví dụ
nv_add_hook($module_name, 'before_detail_theme', $priority, function ($vars, $from_data, $receive_data) {
$news_contents = $vars[0];
$array_keyword = $vars[1];
$related_new_array = $vars[2];
$related_array = $vars[3];
$topic_array = $vars[4];
$content_comment = $vars[5];
// Xử lý tại đây
return [$news_contents, $array_keyword, $related_new_array, $related_array, $topic_array, $content_comment];
});before_redirect_external_link
Trước khi chuyển hướng sang nguồn tin gốc của bài viết có liên kết ngoài
- Nguồn: Module
news - Vị trí: src/modules/news/funcs/detail.php:133
Dữ liệu đầu vào ($vars)
$vars[0]là$news_contentsarray: Dữ liệu bài viết
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'before_redirect_external_link', $priority, function ($vars, $from_data, $receive_data) {
$news_contents = $vars[0];
// Xử lý tại đây
});Module page
before_detail_theme
Trước khi dựng giao diện trang chi tiết
- Nguồn: Module
page - Vị trí: src/modules/page/funcs/main.php:184
Dữ liệu đầu vào ($vars)
$vars[0]là$rowdetailarray: Dữ liệu trang$vars[1]là$other_linksarray: Các trang khác, key là ID$vars[2]là$content_commentstring: HTML khu vực bình luận
Giá trị trả về
- Hàm xử lý trả về
array: [$rowdetail, $other_links, $content_comment] - Gán vào
[$rowdetail, $other_links, $content_comment] - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
[$rowdetail, $other_links, $content_comment]
Ví dụ
nv_add_hook($module_name, 'before_detail_theme', $priority, function ($vars, $from_data, $receive_data) {
$rowdetail = $vars[0];
$other_links = $vars[1];
$content_comment = $vars[2];
// Xử lý tại đây
return [$rowdetail, $other_links, $content_comment];
});Module users
admin_active_account
Khi quản trị kích hoạt tài khoản đang chờ, trước khi gửi email thông báo
- Nguồn: Module
users - Vị trí: src/modules/users/admin/user_waiting.php:509
Dữ liệu đầu vào ($vars)
$vars[0]là$user_idint: ID tài khoản vừa kích hoạt$vars[1]là$postarray: Dữ liệu tài khoản$vars[2]là$userdataarray: Dữ liệu đăng ký trong bảng chờ kích hoạt$vars[3]là$maillangstring: Ngôn ngữ email
Giá trị trả về
- Hàm xử lý trả về
bool: true thì không gửi email thông báo mặc định - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
false
Ví dụ
nv_add_hook($module_name, 'admin_active_account', $priority, function ($vars, $from_data, $receive_data) {
$user_id = $vars[0];
$post = $vars[1];
$userdata = $vars[2];
$maillang = $vars[3];
// Xử lý tại đây
});check_email_already_exists
Kiểm tra thêm email khi đăng ký hoặc đổi email
- Nguồn: Module
users - Vị trí: src/modules/users/funcs/editinfo.php:97
- Vị trí: src/modules/users/functions.php:204
Dữ liệu đầu vào ($vars)
$vars[0]là$emailstring: Email đã chuẩn hóa
Giá trị trả về
- Hàm xử lý trả về
string: Thông báo lỗi để từ chối email, rỗng nếu chấp nhận - Gán vào
$custom_check
Ví dụ
nv_add_hook($module_name, 'check_email_already_exists', $priority, function ($vars, $from_data, $receive_data) {
$email = $vars[0];
// Xử lý tại đây
return $custom_check;
});custom_login_openid_attribs
Xử lý thông tin tài khoản nhận từ nhà cung cấp OAuth/OpenID trước khi đăng nhập
- Nguồn: Module
users - Vị trí: src/modules/users/funcs/login.php:488
Dữ liệu đầu vào ($vars)
$vars[0]là$serverstring: Nhà cung cấp$vars[1]là$attribsarray: Thông tin tài khoản từ nhà cung cấp
Giá trị trả về
- Hàm xử lý trả về
array: Thông tin tài khoản sau khi xử lý - Gán vào
$attribs - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$attribs
Ví dụ
nv_add_hook($module_name, 'custom_login_openid_attribs', $priority, function ($vars, $from_data, $receive_data) {
$server = $vars[0];
$attribs = $vars[1];
// Xử lý tại đây
return $attribs;
});find_oauth_google_identity
Tìm tài khoản đã liên kết với Google Identity, dùng để thay cách tìm mặc định
- Nguồn: Module
users - Vị trí: src/modules/users/login/oauth-google-identity.php:258
Dữ liệu đầu vào ($vars)
$vars[0]là$credentialarray: Phần tử 1 là thông tin tài khoản Google đã giải mã
Giá trị trả về
- Hàm xử lý trả về
array: [$user_id, $op_email, $user_active, $safemode]. Null thì dùng cách tìm mặc định - Gán vào
$custom_method
Ví dụ
nv_add_hook($module_name, 'find_oauth_google_identity', $priority, function ($vars, $from_data, $receive_data) {
$credential = $vars[0];
// Xử lý tại đây
return $custom_method;
});prehandling_oauth_google_identity
Trước khi lưu thông tin tài khoản Google Identity vào session
- Nguồn: Module
users - Vị trí: src/modules/users/login/oauth-google-identity.php:341
Dữ liệu đầu vào ($vars)
$vars[0]là$is_editbool: true khi liên kết từ trang sửa thông tin, false khi đăng nhập$vars[1]là$attribsarray: Thông tin tài khoản Google
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'prehandling_oauth_google_identity', $priority, function ($vars, $from_data, $receive_data) {
$is_edit = $vars[0];
$attribs = $vars[1];
// Xử lý tại đây
});prepare_user_data_deletion
Chuẩn bị dữ liệu trang yêu cầu xóa tài khoản của thành viên đang đăng nhập
- Nguồn: Module
users - Vị trí: src/modules/users/funcs/datadeletion.php:324
Dữ liệu đầu vào ($vars)
$vars[0]là$arrayarray: Dữ liệu trang
Giá trị trả về
- Hàm xử lý trả về
array: Dữ liệu sau khi xử lý - Gán vào
$array - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$array
Ví dụ
nv_add_hook($module_name, 'prepare_user_data_deletion', $priority, function ($vars, $from_data, $receive_data) {
$array = $vars[0];
// Xử lý tại đây
return $array;
});prepare_user_data_deletion_show
Trước khi hiển thị trang trạng thái yêu cầu xóa dữ liệu cá nhân, truy cập bằng mã xác nhận
- Nguồn: Module
users - Vị trí: src/modules/users/funcs/datadeletion.php:288
Dữ liệu đầu vào ($vars)
$vars[0]là$dataarray: Dữ liệu yêu cầu xóa
Giá trị trả về
- Hàm xử lý trả về
array: Dữ liệu sau khi xử lý - Gán vào
$data - Mặc định khi không có hàm xử lý hoặc hàm xử lý trả về null:
$data
Ví dụ
nv_add_hook($module_name, 'prepare_user_data_deletion_show', $priority, function ($vars, $from_data, $receive_data) {
$data = $vars[0];
// Xử lý tại đây
return $data;
});user_change_password
Sau khi thành viên đổi mật khẩu
- Nguồn: Module
users - Vị trí: src/modules/users/funcs/editinfo.php:1083
Dữ liệu đầu vào ($vars)
$vars[0]là$rowarray: Dữ liệu tài khoản trước khi đổi$vars[1]là$new_passwordstring: Mật khẩu mới chưa mã hóa
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'user_change_password', $priority, function ($vars, $from_data, $receive_data) {
$row = $vars[0];
$new_password = $vars[1];
// Xử lý tại đây
});user_delete
Sau khi xóa một tài khoản thành viên
Gọi khi xóa thành viên trong module users và khi xóa quản trị kèm xóa tài khoản
- Nguồn: Module
users - Vị trí: src/admin/authors/del.php:196
- Vị trí: src/modules/users/admin/del.php:177
- Vị trí: src/modules/users/functions.php:412
Dữ liệu đầu vào ($vars)
$vars[0]là$admin_idint: ID tài khoản đã xóa$vars[1]là$row_userarray: Dữ liệu tài khoản trước khi xóa
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'user_delete', $priority, function ($vars, $from_data, $receive_data) {
$admin_id = $vars[0];
$row_user = $vars[1];
// Xử lý tại đây
});user_lostpass_success
Sau khi thành viên đặt lại mật khẩu thành công qua chức năng quên mật khẩu
- Nguồn: Module
users - Vị trí: src/modules/users/funcs/lostpass.php:367
Dữ liệu đầu vào ($vars)
$vars[0]là$rowarray: Dữ liệu tài khoản trước khi đổi$vars[1]là$new_passwordstring: Mật khẩu mới chưa mã hóa
Giá trị trả về
- Không dùng giá trị trả về
Ví dụ
nv_add_hook($module_name, 'user_lostpass_success', $priority, function ($vars, $from_data, $receive_data) {
$row = $vars[0];
$new_password = $vars[1];
// Xử lý tại đây
});user_remove_2step
Khi thành viên đã xác minh mã để tắt xác thực hai bước, dùng để thay cách xử lý mặc định
- Nguồn: Module
users - Vị trí: src/modules/users/funcs/r2s.php:182
Dữ liệu đầu vào ($vars)
$vars[0]là$rowarray: Dữ liệu tài khoản$vars[1]là$global_users_configarray: Cấu hình module users$vars[2]là$greetingstring: Lời chào dùng trong email
Giá trị trả về
- Hàm xử lý trả về
string: Thông báo hiển thị cho thành viên. Khác null thì bỏ qua xử lý mặc định - Gán vào
$info
Ví dụ
nv_add_hook($module_name, 'user_remove_2step', $priority, function ($vars, $from_data, $receive_data) {
$row = $vars[0];
$global_users_config = $vars[1];
$greeting = $vars[2];
// Xử lý tại đây
return $info;
});