Có thể vô hiệu hóa một loại nội dung?


8

Tôi hiện đang tạo một trang web Drupal 7 nhỏ, nhưng tôi không có kế hoạch sử dụng loại nội dung Bài viết được phân phối. Có thể vô hiệu hóa nó mà không cần xóa nó? Điều tôi muốn nói là đảm bảo không có người dùng nào tạo ra các bài viết một cách tình cờ.

Tôi không thể tìm thấy một lựa chọn cho việc này. Cảm ơn.

Câu trả lời:


16
  • Bạn không thể vô hiệu hóa một loại nội dung, nhưng bạn có thể ngăn (hầu hết) mọi người tạo / xem / sửa đổi, v.v. Điều đó với việc đặt quyền cho phù hợp.
  • Nếu không có nội dung Bài viết trên trang web, thì an toàn 100% để xóa nó. (Thật thú vị khi kiểm tra cách cấu hình cài đặt mặc định và tối thiểu cung cấp các bộ nội dung khác nhau. Bài viết chỉ là loại nội dung "chứng khoán" mà không có nghĩa là cần thiết phải có.)

7

Đối với những người không quen thuộc với Drupal, bạn sẽ ngăn mọi người sử dụng loại nội dung bằng cách đi (trong 7) People > Permissions (url: admin/people/permissions)

Sau đó, dưới Node bỏ chọn Article: Create new contentquyền cho các vai trò đã chọn. :)

Rõ ràng bạn sẽ thay đổi Articleloại nội dung có liên quan.


Bạn có thể nghĩ ra bất kỳ lý do nào khiến người dùng vẫn có thể truy cập vào liên kết "tạo" cho một loại nội dung cụ thể, mặc dù vai trò của họ không cho phép tạo loại nội dung đó? Tôi nhân bản vai trò người dùng quản trị viên của mình và tạo vai trò người dùng "quản trị viên" chỉ có quyền truy cập để tạo một số ít nội dung trên trang web của tôi. Tuy nhiên, những người dùng quản trị viên có thể tạo tất cả các loại nội dung khác nhau ... Tôi đã thử xây dựng lại quyền, nhưng điều đó cũng không giúp được gì.
khúc côn cầu2112

2
Tôi đã tìm ra vấn đề của mình ... vai trò vẫn được bật quyền "Bỏ qua kiểm soát truy cập nội dung". Tôi đã vô hiệu hóa nó, và nó đã khắc phục vấn đề của tôi.
khúc côn cầu2112

5

Trong tệp .install của bạn:

function YOURMODULE_disable() {

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


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

và bây giờ trong tệp .module hoặc .inc của bạn:

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);
}

Điều này có hiệu quả làm cho loại nút, và bất kỳ nội dung của loại đó, vô hình? Ca sử dụng của tôi là một tùy chọn trong mô-đun sẽ yêu cầu các loại nội dung mới, nhưng chỉ khi tùy chọn đó được chọn. Tôi không muốn họ xem loại nội dung nếu họ không chọn tùy chọn đó, nhưng tôi cũng muốn giữ tính toàn vẹn của dữ liệu nếu họ bật / tắt / bật / v.v.
Không ổn định Xu hướng

@UnsettlingTrend có. Tôi có một nhu cầu tương tự và đã thử tùy chọn này. Tôi cũng đã phải tạo một hàm _enable () trong tệp .install của mình có tên enable_content_type ('MyContentType'). Trong tệp .module (hoặc .inc), $ type_info-> bị tắt được đặt thành 0. Bằng cách đó, khi mô-đun được bật, loại nội dung có sẵn. Khi mô-đun bị vô hiệu hóa, loại nội dung không có sẵn. Nếu bạn cần quyền truy cập vào nội dung (ví dụ như quản trị viên), bạn có thể muốn xem xét một tùy chọn khác thay đổi quyền cho loại nội dung. Đó là con đường tôi đã kết thúc.
sho


1

Có một số loại nội dung có thể bị "vô hiệu hóa" do vô hiệu hóa mô-đun sử dụng nó. Ví dụ: các loại nội dung thăm dò ý kiến, diễn đàn, sách và blog biến mất khỏi các loại có sẵn khi bạn vô hiệu hóa các mô-đun liên quan. Trang cơ bản và bài viết là hai ngoại lệ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.