Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php if (!defined('BlogUi')) exit;
- class Utilities
- {
- const DATE_MYSQL = 'Y-m-d H:i:s';
- public static function SqlPrefix ($table = null, $prefix = true)
- {
- return (($prefix) ? BUI_SQL_PREFIX : null) . (($table) ? $table : null);
- }
- public static function pagePerPage ($objet, $url, $nbArticles = 0, $perPage = 10)
- {
- $articlesPerPage = $perPage;
- $nbPages = ceil($nbArticles / $articlesPerPage);
- $currentPage = 1;
- if (isset($_GET['page'])) :
- $currentPage = intval($_GET['page']);
- if ($currentPage > $nbPages)
- $currentPage = $nbPages;
- elseif ($currentPage < 0)
- $currentPage = 1;
- endif;
- $i = ($currentPage - 3 <= 0) ? 1 : $currentPage - 3;
- $z = ($currentPage + 3 > $nbPages) ? $nbPages : $currentPage + 3;
- if ($currentPage - 3 <= 0)
- $z += abs($currentPage - 3) + 1;
- if ($currentPage + 3 > $nbPages)
- $i -= $currentPage + 3 - $nbPages;
- if ($z >= $nbPages)
- $z = $nbPages;
- if ($i <= 0)
- $i = 1;
- $objet->TPL->setbloc('pages');
- while ($i <= $z) :
- $objet->TPL->balise([
- 'id' => $i
- ], 0);
- $i++;
- endwhile;
- if ($nbPages == 0 OR $currentPage <= 0) :
- $currentPage = 1;
- endif;
- $objet->TPL->balise([
- 'prevPage' => ($currentPage > 1) ? $currentPage-1 : 1,
- 'prevPage_disabled' => ($nbPages == 1 OR $currentPage == 1) ? true : false,
- 'nextPage' => $currentPage + 1,
- 'nextPage_disabled' => ($nbPages - $currentPage == 0 OR $nbPages == 0) ? true : false,
- 'lastPage' => $nbPages,
- 'lastPage_disabled' => ($nbPages == 1 OR $nbPages == $currentPage OR $nbPages == 0) ? true : false,
- 'currentPage' => $currentPage,
- 'firstVisible' => ($currentPage >= 5 AND $nbPages > 7) ? true : false,
- 'lastVisible' => ($z != $nbPages) ? true : false,
- 'pagesUrl' => $url
- ]);
- }
- # http://php.net/manual/fr/function.base64-encode.php#103849
- public static function base64url_encode ($string)
- {
- return rtrim(strtr(base64_encode($string), '+/', '-_'), '=');
- }
- # http://php.net/manual/fr/function.base64-encode.php#103849
- public static function base64url_decode ($string)
- {
- return base64_decode(str_pad(strtr($string, '-_', '+/'), strlen($string) % 4, '=', STR_PAD_RIGHT));
- }
- public static function getRelativeTime ($date)
- {
- $date = new DateTime(date($date)); // format YYYY-MM-DD 00:00:00
- $now = new DateTime(date(self::DATE_MYSQL));
- $diff = $date->diff(new DateTime(date(self::DATE_MYSQL)));
- $yesterday = false;
- $day = $diff->format('%d') ? $diff->format('%d') : false;
- $week = ($day AND floor($day / 7) <= 4 AND floor($day / 7) > 0) ? floor($day / 7) : false;
- if (intval($diff->format('%y%m')) == 0 AND $day !== false AND $day <= 1) :
- $yesterday = new DateTime('-1 day');
- $yesterday = (intval($yesterday->format('Ymd')) == intval($now->format('Ymd')) - 1) ? true : false;
- endif;
- $second = $diff->format('%s') ? $diff->format('%s') : false;
- $minute = $diff->format('%i') ? $diff->format('%i') : false;
- $hour = $diff->format('%h') ? $diff->format('%h') : false;
- $month = $diff->format('%m') ? $diff->format('%m') : false;
- $years = $diff->format('%y') ? $diff->format('%y') : false;
- if ($years) $relative = [$years, 'years'];
- elseif ($month) $relative = [$month, 'month'];
- elseif ($week) $relative = [$week, 'week'];
- elseif ($yesterday) $relative = [$date->format('H') . ':' . $date->format('i'), 'yesterday'];
- elseif ($day) $relative = [$day, 'day'];
- elseif ($hour) $relative = [$hour, 'hour'];
- elseif ($minute) $relative = [$minute, 'minute'];
- elseif ($second) $relative = [$second, 'second'];
- else $relative = [false, false];
- if (!$years AND !$month AND !$week AND $yesterday AND $day AND ($hour OR $minute OR $second)) :
- $day++;
- $relative = [$day, 'day'];
- $yesterday = false;
- endif;
- if (!$years AND !$month AND $day AND ($hour OR $minute OR $second)) :
- $day++;
- $relative = [$day, 'day'];
- endif;
- return [
- 'Y' => $date->format('Y'),
- 'y' => $date->format('y'),
- 'F' => self::monthFr($date->format('n')),
- 'm' => $date->format('m'),
- 'n' => $date->format('n'),
- 'd' => $date->format('d'),
- 'j' => $date->format('j'),
- 'H' => $date->format('H'),
- 'i' => $date->format('i'),
- 's' => $date->format('s'),
- 'ago' => [
- 'second' => $second,
- 'minute' => $minute,
- 'hour' =>$hour,
- 'day' => $day,
- 'yesterday' => $yesterday,
- 'week' => $week,
- 'month' => $month,
- 'years' => $years
- ],
- 'time' => $date->format('H') . ':' . $date->format('i'),
- 'stime' => $date->format('H') . ':' . $date->format('i') . ':' . $date->format('s'),
- 'relative' => [
- 'rating' => $relative[0],
- 'unit' => $relative[1],
- 'later' => $date > $now ? true : false
- ]
- ];
- }
- public static function cookieYearTerm ()
- {
- return time() + 86400 * 365;
- }
- public static function calcAge ($date)
- {
- if (preg_match('`(\d{1,2})/(\d{1,2})/(\d{4})`', $date, $match)) :
- $day = intval($match[1]);
- $month = intval($match[2]);
- $year = intval($match[3]);
- if ($day <= 0 OR $day > 31 OR $month <= 0 OR $month > 12 OR $year < 1900 OR $year >= date('Y'))
- return false;
- $year = date('Y', time()) - $match[3];
- if (intval($match[2]) > date('n'))
- $year--;
- elseif (intval($match[2]) == date('n') AND intval($match[1]) < date('j'))
- $year--;
- return ($year == 0) ? false : $year;
- else :
- return false;
- endif;
- }
- public static function keyRandom ($size = 16)
- {
- $strKey = str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.');
- $key = '';
- $i = 1;
- while ($i <= $size) :
- $key .= $strKey[rand(0, 64)];
- $i++;
- endwhile;
- return $key;
- }
- public static function monthFr ($mois, $ucfirst = false)
- {
- $list = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'];
- $mois = $list[intval($mois) - 1];
- return ($ucfirst) ? ucfirst($mois) : $mois;
- }
- public static function isAdmin ()
- {
- if (isset($_SESSION['ADMIN_OPENING']) AND $_SESSION['ADMIN_OPENING'] === true)
- return true;
- else
- return false;
- }
- public static function rrmdir ($dir)
- {
- if (is_dir($dir)) :
- $dirOpen = @opendir($dir);
- while (($file = readdir($dirOpen)) !== false) :
- if (filetype($dir . $file) == 'dir' AND $file != '.' AND $file != '..') :
- if (!rrmdir($dir . $file)) :
- return false;
- endif;
- elseif (filetype($dir . $file) == 'file') :
- if (!@unlink($dir . $file)) :
- return false;
- endif;
- endif;
- endwhile;
- closedir($dirOpen);
- else :
- return false;
- endif;
- if (!@rmdir($dir))
- return false;
- else
- return true;
- }
- public static function is_file_path ($string)
- {
- return (preg_match('`^[^/]+$`', $string)) ? true : false;
- }
- public static function is_dir_path ($string)
- {
- return (substr($string, -1, 1) == '/') ? true : false;
- }
- public static function titleFormat ($string)
- {
- $string = htmlentities(trim($string), ENT_NOQUOTES);
- $string = preg_replace('`\&([[:alpha:]]{1,2})(?:acute|caron|cedil|circ|grave|lig|ring|slash|tilde|uml|uro);`i', '\1', $string);
- $string = preg_replace('`\&[^;]+;`', '', $string);
- $string = trim(preg_replace('`[^\w|-]`', '-', $string), '-');
- return preg_replace('`-{2,}`', '-', strtolower($string));
- }
- public static function verifyCaptcha ()
- {
- $response = json_decode(file_get_contents(
- 'https://www.google.com/recaptcha/api/siteverify'
- . '?secret=' . BUI_RECAPTCHA_PRIVATE
- . '&response=' . @$_POST['g-recaptcha-response']
- . '&remoteip=' . Utilities::getIp()
- ));
- return ($response->success) ? true : ((!isset($response->{'error-codes'})) ? false : $response->{'error-codes'});
- }
- public static function isCaptcha ($var)
- {
- if (is_array($var))
- return false;
- else
- return true;
- }
- public static function is_ip ($string)
- {
- return (filter_var($string, FILTER_VALIDATE_IP)) ? true : false;
- }
- public static function getIp ()
- {
- return (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] :
- (isset($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : $_SERVER['REMOTE_ADDR']));
- }
- public static function getPost ($objet)
- {
- if (isset($_SESSION['returnDataReloadPage'])) :
- $objet->TPL->balise(array('returnDataReloadPage' => $_SESSION['returnDataReloadPage']));
- if (isset($_SESSION['returnDataReloadPage']['POST']))
- $objet->TPL->balise(array('POST' => $_SESSION['returnDataReloadPage']['POST']));
- unset($_SESSION['returnDataReloadPage']);
- endif;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement