<?php
defined('_JEXEC') or die;

function regularlabs_php_a2908a84e8979c2d3a31b9e7047bf26b($rl_variables, $article, $module){
$app = $mainframe = RegularLabs\Library\Php::getApplication();
$document = $doc = RegularLabs\Library\Php::getDocument();
$database = $db = Joomla\CMS\Factory::getDbo();
$user = $app->getIdentity() ?: Joomla\CMS\Factory::getUser();
$Itemid = $app->getInput()->getInt('Itemid');
if (is_array($rl_variables)) {foreach ($rl_variables as $rl_key => $rl_value) {${$rl_key} = $rl_value;}}
defined('_JEXEC') or die;

// Récupérer les paramètres URL
$token = JFactory::getApplication()->input->getString('token', '');
$submissionId = JFactory::getApplication()->input->getInt('submissionId', 0);

// Débogage : Afficher les paramètres reçus
JFactory::getApplication()->enqueueMessage('Token reçu : ' . $token, 'notice');
JFactory::getApplication()->enqueueMessage('ID de soumission reçu : ' . $submissionId, 'notice');

// Vérifier en base de données
$db = JFactory::getDbo();
$query = $db->getQuery(true)
    ->select('s.SubmissionId, x.FieldValue AS token, v.FieldValue AS inscription, s.DateSubmitted')
    ->from($db->qn('#__rsform_submissions', 's'))
    ->join('LEFT', $db->qn('#__rsform_submission_extras', 'x') . ' ON s.SubmissionId = x.SubmissionId')
    ->join('LEFT', $db->qn('#__rsform_submission_values', 'v') . ' ON s.SubmissionId = v.SubmissionId')
    ->where('s.SubmissionId = ' . (int)$submissionId)
    ->where('x.FieldName = ' . $db->q('token'))
    ->where('v.FieldName = ' . $db->q('inscription'));

// Débogage : Afficher la requête SQL
JFactory::getApplication()->enqueueMessage('Requête SQL : ' . (string)$query, 'notice');

$result = $db->setQuery($query)->loadObject();

// Débogage : Afficher le résultat de la requête
JFactory::getApplication()->enqueueMessage('Résultat de la requête : ' . print_r($result, true), 'notice');

// Vérifications
if ($result) {
    JFactory::getApplication()->enqueueMessage('Token stocké : ' . $result->token, 'notice');
    JFactory::getApplication()->enqueueMessage('Longueur du token reçu : ' . strlen($token), 'notice');
    JFactory::getApplication()->enqueueMessage('Longueur du token stocké : ' . strlen($result->token), 'notice');
    JFactory::getApplication()->enqueueMessage('Abonnement : ' . $result->inscription, 'notice');

    if (hash_equals($result->token, $token)) {
        $abonnement_valide = in_array($result->inscription, ['25€/mois', '35€/mois', '45€/mois']);
        $date_expiration = strtotime($result->DateSubmitted) + (7 * 86400); // 7 jours
        JFactory::getApplication()->enqueueMessage('Date d\'expiration : ' . date('Y-m-d H:i:s', $date_expiration), 'notice');
        
        if ($abonnement_valide && time() < $date_expiration) {
            // Afficher le formulaire RSForm en édition
            echo RSFormProHelper::displayForm(FORM_ID, true, false, 'submissionId='.$submissionId);
        } else {
            echo 'Lien expiré ou abonnement invalide';
        }
    } else {
        echo 'Accès refusé : Tokens ne correspondent pas';
    }
} else {
    echo 'Accès refusé : Aucun résultat trouvé';
};  ;;
return get_defined_vars();
;}