DTux
/
dtux__avion-poeme
Archived
1
0
Fork 0
This repository has been archived on 2023-11-30. You can view files and clone it, but cannot push or open issues or pull requests.
dtux__avion-poeme/include/fonctions.inc.php

144 lines
3.6 KiB
PHP

<?php
require_once 'log.php';
if ( !isset($site) )
{
require_once( "config.inc.php" );
header( 'Location: ' . $accueil );
}
// $var clef à rechercher dans $_POST, $_GET, et $_SESSION (si $session=true)
// $default valeur retournée si aucune valeur n'est trouvée
// $session: si true, rechercher aussi dans $_SESSION
function getpost( $var )
{
//echo '$var =>' . $var . "<br />";
if ( isset($_GET[$var]) )
{
//echo '$_get -> $var =>' . $var . "<br />";
return $_GET[$var];
}
elseif ( isset($_POST[$var]) )
{
//echo '$_POST -> $var =>' . $var . "<br />";
return $_POST[$var];
}else
{
return;
}
}
// MET LA PREMIÈRE LETTRE D'UN MOT EN MAJUSCULE ( utf8 compliant )
function mb_ucfirst($str)
{
$char = mb_substr($str,0,1,"UTF8");
$str = mb_substr( $str, 1, NULL, "UTF8");
$char = mb_strtoupper( $char, "UTF8");
return $char . $str;
}
function getLang( $lang, $gestion=false )
{
$dico = array();
if ( empty($lang) )
{
$lang="en";
}
$langPath ='lang/'.$lang;
if ($gestion)
$langPath = "../" . $langPath;
if (($fh = fopen($langPath, 'r') ))
{
$str = fgets($fh);
fclose($fh);
$dico = json_decode($str, true);
return $dico;
}else
{
return false;
}
}
function formatteDate($locale, $date, $tz)
{
$formatter = new IntlDateFormatter($locale, IntlDateFormatter::FULL, IntlDateFormatter::FULL, $tz, IntlDateFormatter::GREGORIAN );
if ($formatter == null)
{
log_write(__FILE__ . EOLH . __LINE__ . EOLH . "Formatter error : locale = " . $locale . "tz = " . $tz . "Formatter = " . print_r($formatter, true) . InvalidConfigException(intl_get_error_message()),ERROR);
}
return $formatter->format($date);
}
/* Remplace les variables dans les textes
*/
function replaceVariables($db, $text, $dico) :array
{
$variables = array( 'expediteur' => 'expeMail', 'destinataire' => 'destMail', 'date_depart' => 'startTimeRFC822', 'date_arrivee' => 'deliveryTimeRFC822', 'new_date_arrivee' => 'datePeripetie', 'message' => 'message', 'onglet_apropos' => 'onglet_apropos', 'NB_avion_poeme' => 'avionJournalier', "url_avion" => "urlAvion");
$posVar = 0 ;
$x =0;
$result = array();
// si contient la variable '$message' alors le text est en html
if (strpos($text, '$message') === false)
{
$html = false;
}else
{
$html = true;
}
while( 1 )
{
// Recherche les variables dans le texte
if ($x++ >10 ) break; // empêche une boucle sans fin, il n'y a pas plus de 10 variables par texte
$posVar = strpos( $text, "$", $posVar);
if ($posVar !== false)
{
// une variable a été trouvée
$posEsp = strpos( $text, " ", $posVar);
if ($posEsp === false)
{
$var = substr($text, $posVar+1, strlen($text)-$posVar);
}else
{
if ($posEsp == $posVar+1)
{
$var = "";
}else
{
$var = substr($text, $posVar+1, $posEsp-$posVar-1);
}
}
$posVar = $posEsp+1;
if ($var != "")
{
$var = trim($var, " .\n\r)");
$varReplace = "$" . $var;
if ( isset ($variables[$var]) )
{
$dbVar = $variables[$var];
$varText = $db->$dbVar;
//$text = str_replace($varReplace, $db->$dbVar, $text);
}elseif ( isset ($dico[$var]) )
{
$varText = $dico[$var];
//$text = str_replace($varReplace, $dico[$var], $text);
}else
{
log_error( "La variable => " . $var . "n'est pas reconnue<br />" . __file__ . ' ligne ' . __line__ . "\n" , true, false);
}
if ($html and (strpos($var, "url") !== false))
{
$varText = '<a href="' . $varText .'">' . $varText . "</a>";
}
$text = str_replace($varReplace, $varText, $text); //remplace la variable dans le texte
}
}else {
break;
}
}
$result['html'] = $html;
$result['text'] = $text;
return $result;
}