it-swarm.asia

لماذا لا يمكنني تعطيل التخزين المؤقت للكتلة أو تمكينه؟

في ال admin/settings/performance صفحة ، أنا (المسؤول) لا يمكن تمكين أو تعطيل ذاكرة التخزين المؤقت للكتلة. لماذا ا؟

7
enjoylife

كما ورد في تلك الصفحة لهذا الإعداد:

لاحظ أن التخزين المؤقت للكتلة غير نشط عند تمكين الوحدات التي تحدد قيود الوصول إلى المحتوى.

إذا كانت هناك وحدات تنفذ hook_node_grants() ، فسيتم تعطيل حقل نموذج "Block cache".

هذا هو الرمز الموجود في system_performance_settings () ، وهو أداة إنشاء النماذج لنموذج "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.'),
);

كبديل ، يمكن أن يكون هناك وحدة تعمل على تعطيل حقل النموذج لتجنب الخيار يمكن تحديده ؛ لا أعرف أي وحدة نمطية تقوم بذلك ، حتى لو لم أستطع استبعاد وجود وحدة نمطية تقوم بذلك بشكل فعال.

6
kiamlaluno

أعلم أنك سألت "لماذا؟" لا "هل يمكنني التغلب على هذه المشكلة" ... ولكن يمكنك تجاوز هذه المشكلة دون إزالة الوحدات التي تستخدم hook_node_grants(). جرب Block Cache Alter module . يسمح ، من بين أمور أخرى ، بالقدرة على استخدام التخزين المؤقت للكتلة حتى لو كانت الوحدات تنفذ hook_node_grants().

7
Chaulky