Skip to content
Extraits de code Groupes Projets
Valider a52b7f92 rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

Merge pull request #8666 from Zeichen32/OptOutManagerQueryParameters

Allow plugins to add query parameters to optout form
parents 583efa8c bab16639
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -34,6 +34,9 @@ class OptOutManager ...@@ -34,6 +34,9 @@ class OptOutManager
/** @var View|null */ /** @var View|null */
private $view; private $view;
/** @var array */
private $queryParameters = array();
/** /**
* @param DoNotTrackHeaderChecker $doNotTrackHeaderChecker * @param DoNotTrackHeaderChecker $doNotTrackHeaderChecker
*/ */
...@@ -110,6 +113,50 @@ class OptOutManager ...@@ -110,6 +113,50 @@ class OptOutManager
$this->title = $title; $this->title = $title;
} }
/**
* @param string $key
* @param string $value
* @param bool $override
*
* @return bool
*/
public function addQueryParameter($key, $value, $override = true)
{
if (!isset($this->queryParameters[$key]) || true === $override) {
$this->queryParameters[$key] = $value;
return true;
}
return false;
}
/**
* @param array $items
* @param bool|true $override
*/
public function addQueryParameters(array $items, $override = true)
{
foreach ($items as $key => $value) {
$this->addQueryParameter($key, $value, $override);
}
}
/**
* @param $key
*/
public function removeQueryParameter($key)
{
unset($this->queryParameters[$key]);
}
/**
* @return array
*/
public function getQueryParameters()
{
return $this->queryParameters;
}
/** /**
* @return View * @return View
* @throws \Exception * @throws \Exception
...@@ -145,6 +192,13 @@ class OptOutManager ...@@ -145,6 +192,13 @@ class OptOutManager
? $language ? $language
: LanguagesManager::getLanguageCodeForCurrentUser(); : LanguagesManager::getLanguageCodeForCurrentUser();
$this->addQueryParameters(array(
'module' => 'CoreAdminHome',
'action' => 'optOut',
'language' => $lang,
'setCookieInNewWindow' => 1
), false);
$this->view = new View("@CoreAdminHome/optOut"); $this->view = new View("@CoreAdminHome/optOut");
$this->view->setXFrameOptions('allow'); $this->view->setXFrameOptions('allow');
$this->view->dntFound = $dntFound; $this->view->dntFound = $dntFound;
...@@ -156,6 +210,7 @@ class OptOutManager ...@@ -156,6 +210,7 @@ class OptOutManager
$this->view->javascripts = $this->getJavascripts(); $this->view->javascripts = $this->getJavascripts();
$this->view->stylesheets = $this->getStylesheets(); $this->view->stylesheets = $this->getStylesheets();
$this->view->title = $this->getTitle(); $this->view->title = $this->getTitle();
$this->view->queryParameters = $this->getQueryParameters();
return $this->view; return $this->view;
} }
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
<br/><br/> <br/><br/>
{% if not showConfirmOnly %} {% if not showConfirmOnly %}
<form method="post" action="?module=CoreAdminHome&amp;action=optOut{% if language %}&amp;language={{ language }}{% endif %}&amp;setCookieInNewWindow=1" target="_blank"> <form method="post" action="?{{ queryParameters|url_encode|raw }}" target="_blank">
<input type="hidden" name="nonce" value="{{ nonce }}" /> <input type="hidden" name="nonce" value="{{ nonce }}" />
<input type="hidden" name="fuzz" value="{{ "now"|date }}" /> <input type="hidden" name="fuzz" value="{{ "now"|date }}" />
<input onclick="submitForm(event, this.form);" type="checkbox" id="trackVisits" name="trackVisits" {% if trackVisits %}checked="checked"{% endif %} /> <input onclick="submitForm(event, this.form);" type="checkbox" id="trackVisits" name="trackVisits" {% if trackVisits %}checked="checked"{% endif %} />
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter