it-swarm.asia

كيفية إخفاء خيارات تنسيق الإدخال ومساعدة النص ضمن منطقة نصية؟

كيفية إخفاء خيارات تنسيق الإدخال ومساعدة النص ضمن منطقة نصية عند إضافة | تحرير عقدة؟

Screenshot - part to hide selected with red rectangle

32
Cosmodrom

من أجل Drupal 7 ، يمكنك استخدام Simplify الوحدة النمطية ، وهي تسمح لك بإخفاء خيارات تنسيق النص textarea ، بالإضافة إلى العناصر الأخرى في نماذج العقد.

26
BWPanda

يمكنك استخدام 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;
}
25
fourmi4x

في drupal 6 هناك الوحدة Better Formats التي تفعل بالضبط ما تريده ، هناك إصدار 7 dev ولكن يأتي مع تحذير بأنه قيد التطوير الثقيل. إذا كان موقعك لا يزال قيد التطوير ، فقد يستحق الأمر تجربة ذلك.

12
digital

يمكنك في الواقع فقط إنهاء عنصر نموذج التنسيق.

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;
}
9
doublejosh

أعتقد أن الحل الأفضل هو عدم السماح بالوصول إلى عنصر تحديد تنسيق النص. إذا قمت بإلغاء تحديدها تمامًا ، فستواجه آثارًا جانبية غير مرغوب فيها كمحرر 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;
}
7
user5950

استخدم CSS ، أسهل طريقة. Firebug

#body-add-more-wrapper #edit-body-und-0-format {display: none;}

The power of CSS and Firebug

حظا طيبا وفقك الله.

6
Ionut Adrian Luchian

FOR 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;
}
5
nxplace

انا فعلت هذا:

أذونات غير محددة "استخدم تنسيق نص HTML المفلتر" و "إدارة تنسيقات النص والفلاتر" من الأشخاص> المستخدمين المجهولين والمصرح لهم حتى لا يتمكنوا من استخدام CKeditor.

بالطبع يمكنك تعطيله من CSS عن طريق "display: none؛" لفئة div معينة (إنه .filter-wrapper) وإخفاء كل المنطقة التي أشرت إليها في الأعلى ولكن في هذه الحالة تكون المنطقة مخفية للجميع بما في ذلك المستخدم الخارق.

2
zurab lanchava

هناك طريقة بسيطة أخرى لإخفاء خيار تنسيق الإدخال وهي إزالة جميع تنسيق الإدخال الآخر من ملفات تعريف المستخدم التي تريد إخفاء الخيار. لهذا ، انتقل إلى admin-> config-> تنسيقات الإدخال وأزل جميع أدوار المستخدم من جميع تنسيقات الإدخال الأخرى باستثناء الشكل الذي تريد تقديمه افتراضيًا.

2
Ashok Sharma

تثبيت CSS Injector الوحدة النمطية (يوجد حاليًا إصدار تطوير عمل فقط لـ Drupal 8).

ثم انتقل إلى صفحة إدارة CSS Injector (/ admin/config/development/css-injector). أنشئ قاعدة CSS جديدة باستخدام هذا الرمز (أو أي رمز ينطبق على فئة نص منطقة التكوين):

.filter-guidelines {
    display: none;
}

اختر تطبيقه على سمة سبعة (أو أي سمة مشرف قيد الاستخدام). وفر واستمتع!

1
Whatwatt

إذا كنت ترغب في إخفاء التنسيقات ولكن لا تزال تحتفظ بها متاحة ، فجرّب الوحدة " التنسيقات المبسطة ": https://www.drupal.org/project/simplified_formats

يخفي تفاصيل التنسيقات في أيقونة علامة استفهام صغيرة بجوار القائمة المنسدلة لتحديد التنسيق. بالنسبة للعديد من فلاتر تنسيق النص ، لا يفيد حقًا إخفاء التعليمات التي تخبر أحدهم عن كيفية استخدامها. الفلاتر الأخرى أكثر تلقائية. أعتقد أننا بحاجة إلى وحدة نمطية تسمح لنا باختيار ما يظهر للمستخدم النهائي وما لا يظهر.

0
deanflory

أستخدم كلاً من "إزالة كل تنسيق الإدخال الآخر من ملفات تعريف المستخدم" وطريقة css.

0
fishfree

لا يمكنك إزالة تنسيق الإدخال "نص عادي". ولا يظهر RTE عند استخدام تنسيق الإدخال "نص عادي".

سأستخدم خيار CSS.

0
ibakayoko

يمكنك أيضًا استخدام إخفاء التنسيقات الوحدة النمطية.

تتيح لك إخفاء التنسيقات طي القائمة المنسدلة "تنسيق النص" أو "تنسيق الإدخال" لتنظيف واجهة المستخدم.

0
disnel

ل Drupal 7 ، يمكنك:

1) استخدم hook_theme_registry_alter(&$theme_registry) من داخل وحدة نمطية لتغيير تسجيل السمة ، eq. تعريف معالجات السمات.

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) ، ولن تعيد أي شيء لكل مرشح. أوصاف تنسيق النص.

0
Mauro Colella

جرب تبسيط الوحدة.

تبسيط يسمح بإخفاء حقول معينة من واجهة المستخدم. وهذا يساعد على إزالة الفوضى من النماذج وتقديم تجربة أكثر سهولة لمحرري المحتوى.

0
allabakash.g
/ 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']
0
miske

من أجل 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);
}
0
Andre Angelantoni