Jawaban:
Untuk Drupal 7, Anda dapat menggunakan modul Sederhanakan . Ini memungkinkan Anda untuk menyembunyikan opsi Format Teks textarea, serta elemen lain pada bentuk simpul.
Anda dapat menggunakan hook_form_alter dalam modul khusus untuk melakukan ini.
Misalnya, dalam 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;
}
Di drupal 6 ada modul Better Format yang melakukan persis apa yang Anda inginkan, ada versi 7 dev tetapi ia datang dengan peringatan bahwa itu sedang dalam pengembangan. Jika situs Anda masih dalam pengembangan maka mungkin ada baiknya mencobanya.
Anda benar-benar bisa membunuh item format saja.
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
dimaksudkan sebagai nama tema khusus Anda. Anda harus TIDAK PERNAH membuat kode bahasa yang sulit, jika Anda membutuhkan bahasa yang aktif global $language;
untuk menggunakannya .
LANGUAGE_NONE
adalah konstanta dengan nilai und
... jangan gunakan und
.
Saya pikir solusi terbaik adalah, untuk melarang akses ke elemen pemilihan format teks. Jika Anda benar-benar menghapusnya, Anda akan menghadapi efek samping yang tidak diinginkan sebagai editor WYSIWYG yang menghilang. Jadi saya mengusulkan kode berikut.
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;
}
Gunakan CSS, cara termudah.
#body-add-more-wrapper #edit-body-und-0-format {display: none;}
Semoga berhasil.
UNTUK 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;
}
Cara sederhana lain untuk menyembunyikan opsi format input adalah menghapus semua format input lainnya dari profil pengguna yang ingin Anda sembunyikan opsi. Untuk ini, buka admin-> konfigurasi-> format input dan hapus semua peran pengguna dari semua format input lain kecuali yang ingin Anda berikan secara default.
Saya melakukan ini:
Hapus tanda centang "Gunakan format teks HTML yang difilter" dan "kelola format dan filter teks" dari izin> orang untuk pengguna anonim dan resmi sehingga mereka tidak bisa menggunakan CKeditor.
Tentu saja Anda dapat menonaktifkannya dari CSS dengan "display: none;" untuk kelas div tertentu (ini .filter-wrapper) dan sembunyikan semua area yang Anda tunjuk ke atas tetapi dalam kasus ini area tersebut disembunyikan untuk semua orang termasuk superuser.
Instal modul CSS Injector (saat ini hanya ada versi pengembangan yang berfungsi untuk Drupal 8).
Kemudian pergi ke halaman administrasi CSS Injector (/ admin / config / development / css-injector). Buat aturan CSS baru dengan kode ini (atau kode apa pun yang berlaku untuk kelas teks area formating):
.filter-guidelines {
display: none;
}
Pilih untuk menerapkannya pada tema Tujuh (atau tema admin apa pun yang digunakan). Simpan dan nikmatilah!
Anda tidak dapat menghapus format input "Teks biasa". Dan RTE tidak muncul ketika Anda menggunakan format input "Teks Biasa".
Saya akan menggunakan opsi CSS.
Saya menggunakan "menghapus semua format input lainnya dari profil pengguna" dan cara css.
Coba sederhanakan modul.
Sederhanakan memungkinkan bidang tertentu disembunyikan dari antarmuka pengguna. Ini membantu untuk mengacaukan formulir dan menghadirkan pengalaman yang lebih ramah pengguna kepada editor konten.
Jika Anda ingin menyembunyikan format tetapi tetap menyediakannya, cobalah modul " Format sederhana ": https://www.drupal.org/project/simplified_formats
Ini menyembunyikan detail format dalam ikon tanda tanya kecil di sebelah dropdown pemilihan format. Untuk banyak filter format teks, benar-benar tidak ada gunanya menyembunyikan instruksi yang memberi tahu seseorang cara menggunakannya. Filter lain lebih otomatis. Saya pikir kita memerlukan modul yang memungkinkan kita untuk memilih apa yang muncul hingga pengguna akhir dan apa yang tidak.
Anda juga dapat menggunakan modul Sembunyikan format .
Sembunyikan Format memungkinkan Anda untuk menutup dropdown "format teks" atau "format input" untuk membersihkan UI.
Untuk Drupal 8. Ini menghapus area format untuk dua bidang.
/**
* 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);
}
Untuk Drupal 7, Anda dapat:
1) Gunakan hook_theme_registry_alter(&$theme_registry)
dari dalam modul untuk mengubah tema registri, mis. definisi prosesor tema.
2) Kemudian mengubah tiga fungsi tema, theme_filter_tips
, theme_filter_tips_more_info
, dan theme_filter_guidelines
, dan memaksa mereka untuk kembali apa-apa. Sebagai berikut:
Ini adalah fungsi target. Semua fungsi tema di atas akan diarahkan ke sana.
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';
}
Saat Anda menghapus cache, Drupal akan mencari definisi filter tersebut di jalur modul pilihan Anda (lihat drupal_get_path
), dan tidak mengembalikan apa pun untuk setiap filter. Karenanya, tidak ada lagi deskripsi format teks.
/ 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;
}
Sebagian besar bekerja untuk saya dengan perubahan kecil ini.
$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
hook_form_alter
namun saya tidak yakin tentang detailnya, jadi saya tidak akan memposting ini sebagai jawaban ...