Mercurial > SimpleWebPresenter
changeset 100:0a33803ee026
Setting variant correctly.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Sat, 27 Sep 2014 10:54:58 +0200 |
| parents | d98e315308cd |
| children | 408ffecc9076 41c128ba0c2c |
| files | InputParser.inc Page.inc |
| diffstat | 2 files changed, 18 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/InputParser.inc Sun Sep 14 21:11:27 2014 +0200 +++ b/InputParser.inc Sat Sep 27 10:54:58 2014 +0200 @@ -39,6 +39,8 @@ $this->options->setLang($_GET['lang']); } else { + if (count($this->options->getAcceptedLanguages()) > 1) + $this->addVariant('Accept-Language'); $this->options->setLang($this->options->getDefaultLang()); }
--- a/Page.inc Sun Sep 14 21:11:27 2014 +0200 +++ b/Page.inc Sat Sep 27 10:54:58 2014 +0200 @@ -57,6 +57,17 @@ abstract class Page { private $cache; + private $variants = array(); + + function addVariant($value) + { + array_push($this->variants, $value); + } + + function getVariants() + { + return $this->variants; + } /** * Constructs a page @@ -99,6 +110,8 @@ */ function mayCompress() { + //We want to add the variant even if we don't serve with compression. + $this->addVariant('Accept-Encoding'); if (!array_key_exists('HTTP_ACCEPT_ENCODING', $_SERVER)) return false; return (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')); @@ -189,6 +202,9 @@ elseif (get_class($res) !== "PageContent") { throw new InvalidArgumentException("generateContent returned an unexpected type"); } + if ($variants = $this->getVariants()) { + $res->setHeader('Vary', join(",", $variants)); + } return $res; }
