Công cụ thành viên

Công cụ trang web


programming4:hook

Khác biệt

Đây là những khác biệt giữa hai phiên bản của trang.

Liên kết đến bản xem so sánh này

Phiên bản trước của cả hai bênPhiên bản trước
Phiên bản sau
Phiên bản trước
Phiên bản sauPhiên bản sau của cả hai bên
programming4:hook [2021/11/26 14:42] – [Lưu ý khi đặt tên vị trí mới của hook:] vuthaoprogramming4:hook [2021/12/03 15:19] – [Cách chuyển từ plugin sang hook] nguyenchiton
Dòng 25: Dòng 25:
 ===== Cách chuyển từ plugin sang hook ===== ===== Cách chuyển từ plugin sang hook =====
  
-(Đang cp nht)+=== Để chuyển từ plugins sang hook, ta làm theo các bướsau: ===  
 +  * Mục danh sách không đánh sốTìm đến file plugins cần chuyển sang hook. 
 +  * Mục danh sách không đánh sốThường trong các file plugins này sẽ có 2 dạng: 1 là code trực tiếp, 2 là các functions. Xác định xem đâu là code chạy trực tiếp, đâu là functions. 
 +  * Với code chạy trực tiếp, ta cho vào funcstion có dạng 
 +<code php> 
 +nv_add_hook($module_name, $sector, $priority, function () { 
 +  //di chuyển code vào đây 
 +
 +</code> 
 +với $sector chính là ID của plugins, ví dụ plugins có id là 3, thì $sector = 'sector3' (Lưu ý, gán trực tiếp $sector vào function) 
 + 
 +  * Còn các code dạng functions thì giữ nguyên, không cho vào nv_add_hook. 
 +  * Xoá các file .ini của plugins 
 +  * Vào các chỗ cần gọi hook và gọi <code php>nv_apply_hook('', 'sector4');</code> (Lưu ý: gọi chỗ nào thì có quy định theo cách đặtên, vị trí gọi tương ứng với ID của plugins) 
 +  * Thêm CSDL theo mẫu, với các dữ liệu insert vào tương ứng các plugins đã chuyển đổi 
 + 
 +<code sql> 
 +DROP TABLE IF EXISTS `nv4_plugins`; 
 +CREATE TABLE `nv4_plugins` ( 
 +  `pid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, 
 +  `plugin_lang` varchar(3)  COLLATE utf8_unicode_ci NOT NULL DEFAULT 'all', 
 +  `plugin_file` varchar(50)  COLLATE utf8_unicode_ci NOT NULL, 
 +  `plugin_area` varchar(50)  COLLATE utf8_unicode_ci NOT NULL DEFAULT '', 
 +  `plugin_module_name` varchar(50)  COLLATE utf8_unicode_ci NOT NULL DEFAULT '', 
 +  `plugin_module_file` varchar(50)  COLLATE utf8_unicode_ci NOT NULL DEFAULT '', 
 +  `hook_module` varchar(50)  COLLATE utf8_unicode_ci NOT NULL DEFAULT '', 
 +  `weight` tinyint(4) NOT NULL, 
 +  PRIMARY KEY (`pid`), 
 +  UNIQUE KEY `plugin` (`plugin_lang`,`plugin_file`,`plugin_area`,`plugin_module_name`,`hook_module`) 
 +) ENGINE=InnoDB  AUTO_INCREMENT=1001  DEFAULT CHARSET=utf8; 
 + 
 +INSERT INTO `nv4_plugins` VALUES 
 + (1, 'all', 'qrcode.php', 'get_qr_code', '', '', '', 1), 
 + (2, 'all', 'cdn_js_css_image.php', 'change_site_buffer', '', '', '', 1), 
 + (1001, 'all', 'redirect_to_non_www.php', 'check_server', '', '', '', 1), 
 + (1002, 'all', 'enable_db_debug.php', 'sector2', '', '', '', 1)
 +</code> 
 + 
 + 
programming4/hook.txt · Sửa đổi lần cuối: 2023/04/13 08:21 bởi hoaquynhtim99