mirror of
https://github.com/YunoHost-Apps/leed_ynh.git
synced 2024-09-03 19:26:32 +02:00
MAJ 1.8.2
This commit is contained in:
parent
823521e876
commit
8b622d430d
7 changed files with 11 additions and 522 deletions
|
@ -1,2 +1,2 @@
|
|||
SOURCE_URL>https://github.com/ldleman/Leed/archive/v1.7.tar.gz
|
||||
SOURCE_SUM=f54a18cef71704be85e7b963cff19357
|
||||
SOURCE_URL>https://github.com/LeedRSS/Leed/archive/v1.8.2.tar.gz
|
||||
SOURCE_SUM=e0558125f8c76d399beb0cfc6d168b04
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
"en": "Leed is a minimalistic RSS feed aggregator which allows quick and non-intrusive reading of feeds.",
|
||||
"fr": "Leed est un agrégateur RSS minimaliste qui permet la consultation de flux RSS de manière rapide et non intrusive."
|
||||
},
|
||||
"version": "1.7",
|
||||
"version": "1.8.2",
|
||||
"url": "http://leed.idleman.fr/",
|
||||
"license": "CC by-nc-sa",
|
||||
"license": "AGPL-3.0",
|
||||
"maintainer": {
|
||||
"name": "Maniack Crudelis",
|
||||
"email": "maniackc_dev@crudelis.fr"
|
||||
|
@ -70,15 +70,6 @@
|
|||
"choices" : ["en", "fr", "es"],
|
||||
"default" : "en"
|
||||
},
|
||||
{
|
||||
"name": "market",
|
||||
"type": "boolean",
|
||||
"ask": {
|
||||
"en": "Do you want to activate the Leed Market?",
|
||||
"fr": "Voulez-vous activer le Leed Market ?"
|
||||
},
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"name": "is_public",
|
||||
"type": "boolean",
|
||||
|
|
|
@ -224,6 +224,13 @@ CHECK_MD5_CONFIG () { # Créé un backup du fichier de config si il a été modi
|
|||
fi
|
||||
}
|
||||
|
||||
#=================================================
|
||||
# PACKAGE CHECK BYPASSING...
|
||||
#=================================================
|
||||
|
||||
IS_PACKAGE_CHECK () { # Détermine une exécution en conteneur (Non testé)
|
||||
return $(uname -n | grep -c 'pchecker_lxc')
|
||||
}
|
||||
|
||||
#=================================================
|
||||
#=================================================
|
||||
|
|
|
@ -24,7 +24,6 @@ path_url=$YNH_APP_ARG_PATH
|
|||
admin=$YNH_APP_ARG_ADMIN
|
||||
user_pwd=$YNH_APP_ARG_PASSWORD
|
||||
language=$YNH_APP_ARG_LANGUAGE
|
||||
market=$YNH_APP_ARG_MARKET
|
||||
is_public=$YNH_APP_ARG_IS_PUBLIC
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
@ -105,16 +104,6 @@ sudo systemctl reload nginx
|
|||
# Leed installation via curl
|
||||
YNH_CURL "install_changeLngLeed=$language&root=$domain$path_url&mysqlHost=localhost&mysqlLogin=$db_name&mysqlMdp=$db_pwd&mysqlBase=$db_name&mysqlPrefix=leed_&login=$admin&password=$user_pwd" "/install.php?installButton"
|
||||
|
||||
#=================================================
|
||||
# ACTIVATE LEED MARKET
|
||||
#=================================================
|
||||
ynh_app_setting_set $app market "$market"
|
||||
if [ $market -eq 1 ]
|
||||
then
|
||||
sudo rm -R $final_path/plugins
|
||||
sudo git clone https://github.com/ldleman/Leed-market.git "$final_path/plugins"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# RETRIEVE SYNCHRONISATION CODE
|
||||
#=================================================
|
||||
|
|
|
@ -55,13 +55,6 @@ else
|
|||
fi
|
||||
fi
|
||||
|
||||
market=$(ynh_app_setting_get $app market)
|
||||
if [ "$market" = "Yes" ]; then
|
||||
ynh_app_setting_set $app market 1 # Fixe market en booléen
|
||||
elif [ "$market" = "No" ]; then
|
||||
ynh_app_setting_set $app market 0
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
|
|
|
@ -1,378 +0,0 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
@nom: constant
|
||||
@auteur: Idleman (idleman@idleman.fr)
|
||||
@description: Classe de stockage des fonctions utiles (toutes disponibles en static)
|
||||
*/
|
||||
|
||||
class Functions
|
||||
{
|
||||
private $id;
|
||||
public $debug=0;
|
||||
|
||||
/**
|
||||
* Securise la variable utilisateur entrée en parametre
|
||||
* @author Valentin
|
||||
* @param<String> variable a sécuriser
|
||||
* @param<Integer> niveau de securisation
|
||||
* @return<String> variable securisée
|
||||
*/
|
||||
|
||||
public static function secure($var,$level = 1){
|
||||
$var = htmlspecialchars($var, ENT_QUOTES, "UTF-8");
|
||||
if($level<1)$var = mysqli_real_escape_string($var);
|
||||
if($level<2)$var = addslashes($var);
|
||||
return $var;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return l'environnement/serveur sur lequel on se situe, permet de changer les
|
||||
* connexions bdd en fonction de la dev, la préprod ou la prod
|
||||
*/
|
||||
public static function whereImI(){
|
||||
|
||||
$maps = array (
|
||||
'LOCAL'=>array('localhost','127.0.0.1','0.0.0.1','::0.0.0.0'),
|
||||
'LAN'=>array('192.168.10.','valentin'),
|
||||
'PWAN'=>array('test.sys1.fr'),
|
||||
'WAN'=>array('www.sys1.fr'),
|
||||
);
|
||||
|
||||
|
||||
$return = 'UNKNOWN';
|
||||
foreach($maps as $map=>$values){
|
||||
|
||||
foreach($values as $ip){
|
||||
$pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip);
|
||||
if ($pos!==false){
|
||||
$return = $map;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
public static function isLocal($perimeter='LOCAL'){
|
||||
$return = false;
|
||||
|
||||
$localTab = array('localhost','127.0.0.1','0.0.0.1','::0.0.0.0');
|
||||
$lanTab = array('192.168.10.','valentin');
|
||||
|
||||
switch($perimeter){
|
||||
case 'LOCAL':
|
||||
foreach($localTab as $ip){
|
||||
$pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip);
|
||||
if ($pos!==false){
|
||||
$return = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'LAN':
|
||||
foreach($lanTab as $ip){
|
||||
$pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip);
|
||||
if ($pos!==false){
|
||||
$return = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'ALL':
|
||||
foreach($localTab as $ip){
|
||||
$pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip);
|
||||
if ($pos!==false){
|
||||
$return = true;
|
||||
}
|
||||
}
|
||||
foreach($lanTab as $ip){
|
||||
$pos = strpos(strtolower($_SERVER['HTTP_HOST']),$ip);
|
||||
if ($pos!==false){
|
||||
$return = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Convertis la chaine passée en timestamp quel que soit sont format
|
||||
* (prend en charge les formats type dd-mm-yyy , dd/mm/yyy, yyyy/mm/ddd...)
|
||||
*/
|
||||
public static function toTime($string){
|
||||
$string = str_replace('/','-',$string);
|
||||
$string = str_replace('\\','-',$string);
|
||||
|
||||
$string = str_replace('Janvier','Jan',$string);
|
||||
$string = str_replace('Fevrier','Feb',$string);
|
||||
$string = str_replace('Mars','Mar',$string);
|
||||
$string = str_replace('Avril','Apr',$string);
|
||||
$string = str_replace('Mai','May',$string);
|
||||
$string = str_replace('Juin','Jun',$string);
|
||||
$string = str_replace('Juillet','Jul',$string);
|
||||
$string = str_replace('Aout','Aug',$string);
|
||||
$string = str_replace('Septembre','Sept',$string);
|
||||
$string = str_replace('Octobre','Oct',$string);
|
||||
$string = str_replace('Novembre','Nov',$string);
|
||||
$string = str_replace('Decembre','Dec',$string);
|
||||
return strtotime($string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Recupere l'ip de l'internaute courant
|
||||
* @author Valentin
|
||||
* @return<String> ip de l'utilisateur
|
||||
*/
|
||||
|
||||
public static function getIP(){
|
||||
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
|
||||
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];}
|
||||
elseif(isset($_SERVER['HTTP_CLIENT_IP'])){
|
||||
$ip = $_SERVER['HTTP_CLIENT_IP'];}
|
||||
else{ $ip = $_SERVER['REMOTE_ADDR'];}
|
||||
return $ip;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne une version tronquée au bout de $limit caracteres de la chaine fournie
|
||||
* @author Valentin
|
||||
* @param<String> message a tronquer
|
||||
* @param<Integer> limite de caracteres
|
||||
* @return<String> chaine tronquée
|
||||
*/
|
||||
public static function truncate($msg,$limit){
|
||||
if(mb_strlen($msg)>$limit){
|
||||
$fin='…' ;
|
||||
$nb=$limit-mb_strlen($fin) ;
|
||||
}else{
|
||||
$nb=mb_strlen($msg);
|
||||
$fin='';
|
||||
}
|
||||
return mb_substr($msg, 0, $nb).$fin;
|
||||
}
|
||||
|
||||
|
||||
function getExtension($fileName){
|
||||
$dot = explode('.',$fileName);
|
||||
return $dot[sizeof($dot)-1];
|
||||
}
|
||||
|
||||
/**
|
||||
* Definis si la chaine fournie est existante dans la reference fournie ou non
|
||||
* @param unknown_type $string
|
||||
* @param unknown_type $reference
|
||||
* @return false si aucune occurence du string, true dans le cas contraire
|
||||
*/
|
||||
public static function contain($string,$reference){
|
||||
$return = true;
|
||||
$pos = strpos($reference,$string);
|
||||
if ($pos === false) {
|
||||
$return = false;
|
||||
}
|
||||
return strtolower($return);
|
||||
}
|
||||
|
||||
/**
|
||||
* Définis si la chaine passée en parametre est une url ou non
|
||||
*/
|
||||
public static function isUrl($url){
|
||||
$return =false;
|
||||
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) {
|
||||
$return =true;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Définis si la chaine passée en parametre est une couleur héxadécimale ou non
|
||||
*/
|
||||
public static function isColor($color){
|
||||
$return =false;
|
||||
if (preg_match('/^#(?:(?:[a-fd]{3}){1,2})$/i', $color)) {
|
||||
$return =true;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Définis si la chaine passée en parametre est un mail ou non
|
||||
*/
|
||||
public static function isMail($mail){
|
||||
$return =false;
|
||||
if (filter_var($mail, FILTER_VALIDATE_EMAIL)) {
|
||||
$return =true;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Définis si la chaine passée en parametre est une IP ou non
|
||||
*/
|
||||
public static function isIp($ip){
|
||||
$return =false;
|
||||
if (preg_match('^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$',$ip)) {
|
||||
$return =true;
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
public static function sourceName($string){
|
||||
$name = strtolower($string);
|
||||
$name = str_replace(' ','-',$name);
|
||||
$name = str_replace(''','-',$name);
|
||||
$name = str_replace('\'','-',$name);
|
||||
$name = str_replace(',','-',$name);
|
||||
$name = str_replace(':','-',$name);
|
||||
$name = str_replace('à','a',$name);
|
||||
$name = trim($name);
|
||||
$name = html_entity_decode($name,null,'UTF-8');
|
||||
return $name;
|
||||
}
|
||||
|
||||
public static function makeCookie($name, $value, $expire='') {
|
||||
if($expire == '') {
|
||||
setcookie($name, $value, mktime(0,0,0, date("d"),
|
||||
date("m"), (date("Y")+1)),'/');
|
||||
}else {
|
||||
setcookie($name, '', mktime(0,0,0, date("d"),
|
||||
date("m"), (date("Y")-1)),'/');
|
||||
}
|
||||
}
|
||||
|
||||
public static function destroyCookie($name){
|
||||
Fonction::makeCookie($name,'',time()-3600);
|
||||
unset($_COOKIE[$name]);
|
||||
}
|
||||
|
||||
public static function wordwrap($str, $width = 75, $break = "\n", $cut = false)
|
||||
{
|
||||
$str = html_entity_decode($str);
|
||||
$str = htmlentities (wordwrap($str,$width,$break,$cut));
|
||||
$str = str_replace('<br/>','<br/>',$str);
|
||||
$str = str_replace('&','&',$str);
|
||||
return $str;
|
||||
}
|
||||
|
||||
public static function createFile($filePath,$content){
|
||||
$fichier = fopen($filePath,"w+");
|
||||
$fwriteResult = fwrite($fichier,$content);
|
||||
fclose($fichier);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static function convertFileSize($bytes)
|
||||
{
|
||||
if($bytes<1024){
|
||||
return round(($bytes / 1024), 2).' o';
|
||||
}elseif(1024<$bytes && $bytes<1048576){
|
||||
return round(($bytes / 1024), 2).' ko';
|
||||
}elseif(1048576<$bytes && $bytes<1073741824){
|
||||
return round(($bytes / 1024)/1024, 2).' Mo';
|
||||
}elseif(1073741824<$bytes){
|
||||
return round(($bytes / 1024)/1024/1024, 2).' Go';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static function hexaValue($str){
|
||||
$code = dechex(crc32($str));
|
||||
$code = substr($code, 0, 6);
|
||||
return $code;
|
||||
}
|
||||
|
||||
public static function scanRecursiveDir($dir){
|
||||
$files = scandir($dir);
|
||||
$allFiles = array();
|
||||
foreach($files as $file){
|
||||
if($file!='.' && $file!='..'){
|
||||
if(is_dir($dir.$file)){
|
||||
$allFiles = array_merge($allFiles,Fonction::scanRecursiveDir($dir.$file));
|
||||
}else{
|
||||
$allFiles[]=str_replace('//','/',$dir.'/'.$file);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $allFiles;
|
||||
}
|
||||
|
||||
/** Permet la sortie directe de texte à l'écran, sans tampon.
|
||||
Source : http://php.net/manual/fr/function.flush.php
|
||||
*/
|
||||
public static function triggerDirectOutput() {
|
||||
// La ligne de commande n'en a pas besoin.
|
||||
if ('cli'==php_sapi_name()) return;
|
||||
if (function_exists('apache_setenv')) {
|
||||
/* Selon l'hébergeur la fonction peut être désactivée. Alors Php
|
||||
arrête le programme avec l'erreur :
|
||||
"PHP Fatal error: Call to undefined function apache_setenv()".
|
||||
*/
|
||||
@apache_setenv('no-gzip', 1);
|
||||
}
|
||||
@ini_set('zlib.output_compression', 0);
|
||||
@ini_set('implicit_flush', 1);
|
||||
for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); }
|
||||
ob_implicit_flush(1);
|
||||
}
|
||||
|
||||
public static function relativePath($from, $to, $ps = '/') {
|
||||
$arFrom = explode($ps, rtrim($from, $ps));
|
||||
$arTo = explode($ps, rtrim($to, $ps));
|
||||
while(count($arFrom) && count($arTo) && ($arFrom[0] == $arTo[0])) {
|
||||
array_shift($arFrom);
|
||||
array_shift($arTo);
|
||||
}
|
||||
return str_pad("", count($arFrom) * 3, '..'.$ps).implode($ps, $arTo);
|
||||
}
|
||||
|
||||
|
||||
// Nettoyage de l'url avant la mise en base
|
||||
public static function clean_url( $url ) {
|
||||
$url = str_replace('&', '&', $url);
|
||||
return $url;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Méthode de test de connexion.
|
||||
* @return true si ok
|
||||
* @param server
|
||||
* @param login
|
||||
* @param pass
|
||||
* @param db facultatif, si précisé alors tente de la séléctionner
|
||||
*/
|
||||
public static function testDb($server, $login, $pass, $db=null) {
|
||||
/* Méthode hors des classes dédiées aux BDD afin de supporter le moins
|
||||
de dépendances possibles. En particulier, pas besoin que le fichier
|
||||
de configuration existe. */
|
||||
$link = mysqli_connect($server, $login, $pass, $db);
|
||||
if (false===$link) return false;
|
||||
mysqli_close($link);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return les langues acceptées par le navigateur
|
||||
*/
|
||||
public static function getBrowserLanguages() {
|
||||
/* http://www.w3.org/International/questions/qa-lang-priorities.en.php
|
||||
* ex: da, en-gb;q=0.8,en;q=0.7 --> array('da','en');
|
||||
*/
|
||||
if (!array_key_exists('HTTP_ACCEPT_LANGUAGE', $_SERVER)) return array();
|
||||
$languages = array();
|
||||
$chunks = preg_split('/,\s*/', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
|
||||
foreach($chunks as $chunk) $languages []= substr($chunk, 0, 2);
|
||||
return array_unique($languages);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return boolean
|
||||
*/
|
||||
public static function isAjaxCall() {
|
||||
return !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -1,113 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
@nom: Update
|
||||
@auteur: Maël ILLOUZ (mael.illouz@cobestran.com)
|
||||
@description: Classe de gestion des mises à jour en BDD liées aux améliorations apportées dans Leed
|
||||
@todo : Ajouter la possiblité d'executer des fichiers php de maj.
|
||||
*/
|
||||
|
||||
class Update{
|
||||
const FOLDER = '/updates';
|
||||
|
||||
/**
|
||||
* Description : Récupération des fichiers déjà passés lors des anciennes mises à jour.
|
||||
*/
|
||||
private static function getUpdateFile(){
|
||||
$updateFile = dirname(__FILE__).Update::FOLDER.'/update.json';
|
||||
if(!file_exists($updateFile)) {
|
||||
if (!touch($updateFile)) {
|
||||
die ('Impossible d\'écrire dans le répertoire .'.dirname($updateFile).'. Merci d\'ajouter les droits necessaires.');
|
||||
}
|
||||
}
|
||||
|
||||
return json_decode(file_get_contents($updateFile),true);
|
||||
}
|
||||
|
||||
private static function addUpdateFile($addFile){
|
||||
$updateFile = dirname(__FILE__).Update::FOLDER.'/update.json';
|
||||
$originFile = Update::getUpdateFile();
|
||||
if(empty($originFile))
|
||||
$originFile = array();
|
||||
$newfile = array_merge($originFile,$addFile);
|
||||
if (is_writable($updateFile)){
|
||||
file_put_contents($updateFile,json_encode($newfile));
|
||||
} else {
|
||||
die ('Impossible d\'écrire dans le fichier .'.$updateFile.'. Merci d\'ajouter les droits nécessaires.');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Description : Permet de trouver les fichiers qui n'ont pas encore été joués
|
||||
*/
|
||||
private static function getNewPatch() {
|
||||
$files = glob(dirname(__FILE__). Update::FOLDER .'/*.sql');
|
||||
if(empty($files))
|
||||
$files = array();
|
||||
|
||||
$jsonFiles = Update::getUpdateFile();
|
||||
|
||||
$notPassed = array();
|
||||
|
||||
if ($jsonFiles=='') $jsonFiles[0] = array();
|
||||
|
||||
foreach($files as $file){
|
||||
$found = false;
|
||||
foreach($jsonFiles as $jsonfile){
|
||||
if (isset($jsonfile[0])) {
|
||||
if(in_array(basename($file), $jsonfile)) $found = true;
|
||||
}
|
||||
}
|
||||
if (!$found) $notPassed [] = basename($file);
|
||||
}
|
||||
return $notPassed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Description : Permet l'execution des fichiers sql non joués
|
||||
* @simulation : true pour ne pas faire les actions en bdd
|
||||
*/
|
||||
public static function ExecutePatch($simulation=false) {
|
||||
$newFilesForUpdate = Update::getNewPatch();
|
||||
|
||||
//si aucun nouveau fichier de mise à jour à traiter @return : false
|
||||
if(count($newFilesForUpdate)==0) return false;
|
||||
if (!$simulation) {
|
||||
foreach($newFilesForUpdate as $file){
|
||||
// récupération du contenu du sql
|
||||
$sql = file_get_contents(dirname(__FILE__).Update::FOLDER.'/'.$file);
|
||||
|
||||
$conn = MysqlConnector::getInstance()->connection;
|
||||
//on sépare chaque requête par les ;
|
||||
$sql_array = explode (";",$sql);
|
||||
foreach ($sql_array as $val) {
|
||||
$val = preg_replace('#([-].*)|(\n)#','',$val);
|
||||
if ($val != '') {
|
||||
//remplacement des préfixes de table
|
||||
$val = str_replace('##MYSQL_PREFIX##',MYSQL_PREFIX,$val);
|
||||
$result = $conn->query($val);
|
||||
$ficlog = dirname(__FILE__).Update::FOLDER.'/'.substr($file,0,strlen($file)-3).'log';
|
||||
if (false===$result) {
|
||||
file_put_contents($ficlog, date('d/m/Y H:i:s').' : SQL : '.$val."\n", FILE_APPEND);
|
||||
file_put_contents($ficlog, date('d/m/Y H:i:s').' : '.$conn->error."\n", FILE_APPEND);
|
||||
} else {
|
||||
file_put_contents($ficlog, date('d/m/Y H:i:s').' : SQL : '.$val."\n", FILE_APPEND);
|
||||
file_put_contents($ficlog, date('d/m/Y H:i:s').' : '.$conn->affected_rows.' rows affected'."\n", FILE_APPEND);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($conn);
|
||||
}
|
||||
$_SESSION = array();
|
||||
session_unset();
|
||||
session_destroy();
|
||||
}
|
||||
// quand toutes les requêtes ont été executées, on insert le sql dans le json
|
||||
Update::addUpdateFile(array($newFilesForUpdate));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
Loading…
Add table
Reference in a new issue