it-swarm.asia

كيفية تعطيل خيارات "الترويج للصفحة الأولى" و "اللزجة"؟

طريقتان محتملتان اكتشفتهما:

استخدم hook_form_alter لإلغاء تعيين كلا الخيارين في نماذج تحرير العقدة. ولكن في صفحة المحتوى الإداري الرئيسية ، لا تزال الخيارات تظهر ضمن القائمة المنسدلة "خيارات التحديث".

استخدم Override Node Options module. وهذا يوفر تحكمًا دقيقًا ، ولكنه يعني تعطيل إذن "إدارة المحتوى". ثم لا يمكن للمستخدمين رؤية "خيارات التحديث" على الكل ، الذي لا يزالون بحاجة إليه للنشر المجمّع والحذف وما إلى ذلك.

14
pushka

هناك 3 أماكن ، حيث يمكن رؤية هذه الخيارات:

  • على admin/هيكل/أنواع/إدارة/مقال ، لنوع المحتوى "مقال"

    screenshot

  • على العقدة/2/تحرير ، للعقدة ذات المعرف تساوي 2

    screenshot

  • على المشرف/المحتوى ، بين "خيارات التحديث"

    screenshot

إذا كنت بحاجة إلى إزالة الخيارات من صفحات الإعداد/الإدارية هذه ، فأنت بحاجة إلى تغيير مُنشئي النماذج التاليين:

node_admin_nodes() هي أداة إنشاء النماذج للنظرة العامة على إدارة العقدة في المشرف/المحتوى ، والتي تتضمن حقل "خيارات التحديث" الذي يتيح للمستخدمين الذين لديهم الإذن الصحيح للترويج/تخفيض عقدة من الصفحة الأولى ، وإلى جعل العقدة لزجة. يسرد الحقل جميع عمليات العقدة التي تنفذها الوحدات النمطية ؛ في قائمة العمليات التي تم الحصول عليها باستخدام $operations = module_invoke_all('node_operations') ، يتم تمثيل تلك العمليات من $operations['promote'] ، $operations['demote'] ، $operations['sticky'] ، و $operations['unsticky'].

16
kiamlaluno

في ما يلي وحدة مخصصة كتبتها عن Drupal 7 التي تزيل "الترويج للصفحة الأمامية" و "اللصق في أعلى القوائم" في نماذج إضافة/تعديل العقدة ، ونوع المحتوى إضافة/تعديل النماذج و القائمة المنسدلة للمشرف/المحتوى. لا تغير هذه الوحدة أي إعدادات لقاعدة البيانات لذا لن تغير المحتوى الموجود ، ويمكنك دائمًا تعطيله واستعادة خياراتك وسيعمل كل شيء تمامًا كما كان من قبل.

قم بلصق هذا الرمز في ملف hide_sticky_promote.module وقم بعمل ملف hide_sticky_promote.info المقابل ، وقم بتمكين الوحدة والولاه ، ولم تعد لزجة وقم بالترويج لمربعات الاختيار أو التحديدات المنسدلة.

/**
 * Remove sticky/promote entirely from add and edit content type forms.
 *
 * Implements hook_form_FORM_ID_alter().
 */
function hide_sticky_promote_form_node_type_form_alter(&$form, &$form_state, $form_id) {
  // Remove sticky/promote entirely from add and edit content type forms.
  $options = array('promote', 'sticky');
  foreach ($options as $key) {
    unset($form['workflow']['node_options']['#options'][$key]);    
  }
}

/**
 * Remove sticky/promote entirely from node/X/edit & node/X/add forms.
 * 
 * Implements hook_form_BASE_FORM_ID_alter().
 */
function hide_sticky_promote_form_node_form_alter(&$form, &$form_state, $form_id) {
  $options = array('promote', 'sticky');
  foreach ($options as $key) {
    $form['options'][$key]['#access'] = FALSE;
  }
}

/**
 * Remove some sticky/promote update options on admin/content.
 *
 * Implements hook_form_FORM_ID_alter().
 */
function hide_sticky_promote_form_node_admin_content_alter(&$form, &$form_state, $form_id) {
  $options = array('demote', 'promote', 'sticky', 'unsticky', );
  foreach ($options as $key) {
    unset($form['admin']['options']['operation']['#options'][$key]);
  }
}

أو احصل عليها من هنا في شكل وحدة: https://github.com/StudioZut/hide-sticky-promote

13
Elijah Lynn

استخدم ما يلي:

/**
 * Implements hook_form_alter().
 * This is remove the promote to frontpage, and make sticky options from node edit pages
 */
function alter_drupal_form_alter(&$form, &$form_state, $form_id) {
  if (strpos($form_id, '_node_form') !== FALSE) {
    unset($form['options']['sticky']);
    unset($form['options']['promote']);
  }

  if (strpos($form_id, 'node_admin_content') !== FALSE) {
    //$opt[''] = '- Select -';
    $opt['publish'] = 'Publish selected content'; 
    $opt['unpublish'] = 'Unpublish selected content'; 
    $opt['delete'] = 'Delete selected content'; 
    $opt['pathauto_update_alias'] = 'Update URL alias'; 
    $form['admin']['options']['operation']['#options'] = $opt;


    // print_r($form['admin']['options']['operation']['#options']);
  }
}
3
Sumaiya

في Drupal 8 ، يمكن تعطيل الخيار لكل نوع محتوى:

/admin/structure/types/manage/page/form-display

يجب أيضًا تعديل حقل "النموذج المجمع لعملية العقدة" في عرض محتوى المسؤول لإزالة الإجراء المقابل من/admin/content

/admin/structure/views/view/admin_content

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

/admin/structure/views/view/frontpage

على سبيل المثال ، إضافة عامل تصفية إضافي "لا يساوي الترويج" وإزالة "سلوك بدون نتائج" يجعل هذا العرض لا يؤدي إلى أي نتائج.

2
Matoeil

يمكنك تعطيل "الترويج للصفحة الأولى" عن طريق تعديل نوع المحتوى. لإخفائها و/أو خيارات "لزجة" والمراجعات والمزيد ، تحقق من Jammer الوحدة النمطية Drupal 7.

1
PWM
function HOOK_form_node_form_alter(&$form, FormStateInterface $form_state) {
  if (isset($form['promote'])) {
    unset($form['promote']);
  }

  if (isset($form['sticky'])) {
    unset($form['sticky']);
  }
}

تحتاج فقط أعلاه

0
Ankit Shah

لماذا لا تصنع منطقة قالب مختلفة تظهر فقط على الصفحة الأولى وتزيل منطقة ["المحتوى"] على تلك الصفحة؟

يمكن إخفاء العناصر الموجودة في النماذج باستخدام css أو باستخدام hook_preprocess_form ()

0
Cube Inspire

أستخدم "تعزيز تعطيل" الوحدة النمطية لهذا.

يقوم بإنشاء عنصر تحكم في التكوين -> تأليف المحتوى -> تعزيز التعطيل الذي يوفر قائمة محددة بجميع أنواع المحتوى الخاص بك. Ctrl/عناصر التحديد المتعدد في القائمة لإزالة خيار الترويج تمامًا.

0
shuckc