|
|
@ -25,9 +25,10 @@ require (JIRAFEAU_ROOT . 'lib/functions.php'); |
|
|
|
require (JIRAFEAU_ROOT . 'lib/lang.php'); |
|
|
|
|
|
|
|
define ('VAR_TOKENS', $cfg ['var_root'].'tokens/'); |
|
|
|
define ('VAR_MODE', $cfg ['var_root'].'mode/'); |
|
|
|
define ('VAR_TRACKS', $cfg ['var_root'].'tracks/'); |
|
|
|
define ('VAR_LANG', $cfg ['var_root'].'lang/'); |
|
|
|
define ('VAR_PERIOD', $cfg ['var_root'].'period/'); |
|
|
|
define ('VAR_LANG', $cfg ['var_root'].'lang/'); |
|
|
|
define ('VAR_FAKE', $cfg ['var_root'].'fake/'); |
|
|
|
define ('VAR_ADMIN', $cfg ['var_root'].'admin/'); |
|
|
|
|
|
|
@ -39,6 +40,7 @@ define ('MAX_VALID_UPLOAD_TIME', 60); |
|
|
|
define ('TOKEN_USE_LIMIT', "-2 hours"); |
|
|
|
define ('TOKEN_LOGIN_LIMIT', "-15 minutes"); |
|
|
|
define ('TOKEN_LOGOUT_LIMIT', "-8 hours"); |
|
|
|
define ('DEFAULT_MODE', "footer"); |
|
|
|
define ('DEFAULT_PERIOD', "month"); |
|
|
|
define ('DEFAULT_LANG', "fr"); |
|
|
|
|
|
|
@ -75,13 +77,14 @@ define ('M_WELCOME', "<p>Informations concernant le compte : <b>___SENDER___</b> |
|
|
|
define ('M_INCONSISTENT_DATES', |
|
|
|
" (dates incohéantes avec ___FILENAME___ : ___DIRTIME___ != ___FILETIME___)"); |
|
|
|
|
|
|
|
define ('A_ACTION', 'a'); // action : T_LOGIN, T_LOGOUT, A_RECORD+(on|off), A_LANG(fr|en|br), A_PERIOD(minute|hour|day|week|month|quarter) |
|
|
|
define ('A_ACTION', 'a'); // action : T_LOGIN, T_LOGOUT, A_MODE(footer|attachment|both), A_RECORD+(on|off), A_PERIOD(minute|hour|day|week|month|quarter), A_LANG(fr|en|br) |
|
|
|
define ('A_GET', 'g'); // get archive |
|
|
|
define ('A_HASH', 'h'); // file to update or delete |
|
|
|
define ('A_OPEN_TOKEN', 'o'); // ask token |
|
|
|
define ('A_SENDER', 's'); // session sender |
|
|
|
define ('A_TOKEN', 't'); // session token |
|
|
|
define ('A_UPDATE', 'u'); // update perriod for file or archive |
|
|
|
define ('A_MODE', 'm'); // get mode status |
|
|
|
define ('A_RECORD', 'r'); // get track status |
|
|
|
define ('A_PERIOD', 'p'); // get period status |
|
|
|
define ('A_LANG', 'l'); // get lang status |
|
|
@ -111,7 +114,8 @@ define ('T_ARCHIVE_TITLE', "archive_content"); |
|
|
|
define ('T_ARCHIVE_MIME', "text/kaz_email_archive"); |
|
|
|
|
|
|
|
|
|
|
|
$langText = ['fr' => "Francais", 'br' => "Breton", 'en' => "english"]; |
|
|
|
$modeText = ['footer' => "pied de page", 'attachment' => "pièce jointe", 'both' => "les deux"]; |
|
|
|
$trackText = ['on' => "oui", 'off' => "non"]; |
|
|
|
$periodText = ['minute' => "minute", 'hour' => "heure", 'day' => "jour", 'week' => "semaine", 'month' => "mois"]; |
|
|
|
// XXX , 'quarter' => "trimestre"]; |
|
|
|
$periodButton = ['hour' => ["🕕", ">1 heure"], |
|
|
@ -119,7 +123,7 @@ $periodButton = ['hour' => ["🕕", ">1 heure"], |
|
|
|
'week' => ["🕝", "> 1 semaine"], |
|
|
|
'month' => ["🕞", "> 1 mois"]]; |
|
|
|
// XXX 'quarter' => ["🕟", "> 1 trimestre"]]; |
|
|
|
$trackText = ['on' => "oui", 'off' => "non"]; |
|
|
|
$langText = ['fr' => "Francais", 'br' => "Breton", 'en' => "english"]; |
|
|
|
$doLogout = ''; |
|
|
|
$message = ''; |
|
|
|
|
|
|
@ -130,6 +134,19 @@ $message = ''; |
|
|
|
/* Remove errors. */ |
|
|
|
@error_reporting (0); |
|
|
|
|
|
|
|
// ======================================== |
|
|
|
if (isset ($_REQUEST [A_MODE]) && !empty ($_REQUEST [A_MODE])) { |
|
|
|
if (!preg_match ("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/i", $_REQUEST [A_MODE])) |
|
|
|
$content = DEFAULT_MODE.NL; |
|
|
|
else |
|
|
|
$content = getSenderMode ($_REQUEST [A_MODE]).NL; |
|
|
|
header ('HTTP/1.0 200 OK'); |
|
|
|
header ('Content-Length: ' . strlen ($content)); |
|
|
|
header ('Content-Type: text/plain'); |
|
|
|
echo $content; |
|
|
|
exit; |
|
|
|
} |
|
|
|
|
|
|
|
// ======================================== |
|
|
|
if (isset ($_REQUEST [A_RECORD]) && !empty ($_REQUEST [A_RECORD])) { |
|
|
|
if (!preg_match ("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/i", $_REQUEST [A_RECORD])) |
|
|
@ -194,44 +211,44 @@ function returnError ($msg) { |
|
|
|
} |
|
|
|
|
|
|
|
// ======================================== |
|
|
|
function setSenderTrack ($sender) { |
|
|
|
function setSenderMode ($sender, $mode) { |
|
|
|
if (!$sender) |
|
|
|
return; |
|
|
|
if (!file_exists (VAR_TRACKS)) |
|
|
|
mkdir (VAR_TRACKS, 0755); |
|
|
|
touch (VAR_TRACKS.$sender); |
|
|
|
if (!file_exists (VAR_MODE)) |
|
|
|
mkdir (VAR_MODE, 0755); |
|
|
|
if (empty ($mode) || DEFAULT_MODE == $mode) { |
|
|
|
rmSenderMode ($sender); |
|
|
|
} else |
|
|
|
file_put_contents (VAR_MODE.$sender, $mode.NL); |
|
|
|
} |
|
|
|
function rmSenderTrack ($sender) { |
|
|
|
function rmSenderMode ($sender) { |
|
|
|
if (!$sender) |
|
|
|
return; |
|
|
|
if (file_exists (VAR_TRACKS.$sender)) |
|
|
|
unlink (VAR_TRACKS.$sender); |
|
|
|
if (file_exists (VAR_MODE.$sender)) |
|
|
|
unlink (VAR_MODE.$sender); |
|
|
|
} |
|
|
|
function isSenderTrack ($sender) { |
|
|
|
return $sender && file_exists (VAR_TRACKS.$sender); |
|
|
|
function getSenderMode ($sender) { |
|
|
|
if ($sender && file_exists (VAR_MODE.$sender)) |
|
|
|
return trim (file (VAR_MODE.$sender)[0]); |
|
|
|
return DEFAULT_MODE; |
|
|
|
} |
|
|
|
|
|
|
|
// ======================================== |
|
|
|
function setSenderLang ($sender, $lang) { |
|
|
|
function setSenderTrack ($sender) { |
|
|
|
if (!$sender) |
|
|
|
return; |
|
|
|
if (!file_exists (VAR_LANG)) |
|
|
|
mkdir (VAR_LANG, 0755); |
|
|
|
if (empty ($lang) || DEFAULT_LANG == $lang) { |
|
|
|
rmSenderLang ($sender); |
|
|
|
} else |
|
|
|
file_put_contents (VAR_LANG.$sender, $lang.NL); |
|
|
|
if (!file_exists (VAR_TRACKS)) |
|
|
|
mkdir (VAR_TRACKS, 0755); |
|
|
|
touch (VAR_TRACKS.$sender); |
|
|
|
} |
|
|
|
function rmSenderLang ($sender) { |
|
|
|
function rmSenderTrack ($sender) { |
|
|
|
if (!$sender) |
|
|
|
return; |
|
|
|
if (file_exists (VAR_LANG.$sender)) |
|
|
|
unlink (VAR_LANG.$sender); |
|
|
|
if (file_exists (VAR_TRACKS.$sender)) |
|
|
|
unlink (VAR_TRACKS.$sender); |
|
|
|
} |
|
|
|
function getSenderLang ($sender) { |
|
|
|
if ($sender && file_exists (VAR_LANG.$sender)) |
|
|
|
return trim (file (VAR_LANG.$sender)[0]); |
|
|
|
return DEFAULT_LANG; |
|
|
|
function isSenderTrack ($sender) { |
|
|
|
return $sender && file_exists (VAR_TRACKS.$sender); |
|
|
|
} |
|
|
|
|
|
|
|
// ======================================== |
|
|
@ -286,6 +303,29 @@ function period2seconds ($periodName) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// ======================================== |
|
|
|
function setSenderLang ($sender, $lang) { |
|
|
|
if (!$sender) |
|
|
|
return; |
|
|
|
if (!file_exists (VAR_LANG)) |
|
|
|
mkdir (VAR_LANG, 0755); |
|
|
|
if (empty ($lang) || DEFAULT_LANG == $lang) { |
|
|
|
rmSenderLang ($sender); |
|
|
|
} else |
|
|
|
file_put_contents (VAR_LANG.$sender, $lang.NL); |
|
|
|
} |
|
|
|
function rmSenderLang ($sender) { |
|
|
|
if (!$sender) |
|
|
|
return; |
|
|
|
if (file_exists (VAR_LANG.$sender)) |
|
|
|
unlink (VAR_LANG.$sender); |
|
|
|
} |
|
|
|
function getSenderLang ($sender) { |
|
|
|
if ($sender && file_exists (VAR_LANG.$sender)) |
|
|
|
return trim (file (VAR_LANG.$sender)[0]); |
|
|
|
return DEFAULT_LANG; |
|
|
|
} |
|
|
|
|
|
|
|
// ======================================== |
|
|
|
function setSenderFake ($error, $sender, $owner, $dirLink, $fileLink) { |
|
|
|
global $doLogout; |
|
|
@ -976,6 +1016,10 @@ if ($doLogout || (isset ($_REQUEST [A_ACTION]) && $_REQUEST [A_ACTION] == T_LOGO |
|
|
|
if (isset ($_REQUEST [A_ACTION])) { |
|
|
|
// change track |
|
|
|
switch (true) { |
|
|
|
case preg_match ("/^".A_MODE."(".implode ("|", array_keys ($modeText)).")$/i", $_REQUEST [A_ACTION], $matches): |
|
|
|
setSenderMode ($sender, $matches [1]); |
|
|
|
$message .= "Votre mode à été mise à jour."; |
|
|
|
break; |
|
|
|
case preg_match ("/^".A_RECORD."(on|off)$/i", $_REQUEST [A_ACTION], $matches): |
|
|
|
if ($matches [1] == "on") |
|
|
|
setSenderTrack ($sender); |
|
|
@ -983,14 +1027,14 @@ if (isset ($_REQUEST [A_ACTION])) { |
|
|
|
rmSenderTrack ($sender); |
|
|
|
$message .= "Votre suivi à été mise à jour."; |
|
|
|
break; |
|
|
|
case preg_match ("/^".A_LANG."(".implode ("|", array_keys ($langText)).")$/i", $_REQUEST [A_ACTION], $matches): |
|
|
|
setSenderLang ($sender, $matches [1]); |
|
|
|
$message .= "Votre lang à été mise à jour."; |
|
|
|
break; |
|
|
|
case preg_match ("/^".A_PERIOD."(".implode ("|", array_keys ($periodText)).")$/i", $_REQUEST [A_ACTION], $matches): |
|
|
|
setSenderPeriod ($sender, $matches [1]); |
|
|
|
$message .= "Votre période à été mise à jour."; |
|
|
|
break; |
|
|
|
case preg_match ("/^".A_LANG."(".implode ("|", array_keys ($langText)).")$/i", $_REQUEST [A_ACTION], $matches): |
|
|
|
setSenderLang ($sender, $matches [1]); |
|
|
|
$message .= "Votre lang à été mise à jour."; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -1085,10 +1129,20 @@ div.frame {border: 1px; border-style: solid; padding: 1em; margin: 1em;} |
|
|
|
--></style> |
|
|
|
<?php |
|
|
|
$defaultChecked = []; |
|
|
|
$defaultChecked [getSenderMode ($sender)] = ' selected="selected"'; |
|
|
|
$defaultChecked [isSenderTrack ($sender) ? "on" : "off"] = ' checked="checked"'; |
|
|
|
$defaultChecked [getSenderPeriod ($sender)] = ' selected="selected"'; |
|
|
|
$defaultChecked [getSenderLang ($sender)] = ' selected="selected"'; |
|
|
|
echo |
|
|
|
'<form method="post">'. |
|
|
|
'Je veux que mes futurs envois soient dépollué en plaçant les liens de téléchargements '. |
|
|
|
'<select name="'.A_ACTION.'" style="width: auto !important;">'; |
|
|
|
foreach ($modeText as $item => $text) |
|
|
|
echo ' <option value="'.A_MODE.$item.'"'.$defaultChecked [$item].'>'.$text.'</option>'; |
|
|
|
echo |
|
|
|
'</select> '. |
|
|
|
'<button type="submit">'."valider".'</button>'. |
|
|
|
'</form>'. |
|
|
|
'<form method="post">'. |
|
|
|
'Je veux que Kaz suive tous mes futurs envois: '. |
|
|
|
'<input type="hidden" name="'.A_SENDER.'" value="'.$sender.'"/>'. |
|
|
|