4 options de redirections

This commit is contained in:
fredtempez 2019-12-01 18:07:58 +01:00
parent 8bd34f7b44
commit 78722d949a
3 changed files with 37 additions and 16 deletions

View File

@ -1393,17 +1393,9 @@ class core extends common {
} }
// Redirection // Redirection
if($output['redirect']) { if($output['redirect']) {
// Redirection Lity if (!empty($output['script']) ) {
if ($output['script'] === 'redirectdatality') {
$this->addOutput ([ $this->addOutput ([
'script' => '$(document).on("lity:close", function(event, instance) { 'script' => $output['script']
location.replace("' . helper::baseURl() . '");
});
// Open a URL in a lightbox
var lightbox = lity("'. $output['redirect'] .'");
// Bind as an event handler
$(document).on("click", "[data-lightbox]", lity);'
]); ]);
} else { } else {
http_response_code(301); http_response_code(301);

View File

@ -18,6 +18,12 @@ class redirection extends common {
'config' => self::GROUP_MODERATOR, 'config' => self::GROUP_MODERATOR,
'index' => self::GROUP_VISITOR 'index' => self::GROUP_VISITOR
]; ];
public static $openIn = [
'tab' => 'Un nouvel onglet',
'lity' => 'Une popup intégrée',
'popup' => 'Une popup',
'window' => 'La fenêtre'
];
const REDIRECTION_VERSION = '1.4'; const REDIRECTION_VERSION = '1.4';
@ -29,7 +35,7 @@ class redirection extends common {
if($this->isPost()) { if($this->isPost()) {
$this->setData(['module', $this->getUrl(0), [ $this->setData(['module', $this->getUrl(0), [
'url' => $this->getInput('redirectionConfigUrl', helper::FILTER_URL, true), 'url' => $this->getInput('redirectionConfigUrl', helper::FILTER_URL, true),
'openIn' => $this->getInput('redirectionConfigOpenIn', helper::FILTER_BOOLEAN) 'target' => $this->getInput('redirectionConfigTarget'),
]]); ]]);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
@ -66,10 +72,33 @@ class redirection extends common {
else { else {
// Incrémente le compteur de clics // Incrémente le compteur de clics
$this->setData(['module', $this->getUrl(0), 'count', helper::filter($this->getData(['module', $this->getUrl(0), 'count']) + 1, helper::FILTER_INT)]); $this->setData(['module', $this->getUrl(0), 'count', helper::filter($this->getData(['module', $this->getUrl(0), 'count']) + 1, helper::FILTER_INT)]);
switch ($this->getData(['module', $this->getUrl(0), 'target'])) {
case 'tab':
$script = ' window.history.back();
window.open("' . $this->getData(['module',$this->getUrl(0), 'url']) . '", "_blank");';
break;
case 'lity':
$script = '$(document).on("lity:close", function(event, instance) {
location.replace("' . helper::baseURl() . '");
});
// Open a URL in a lightbox
var lightbox = lity("'. $this->getData(['module',$this->getUrl(0), 'url']) .'");
// Bind as an event handler
$(document).on("click", "[data-lightbox]", lity);';
break;
case "popup":
$script = ' window.history.back();
window.open("' . $this->getData(['module',$this->getUrl(0), 'url']) . '", "_blank", "toolbar=0,location=0,menubar=0");';
break;
case 'window':
$script = '';
}
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => $this->getData(['module', $this->getUrl(0), 'url']), 'redirect' => $this->getData(['module', $this->getUrl(0), 'url']),
'script' => $this->getData(['module', $this->getUrl(0), 'openIn']) ? 'redirectdatality' : '', 'script' => $script,
'state' => true 'state' => true
]); ]);
} }

View File

@ -21,10 +21,10 @@
'placeholder' => 'http://', 'placeholder' => 'http://',
'value' => $this->getData(['module', $this->getUrl(0), 'url']) 'value' => $this->getData(['module', $this->getUrl(0), 'url'])
]); ?> ]); ?>
<?php echo template::checkbox('redirectionConfigOpenIn', true , 'Ouvrir dans une popup intégrée', [ <?php echo template::select('redirectionConfigTarget', $module::$openIn,[
'checked' => $this->getData(['module', $this->getUrl(0), 'openIn']) 'label' => 'Ouvrir dans',
]); 'selected' => $this->getData(['module', $this->getUrl(0), 'target'])
?> ]); ?>
</div> </div>
</div> </div>
<div class="col6"> <div class="col6">