forked from ZwiiCMS-Team/ZwiiCMS
Couleur du texte dans les en-têtes des tableaux
This commit is contained in:
parent
a8e261f517
commit
eea0234792
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class helper {
|
class helper
|
||||||
|
{
|
||||||
|
|
||||||
/** Statut de la réécriture d'URL (pour éviter de lire le contenu du fichier .htaccess à chaque self::baseUrl()) */
|
/** Statut de la réécriture d'URL (pour éviter de lire le contenu du fichier .htaccess à chaque self::baseUrl()) */
|
||||||
public static $rewriteStatus = null;
|
public static $rewriteStatus = null;
|
||||||
@ -23,7 +24,8 @@ class helper {
|
|||||||
* Traduire le message dans la langue déterminée
|
* Traduire le message dans la langue déterminée
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static function translate($text) {
|
public static function translate($text)
|
||||||
|
{
|
||||||
|
|
||||||
// Captation
|
// Captation
|
||||||
/*
|
/*
|
||||||
@ -44,24 +46,23 @@ class helper {
|
|||||||
* @param integer Niveau d'anonymat 0 aucun, 1 octet à droite, etc..
|
* @param integer Niveau d'anonymat 0 aucun, 1 octet à droite, etc..
|
||||||
* @return string IP adress
|
* @return string IP adress
|
||||||
* Cette fonction est utilisée par user
|
* Cette fonction est utilisée par user
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static function getIp($anon = 4) {
|
public static function getIp($anon = 4)
|
||||||
if(!empty($_SERVER['HTTP_CLIENT_IP'])){
|
{
|
||||||
$ip=$_SERVER['HTTP_CLIENT_IP'];
|
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
||||||
}
|
$ip = $_SERVER['HTTP_CLIENT_IP'];
|
||||||
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
|
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
||||||
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
|
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||||
}
|
} else {
|
||||||
else{
|
$ip = $_SERVER['REMOTE_ADDR'];
|
||||||
$ip=$_SERVER['REMOTE_ADDR'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Anonymiser l'adresse IP v4
|
// Anonymiser l'adresse IP v4
|
||||||
$d = array_slice(explode('.', $ip), 0, $anon);
|
$d = array_slice(explode('.', $ip), 0, $anon);
|
||||||
$d = implode ('.', $d);
|
$d = implode('.', $d);
|
||||||
$j = array_fill(0, 4 - $anon, 'x');
|
$j = array_fill(0, 4 - $anon, 'x');
|
||||||
$k = implode ('.', $j);
|
$k = implode('.', $j);
|
||||||
$ip = count($j) == 0 ? $d : $d . '.' . $k;
|
$ip = count($j) == 0 ? $d : $d . '.' . $k;
|
||||||
return $ip;
|
return $ip;
|
||||||
}
|
}
|
||||||
@ -72,29 +73,34 @@ class helper {
|
|||||||
* @return mixed données récupérées
|
* @return mixed données récupérées
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static function getUrlContents ($url) {
|
public static function getUrlContents($url)
|
||||||
|
{
|
||||||
// Ejecter free.fr
|
// Ejecter free.fr
|
||||||
if (strpos(self::baseUrl(),'free.fr') > 0 ){
|
if (strpos(self::baseUrl(), 'free.fr') > 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(function_exists('file_get_contents') &&
|
if (
|
||||||
ini_get('allow_url_fopen') ){
|
function_exists('file_get_contents') &&
|
||||||
$url_get_contents_data = @file_get_contents($url); // Masque un warning éventuel
|
ini_get('allow_url_fopen')
|
||||||
}elseif(function_exists('curl_version')){
|
) {
|
||||||
$ch = curl_init();
|
$url_get_contents_data = @file_get_contents($url); // Masque un warning éventuel
|
||||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
} elseif (function_exists('curl_version')) {
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
$ch = curl_init();
|
||||||
curl_setopt($ch, CURLOPT_URL, $url);
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||||
$url_get_contents_data = curl_exec($ch);
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
curl_close($ch);
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
}elseif(function_exists('fopen') &&
|
$url_get_contents_data = curl_exec($ch);
|
||||||
function_exists('stream_get_contents') &&
|
curl_close($ch);
|
||||||
ini_get('allow_url_fopen')){
|
} elseif (
|
||||||
$handle = fopen ($url, "r");
|
function_exists('fopen') &&
|
||||||
$url_get_contents_data = stream_get_contents($handle);
|
function_exists('stream_get_contents') &&
|
||||||
}else{
|
ini_get('allow_url_fopen')
|
||||||
$url_get_contents_data = false;
|
) {
|
||||||
}
|
$handle = fopen($url, "r");
|
||||||
|
$url_get_contents_data = stream_get_contents($handle);
|
||||||
|
} else {
|
||||||
|
$url_get_contents_data = false;
|
||||||
|
}
|
||||||
return $url_get_contents_data;
|
return $url_get_contents_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,13 +111,14 @@ class helper {
|
|||||||
* @param string $sort Type de tri à appliquer au tableau (SORT_ASC, SORT_DESC, ou null)
|
* @param string $sort Type de tri à appliquer au tableau (SORT_ASC, SORT_DESC, ou null)
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function arraycolumn($array, $column, $sort = null) {
|
public static function arraycolumn($array, $column, $sort = null)
|
||||||
|
{
|
||||||
$newArray = [];
|
$newArray = [];
|
||||||
if(empty($array) === false) {
|
if (empty($array) === false) {
|
||||||
$newArray = array_map(function($element) use($column) {
|
$newArray = array_map(function ($element) use ($column) {
|
||||||
return $element[$column];
|
return $element[$column];
|
||||||
}, $array);
|
}, $array);
|
||||||
switch($sort) {
|
switch ($sort) {
|
||||||
case 'SORT_ASC':
|
case 'SORT_ASC':
|
||||||
asort($newArray);
|
asort($newArray);
|
||||||
break;
|
break;
|
||||||
@ -126,7 +133,8 @@ class helper {
|
|||||||
/**
|
/**
|
||||||
* Compatibilité avec les anciens modules
|
* Compatibilité avec les anciens modules
|
||||||
*/
|
*/
|
||||||
public static function arrayCollumn($array, $column, $sort = null) {
|
public static function arrayCollumn($array, $column, $sort = null)
|
||||||
|
{
|
||||||
return (helper::arrayColumn($array, $column, $sort));
|
return (helper::arrayColumn($array, $column, $sort));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,9 +147,10 @@ class helper {
|
|||||||
* @return string nom du fichier de sauvegarde
|
* @return string nom du fichier de sauvegarde
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static function autoBackup($folder, $filter = ['backup','tmp'] ) {
|
public static function autoBackup($folder, $filter = ['backup', 'tmp'])
|
||||||
|
{
|
||||||
// Creation du ZIP
|
// Creation du ZIP
|
||||||
$baseName = str_replace('/','',helper::baseUrl(false,false));
|
$baseName = str_replace('/', '', helper::baseUrl(false, false));
|
||||||
$baseName = empty($baseName) ? 'ZwiiCMS' : $baseName;
|
$baseName = empty($baseName) ? 'ZwiiCMS' : $baseName;
|
||||||
$fileName = $baseName . '-backup-' . date('Y-m-d-H-i-s', time()) . '.zip';
|
$fileName = $baseName . '-backup-' . date('Y-m-d-H-i-s', time()) . '.zip';
|
||||||
$zip = new ZipArchive();
|
$zip = new ZipArchive();
|
||||||
@ -150,17 +159,17 @@ class helper {
|
|||||||
//$filter = array('backup','tmp','file');
|
//$filter = array('backup','tmp','file');
|
||||||
$files = new RecursiveIteratorIterator(
|
$files = new RecursiveIteratorIterator(
|
||||||
new RecursiveCallbackFilterIterator(
|
new RecursiveCallbackFilterIterator(
|
||||||
new RecursiveDirectoryIterator(
|
new RecursiveDirectoryIterator(
|
||||||
$directory,
|
$directory,
|
||||||
RecursiveDirectoryIterator::SKIP_DOTS
|
RecursiveDirectoryIterator::SKIP_DOTS
|
||||||
),
|
),
|
||||||
function ($fileInfo, $key, $iterator) use ($filter) {
|
function ($fileInfo, $key, $iterator) use ($filter) {
|
||||||
return $fileInfo->isFile() || !in_array($fileInfo->getBaseName(), $filter);
|
return $fileInfo->isFile() || !in_array($fileInfo->getBaseName(), $filter);
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
foreach ($files as $name => $file) {
|
foreach ($files as $name => $file) {
|
||||||
if (!$file->isDir()) {
|
if (!$file->isDir()) {
|
||||||
$filePath = $file->getRealPath();
|
$filePath = $file->getRealPath();
|
||||||
$relativePath = substr($filePath, strlen(realpath($directory)) + 1);
|
$relativePath = substr($filePath, strlen(realpath($directory)) + 1);
|
||||||
$zip->addFile($filePath, $relativePath);
|
$zip->addFile($filePath, $relativePath);
|
||||||
@ -177,61 +186,61 @@ class helper {
|
|||||||
* du nom réel
|
* du nom réel
|
||||||
* du numéro de version
|
* du numéro de version
|
||||||
*/
|
*/
|
||||||
public static function getModules() {
|
public static function getModules()
|
||||||
|
{
|
||||||
$modules = array();
|
$modules = array();
|
||||||
$dirs = array_diff(scandir('module'), array('..', '.'));
|
$dirs = array_diff(scandir('module'), array('..', '.'));
|
||||||
foreach ($dirs as $key => $value) {
|
foreach ($dirs as $key => $value) {
|
||||||
// Dossier non vide
|
// Dossier non vide
|
||||||
if (file_exists('module/' . $value . '/' . $value . '.php')) {
|
if (file_exists('module/' . $value . '/' . $value . '.php')) {
|
||||||
// Lire les constantes en gérant les erreurs de nom de classe
|
// Lire les constantes en gérant les erreurs de nom de classe
|
||||||
try {
|
try {
|
||||||
$class_reflex = new \ReflectionClass($value);
|
$class_reflex = new \ReflectionClass($value);
|
||||||
$class_constants = $class_reflex->getConstants();
|
$class_constants = $class_reflex->getConstants();
|
||||||
// Constante REALNAME
|
// Constante REALNAME
|
||||||
if (array_key_exists('REALNAME', $class_constants)) {
|
if (array_key_exists('REALNAME', $class_constants)) {
|
||||||
$realName = $value::REALNAME;
|
$realName = $value::REALNAME;
|
||||||
} else {
|
} else {
|
||||||
$realName = ucfirst($value);
|
$realName = ucfirst($value);
|
||||||
}
|
}
|
||||||
// Constante VERSION
|
// Constante VERSION
|
||||||
if (array_key_exists('VERSION', $class_constants)) {
|
if (array_key_exists('VERSION', $class_constants)) {
|
||||||
$version = $value::VERSION;
|
$version = $value::VERSION;
|
||||||
} else {
|
} else {
|
||||||
$version = '0.0';
|
$version = '0.0';
|
||||||
}
|
}
|
||||||
// Constante UPDATE
|
// Constante UPDATE
|
||||||
if (array_key_exists('UPDATE', $class_constants)) {
|
if (array_key_exists('UPDATE', $class_constants)) {
|
||||||
$update = $value::UPDATE;
|
$update = $value::UPDATE;
|
||||||
} else {
|
} else {
|
||||||
$update = '0.0';
|
$update = '0.0';
|
||||||
}
|
}
|
||||||
// Constante DELETE
|
// Constante DELETE
|
||||||
if (array_key_exists('DELETE', $class_constants)) {
|
if (array_key_exists('DELETE', $class_constants)) {
|
||||||
$delete = $value::DELETE;
|
$delete = $value::DELETE;
|
||||||
} else {
|
} else {
|
||||||
$delete = true;
|
$delete = true;
|
||||||
}
|
}
|
||||||
// Constante DATADIRECTORY
|
// Constante DATADIRECTORY
|
||||||
if ( array_key_exists('DATADIRECTORY', $class_constants)) {
|
if (array_key_exists('DATADIRECTORY', $class_constants)) {
|
||||||
$dataDirectory = $value::DATADIRECTORY;
|
$dataDirectory = $value::DATADIRECTORY;
|
||||||
} else {
|
} else {
|
||||||
$dataDirectory = '';
|
$dataDirectory = '';
|
||||||
}
|
}
|
||||||
// Affection
|
// Affection
|
||||||
$modules [$value] = [
|
$modules[$value] = [
|
||||||
'realName' => $realName,
|
'realName' => $realName,
|
||||||
'version' => $version,
|
'version' => $version,
|
||||||
'update' => $update,
|
'update' => $update,
|
||||||
'delete' => $delete,
|
'delete' => $delete,
|
||||||
'dataDirectory' => $dataDirectory
|
'dataDirectory' => $dataDirectory
|
||||||
];
|
];
|
||||||
|
} catch (Exception $e) {
|
||||||
} catch (Exception $e){
|
|
||||||
// on ne fait rien
|
// on ne fait rien
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return($modules);
|
return ($modules);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -240,10 +249,11 @@ class helper {
|
|||||||
* Retourne true si le protocole est en TLS
|
* Retourne true si le protocole est en TLS
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function isHttps() {
|
public static function isHttps()
|
||||||
if(
|
{
|
||||||
(empty($_SERVER['HTTPS']) === false AND $_SERVER['HTTPS'] !== 'off')
|
if (
|
||||||
OR $_SERVER['SERVER_PORT'] === 443
|
(empty($_SERVER['HTTPS']) === false and $_SERVER['HTTPS'] !== 'off')
|
||||||
|
or $_SERVER['SERVER_PORT'] === 443
|
||||||
) {
|
) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@ -258,20 +268,20 @@ class helper {
|
|||||||
* @param bool $host Affiche ou non l'host
|
* @param bool $host Affiche ou non l'host
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function baseUrl($queryString = true, $host = true) {
|
public static function baseUrl($queryString = true, $host = true)
|
||||||
|
{
|
||||||
// Protocole
|
// Protocole
|
||||||
$protocol = helper::isHttps() === true ? 'https://' : 'http://';
|
$protocol = helper::isHttps() === true ? 'https://' : 'http://';
|
||||||
// Host
|
// Host
|
||||||
if($host) {
|
if ($host) {
|
||||||
$host = $protocol . $_SERVER['HTTP_HOST'];
|
$host = $protocol . $_SERVER['HTTP_HOST'];
|
||||||
}
|
}
|
||||||
// Pathinfo
|
// Pathinfo
|
||||||
$pathInfo = pathinfo($_SERVER['PHP_SELF']);
|
$pathInfo = pathinfo($_SERVER['PHP_SELF']);
|
||||||
// Querystring
|
// Querystring
|
||||||
if($queryString AND helper::checkRewrite() === false) {
|
if ($queryString and helper::checkRewrite() === false) {
|
||||||
$queryString = '?';
|
$queryString = '?';
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
$queryString = '';
|
$queryString = '';
|
||||||
}
|
}
|
||||||
return $host . rtrim($pathInfo['dirname'], ' ' . DIRECTORY_SEPARATOR) . '/' . $queryString;
|
return $host . rtrim($pathInfo['dirname'], ' ' . DIRECTORY_SEPARATOR) . '/' . $queryString;
|
||||||
@ -281,11 +291,12 @@ class helper {
|
|||||||
* Check le statut de l'URL rewriting
|
* Check le statut de l'URL rewriting
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function checkRewrite() {
|
public static function checkRewrite()
|
||||||
|
{
|
||||||
// N'interroge que le serveur Apache
|
// N'interroge que le serveur Apache
|
||||||
if (strpos($_SERVER["SERVER_SOFTWARE"], 'Apache') > 0) {
|
if (strpos($_SERVER["SERVER_SOFTWARE"], 'Apache') > 0) {
|
||||||
self::$rewriteStatus === false;
|
self::$rewriteStatus === false;
|
||||||
} elseif(self::$rewriteStatus === null) {
|
} elseif (self::$rewriteStatus === null) {
|
||||||
// Ouvre et scinde le fichier .htaccess
|
// Ouvre et scinde le fichier .htaccess
|
||||||
$htaccess = explode('# URL rewriting', file_get_contents('.htaccess'));
|
$htaccess = explode('# URL rewriting', file_get_contents('.htaccess'));
|
||||||
// Retourne un boolean en fonction du contenu de la partie réservée à l'URL rewriting
|
// Retourne un boolean en fonction du contenu de la partie réservée à l'URL rewriting
|
||||||
@ -299,7 +310,8 @@ class helper {
|
|||||||
* Renvoie le numéro de version de Zwii est en ligne
|
* Renvoie le numéro de version de Zwii est en ligne
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function getOnlineVersion() {
|
public static function getOnlineVersion()
|
||||||
|
{
|
||||||
return (helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version'));
|
return (helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,12 +320,12 @@ class helper {
|
|||||||
* Check si une nouvelle version de Zwii est disponible
|
* Check si une nouvelle version de Zwii est disponible
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public static function checkNewVersion() {
|
public static function checkNewVersion()
|
||||||
|
{
|
||||||
$version = helper::getOnlineVersion();
|
$version = helper::getOnlineVersion();
|
||||||
if( !empty($version) ) {
|
if (!empty($version)) {
|
||||||
return ((version_compare(common::ZWII_VERSION, $version)) === -1);
|
return ((version_compare(common::ZWII_VERSION, $version)) === -1);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -324,7 +336,8 @@ class helper {
|
|||||||
* @param string $rgba Code rgba de la couleur
|
* @param string $rgba Code rgba de la couleur
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function colorVariants($rgba) {
|
public static function colorVariants($rgba)
|
||||||
|
{
|
||||||
preg_match('#\(+(.*)\)+#', $rgba, $matches);
|
preg_match('#\(+(.*)\)+#', $rgba, $matches);
|
||||||
$rgba = explode(', ', $matches[1]);
|
$rgba = explode(', ', $matches[1]);
|
||||||
return [
|
return [
|
||||||
@ -332,7 +345,12 @@ class helper {
|
|||||||
'darken' => 'rgba(' . max(0, $rgba[0] - 15) . ',' . max(0, $rgba[1] - 15) . ',' . max(0, $rgba[2] - 15) . ',' . $rgba[3] . ')',
|
'darken' => 'rgba(' . max(0, $rgba[0] - 15) . ',' . max(0, $rgba[1] - 15) . ',' . max(0, $rgba[2] - 15) . ',' . $rgba[3] . ')',
|
||||||
'veryDarken' => 'rgba(' . max(0, $rgba[0] - 20) . ',' . max(0, $rgba[1] - 20) . ',' . max(0, $rgba[2] - 20) . ',' . $rgba[3] . ')',
|
'veryDarken' => 'rgba(' . max(0, $rgba[0] - 20) . ',' . max(0, $rgba[1] - 20) . ',' . max(0, $rgba[2] - 20) . ',' . $rgba[3] . ')',
|
||||||
'text' => self::relativeLuminanceW3C($rgba) > .22 ? "#222" : "#DDD",
|
'text' => self::relativeLuminanceW3C($rgba) > .22 ? "#222" : "#DDD",
|
||||||
'rgb' => 'rgb(' . $rgba[0] . ',' . $rgba[1] . ',' . $rgba[2] . ')'
|
'rgb' => 'rgb(' . $rgba[0] . ',' . $rgba[1] . ',' . $rgba[2] . ')',
|
||||||
|
'invert' => 'rgba (' .
|
||||||
|
($rgba[0] < 128 ? 255 : 0) . ',' .
|
||||||
|
($rgba[1] < 128 ? 255 : 0) . ',' .
|
||||||
|
($rgba[1] < 128 ? 255 : 0) . ',' .
|
||||||
|
($rgba[0] < 128 ? 255 : 0) . ')'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -340,7 +358,8 @@ class helper {
|
|||||||
* Supprime un cookie
|
* Supprime un cookie
|
||||||
* @param string $cookieKey Clé du cookie à supprimer
|
* @param string $cookieKey Clé du cookie à supprimer
|
||||||
*/
|
*/
|
||||||
public static function deleteCookie($cookieKey) {
|
public static function deleteCookie($cookieKey)
|
||||||
|
{
|
||||||
unset($_COOKIE[$cookieKey]);
|
unset($_COOKIE[$cookieKey]);
|
||||||
setcookie($cookieKey, '', time() - 3600, helper::baseUrl(false, false), '', false, true);
|
setcookie($cookieKey, '', time() - 3600, helper::baseUrl(false, false), '', false, true);
|
||||||
}
|
}
|
||||||
@ -351,9 +370,10 @@ class helper {
|
|||||||
* @param int $filter Type de filtre à appliquer
|
* @param int $filter Type de filtre à appliquer
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function filter($text, $filter) {
|
public static function filter($text, $filter)
|
||||||
|
{
|
||||||
$text = trim($text);
|
$text = trim($text);
|
||||||
switch($filter) {
|
switch ($filter) {
|
||||||
case self::FILTER_BOOLEAN:
|
case self::FILTER_BOOLEAN:
|
||||||
$text = (bool) $text;
|
$text = (bool) $text;
|
||||||
break;
|
break;
|
||||||
@ -378,13 +398,13 @@ class helper {
|
|||||||
// Supprime les emoji
|
// Supprime les emoji
|
||||||
$text = preg_replace('/[[:^print:]]/', '', $text);
|
$text = preg_replace('/[[:^print:]]/', '', $text);
|
||||||
// Supprime les tirets en fin de chaine (emoji en fin de nom)
|
// Supprime les tirets en fin de chaine (emoji en fin de nom)
|
||||||
$text = rtrim($text,'-');
|
$text = rtrim($text, '-');
|
||||||
// Cas où un identifiant est vide
|
// Cas où un identifiant est vide
|
||||||
if (empty($text)) {
|
if (empty($text)) {
|
||||||
$text = uniqid('');
|
$text = uniqid('');
|
||||||
}
|
}
|
||||||
// Un ID ne peut pas être un entier, pour éviter les conflits avec le système de pagination
|
// Un ID ne peut pas être un entier, pour éviter les conflits avec le système de pagination
|
||||||
if(intval($text) !== 0) {
|
if (intval($text) !== 0) {
|
||||||
$text = '_' . $text;
|
$text = '_' . $text;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -419,17 +439,18 @@ class helper {
|
|||||||
* @param array $array Tableau à vérifier
|
* @param array $array Tableau à vérifier
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function increment($key, $array = []) {
|
public static function increment($key, $array = [])
|
||||||
|
{
|
||||||
// Pas besoin d'incrémenter si la clef n'existe pas
|
// Pas besoin d'incrémenter si la clef n'existe pas
|
||||||
if($array === []) {
|
if ($array === []) {
|
||||||
return $key;
|
return $key;
|
||||||
}
|
}
|
||||||
// Incrémente la clef
|
// Incrémente la clef
|
||||||
else {
|
else {
|
||||||
// Si la clef est numérique elle est incrémentée
|
// Si la clef est numérique elle est incrémentée
|
||||||
if(is_numeric($key)) {
|
if (is_numeric($key)) {
|
||||||
$newKey = $key;
|
$newKey = $key;
|
||||||
while(array_key_exists($newKey, $array) OR in_array($newKey, $array)) {
|
while (array_key_exists($newKey, $array) or in_array($newKey, $array)) {
|
||||||
$newKey++;
|
$newKey++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -437,7 +458,7 @@ class helper {
|
|||||||
else {
|
else {
|
||||||
$i = 2;
|
$i = 2;
|
||||||
$newKey = $key;
|
$newKey = $key;
|
||||||
while(array_key_exists($newKey, $array) OR in_array($newKey, $array)) {
|
while (array_key_exists($newKey, $array) or in_array($newKey, $array)) {
|
||||||
$newKey = $key . '-' . $i;
|
$newKey = $key . '-' . $i;
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
@ -451,11 +472,12 @@ class helper {
|
|||||||
* @param string $css Css à minimiser
|
* @param string $css Css à minimiser
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function minifyCss($css) {
|
public static function minifyCss($css)
|
||||||
|
{
|
||||||
// Supprime les commentaires
|
// Supprime les commentaires
|
||||||
$css = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css);
|
$css = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css);
|
||||||
// Supprime les tabulations, espaces, nouvelles lignes, etc...
|
// Supprime les tabulations, espaces, nouvelles lignes, etc...
|
||||||
$css = str_replace(["\r\n", "\r", "\n" ,"\t", ' ', ' ', ' '], '', $css);
|
$css = str_replace(["\r\n", "\r", "\n", "\t", ' ', ' ', ' '], '', $css);
|
||||||
$css = preg_replace(['(( )+{)', '({( )+)'], '{', $css);
|
$css = preg_replace(['(( )+{)', '({( )+)'], '{', $css);
|
||||||
$css = preg_replace(['(( )+})', '(}( )+)', '(;( )*})'], '}', $css);
|
$css = preg_replace(['(( )+})', '(}( )+)', '(;( )*})'], '}', $css);
|
||||||
$css = preg_replace(['(;( )+)', '(( )+;)'], ';', $css);
|
$css = preg_replace(['(;( )+)', '(( )+;)'], ';', $css);
|
||||||
@ -468,7 +490,8 @@ class helper {
|
|||||||
* @param string $js Js à minimiser
|
* @param string $js Js à minimiser
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function minifyJs($js) {
|
public static function minifyJs($js)
|
||||||
|
{
|
||||||
// Supprime les commentaires
|
// Supprime les commentaires
|
||||||
$js = preg_replace('/\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\/|\s*(?<![\:\=])\/\/.*/', '', $js);
|
$js = preg_replace('/\\/\\*[^*]*\\*+([^\\/][^*]*\\*+)*\\/|\s*(?<![\:\=])\/\/.*/', '', $js);
|
||||||
// Supprime les tabulations, espaces, nouvelles lignes, etc...
|
// Supprime les tabulations, espaces, nouvelles lignes, etc...
|
||||||
@ -486,7 +509,8 @@ class helper {
|
|||||||
* @param null|int $sufix Suffixe de l'url
|
* @param null|int $sufix Suffixe de l'url
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function pagination($array, $url, $item, $sufix = null) {
|
public static function pagination($array, $url, $item, $sufix = null)
|
||||||
|
{
|
||||||
// Scinde l'url
|
// Scinde l'url
|
||||||
$url = explode('/', $url);
|
$url = explode('/', $url);
|
||||||
// Url de pagination
|
// Url de pagination
|
||||||
@ -506,8 +530,8 @@ class helper {
|
|||||||
$lastElement = ($lastElement > $nbElements) ? $nbElements : $lastElement;
|
$lastElement = ($lastElement > $nbElements) ? $nbElements : $lastElement;
|
||||||
// Mise en forme de la liste des pages
|
// Mise en forme de la liste des pages
|
||||||
$pages = '';
|
$pages = '';
|
||||||
if($nbPage > 1) {
|
if ($nbPage > 1) {
|
||||||
for($i = 1; $i <= $nbPage; $i++) {
|
for ($i = 1; $i <= $nbPage; $i++) {
|
||||||
$disabled = ($i === $currentPage) ? ' class="disabled"' : false;
|
$disabled = ($i === $currentPage) ? ' class="disabled"' : false;
|
||||||
$pages .= '<a href="' . helper::baseUrl() . $urlCurrent . '/' . $i . $sufix . '"' . $disabled . '>' . $i . '</a>';
|
$pages .= '<a href="' . helper::baseUrl() . $urlCurrent . '/' . $i . $sufix . '"' . $disabled . '>' . $i . '</a>';
|
||||||
}
|
}
|
||||||
@ -524,7 +548,8 @@ class helper {
|
|||||||
/**
|
/**
|
||||||
* Calcul de la luminance relative d'une couleur
|
* Calcul de la luminance relative d'une couleur
|
||||||
*/
|
*/
|
||||||
public static function relativeLuminanceW3C($rgba) {
|
public static function relativeLuminanceW3C($rgba)
|
||||||
|
{
|
||||||
// Conversion en sRGB
|
// Conversion en sRGB
|
||||||
$RsRGB = $rgba[0] / 255;
|
$RsRGB = $rgba[0] / 255;
|
||||||
$GsRGB = $rgba[1] / 255;
|
$GsRGB = $rgba[1] / 255;
|
||||||
@ -546,7 +571,8 @@ class helper {
|
|||||||
* @param array $exclude Clés à ignorer ($key)
|
* @param array $exclude Clés à ignorer ($key)
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function sprintAttributes(array $array = [], array $exclude = []) {
|
public static function sprintAttributes(array $array = [], array $exclude = [])
|
||||||
|
{
|
||||||
$exclude = array_merge(
|
$exclude = array_merge(
|
||||||
[
|
[
|
||||||
'before',
|
'before',
|
||||||
@ -557,15 +583,15 @@ class helper {
|
|||||||
$exclude
|
$exclude
|
||||||
);
|
);
|
||||||
$attributes = [];
|
$attributes = [];
|
||||||
foreach($array as $key => $value) {
|
foreach ($array as $key => $value) {
|
||||||
if(($value OR $value === 0) AND in_array($key, $exclude) === false) {
|
if (($value or $value === 0) and in_array($key, $exclude) === false) {
|
||||||
// Désactive le message de modifications non enregistrées pour le champ
|
// Désactive le message de modifications non enregistrées pour le champ
|
||||||
if($key === 'noDirty') {
|
if ($key === 'noDirty') {
|
||||||
$attributes[] = 'data-no-dirty';
|
$attributes[] = 'data-no-dirty';
|
||||||
}
|
}
|
||||||
// Disabled
|
// Disabled
|
||||||
// Readonly
|
// Readonly
|
||||||
elseif(in_array($key, ['disabled', 'readonly'])) {
|
elseif (in_array($key, ['disabled', 'readonly'])) {
|
||||||
$attributes[] = sprintf('%s', $key);
|
$attributes[] = sprintf('%s', $key);
|
||||||
}
|
}
|
||||||
// Autres
|
// Autres
|
||||||
@ -584,9 +610,10 @@ class helper {
|
|||||||
* @param int $length (voir substr de PHP pour fonctionnement)
|
* @param int $length (voir substr de PHP pour fonctionnement)
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function subword($text, $start, $length) {
|
public static function subword($text, $start, $length)
|
||||||
|
{
|
||||||
$text = trim($text);
|
$text = trim($text);
|
||||||
if(strlen($text) > $length) {
|
if (strlen($text) > $length) {
|
||||||
$text = mb_substr($text, $start, $length);
|
$text = mb_substr($text, $start, $length);
|
||||||
$text = mb_substr($text, 0, min(mb_strlen($text), mb_strrpos($text, ' ')));
|
$text = mb_substr($text, 0, min(mb_strlen($text), mb_strrpos($text, ' ')));
|
||||||
}
|
}
|
||||||
@ -599,7 +626,8 @@ class helper {
|
|||||||
* @param string $payload la chaine à coder
|
* @param string $payload la chaine à coder
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function encrypt($key, $payload) {
|
public static function encrypt($key, $payload)
|
||||||
|
{
|
||||||
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
|
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
|
||||||
$encrypted = openssl_encrypt($payload, 'aes-256-cbc', $key, 0, $iv);
|
$encrypted = openssl_encrypt($payload, 'aes-256-cbc', $key, 0, $iv);
|
||||||
return base64_encode($encrypted . '::' . $iv);
|
return base64_encode($encrypted . '::' . $iv);
|
||||||
@ -611,9 +639,9 @@ class helper {
|
|||||||
* @param string $garble la chaine à décoder
|
* @param string $garble la chaine à décoder
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function decrypt($key, $garble) {
|
public static function decrypt($key, $garble)
|
||||||
|
{
|
||||||
list($encrypted_data, $iv) = explode('::', base64_decode($garble), 2);
|
list($encrypted_data, $iv) = explode('::', base64_decode($garble), 2);
|
||||||
return openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv);
|
return openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2681,9 +2681,11 @@ class core extends common
|
|||||||
$css .= 'body h1, h2, h3, h4 a, h5, h6 {font-family:' . $fonts[$this->getData(['admin', 'fontTitle'])] . ';color:' . $this->getData(['admin', 'colorTitle']) . ';}';
|
$css .= 'body h1, h2, h3, h4 a, h5, h6 {font-family:' . $fonts[$this->getData(['admin', 'fontTitle'])] . ';color:' . $this->getData(['admin', 'colorTitle']) . ';}';
|
||||||
|
|
||||||
// TinyMCE
|
// TinyMCE
|
||||||
$css .= 'body:not(.editorWysiwyg),span .zwiico-help {color:' . $this->getData(['admin', 'colorText']) . ';}';
|
$colors = helper::colorVariants($this->getData(['admin', 'colorText']));
|
||||||
$css .= 'table thead tr, table thead tr .zwiico-help{ background-color:' . $this->getData(['admin', 'colorText']) . '; color:' . $colors['text'] . ';}';
|
$css .= 'body:not(.editorWysiwyg),span .zwiico-help {color:' . $colors['normal'] . ';}';
|
||||||
$css .= 'table thead th { color: ' . $this->getData(['admin', 'colorText']) . '; filter: invert(100%);}';
|
echo $colors['invert'];
|
||||||
|
$css .= 'table thead tr, table thead tr .zwiico-help{ background-color:' . $colors['normal'] . '; color:' . $colors['text'] . ';}';
|
||||||
|
$css .= 'table thead th { color:' . $colors['text'] . ';}';
|
||||||
$colors = helper::colorVariants($this->getData(['admin', 'backgroundColorButton']));
|
$colors = helper::colorVariants($this->getData(['admin', 'backgroundColorButton']));
|
||||||
$css .= 'input[type="checkbox"]:checked + label::before,.speechBubble{background-color:' . $colors['normal'] . ';color:' . $colors['text'] . ';}';
|
$css .= 'input[type="checkbox"]:checked + label::before,.speechBubble{background-color:' . $colors['normal'] . ';color:' . $colors['text'] . ';}';
|
||||||
$css .= '.speechBubble::before {border-color:' . $colors['normal'] . ' transparent transparent transparent;}';
|
$css .= '.speechBubble::before {border-color:' . $colors['normal'] . ' transparent transparent transparent;}';
|
||||||
|
Loading…
Reference in New Issue
Block a user