00001 <?php
00002
00003
00004
00005
00006
00007
00008 class ETagRenderDecorator extends RenderDecoratorBase {
00009
00010
00011
00012
00013
00014
00015
00016
00017 public function render_page($page_data, $content_render_decorator, $policy = IView::NONE) {
00018 $ret = parent::render_page($page_data, $content_render_decorator, $policy);
00019 if ($ret && !Common::is_header_sent('etag')) {
00020 $etag = md5($ret);
00021 Common::check_if_none_match($etag);
00022 Common::header('etag', $etag);
00023
00024 Common::header('Pragma', '', true);
00025 Common::header('Cache-Control', 'private, no-cache, must-revalidate', true);
00026 }
00027 return $ret;
00028 }
00029 }