답변:
Drupal 7의 경우 Simplify 모듈을 사용할 수 있습니다 . 텍스트 형식 옵션 텍스트 영역과 노드 양식의 다른 요소를 숨길 수 있습니다.
이를 위해 사용자 정의 모듈에서 hook_form_alter를 사용할 수 있습니다.
예를 들어, 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;
}
drupal 6에는 더 나은 형식 모듈이 있으며 원하는대로 정확하게 수행하고 7 dev 버전이 있지만 개발 중이라는 경고와 함께 제공됩니다. 귀하의 사이트가 아직 개발중인 경우 사이트를 제공하는 것이 좋습니다.
실제로 서식 양식 항목을 죽일 수 있습니다.
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
사용자 정의 테마 이름으로 사용됩니다. 당신이해야 결코 활성 언어 사용을 필요로하는 경우, 언어 하드 코드 global $language;
를 잡아.
LANGUAGE_NONE
값이있는 상수입니다 und
... 사용하지 마십시오 und
.
가장 좋은 해결책은 텍스트 형식 선택 요소에 대한 액세스를 허용하지 않는 것입니다. 설정을 완전히 해제하면 사라지는 WYSIWYG 편집기로 원하지 않는 부작용이 발생합니다. 그래서 다음 코드를 제안합니다.
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;
}
가장 쉬운 방법 인 CSS를 사용하십시오.
#body-add-more-wrapper #edit-body-und-0-format {display: none;}
행운을 빕니다.
드루팔 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;
}
입력 형식 옵션을 숨기는 또 다른 간단한 방법은 옵션을 숨기려는 사용자 프로필에서 다른 모든 입력 형식을 제거하는 것입니다. 이를 위해 관리자-> 구성-> 입력 형식으로 이동하여 기본적으로 제공하려는 것을 제외한 다른 모든 입력 형식에서 모든 사용자 역할을 제거하십시오.
CSS Injector 모듈을 설치하십시오 (현재 Drupal 8의 개발 버전 만 있습니다).
그런 다음 CSS Injector (/ admin / config / development / css-injector)의 관리 페이지로 이동하십시오. 이 코드 (또는 서식 영역 텍스트 클래스에 적용되는 코드)를 사용하여 새 CSS 규칙을 만듭니다.
.filter-guidelines {
display: none;
}
Seven 테마 (또는 사용중인 모든 관리자 테마)에 적용하도록 선택하십시오 . 저장하고 즐기십시오!
"일반 텍스트"입력 형식을 제거 할 수 없습니다. "일반 텍스트"입력 형식을 사용할 때 RTE가 표시되지 않습니다.
CSS 옵션을 사용하겠습니다.
형식을 숨기고 사용 가능한 상태로 유지하려면 " 단순화 된 형식 "모듈을 사용해보십시오 . https://www.drupal.org/project/simplified_formats
형식 선택 드롭 다운 옆에 작은 물음표 아이콘으로 형식 세부 사항이 숨겨집니다. 많은 텍스트 형식 필터의 경우 사용 방법을 알려주는 지침을 완전히 숨기는 것은 실제로 좋지 않습니다. 다른 필터는 더 자동적입니다. 최종 사용자에게 표시되는 것과 그렇지 않은 것을 선택할 수있는 모듈이 필요하다고 생각합니다.
Drupal 8의 경우 두 필드의 형식 영역이 제거됩니다.
/**
* 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);
}
Drupal 7의 경우 다음을 수행 할 수 있습니다.
1) hook_theme_registry_alter(&$theme_registry)
테마 레지스트리를 바꾸려면 모듈 내에서 사용하십시오 . 테마 프로세서 정의.
2) 그런 다음 세 가지 테마 기능을 변경, theme_filter_tips
, theme_filter_tips_more_info
,과 theme_filter_guidelines
, 그리고 아무것도 돌려주지 않는 그들을 강제로. 다음과 같이 :
이것이 목표 기능입니다. 위의 모든 테마 기능이 해당 기능으로 리디렉션됩니다.
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';
}
캐시를 지우면 Drupal은 선택한 모듈의 경로에서 해당 필터 정의를 찾고 (참조 drupal_get_path
) 각 필터에 대해 아무것도 반환하지 않습니다. 따라서 더 이상 텍스트 형식 설명이 없습니다.
/ 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;
}
이 작은 변화로 대부분 나를 위해 일했습니다.
$form['body'][LANGUAGE_NONE][0]['format']['#prefix']<br>
$form['body'][LANGUAGE_NONE][0]['format']['#suffix']
hook_form_alter
세부 사항에 대해 잘 모르겠으므로 그것을 할 수 있다고 생각합니다 . 그래서 나는 이것을 답으로 게시하지 않을 것입니다 ...