Làm cách nào để tắt tùy chọn 'quảng cáo lên trang nhất' và 'dính'?


15

Hai phương pháp có thể mà tôi đã khám phá:

Sử dụng hook_form_alter để bỏ đặt cả hai tùy chọn trên các biểu mẫu chỉnh sửa nút. Nhưng trên trang nội dung quản trị viên chính, các tùy chọn vẫn xuất hiện trong danh sách 'Cập nhật tùy chọn'.

Sử dụng mô-đun Tùy chọn ghi đè nút . Điều này cung cấp kiểm soát chi tiết, nhưng điều đó có nghĩa là vô hiệu hóa quyền 'Quản trị nội dung'. Sau đó, người dùng không thể thấy 'Tùy chọn cập nhật' mà họ vẫn cần để xuất bản hàng loạt, xóa, v.v.

Câu trả lời:


16

Có 3 nơi, trong đó những lựa chọn có thể được nhìn thấy:

  • trên quản trị / cấu trúc / loại / quản lý / bài viết, cho loại nội dung "Bài viết"

    ảnh chụp màn hình

  • trên nút / 2 / chỉnh sửa, đối với nút có ID bằng 2

    ảnh chụp màn hình

  • trên quản trị / nội dung, giữa "Tùy chọn cập nhật"

    ảnh chụp màn hình

Nếu bạn cần xóa các tùy chọn khỏi các trang cài đặt / quản trị đó, thì bạn cần thay đổi các trình tạo biểu mẫu sau:

node_admin_nodes()là trình tạo biểu mẫu cho tổng quan quản trị nút trong quản trị / nội dung, bao gồm trường "Tùy chọn cập nhật" cho phép người dùng có quyền quảng bá / hạ cấp một nút từ trang trước và để tạo một nút dính. Trường liệt kê tất cả các hoạt động nút được thực hiện bởi các mô-đun; trong danh sách các hoạt động thu được với $operations = module_invoke_all('node_operations'), những hoạt động được biểu diễn từ $operations['promote'], $operations['demote'], $operations['sticky'], và $operations['unsticky'].


13

Đây là một mô-đun tùy chỉnh mà tôi đã viết cho Drupal 7 để loại bỏ "quảng cáo lên trang nhất" và "dính ở đầu danh sách" trên các biểu mẫu thêm / chỉnh sửa nút, biểu mẫu thêm / chỉnh sửa nội dung và thả xuống quản trị / nội dung. Mô-đun này không thay đổi bất kỳ cài đặt cơ sở dữ liệu nào vì vậy nó sẽ không thay đổi nội dung hiện có, bạn luôn có thể vô hiệu hóa nó và lấy lại các tùy chọn của mình và mọi thứ sẽ hoạt động giống như trước đây.

Dán mã này vào một ẩn_sticky_promote.module và tạo một tệp hide_sticky_promote.info tương ứng, kích hoạt mô-đun và wallah, không còn dính và quảng bá các hộp kiểm hoặc lựa chọn thả xuống.

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

Hoặc lấy nó từ đây ở dạng mô-đun: https://github.com/StudioZut/ leather -sticky- proteote


3

Sử dụng như sau:

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

2

Trong Drupal 8, tùy chọn có thể bị tắt theo từng loại nội dung:

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

Trường "biểu mẫu số lượng lớn hoạt động nút" cũng phải được sửa đổi trong chế độ xem nội dung quản trị viên để xóa hành động tương ứng khỏi / admin / content

/admin/structure/views/view/admin_content

Nếu muốn giữ các tùy chọn quảng cáo loại nội dung, ví dụ như để sử dụng với chế độ xem tùy chỉnh, chế độ xem "trang trước" tạo trang trước cũng có thể được sửa đổi trong

/admin/structure/views/view/frontpage

Ví dụ, thêm một bộ lọc bổ sung 'không bằng quảng cáo' và loại bỏ "hành vi không có kết quả" "làm cho chế độ xem đó không trả về kết quả.


1

Bạn có thể vô hiệu hóa 'quảng cáo lên trang nhất' bằng cách chỉnh sửa loại nội dung. Để ẩn nó và / hoặc các tùy chọn 'dính', sửa đổi và hơn thế nữa, hãy xem mô-đun Jammer cho Drupal 7.


0

Tại sao không tạo một vùng mẫu khác chỉ xuất hiện trên trang đầu và xóa vùng ['nội dung'] trên trang đó?

Các thành phần trên biểu mẫu có thể được ẩn bằng css hoặc với hook_pre process_form ()


0

Tôi sử dụng mô-đun "Thúc đẩy vô hiệu hóa" cho việc này.

Nó tạo ra một điều khiển tại Cấu hình -> Tác giả nội dung -> Quảng cáo vô hiệu hóa cung cấp danh sách chọn tất cả các loại nội dung của bạn. Ctrl / nhiều mục chọn trong danh sách để loại bỏ hoàn toàn tùy chọn quảng cáo.


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

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

Nó chỉ cần ở trên


-1

Tôi nghi ngờ bạn có thể thực hiện một hook_node_presave và đặt chúng thành 0. Điều này sẽ ghi đè mọi cách có thể để đặt chúng.

Bạn cũng có thể thử hook_form_alterbiểu mẫu được sử dụng trên trang quản trị đó và xóa các tùy chọn đó.

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.