it-swarm-vi.com

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

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 Ghi đè Node Tùy chọn mô-đun. Đ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'. Người dùng sau đó không thể thấy 'Tùy chọn cập nhật' tại tất cả, cái mà họ vẫn cần để xuất bản hàng loạt, xóa, v.v.

14
pushka

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"

    screenshot

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

    screenshot

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

    screenshot

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à làm cho 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'), các hoạt động đó được biểu diễn từ $operations['promote'], $operations['demote'], $operations['sticky']$operations['unsticky'].

16
kiamlaluno

Đâ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 biểu mẫu thêm/chỉnh sửa nút, biểu mẫu thêm/chỉnh sửa loại nội dung và Quản trị viên/nội dung thả xuống. 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 bị 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-stick-promote

13
Elijah Lynn

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']);
  }
}
3
Sumaiya

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ả lại kết quả.

2
Matoeil

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.

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

Nó chỉ cần ở trên

0
Ankit Shah

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
Cube Inspire

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
shuckc