Làm cách nào để xóa mặc định Chưa xác định ẩn danh từ tên tác giả bình luận?


7

Trong trường mẫu nhận xét (mô-đun nhận xét cốt lõi) tôi sẽ để trống tên tác giả nhận xét, để khuyến khích các nhà bình luận đưa ra các văn bản gốc.

Cách dễ nhất để làm điều đó là gì?


Trang web hiện tại của tôi là D6, nhưng tôi đang bắt đầu chuyển sang D7, vì vậy câu trả lời cho cả hai sẽ hữu ích.
daphshez

Câu trả lời:


1

Tôi thấy một số cách có thể được thực hiện:

  1. Mô-đun tùy chỉnh - ai đó thậm chí đã viết nó cho bạn - http://drupal.org/node/240610#comment-1096024
  2. Sử dụng ghi đè chuỗi - thay đổi Ẩn danh thành [chuỗi trống]
  3. Xóa nó khỏi mô-đun nhận xét - Quản lý nội dung -> Loại nội dung và nhấp vào chỉnh sửa cho loại nút của bạn và bật "Áp phích ẩn danh có thể không nhập thông tin liên hệ của họ"
  4. Sử dụng javascript - ai đó cũng đã viết điều này - http://drupal.org/node/240610#comment-2051378

Tôi có thể chọn tùy chọn 1 vì điều này mang lại sự linh hoạt hơn trong việc thay đổi các biểu mẫu cho phù hợp với các yêu cầu khác trong tương lai


Tôi đã sử dụng tùy chọn 1.
daphshez

Ngoài ra, tùy chọn 3 không thực sự trả lời câu hỏi của tôi - Tôi muốn cho phép người dùng ẩn danh để lại nhận xét.
daphshez

Cuối cùng, lưu ý rằng nếu bạn sử dụng mô-đun tên thật, nó sẽ ghi đè những thay đổi này.
daphshez

3

hook_form_alter()

http://api.drupal.org/api/drupal/modules--system--system.api.php/feft/hook_form_alter/7

Cho phép bạn nối vào và thay đổi bất kỳ hình thức nào, bao gồm đặt văn bản mặc định thành trống. Dưới đây là một số trợ giúp thêm về các yếu tố hợp lệ là gì:

http://api.drupal.org/api/drupal/developer--topics--forms_api_Vference.html

Cách tốt nhất để bắt đầu là xác định ID biểu mẫu bằng cách tạo một mymodule_form_alter()chức năng và in ra $form_idbằng cách sử dụng printnó để xuất hiện ở đầu trang. (Hoặc tốt hơn nữa, sử dụng mô-đun phát để in ra trong thông báo trạng thái Drupal). Khi bạn biết ID biểu mẫu, bạn có thể thêm một ifđể đảm bảo bạn chỉ hành động trên biểu mẫu đó và sau đó thay đổi mảng để xóa giá trị mặc định mà bạn không muốn.

Nhìn vào khá nhiều mô-đun để thực hiện ví dụ. Nhiều mô-đun sử dụng móc này. Tôi không thể nghĩ ra bất kỳ ví dụ cụ thể nào ngoài đỉnh đầu, nhưng có rất nhiều thứ.

EDIT: Đây là một bài đăng trên blog Lullabot tốt về vấn đề này ... không có nhiều khác biệt giữa Drupal 6 và Drupal 7 về vấn đề này, AFAIK: http://www.lullabot.com/articles/modifying-forms-drupal-5- và 6


2
Nếu mã dành riêng cho một hình thức, thì tôi sẽ triển khai hook_form_FORM_ID_alter(), nó được gọi trước mỗi lần hook_form_alter()triển khai và không cần kiểm tra giá trị của một tham số được truyền cho hàm hook.
kiamlaluno

hook_form_FORM_ID_alter () không phải lúc nào cũng là lựa chọn thay thế tốt cho hook_form_alter () vì nó có vấn đề về thời gian, nó không chạy cùng lúc với hook_form_alter () và thường có thể dẫn đến việc không thay đổi phiên bản chính xác của biểu mẫu, tại ít nhất đó là kinh nghiệm của tôi.
Giải mã

cảm ơn. $ Form_id là "comment_form". Có một số hướng dẫn chi tiết hơn cho việc thay đổi hình thức cụ thể này tại drupal.org/node/240610#comment-1096024 .
daphshez

2

Chỉ là một lưu ý cho những người quyết định sử dụng mô-đun tùy chỉnh, nhưng nhận được Ẩn danh trong hộp nhập Tên mà không có lý do rõ ràng và hook_form_alter(hoặchook_form_comment_form_alter ) là ổn.

Đảm bảo xóa comment_info_namecookie mà commentJavascript mô-đun sử dụng để lưu trữ tên đã sử dụng trước đó. Phải mất một thời gian để tìm hiểu ...

Tất cả đều được đề cập ở một nơi tại đây: http://jan.tomka.name/blog/how-remove-anonymous-name-comment-form


1

Đây là loại tinh chỉnh đơn giản mà tôi sẽ làm với JavaScript.

$(document).ready(function() {
    var editbox = $('#edit-name');
    if (editbox.val() == 'Anonymous' {
        editbox.val('');
    }
});

Pop rằng một nơi nào đó trong chủ đề của bạn và trường tên sẽ bị xóa khi trang được tải.


1
Và nếu người dùng đã tắt JavaScript, thì sao?
Giải mã

@ Mã hóa: Tôi sẽ nói rằng hộp vẫn nói Anonymousvới JavaScript bị vô hiệu hóa sẽ thuộc danh mục xuống cấp duyên dáng. Câu hỏi là "Cách dễ nhất để làm điều đó là gì?" và tôi nghĩ rằng việc thêm một vài dòng JavaScript vào một mẫu dễ hơn là viết một mô-đun.
Paul Jones
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.