Trong bài viết này, mình sẽ hướng dẫn các bạn cách tùy biến module Liên hệ theo mong muốn, bao gồm việc loại bỏ yêu cầu bắt buộc nhập một mục và thêm một mục dữ liệu mới vào form.
Đầu tiên, phía giao diện bạn tiến hành xóa phần html của mục đó (nếu không muốn hiển thị), còn nếu vẫn muốn giữ lại mục đó, ta sẽ mở file themes\<ten_giao_dien>\modules\contact\form.tpl, chỉnh phần input đó như sau:
Bạn muốn bỏ yêu cầu bắt buộc mục nào thì xóa (hoặc comment/khóa) đoạn code mục đó lại: đoạn câu lệnhif.
Ví dụ: Bạn muốn bỏ yêu cầu bắt buộc nhập mục Email, thì xóa (hoặc comment/khóa) đoạn code sau:
Như vậy là bạn đã bỏ yêu cầu bắt buộc nhập một mục dữ liệu trong form liên hệ rồi. Tiếp theo, mình sẽ hướng dẫn bạn thêm một mục dữ liệu mới vào form liên hệ nhé!
Ngoài giao diện sẽ hiển thị:
Mở file: modules\contact\funcs\main.php, tìm:
Tìm:
Tiếp tục tìm:
Tìm:
Có thể thấy, tại 2 lần thay bên trên, mình đã thực hiện chỉnh sửa lệnh SQL để ghi dữ liệu vào DB, mình đã thêm sender_note sau sender_ip
Tiếp tục tìm:
Lưu lại, hoàn thành bước 3.
Bây giờ chúng ta sẽ hiển thị phần nội dung đó trong giao diện phía Quản trị.
Mở file: themes\admin_default\modules\contact\view.tpl, tìm:
Thêm vào bên dưới đoạn code sau:
Nội dung code phần đó sẽ dạng như sau:
Sau khi thêm xong, lưu file lại.
Quay lại phần danh sách liên hệ, mở xem liên hệ vừa được gửi lên, ta sẽ thấy nội dung khách nhập sẽ xuất hiện phía Quản trị:
Như vậy là mình đã hướng dẫn các bạn cách tùy biến module Liên hệ theo mong muốn, bao gồm việc loại bỏ yêu cầu bắt buộc nhập một mục và thêm một mục dữ liệu mới vào form.
Chúc bạn thành công!
1. Bỏ yêu cầu bắt buộc một mục dữ liệu trong form
Để bỏ yêu cầu bắt buộc nhập của một mục dự liệu trong form liên hệ:Đầu tiên, phía giao diện bạn tiến hành xóa phần html của mục đó (nếu không muốn hiển thị), còn nếu vẫn muốn giữ lại mục đó, ta sẽ mở file themes\<ten_giao_dien>\modules\contact\form.tpl, chỉnh phần input đó như sau:
- Bỏ class: required
- Bỏ attribute: data-pattern
- Bỏ attribute: onkeypress
- Bỏ attribute: data-mess
if (empty($fname))
Từ đoạn này trở xuống là phần kiểm tra các mục dữ liệu (validation) để báo lỗi, mặc định module Liên hệ của NukeViet CMS kiểm tra các mục: Họ tên (fname), Email (femail), Tiêu đề (ftitle), Nội dung (fcon), Captcha.Bạn muốn bỏ yêu cầu bắt buộc mục nào thì xóa (hoặc comment/khóa) đoạn code mục đó lại: đoạn câu lệnhif.
Ví dụ: Bạn muốn bỏ yêu cầu bắt buộc nhập mục Email, thì xóa (hoặc comment/khóa) đoạn code sau:
if ($check_valid_email[0] != '') {
nv_jsonOutput(array(
'status' => 'error',
'input' => 'femail',
'mess' => $check_valid_email[0]
));
}
Như vậy là bạn đã bỏ yêu cầu bắt buộc nhập một mục dữ liệu trong form liên hệ rồi. Tiếp theo, mình sẽ hướng dẫn bạn thêm một mục dữ liệu mới vào form liên hệ nhé!
2. Thêm một mục dữ liệu mới vào form
Thêm một mục dữ liệu mới vào form sẽ nhiều bước hơn một chút, tuy nhiên với một số bạn đã quen lập trình rồi thì không có gì phức tạp. Chúng sẽ thực hiện các bước:- Tạo thêm trường dữ liệu trong Cơ sở dữ liệu (Database)
- Thêm Ô nhập liệu (input) vào form phía giao diện
- Xử lý lưu dữ liệu khi khách Gửi liên hệ (Submit form)
- Hiển thị thông tin khách đã nhập lên giao diện phía Quản trị
Bước 1: Tạo thêm trường dữ liệu trong Cơ sở dữ liệu (Database)
Bạn vàophpMyAdmin, mở CSDL của website lên, tìm bảng: nv4_vi_contact_send, chọn mục sửa bảng và thêm vào 1 trường dữ liệu (lưu ý: chọn kiểu dữ liệu cho phù hợp), ở đây mình sẽ thêm trường: sender_note, kiểu dữ liệu làtextBước 2: Thêm Ô nhập liệu (input) vào form phía giao diện
Mở file: themes\<ten_giao_dien>\modules\contact\form.tpl, thêm html hiển thị phần nhập dữ liệu bạn cần. Ví dụ:Ngoài giao diện sẽ hiển thị:
Bước 3: Xử lý lưu dữ liệu khi khách Gửi liên hệ (Submit form)
Khi khách Gửi liên hệ đi, ta phải xử lý để lấy nội dung khách đã nhập và lưu xuống cơ sở dữ liệu.Mở file: modules\contact\funcs\main.php, tìm:
$faddress = '';
Thêm bên dưới dòng code sau:$sender_note = '';
// hoặc tên biến như tên trường dữ liệu mà bạn thêmTìm:
$fphone = nv_substr($nv_Request->get_title('fphone', 'post', '', 1), 0, 100);
Thêm vào bên dưới dòng code sau:$sender_note = $nv_Request->get_title('sender_note', 'post', '');
Tiếp tục tìm:
(cid, cat, title, content, send_time, sender_id, sender_name, sender_email, sender_phone, sender_address, sender_ip, is_read, is_reply) VALUES
Thay thế bằng:(cid, cat, title, content, send_time, sender_id, sender_name, sender_email, sender_phone, sender_address, sender_ip, sender_note, is_read, is_reply) VALUES
Tìm:
(' . $fpart . ', :cat, :title, :content, ' . NV_CURRENTTIME . ', ' . $sender_id . ', :sender_name, :sender_email, :sender_phone, :sender_address, :sender_ip, 0, 0)';
Thay bằng:(' . $fpart . ', :cat, :title, :content, ' . NV_CURRENTTIME . ', ' . $sender_id . ', :sender_name, :sender_email, :sender_phone, :sender_address, :sender_ip, :sender_note, 0, 0)';
Có thể thấy, tại 2 lần thay bên trên, mình đã thực hiện chỉnh sửa lệnh SQL để ghi dữ liệu vào DB, mình đã thêm sender_note sau sender_ip
Tiếp tục tìm:
$data_insert['sender_ip'] = $client_info['ip'];
Thêm vào phía bên dưới dòng code sau:$data_insert['sender_note'] = $sender_note;
Lưu lại, hoàn thành bước 3.
Bước 4: Hiển thị thông tin khách đã nhập lên giao diện phía Quản trị
Ví dụ: Đây là một nội dung mẫu mà khách sẽ gửi liên hệ cho websiteBây giờ chúng ta sẽ hiển thị phần nội dung đó trong giao diện phía Quản trị.
Mở file: themes\admin_default\modules\contact\view.tpl, tìm:
<tr>
<td>{LANG.cat}</td>
<td>{DATA.cat}</td>
</tr>
Thêm vào bên dưới đoạn code sau:
<tr>
<td>Ghi chú</td>
<td>{DATA.sender_note}</td>
</tr>
Nội dung code phần đó sẽ dạng như sau:
Sau khi thêm xong, lưu file lại.
Quay lại phần danh sách liên hệ, mở xem liên hệ vừa được gửi lên, ta sẽ thấy nội dung khách nhập sẽ xuất hiện phía Quản trị:
Như vậy là mình đã hướng dẫn các bạn cách tùy biến module Liên hệ theo mong muốn, bao gồm việc loại bỏ yêu cầu bắt buộc nhập một mục và thêm một mục dữ liệu mới vào form.
Chúc bạn thành công!
Theo: https://vuta.vn/blog/tuy-bien-module-lien-he-nv4-57.html
NHÀ CUNG CẤP DỊCH VỤ CHUYÊN NGHIỆP PHÁT TRIỂN WEBDESIGN - HOSTING - DOMAIN Website: Phattrien.net - Phattrien.info - Trangvangdichvu.com - Trangvangmuaban.com Hotline: 0931 435 998 Zalo: @PhatTriennet CỬA HÀNG CAMERA Chuyên: Camera IP WiFi, Camera IP, Camera CVI, Camera AHD, Camera Analog, Đầu ghi Camera, Máy Bộ Đàm, Bộ camera quan sát Địa chỉ: 537 Đường Phan Văn Trị, P.Kim Dinh, Tp. Bà Rịa, BR-VT Hotline: 0931 435 998 Zalo: @WinTech Website: CuaHangCamera.com - CửaHàngCamera.vn - Nhaphanphoicamera.net - CareCam.Pro