Sorties Rando Pour Tous
📚Comprendre les termes et définitions utilisés dans le programme 💡
Ces randonnées et promenades sont ouvertes à tous les adhérents, et particulièrement sélectionnées pour accueillir des personnes malvoyantes ou non voyantes.
Le co-voiturage est possible à partir de la place Jean-Jaures (PJR) à Ramonville-Saint-Agne, 0.25€ par km et par voiture.
Un équipement de randonneur est nécessaire (Chaussures et sac avec de l'eau).
Ne pas oublier les chaussures de rechange. $fileName,
),
Log::ALL,
array($loggerName)
);
// Ajouter le message
switch ( $level ) {
case 'EMERGENCY': $level = Log::EMERGENCY; break;
case 'ALERT': $level = Log::ALERT; break;
case 'CRITICAL': $level = Log::CRITICAL; break;
case 'ERROR': $level = Log::ERROR; break;
case 'WARNING': $level = Log::WARNING; break;
case 'NOTICE': $level = Log::NOTICE; break;
case 'INFO': $level = Log::INFO; break;
case 'DEBUG': $level = Log::DEBUG; break;
default: $level = Log::INFO;
}
$appelant = CommunHelper::appelant();
Log::add( "[" . $appelant . "]-" . $message, $level, $loggerName);
}
#===================================================
# Contrôle la fréquence d'exécution d'un module Joomla via ses params.
#===================================================
/**
* @param string $nomModule Nom du module(sa position).
* @param int $delai Durée entre deux exécutions.
* @param string $unite uniteé de temps ('seconde', 'minute', 'heure', 'jour').
*
* @return bool True si l'exécution est autorisée, False sinon.
*/
/**Exemple :
use MonSite\Helpers\CommunHelper;
$nbr=5;$delai=minute;
if ( CommunHelper::peutExecuterModule('MOD-InscriptionAnimateur-moins-x-jours', $nbr, $delai) ) {
echo " Execution autorisée, cela fait plus de $nbr $delai (maj time) ";
} else {
echo " Execution non autorisé , cela fait moins de $nbr $delai que le module s'est excuté ";
}
#Initialisation avec une heure pile exemple : 1747108800 ( Pour les nimateurs 1 fois par jour : 1747069200 12 mai à 19h GMT)
GMT: Tuesday 13 May 2025 05:00:00
Your time zone: mardi 13 mai 2025 07:00:00 GMT+02:00 DST
#site : https://www.epochconverter.com/
*/
public static function peutExecuterModule($moduleNom, $delai = 1, $unite = 'heure')
{
// Conversion du délai en secondes
$unites = [
'minute' => 60,
'heure' => 3600,
'jour' => 86400,
];
if (!isset($unites[$unite])) {
CommunHelper::ajoutLog("[CommunHelper::peutExecuterModule] Unité de temps invalide : $unite", "WARNING");
}
$delaiEnSecondes = $delai * $unites[$unite];
$db = DatabaseHelper::getDb();
// Chercher le module dans la table modules
$query = $db->getQuery(true)
->select('id, params')
->from('#__modules')
->where('position = ' . $db->quote($moduleNom))
->where('published = 1')
->setLimit(1);
$module = DatabaseHelper::selectOne($query);
if (!$module) {
CommunHelper::ajoutLog("[CommunHelper::peutExecuterModule] Erreur Position module $moduleNom introuvable", "WARNING");
}
// Décoder les params
$params = json_decode($module->params);
$derniereExecution = isset($params->derniere_execution) ? (int) $params->derniere_execution : 0;
#Heure actuelle en timestamp avec des secondes à 00
#$heureActuelle = time();
$date = new Date();
$date->setTime($date->format('H'), $date->format('i'), 0);
$heureActuelle = $date->toUnix();
#Date stocker en timesatamp, conversion avec https://www.timestamp.fr/ ex: 1747048607 ==> 12/05/2025 13:16:47
if (($heureActuelle - $derniereExecution) < $delaiEnSecondes) {
#Ce n'est pas le moment de l'executer
return false;
} else {
// Mettre à jour la dernière exécution dans les params
$params->derniere_execution = $heureActuelle;
$paramsJson = json_encode($params);
$query = $db->getQuery(true)
->update('#__modules')
->set('params = ' . $db->quote($paramsJson))
->where('id = ' . (int) $module->id);
$result = DatabaseHelper::execute($query, false);
if ($result) {
CommunHelper::ajoutLog("[CommunHelper::peutExecuterModule] Peut être executé $moduleNom : heureActuelle=$heureActuelle - derniereExecution=$derniereExecution) < delaiEnSecondes=$delaiEnSecondes", "INFO");
return true;
} else {
return false;
}
}
}
#===================================================
# Connaitre l'appelant
#===================================================
/**
* @return le chemin de l'appelant (peut-être ameliorer).
*/
/**Exemple :
use MonSite\Helpers\CommunHelper;
$appelant = CommunHelper::appelant()
*/
public static function appelant()
{
$db = DatabaseHelper::getDb();
$app = \Joomla\CMS\Factory::getApplication();
$option = $app->input->getCmd('option'); // com_content, com_users etc.
$view = $app->input->getCmd('view'); // article, category etc.
$id = $app->input->getInt('id'); // récupère l'id s'il existe
$appelant = $app->getName() . "/" . $option . "/" . $view;
// Si c'est un article, on récupère son titre
if ($option === 'com_content' && $view === 'article' && $id) {
$query = $db->getQuery(true)
->select($db->quoteName('title'))
->from($db->quoteName('#__content'))
->where($db->quoteName('id') . ' = ' . (int) $id);
$title = DatabaseHelper::selectOne($query, false);
if ($title) {
$appelant .= " / Article: " . $title;
}
}
return $appelant;
}
/**
* Redirige vers l'URL Joomla demandée
*
* @param string $url L'URL interne Joomla (ex: 'index.php?option=com_acym&ctrl=campaigns&task=campaigns')
* @param boolean $useSEF true pour convertir en SEF via JRoute
*/
public static function redirectVers($url, $useSEF = true)
{
$app = Factory::getApplication();
// Génération de l'URL via JRoute si demandé
$redirectUrl = $useSEF ? Route::_($url) : $url;
// Redirection
$app->redirect($redirectUrl);
// Important : stoppe l'exécution après redirection
$app->close();
}
public static function direBonjour($nom)
{
return "Bonjour, $nom !";
}
#===================================================
# Suis-je sur le site de prod ? (false/true)
#===================================================
public static function isProductionSite(): bool
{
$host = $_SERVER['HTTP_HOST'];
return $host === 'rando-plaisirs.fr';
}
#===================================================
# Retourne le mois en français et en majuscules à partir d'une date
#===================================================
/**
* @param string $date Date au format 'Y-m-d' ou 'Y-m-d H:i:s' (ex : '2018-07-01' ou '2018-08-31 15:31:35')
* @return string Mois en lettres capitales (ex: 'JANVIER')
*/
public static function getMoisFrancais($moisNum)
{
$intVal = (int) $moisNum;
$moisFrancais = [
1 => 'janvier',
2 => 'février',
3 => 'mars',
4 => 'avril',
5 => 'mai',
6 => 'juin',
7 => 'juillet',
8 => 'août',
9 => 'septembre',
10 => 'octobre',
11 => 'novembre',
12 => 'décembre'
];
return mb_strtoupper($moisFrancais[$intVal], 'UTF-8');
}
}
Les berges de l'Amadou par le chemin d'En Causse (ANNULEE)
