Warum kann ich den Blockcache nicht deaktivieren oder aktivieren?

7

Auf der admin/settings/performanceSeite kann ich (der Administrator) den Blockcache nicht aktivieren oder deaktivieren. Warum?

genieße das Leben
quelle

Antworten:

6

Wie auf dieser Seite für diese Einstellung angegeben:

Beachten Sie, dass das Block-Caching inaktiv ist, wenn Module aktiviert sind, die Inhaltszugriffsbeschränkungen definieren.

Wenn Module implementiert sind hook_node_grants(), ist das Formularfeld "Cache blockieren" deaktiviert.

Dies ist der Code in system_performance_settings () , dem Formularersteller für das Formular "Leistung":

$form['block_cache']['block_cache'] = array(
  '#type' => 'radios', 
  '#title' => t('Block cache'), 
  '#default_value' => variable_get('block_cache', CACHE_DISABLED), 
  '#options' => array(
    CACHE_DISABLED => t('Disabled'),
    CACHE_NORMAL => t('Enabled (recommended)'),
  ), 
  '#disabled' => count(module_implements('node_grants')), 
  '#description' => t('Note that block caching is inactive when modules defining content access restrictions are enabled.'),
);

Alternativ könnte es ein Modul geben, das das Formularfeld deaktiviert, um zu vermeiden, dass die Option ausgewählt werden kann. Ich kenne kein Modul, das das macht, auch wenn ich nicht ausschließen kann, dass es ein Modul gibt, das das effektiv macht.

kiamlaluno
quelle
7

Ich weiß, dass Sie gefragt haben "warum?" nicht "kann ich dieses Problem umgehen" ... aber Sie können dieses Problem umgehen, ohne die verwendeten Module zu entfernen hook_node_grants(). Probieren Sie das Modul Block Cache Alter aus . Es ermöglicht unter anderem die Verwendung von Block-Caching, selbst wenn Module implementiert werden hook_node_grants().

Chaulky
quelle
Anstatt dieses Modul $conf['block_cache_bypass_node_grants'] = TRUE;zu verwenden, sollte zuerst das Hinzufügen zu settings.php untersucht werden, wenn Sie wissen, was Sie mit Ihren Blöcken tun.
Niall Murphy