Câu trả lời:
Đối với Drupal 7, bạn có thể sử dụng mô-đun Đơn giản hóa . Nó cho phép bạn ẩn các tùy chọn Định dạng văn bản textarea, cũng như các thành phần khác trên các hình thức nút.
Bạn có thể sử dụng hook_form_alter trong một mô-đun tùy chỉnh để thực hiện việc này.
Chẳng hạn, trong drupal 7:
// hook_form_alter function
function CUSTOM_MODULE_form_alter(&$form, &$form_state, $form_id) {
// We want this on a specific node type
if ($form_id == 'NODE_TYPE_node_form') {
$form['#after_build'][] = 'CUSTOM_MODULE_NODE_TYPE_node_form_after_build';
}
}
// afterbuild function
function CUSTOM_MODULE_NODE_TYPE_node_form_after_build($form) {
// We want this on a specific field
$form['YOUR_FIELD']['und']['0']['format']['#access'] = FALSE;
return $form;
}
Trong drupal 6 có mô-đun Định dạng tốt hơn thực hiện chính xác những gì bạn muốn, có phiên bản 7 dev nhưng nó đi kèm với một cảnh báo rằng nó đang được phát triển nặng. Nếu trang web của bạn vẫn đang được phát triển thì có thể đáng để thử.
Bạn thực sự có thể chỉ cần giết mục định dạng.
function MY_THEME_form_comment_form_alter(&$form, &$form_state, &$form_id) {
$form['comment_body']['#after_build'][] = 'MY_THEME_configure_comment_form';
}
function MY_THEME_configure_comment_form(&$form) {
unset($form[LANGUAGE_NONE][0]['format']);
return $form;
}
CUSTOM
được dự định là tên chủ đề tùy chỉnh của bạn. Bạn KHÔNG BAO GIỜ nên mã cứng một ngôn ngữ, nếu bạn cần sử dụng ngôn ngữ hoạt động global $language;
để lấy ngôn ngữ đó.
LANGUAGE_NONE
là hằng số có giá trị und
... không sử dụng und
.
Tôi nghĩ rằng giải pháp tốt nhất là, không cho phép truy cập vào phần tử chọn định dạng văn bản. Nếu bạn hoàn toàn không đặt nó, bạn sẽ phải đối mặt với các tác dụng phụ không mong muốn khi trình soạn thảo WYSIWYG biến mất. Vì vậy, tôi đề xuất mã sau đây.
function MY_MODULE_form_comment_form_alter(&$form, &$form_state, &$form_id) {
$form['comment_body']['#after_build'][] = 'MY_MODULE_hide_text_format';
}
function MY_MODULE_hide_text_format(&$form) {
$form[LANGUAGE_NONE][0]['format']['#access'] = false;
return $form;
}
Sử dụng CSS, cách dễ nhất.
#body-add-more-wrapper #edit-body-und-0-format {display: none;}
Chúc may mắn.
CHO Drupal 7
function MODULENAME_element_info_alter(&$type) {
if (isset($type['text_format']['#process'])) {
foreach ($type['text_format']['#process'] as &$callback) {
if ($callback === 'filter_process_format') {
$callback = 'MODULENAME_filter_process_format';
}
}
}
}
function MODULENAME_filter_process_format($element) {
$element = filter_process_format($element);
// Change input format to "Filtered HTML" for body fields of NODETYPE_NAME
if ($element['#bundle'] == 'NODETYPE_NAME' && $element['#field_name'] == 'body') {
$element['format']['format']['#default_value'] = 'filtered_html';
$element['format']['format']['#format'] = 'filtered_html';
$element['format']['format']['#value'] = 'filtered_html';
$element['#format'] = 'filtered_html';
}
return $element;
}
Một cách đơn giản khác để ẩn tùy chọn định dạng đầu vào là xóa tất cả định dạng đầu vào khác khỏi hồ sơ người dùng mà bạn muốn ẩn tùy chọn. Đối với điều này, hãy đi admin-> configure-> định dạng đầu vào và xóa tất cả các vai trò người dùng khỏi tất cả các định dạng đầu vào khác ngoại trừ một định dạng bạn muốn đưa ra theo mặc định.
Tôi đã làm điều này:
Bỏ chọn "Sử dụng định dạng văn bản HTML đã lọc" và "Quản lý định dạng và bộ lọc văn bản" từ mọi người> quyền cho người dùng ẩn danh và người dùng được ủy quyền để họ không thể sử dụng CKeditor.
Tất nhiên bạn có thể vô hiệu hóa nó khỏi CSS bằng cách "display: none;" đối với lớp div cụ thể (đó là .filter-Wrapper) và ẩn tất cả các khu vực bạn đã chỉ lên trên nhưng trong trường hợp này, khu vực này được ẩn cho tất cả mọi người, kể cả siêu người dùng.
Cài đặt mô-đun CSS Injection (hiện tại chỉ có phiên bản phát triển hoạt động cho Drupal 8).
Sau đó chuyển đến trang quản trị của CSS Injection (/ admin / config / Development / css-kim phun). Tạo quy tắc CSS mới với mã này (hoặc bất kỳ mã nào áp dụng cho một lớp của văn bản khu vực hình thành):
.filter-guidelines {
display: none;
}
Chọn áp dụng nó trên Seven theme (hoặc bất kỳ chủ đề quản trị nào đang sử dụng). Lưu và thưởng thức!
Bạn không thể xóa định dạng nhập "Văn bản thuần túy". Và RTE không hiển thị khi bạn sử dụng định dạng nhập "Văn bản thuần túy".
Tôi sẽ sử dụng tùy chọn CSS.
Hãy thử đơn giản hóa mô-đun.
Đơn giản hóa cho phép các trường cụ thể được ẩn khỏi giao diện người dùng. Điều này giúp khử các biểu mẫu lộn xộn và thể hiện trải nghiệm thân thiện hơn với người chỉnh sửa nội dung.
Nếu bạn muốn ẩn các định dạng nhưng vẫn giữ chúng có sẵn, hãy thử mô-đun " Định dạng đơn giản hóa ": https://www.drupal.org/project/simplified_formats
Nó ẩn các chi tiết định dạng trong một biểu tượng dấu hỏi nhỏ bên cạnh thả xuống lựa chọn định dạng. Đối với nhiều bộ lọc định dạng văn bản, thực sự không tốt khi ẩn hoàn toàn các hướng dẫn cho người ta biết cách sử dụng chúng. Các bộ lọc khác là tự động hơn. Tôi nghĩ rằng chúng ta cần một mô-đun cho phép chúng ta chọn những gì hiển thị cho người dùng cuối và những gì không.
Bạn cũng có thể sử dụng mô-đun ẩn định dạng .
Ẩn định dạng cho phép bạn thu gọn các menu thả xuống "định dạng văn bản" hoặc "định dạng đầu vào" để dọn sạch giao diện người dùng.
Đối với Drupal 8. Điều này loại bỏ khu vực định dạng cho hai trường.
/**
* Implements hook_form_FORM_ID_alter().
*/
function CUSTOM_MODULE_form_FORM_ID_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
$form['#after_build'][] = 'CUSTOM_MODULE_eform_application_after_build';
}
function CUSTOM_MODULE_eform_application_after_build ($form) {
unset($form['field_experience']['widget'][0]['format']);
unset($form['field_miscellaneous']['widget'][0]['format']);
return ($form);
}
Đối với Drupal 7, bạn có thể:
1) Sử dụng hook_theme_registry_alter(&$theme_registry)
từ bên trong một mô-đun để thay đổi sổ đăng ký chủ đề, eq. định nghĩa bộ xử lý chủ đề.
2) Sau đó, thay đổi ba chức năng chủ đề theme_filter_tips
, theme_filter_tips_more_info
và theme_filter_guidelines
, và buộc họ phải trở về không có gì. Như sau:
Đây là chức năng mục tiêu. Tất cả các chức năng chủ đề trên sẽ được chuyển hướng đến đó.
function _mymodule_filter_tips($tips, $long = FALSE, $extra = ''){
return '';
}
/**
* Implements hook_theme_registry_alter
*/
function mymodule_theme_registry_alter(&$theme_registry) {
$theme_registry['filter_tips']['theme path'] = drupal_get_path( 'module', 'mymodule' );
$theme_registry['filter_tips']['function'] = '_mymodule_filter_tips';
$theme_registry['filter_guidelines']['theme path'] = drupal_get_path( 'module', 'mymodule' );
$theme_registry['filter_guidelines']['function'] = '_mymodule_filter_tips';
$theme_registry['filter_tips_more_info']['theme path'] = drupal_get_path( 'module', 'mymodule' );
$theme_registry['filter_tips_more_info']['function'] = '_mymodule_filter_tips';
}
Khi bạn xóa bộ nhớ cache, Drupal sẽ tìm kiếm các định nghĩa bộ lọc đó trên đường dẫn của mô-đun bạn chọn (xem drupal_get_path
) và không trả lại gì cho mỗi bộ lọc. Do đó, không có mô tả định dạng văn bản nhiều hơn.
/ hook_form_alter function
function CUSTOM_MODULE_form_alter(&$form, &$form_state, $form_id) {
// We want this on a specific node type
if ($form_id == 'NODE_TYPE_node_form') {
$form['#after_build'][] = 'CUSTOM_MODULE_NODE_TYPE_node_form_after_build';
}
}
// afterbuild function
function CUSTOM_MODULE_NODE_TYPE_node_form_after_build($form) {
// We want to hide input formats and we can do it like following
$form['body']['und']['0']['format']= '<div style="display:none;">';
$form['body']['und']['0']['format']= '</div>';
return $form;
}
Chủ yếu làm việc cho tôi với những thay đổi nhỏ này.
$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
hook_form_alter
tuy nhiên tôi không chắc chắn về các chi tiết, vì vậy tôi sẽ không đăng bài này dưới dạng câu trả lời ...