ZwiiCMS/module/redirection/redirection.php

83 lines
2.1 KiB
PHP
Raw Normal View History

2018-04-02 08:29:19 +02:00
<?php
/**
2021-02-17 13:51:12 +01:00
* This file is part of Zwii.
2018-04-02 08:29:19 +02:00
* For full copyright and license information, please see the LICENSE
* file that was distributed with this source code.
*
* @author Rémi Jean <remi.jean@outlook.com>
* @copyright Copyright (C) 2008-2018, Rémi Jean
2021-02-17 13:49:58 +01:00
* @author Frédéric Tempez <frederic.tempez@outlook.com>
2024-01-14 19:31:28 +01:00
* @copyright Copyright (C) 2018-2024, Frédéric Tempez
* @license CC Attribution-NonCommercial-NoDerivatives 4.0 International
* @link http://zwiicms.fr/
2018-04-02 08:29:19 +02:00
*/
class redirection extends common
{
2018-04-02 08:29:19 +02:00
2024-04-23 17:42:00 +02:00
const VERSION = '2.2';
const REALNAME = 'Redirection';
2021-04-06 11:20:04 +02:00
const DATADIRECTORY = ''; // Contenu localisé inclus par défaut (page.json et module.json)
2018-04-02 08:29:19 +02:00
public static $actions = [
2023-07-05 18:04:42 +02:00
'config' => self::GROUP_EDITOR,
2018-04-02 08:29:19 +02:00
'index' => self::GROUP_VISITOR
];
2019-02-14 15:17:03 +01:00
2018-04-02 08:29:19 +02:00
/**
* Configuration
*/
public function config()
{
2018-04-02 08:29:19 +02:00
// Soumission du formulaire
if (
2023-06-30 09:09:39 +02:00
$this->getUser('permission', __CLASS__, __FUNCTION__) === true &&
$this->isPost()
) {
$this->setData(['module', $this->getUrl(0), 'url', $this->getInput('redirectionConfigUrl', helper::FILTER_URL, true)]);
2018-04-02 08:29:19 +02:00
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(),
2023-01-24 11:53:24 +01:00
'notification' => helper::translate('Modifications enregistrées'),
2018-04-02 08:29:19 +02:00
'state' => true
]);
}
// Valeurs en sortie
$this->addOutput([
2023-01-24 11:53:24 +01:00
'title' => helper::translate('Configuration du module'),
2018-04-02 08:29:19 +02:00
'view' => 'config'
]);
}
/**
* Accueil
*/
public function index()
{
2018-04-02 08:29:19 +02:00
// Message si l'utilisateur peut éditer la page
if (
2024-09-06 17:32:29 +02:00
$this->isConnected() === true
2023-07-05 18:04:42 +02:00
&& $this->getUser('group') >= self::GROUP_EDITOR
&& $this->getUrl(1) !== 'force'
2018-04-02 08:29:19 +02:00
) {
// Valeurs en sortie
$this->addOutput([
'display' => self::DISPLAY_LAYOUT_BLANK,
'title' => '',
'view' => 'index'
]);
}
// Sinon redirection
else {
// 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)]);
// Valeurs en sortie
$this->addOutput([
'redirect' => $this->getData(['module', $this->getUrl(0), 'url']),
'state' => true
]);
}
}
}