Jak wyłączyć opcje „awansuj na pierwszą stronę” i „lepkie”?

14

Dwie możliwe metody, które zbadałem:

Użyj hook_form_alter, aby wyłączyć obie opcje w formularzach edycji węzłów. Ale na głównej stronie z treściami administracyjnymi opcje nadal pojawiają się w menu rozwijanym „Opcje aktualizacji”.

Użyj modułu opcji Zastąp węzeł . Zapewnia to szczegółową kontrolę, ale oznacza wyłączenie uprawnienia „Administruj treścią”. Użytkownicy nie będą wtedy w ogóle widzieć „Opcje aktualizacji”, których nadal potrzebują, aby zbiorczo publikować, usuwać itp.

pushka
źródło

Odpowiedzi:

16

Istnieją 3 miejsca, w których można zobaczyć te opcje:

  • na admin / structure / types / manage / article, dla typu treści „Artykuł”

    zrzut ekranu

  • w węźle / 2 / edit, dla węzła o identyfikatorze równym 2

    zrzut ekranu

  • na temat admin / content, między „opcjami aktualizacji”

    zrzut ekranu

Jeśli chcesz usunąć opcje z tych stron ustawień / administracyjnych, musisz zmienić następujące narzędzia do tworzenia formularzy:

node_admin_nodes()to konstruktor formularzy do przeglądu administracji węzła w admin / content, który zawiera pole „Opcje aktualizacji”, które pozwala użytkownikom z odpowiednimi uprawnieniami promować / obniżać węzeł na pierwszej stronie i uczynić go lepszym. Pole zawiera listę wszystkich operacji węzłów zaimplementowanych przez moduły; w wykazie czynności uzyskanych $operations = module_invoke_all('node_operations')te operacje są przedstawione z $operations['promote'], $operations['demote'], $operations['sticky']i $operations['unsticky'].

kiamlaluno
źródło
13

Oto niestandardowy moduł, który napisałem dla Drupala 7, który usuwa „awans na pierwszą stronę” i „przyklejanie na górze list” w formularzach dodawania / edycji węzłów, typach treści dodawaj / edytuj formularze i rozwijanym menu admin / content. Ten moduł nie zmienia żadnych ustawień bazy danych, więc nie zmieni istniejącej zawartości, zawsze możesz ją wyłączyć i odzyskać opcje, a wszystko będzie działać tak jak wcześniej.

Wklej ten kod do hide_sticky_promote.module i utwórz odpowiedni plik hide_sticky_promote.info, włącz moduł i ścianę, nie będzie już lepki i promuj pola wyboru lub listy rozwijane.

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

Lub pobierz go stąd w formie modułu: https://github.com/StudioZut/hide-sticky-promote

Elijah Lynn
źródło
3

Użyj następujących opcji:

/**
 * 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']);
  }
}
Sumaiya
źródło
2

W Drupal 8 tę opcję można wyłączyć według typu zawartości:

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

Pole „formularz zbiorczej operacji węzła” należy również zmodyfikować w widoku treści administratora, aby usunąć odpowiednią akcję z / admin / content

/admin/structure/views/view/admin_content

Jeśli chcesz zachować opcje promowania typu zawartości, na przykład w przypadku niestandardowych widoków, widok „strona początkowa”, który generuje stronę główną, można również zmodyfikować w

/admin/structure/views/view/frontpage

Dodanie na przykład dodatkowego filtra „nie jest równe promowanemu”, a usunięcie „zachowania bez rezultatów” powoduje, że widok nie zwraca wyników.

Matoeil
źródło
1

Możesz wyłączyć opcję „awansuj na stronę główną”, edytując typ zawartości. Aby to ukryć i / lub „lepkie” opcje, wersje i więcej, sprawdź moduł Jammer dla Drupala 7.

PWM
źródło
0

Dlaczego nie utworzyć innego regionu szablonu, który pojawia się tylko na stronie głównej i nie usunąć regionu [„treści”] na tej stronie?

Elementy formularzy można ukryć za pomocą css lub hook_preprocess_form ()

Cube Inspire
źródło
0

Używam do tego modułu „Promuj wyłączenie” .

Tworzy kontrolkę w Konfiguracja -> Tworzenie treści -> Promuj wyłączenie, która daje listę wyboru wszystkich typów zawartości. Ctrl / wielokrotne zaznaczanie pozycji na liście, aby całkowicie usunąć opcję promowania.

shuckc
źródł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']);
  }
}

Potrzebuje tylko powyżej

Ankit Shah
źródło
-1

Podejrzewam, że możesz zaimplementować hook_node_presave i ustawić je na 0. To powinno zastąpić każdy możliwy sposób, aby je ustawić.

Możesz także spróbować użyć hook_form_alterformularza używanego na tej stronie administratora i usunąć te opcje.

mpdonadio
źródło