Dans le admin/settings/performance
page, je (l'administrateur) ne peux pas activer ou désactiver le cache de blocs. Pourquoi?
Comme indiqué dans cette page pour ce paramètre:
Notez que la mise en cache des blocs est inactive lorsque les modules définissant les restrictions d'accès au contenu sont activés.
S'il existe des modules implémentant hook_node_grants()
, le champ de formulaire "Cache cache" est désactivé.
C'est le code présent dans system_performance_settings () , qui est le générateur de formulaire pour le formulaire "Performance":
$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.'),
);
Comme alternative, il pourrait y avoir un module qui désactive le champ du formulaire pour éviter que l'option ne puisse être sélectionnée; Je ne connais aucun module qui fasse cela, même si je ne peux pas exclure qu'il y ait un module qui le fait efficacement.
Je sais que vous avez demandé "pourquoi?" pas "puis-je contourner ce problème" ... mais vous pouvez contourner ce problème sans supprimer les modules qui utilisent hook_node_grants()
. Essayez le module Block Cache Alter . Il permet, entre autres, la possibilité d'utiliser la mise en cache des blocs même si les modules implémentent hook_node_grants()
.