web-gelistirme-sc.com

Blok önbelleğini neden devre dışı bırakamıyorum veya etkinleştiremiyorum?

İçinde admin/settings/performance sayfasında, I (yönetici) blok önbelleğini etkinleştiremez veya devre dışı bırakamaz. Neden?

7
enjoylife

Bu ayar için o sayfada bildirildiği gibi:

İçerik erişimi kısıtlamalarını tanımlayan modüller etkinleştirildiğinde blok önbelleğe almanın etkin olmadığını unutmayın.

hook_node_grants() uygulayan modüller varsa, "Önbelleği engelle" form alanı devre dışı bırakılır.

Bu, "Performans" formu için form oluşturucu olan system_performance_settings () içinde bulunan koddur:

$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.'),
);

Alternatif olarak, seçeneğin seçilmesini önlemek için form alanını devre dışı bırakan bir modül olabilir; Bunu etkin bir şekilde yapan bir modül olsa bile, bunu yapan herhangi bir modül bilmiyorum.

6
kiamlaluno

Biliyorum "neden?" değil "bu sorunun üstesinden gelebilir miyim" ... ancak hook_node_grants() kullanan modülleri kaldırmadan bu sorunu çözebilirsiniz. Önbellek Değiştirme modülünü engelle öğesini deneyin. Diğer şeylerin yanı sıra, modüller hook_node_grants() uygulasa bile blok önbelleğe alma özelliğini kullanma olanağı sağlar.

7
Chaulky