# HG changeset patch # User Tom Fredrik "BFG" Klaussen # Date 1411808098 -7200 # Node ID 0a33803ee0267510b0ad02e44985020257b51465 # Parent d98e315308cd84e30ae42f11baab9dfc783db10a Setting variant correctly. diff -r d98e315308cd -r 0a33803ee026 InputParser.inc --- 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()); } diff -r d98e315308cd -r 0a33803ee026 Page.inc --- 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; }