it-swarm-eu.dev

Jak vypnout možnosti „povýšit na titulní stránku“ a „lepkavé“?

Dvě možné metody, které jsem prozkoumal:

Pomocí hook_form_alter zrušíte obě možnosti ve formulářích pro úpravy uzlů. Na hlavní stránce s obsahem pro správce se však možnosti stále zobrazují v rozbalovací nabídce „Možnosti aktualizace“.

Použijte modul Přepsat Node Možnosti . Toto poskytuje podrobnou kontrolu, ale znamená to deaktivaci oprávnění 'Spravovat obsah'. Uživatelé pak nemohou vidět 'Možnosti aktualizace' na vše, co stále potřebují k hromadnému publikování, mazání atd.

14
pushka

Tam jsou 3 místa, kde jsou tyto možnosti vidět:

  • na admin/struktura/typy/spravovat/článek, pro typ obsahu "Článek"

    screenshot

  • na uzlu/2/upravit, pro uzel s ID rovným 2

    screenshot

  • na admin/obsah, mezi "Možnosti aktualizace"

    screenshot

Pokud potřebujete odebrat možnosti z těchto stránek nastavení/správy, musíte změnit následující tvůrce formulářů:

node_admin_nodes() je tvůrce formulářů pro přehled správy uzlů v administrátorovi/obsahu, který obsahuje pole „Možnosti aktualizace“, které umožňuje uživatelům s oprávněním propagovat/snižovat uzel z přední stránky a udělej lepkavý uzel. Pole uvádí všechny operace uzlu implementované moduly; v seznamu operací získaných pomocí $operations = module_invoke_all('node_operations') jsou tyto operace reprezentovány z $operations['promote'], $operations['demote'], $operations['sticky'], a $operations['unsticky'].

16
kiamlaluno

Zde je vlastní modul, který jsem napsal pro Drupal 7, který odebere „povýšit na titulní stránku“ a „lepkavý v horní části seznamů“ v uzlech přidat/upravit formuláře, typ obsahu přidat/upravit formuláře a Rozbalovací nabídka admin/content. Tento modul nemění žádné nastavení databáze, takže nezmění existující obsah, můžete jej vždy zakázat a získat zpět své možnosti a vše bude fungovat stejně jako předtím.

Vložte tento kód do skrývadla_promote.module a vytvořte odpovídající soubor skrýty_promote.info, povolte modul a wallah, už žádné lepkavé a propagujte zaškrtávací políčka nebo rozbalovací nabídky.

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

Nebo ho odtud vezměte v podobě modulu: https://github.com/StudioZut/hide-sticky-promote

13
Elijah Lynn

Použijte následující:

/**
 * 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

V Drupal 8) lze možnost deaktivovat podle typu obsahu:

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

Pole „Hromadná operace operace uzlu“ musí být také upraveno v zobrazení obsahu administrátora, aby se odstranila odpovídající akce z/admin/obsahu

/admin/structure/views/view/admin_content

Pokud chcete zachovat možnosti propagace typu obsahu, například pro použití s ​​uživatelskými pohledy, lze také upravit pohled „úvodní stránka“, který generuje úvodní stránku.

/admin/structure/views/view/frontpage

Přidání například zvláštního filtru „se nerovná povýšenému“ a odstranění „chování bez výsledků“ způsobí, že pohled vrátí žádné výsledky.

2
Matoeil

Funkci „povýšit na přední stránku“ můžete zakázat úpravou typu obsahu. Chcete-li ji skrýt a/nebo „lepkavé“ možnosti, revize a další, podívejte se na modul Jammer pro 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']);
  }
}

Potřebuje pouze výše

0
Ankit Shah

Proč nevytvářet jinou oblast šablony, která se zobrazuje pouze na přední stránce, a odstranit oblast ['obsah'] na této stránce?

Prvky na formulářích lze skrýt pomocí css nebo pomocí hook_preprocess_form ()

0
Cube Inspire

K tomu používám modul „Propagovat zakázání“ .

Vytváří ovládací prvek v sekci Konfigurace -> Vytváření obsahu -> Propagovat zakázání, který poskytuje vybraný seznam všech typů obsahu. Ctrl/multi-select položky v seznamu zcela odstranit možnost propagace.

0
shuckc