def _show_placeholder_attr_for_page(context, placeholder_name, plugin_class_name, plugin_attr, page_lookup, lang=None, site=None, cache_result=True): validate_placeholder_name(placeholder_name) request = context.get('request', False) site_id = get_site_id(site) if not request: return {'content': ''} if lang is None: lang = get_language_from_request(request) if cache_result: base_key = _get_cache_key('_show_placeholder_for_page', page_lookup, lang, site_id) cache_key = _clean_key('%s_placeholder:%s' % (base_key, placeholder_name) ) + plugin_class_name + '.' + plugin_attr cached_value = cache.get(cache_key) if isinstance(cached_value, dict): # new style _restore_sekizai(context, cached_value['sekizai']) return {'content': mark_safe(cached_value['content'])} elif isinstance(cached_value, string_types): # old style return {'content': mark_safe(cached_value)} page = _get_page_by_untyped_arg(page_lookup, request, site_id) if not page: return {'content': ''} watcher = Watcher(context) placeholder = _get_placeholder(page, page, context, placeholder_name) content = get_placholder_attr(placeholder, placeholder_name, plugin_class_name, plugin_attr) changes = watcher.get_changes() if cache_result: cache.set(cache_key, { 'content': content, 'sekizai': changes }, get_cms_setting('CACHE_DURATIONS')['content']) if content: return {'content': mark_safe(content)} return {'content': ''}
def _show_placeholder_attr_for_page( context, placeholder_name, plugin_class_name, plugin_attr, page_lookup, lang=None, site=None, cache_result=True): validate_placeholder_name(placeholder_name) request = context.get('request', False) site_id = get_site_id(site) if not request: return {'content': ''} if lang is None: lang = get_language_from_request(request) if cache_result: base_key = _get_cache_key( '_show_placeholder_for_page', page_lookup, lang, site_id) cache_key = _clean_key( '%s_placeholder:%s' % ( base_key, placeholder_name )) + plugin_class_name + '.' + plugin_attr cached_value = cache.get(cache_key) if isinstance(cached_value, dict): # new style _restore_sekizai(context, cached_value['sekizai']) return {'content': mark_safe(cached_value['content'])} elif isinstance(cached_value, string_types): # old style return {'content': mark_safe(cached_value)} page = _get_page_by_untyped_arg(page_lookup, request, site_id) if not page: return {'content': ''} watcher = Watcher(context) placeholder = _get_placeholder(page, page, context, placeholder_name) content = get_placholder_attr( placeholder, placeholder_name, plugin_class_name, plugin_attr) changes = watcher.get_changes() if cache_result: cache.set( cache_key, { 'content': content, 'sekizai': changes }, get_cms_setting('CACHE_DURATIONS')['content']) if content: return {'content': mark_safe(content)} return {'content': ''}
def _placeholder_page_cache_key(page_lookup, lang, site_id, placeholder_name): base_key = _get_cache_key('_show_placeholder_for_page', page_lookup, lang, site_id) return _clean_key('%s_placeholder:%s' % (base_key, placeholder_name))
def _placeholder_page_cache_key(page_lookup, lang, site_id, placeholder_name): base_key = _get_cache_key("_show_placeholder_for_page", page_lookup, lang, site_id) return _clean_key("%s_placeholder:%s" % (base_key, placeholder_name))