Apakah mungkin untuk menonaktifkan tipe konten?

8

Saat ini saya sedang membuat situs web Drupal 7 kecil, tetapi saya tidak berencana untuk menggunakan tipe konten Artikel yang dikirimkan. Apakah mungkin untuk menonaktifkannya tanpa menghapusnya? Yang saya maksudkan adalah memastikan tidak ada pengguna yang akan membuat artikel secara tidak sengaja.

Saya tidak dapat menemukan opsi untuk ini. Terima kasih.

Jérôme Verstrynge
sumber

Jawaban:

16
  • Anda tidak dapat menonaktifkan jenis konten, tetapi Anda dapat mencegah (hampir) semua orang membuat / melihat / memodifikasi dll. Artikel dengan mengatur izin yang sesuai.
  • Jika tidak ada konten Artikel di situs, itu 100% aman untuk menghapusnya. (Sangat menarik untuk melihat bagaimana profil pemasangan default dan minimal menyediakan set tipe konten yang berbeda. Artikel hanyalah tipe konten "stok" yang sama sekali tidak perlu dimiliki.)
Scorchio
sumber
7

Untuk orang-orang yang tidak terbiasa dengan Drupal, Anda akan mencegah orang menggunakan tipe konten dengan masuk (dalam 7) People > Permissions (url: admin/people/permissions)

Kemudian di bawah Node hapus centang Article: Create new contentizin untuk peran yang dipilih. :)

Jelas Anda akan berubah Articleke tipe konten yang relevan.

mediaashley
sumber
Bisakah Anda memikirkan alasan mengapa pengguna masih dapat mengakses tautan "buat" untuk jenis konten tertentu, meskipun peran mereka melarang pembuatan jenis konten itu? Saya mengkloning peran pengguna admin saya, dan membuat peran pengguna "admin-lite" yang seharusnya hanya memiliki akses untuk membuat beberapa jenis konten di situs saya. Namun, para pengguna admin-lite dapat membuat semua jenis konten yang berbeda ... Saya mencoba membangun kembali izin, tetapi itu juga tidak membantu.
hockey2112
2
Saya menemukan masalah saya ... peran masih memiliki izin "Kontrol Akses Konten Bypass" diaktifkan. Saya menonaktifkannya, dan itu memperbaiki masalah saya.
hockey2112
5

Di file .install Anda:

function YOURMODULE_disable() {

  // Disable content type MyContentType
  disable_content_type('MyContentType');


  //Activation message
  drupal_set_message(t('MyContentType is now disabled on your site.'));
}

dan sekarang di file .module atau .inc Anda:

function disable_content_type($type) {
  $type_info = node_type_load($type);
  $type_info->module = 'node';
  $type_info->custom = 1;
  $type_info->modified = 1;
  $type_info->locked = 0;
  $type_info->disabled = 1;
  node_type_save($type_info);
}
drupal_stuff_alter
sumber
Apakah ini secara efektif membuat tipe node, dan konten apa pun dari tipe itu, tidak terlihat? Kasing penggunaan saya adalah opsi dalam modul yang akan membutuhkan jenis konten baru, tetapi hanya jika opsi itu dipilih. Saya tidak ingin mereka melihat jenis konten jika mereka tidak memilih opsi itu, tetapi saya juga ingin menjaga integritas data jika mereka mengaktifkan opsi on / off / on / etc.
UnsettlingTrend
@UnsettlingTrend ya. Saya memiliki kebutuhan yang serupa dan mencoba opsi ini. Saya juga harus membuat fungsi _enable () di file .install saya yang bernama enable_content_type ('MyContentType'). Dalam file .module (atau .inc), $ type_info-> nonaktif diatur ke 0. Dengan begitu, ketika modul diaktifkan, tipe konten tersedia. Ketika modul dinonaktifkan, tipe konten tidak tersedia. Jika Anda memerlukan akses ke konten (misalnya sebagai admin), Anda mungkin ingin mempertimbangkan opsi lain yang mengubah izin untuk jenis konten. Itulah rute yang akhirnya saya tuju.
sho
1

Ada beberapa tipe konten yang dapat "dinonaktifkan" berdasarkan penonaktifan modul yang menggunakannya. Misalnya: jajak pendapat, jenis konten forum, buku dan blog menghilang dari jenis yang tersedia ketika Anda menonaktifkan modul terkait. Halaman dasar dan artikel adalah dua pengecualian.

pengguna1991685
sumber