示例#1
0
 /**
  * Unsets the cached data for cacheable widgets
  *
  * @param string $hook_name    name of the hook
  * @param string $entity_type  type of the hook
  * @param bool   $return_value current return value
  * @param array  $params       hook parameters
  *
  * @return bool
  */
 public static function clearWidgetCacheOnSettingsSave($hook_name, $entity_type, $return_value, $params)
 {
     $widget = elgg_extract('widget', $params);
     if (!elgg_instanceof($widget, 'object', 'widget')) {
         return;
     }
     if (widget_manager_is_cacheable_widget($widget)) {
         $widget->widget_manager_cached_data = null;
     }
 }
示例#2
0
文件: content.php 项目: n8b/VMN
<?php

$widget = elgg_extract('entity', $vars);
$handler = $widget->handler;
$cacheable = widget_manager_is_cacheable_widget($widget);
if ($cacheable) {
    $cached_data = $widget->widget_manager_cached_data;
    if (!empty($cached_data)) {
        echo $cached_data;
        return;
    }
}
if (elgg_view_exists("widgets/{$handler}/content")) {
    $content = elgg_view("widgets/{$handler}/content", $vars);
} else {
    elgg_deprecated_notice("widgets use content as the display view", 1.8);
    $content = elgg_view("widgets/{$handler}/view", $vars);
}
$custom_more_title = $widget->widget_manager_custom_more_title;
$custom_more_url = $widget->widget_manager_custom_more_url;
if ($custom_more_title && $custom_more_url) {
    $custom_more_link = elgg_view("output/url", array("text" => $custom_more_title, "href" => $custom_more_url));
    $content .= "<span class='elgg-widget-more'>" . $custom_more_link . "</span>";
}
echo $content;
if ($cacheable) {
    // store for future use
    $widget->widget_manager_cached_data = $content;
}