it-swarm-id.com

Bagaimana cara menonaktifkan opsi 'promosikan ke halaman depan' dan 'lengket'?

Dua metode yang mungkin telah saya jelajahi:

Gunakan hook_form_alter untuk membatalkan pilihan kedua pada formulir edit simpul. Tetapi pada halaman konten admin utama, opsi masih muncul di bawah dropdown 'Opsi pembaruan'.

Gunakan Abaikan Node Opsi modul. Ini menyediakan kontrol granular, tetapi itu berarti menonaktifkan izin 'kelola konten'. Pengguna kemudian tidak dapat melihat 'Perbarui opsi' di semua, yang masih mereka butuhkan untuk mempublikasikan, menghapus, dll. secara massal.

14
pushka

Ada 3 tempat, di mana opsi-opsi itu dapat dilihat:

  • pada admin/struktur/tipe/kelola/artikel, untuk tipe konten "Artikel"

    screenshot

  • pada node/2/edit, untuk node dengan ID sama dengan 2

    screenshot

  • di admin/konten, di antara "Opsi pembaruan"

    screenshot

Jika Anda perlu menghapus opsi dari pengaturan/halaman administratif itu, maka Anda perlu mengubah pembuat formulir berikut:

node_admin_nodes() adalah pembuat form untuk gambaran umum administrasi simpul di admin/konten, yang mencakup bidang "Opsi pembaruan" yang memungkinkan pengguna dengan izin yang tepat untuk mempromosikan/menurunkan sebuah node dari halaman depan, dan untuk membuat simpul lengket. Bidang ini mencantumkan semua operasi simpul yang dilaksanakan oleh modul; dalam daftar operasi yang diperoleh dengan $operations = module_invoke_all('node_operations'), operasi tersebut diwakili dari $operations['promote'], $operations['demote'], $operations['sticky'], dan $operations['unsticky'].

16
kiamlaluno

Berikut adalah modul khusus yang saya tulis untuk Drupal 7 yang menghapus "promosikan ke halaman depan" dan "lengket di bagian atas daftar" pada formulir tambah/sunting node, jenis isi tambah/edit formulir dan admin/dropdown konten. Modul ini tidak mengubah pengaturan basis data apa pun sehingga tidak akan mengubah konten yang ada, Anda selalu dapat menonaktifkannya dan mendapatkan kembali opsi Anda dan semuanya akan berfungsi seperti sebelumnya.

Rekatkan kode ini ke dalam hide_sticky_promote.module dan buat file hide_sticky_promote.info yang sesuai, aktifkan modul dan wallah, tidak lagi lengket dan promosikan kotak centang atau pilihan dropdown.

/**
 * 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]);
  }
}

Atau ambil dari sini dalam bentuk modul: https://github.com/StudioZut/hide-sticky-promote

13
Elijah Lynn

Gunakan yang berikut ini:

/**
 * 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

Dalam Drupal 8, opsi dapat dinonaktifkan per jenis konten:

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

Bidang "bentuk operasi simpul node" juga harus dimodifikasi dalam tampilan konten admin untuk menghapus tindakan yang sesuai dari/admin/konten

/admin/structure/views/view/admin_content

Jika ingin mempertahankan opsi mempromosikan jenis konten, untuk penggunaan dengan tampilan khusus misalnya, tampilan "halaman depan" yang menghasilkan halaman halaman depan juga dapat dimodifikasi dalam

/admin/structure/views/view/frontpage

Menambahkan, misalnya, filter tambahan 'tidak sama dengan yang dipromosikan' dan menghapus "perilaku tanpa hasil" "membuat tampilan itu tidak mengembalikan hasil.

2
Matoeil

Anda dapat menonaktifkan 'promosikan ke halaman depan' dengan mengedit tipe konten. Untuk menyembunyikannya dan/atau opsi 'lengket', revisi, dan lainnya, lihat modul Jammer untuk 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']);
  }
}

Itu hanya kebutuhan di atas

0
Ankit Shah

Mengapa tidak membuat wilayah templat berbeda yang hanya muncul di halaman depan dan menghapus wilayah ['konten'] di halaman itu?

Elemen pada formulir dapat disembunyikan menggunakan css atau dengan hook_preprocess_form ()

0
Cube Inspire

Saya menggunakan modul "Promote Disable" untuk ini.

Ini membuat kontrol di Konfigurasi -> Penulisan konten -> Promosikan menonaktifkan yang memberikan daftar pilih semua jenis konten Anda. Ctrl/multi-pilih item dalam daftar untuk menghapus opsi promosi sepenuhnya.

0
shuckc