Advertisement
Guest User

Untitled

a guest
Mar 17th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 9.01 KB | None | 0 0
  1. <?php if (!defined('BlogUi')) exit;
  2.  
  3.  
  4.     class Utilities
  5.     {
  6.         const DATE_MYSQL = 'Y-m-d H:i:s';
  7.  
  8.  
  9.  
  10.  
  11.  
  12.         public static function SqlPrefix ($table = null, $prefix = true)
  13.         {
  14.             return (($prefix) ? BUI_SQL_PREFIX : null) . (($table) ? $table : null);
  15.         }
  16.  
  17.  
  18.  
  19.  
  20.  
  21.         public static function pagePerPage ($objet, $url, $nbArticles = 0, $perPage = 10)
  22.         {
  23.             $articlesPerPage = $perPage;
  24.             $nbPages = ceil($nbArticles / $articlesPerPage);
  25.             $currentPage = 1;
  26.  
  27.  
  28.             if (isset($_GET['page'])) :
  29.                 $currentPage = intval($_GET['page']);
  30.  
  31.                 if ($currentPage > $nbPages)
  32.                     $currentPage = $nbPages;
  33.                 elseif ($currentPage < 0)
  34.                     $currentPage = 1;
  35.             endif;
  36.  
  37.             $i = ($currentPage - 3 <= 0) ? 1 : $currentPage - 3;
  38.             $z = ($currentPage + 3 > $nbPages) ? $nbPages : $currentPage + 3;
  39.  
  40.             if ($currentPage - 3 <= 0)
  41.                 $z += abs($currentPage - 3) + 1;
  42.  
  43.             if ($currentPage + 3 > $nbPages)
  44.                 $i -= $currentPage + 3 - $nbPages;
  45.  
  46.             if ($z >= $nbPages)
  47.                 $z = $nbPages;
  48.  
  49.             if ($i <= 0)
  50.                 $i = 1;
  51.  
  52.             $objet->TPL->setbloc('pages');
  53.  
  54.             while ($i <= $z) :
  55.                 $objet->TPL->balise([
  56.                     'id' => $i
  57.                 ], 0);
  58.             $i++;
  59.             endwhile;
  60.  
  61.             if ($nbPages == 0 OR $currentPage <= 0) :
  62.                 $currentPage = 1;
  63.             endif;
  64.  
  65.             $objet->TPL->balise([
  66.                 'prevPage' => ($currentPage > 1) ? $currentPage-1 : 1,
  67.                 'prevPage_disabled' => ($nbPages == 1 OR $currentPage == 1) ? true : false,
  68.                 'nextPage' => $currentPage + 1,
  69.                 'nextPage_disabled' => ($nbPages - $currentPage == 0 OR $nbPages == 0) ? true : false,
  70.                 'lastPage' => $nbPages,
  71.                 'lastPage_disabled' => ($nbPages == 1 OR $nbPages == $currentPage OR $nbPages == 0) ? true : false,
  72.                 'currentPage' => $currentPage,
  73.                 'firstVisible' => ($currentPage >= 5 AND $nbPages > 7) ? true : false,
  74.                 'lastVisible' => ($z != $nbPages) ? true : false,
  75.                 'pagesUrl' => $url
  76.             ]);
  77.         }
  78.  
  79.  
  80.  
  81.  
  82.  
  83.         # http://php.net/manual/fr/function.base64-encode.php#103849
  84.         public static function base64url_encode ($string)
  85.         {
  86.             return rtrim(strtr(base64_encode($string), '+/', '-_'), '=');
  87.         }
  88.  
  89.  
  90.  
  91.  
  92.  
  93.         # http://php.net/manual/fr/function.base64-encode.php#103849
  94.         public static function base64url_decode ($string)
  95.         {
  96.             return base64_decode(str_pad(strtr($string, '-_', '+/'), strlen($string) % 4, '=', STR_PAD_RIGHT));
  97.         }
  98.  
  99.  
  100.  
  101.  
  102.  
  103.         public static function getRelativeTime ($date)
  104.         {
  105.             $date = new DateTime(date($date)); // format YYYY-MM-DD 00:00:00
  106.             $now = new DateTime(date(self::DATE_MYSQL));
  107.             $diff = $date->diff(new DateTime(date(self::DATE_MYSQL)));
  108.             $yesterday = false;
  109.  
  110.             $day = $diff->format('%d') ? $diff->format('%d') : false;
  111.             $week = ($day AND floor($day / 7) <= 4 AND floor($day / 7) > 0) ? floor($day / 7) : false;
  112.  
  113.             if (intval($diff->format('%y%m')) == 0 AND $day !== false AND $day <= 1) :
  114.                 $yesterday = new DateTime('-1 day');
  115.                 $yesterday = (intval($yesterday->format('Ymd')) == intval($now->format('Ymd')) - 1) ? true : false;
  116.             endif;
  117.  
  118.             $second = $diff->format('%s') ? $diff->format('%s') : false;
  119.             $minute = $diff->format('%i') ? $diff->format('%i') : false;
  120.             $hour = $diff->format('%h') ? $diff->format('%h') : false;
  121.             $month = $diff->format('%m') ? $diff->format('%m') : false;
  122.             $years = $diff->format('%y') ? $diff->format('%y') : false;
  123.  
  124.             if ($years) $relative = [$years, 'years'];
  125.             elseif ($month) $relative = [$month, 'month'];
  126.             elseif ($week) $relative = [$week, 'week'];
  127.             elseif ($yesterday) $relative = [$date->format('H') . ':' . $date->format('i'), 'yesterday'];
  128.             elseif ($day) $relative = [$day, 'day'];
  129.             elseif ($hour) $relative = [$hour, 'hour'];
  130.             elseif ($minute) $relative = [$minute, 'minute'];
  131.             elseif ($second) $relative = [$second, 'second'];
  132.             else $relative = [false, false];
  133.  
  134.             if (!$years AND !$month AND !$week AND $yesterday AND $day AND ($hour OR $minute OR $second)) :
  135.                 $day++;
  136.                 $relative = [$day, 'day'];
  137.                 $yesterday = false;
  138.             endif;
  139.  
  140.             if (!$years AND !$month AND $day AND ($hour OR $minute OR $second)) :
  141.                 $day++;
  142.                 $relative = [$day, 'day'];
  143.             endif;
  144.  
  145.             return [
  146.                 'Y' => $date->format('Y'),
  147.                 'y' => $date->format('y'),
  148.                 'F' => self::monthFr($date->format('n')),
  149.                 'm' => $date->format('m'),
  150.                 'n' => $date->format('n'),
  151.                 'd' => $date->format('d'),
  152.                 'j' => $date->format('j'),
  153.                 'H' => $date->format('H'),
  154.                 'i' => $date->format('i'),
  155.                 's' => $date->format('s'),
  156.                 'ago' => [
  157.                     'second' => $second,
  158.                     'minute' => $minute,
  159.                     'hour' =>$hour,
  160.                     'day' => $day,
  161.                     'yesterday' => $yesterday,
  162.                     'week' => $week,
  163.                     'month' => $month,
  164.                     'years' => $years
  165.                 ],
  166.  
  167.                 'time' => $date->format('H') . ':' . $date->format('i'),
  168.                 'stime' => $date->format('H') . ':' . $date->format('i') . ':' . $date->format('s'),
  169.  
  170.                 'relative' => [
  171.                     'rating' => $relative[0],
  172.                     'unit' => $relative[1],
  173.                     'later' => $date > $now ? true : false
  174.                 ]
  175.             ];
  176.         }
  177.  
  178.  
  179.  
  180.  
  181.  
  182.         public static function cookieYearTerm ()
  183.         {
  184.             return time() + 86400 * 365;
  185.         }
  186.  
  187.  
  188.  
  189.  
  190.  
  191.         public static function calcAge ($date)
  192.         {
  193.             if (preg_match('`(\d{1,2})/(\d{1,2})/(\d{4})`', $date, $match)) :
  194.  
  195.                 $day = intval($match[1]);
  196.                 $month = intval($match[2]);
  197.                 $year = intval($match[3]);
  198.  
  199.                 if ($day <= 0 OR $day > 31 OR $month <= 0 OR $month > 12 OR $year < 1900 OR $year >= date('Y'))
  200.                     return false;
  201.  
  202.                 $year = date('Y', time()) - $match[3];
  203.  
  204.                 if (intval($match[2]) > date('n'))
  205.                     $year--;
  206.                 elseif (intval($match[2]) == date('n') AND intval($match[1]) < date('j'))
  207.                     $year--;
  208.  
  209.                 return ($year == 0) ? false : $year;
  210.             else :
  211.                 return false;
  212.             endif;
  213.         }
  214.  
  215.  
  216.  
  217.  
  218.  
  219.         public static function keyRandom ($size = 16)
  220.         {
  221.             $strKey = str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.');
  222.             $key = '';
  223.             $i = 1;
  224.  
  225.             while ($i <= $size) :
  226.                 $key .= $strKey[rand(0, 64)];
  227.             $i++;
  228.             endwhile;
  229.  
  230.             return $key;
  231.         }
  232.  
  233.  
  234.  
  235.  
  236.  
  237.         public static function monthFr ($mois, $ucfirst = false)
  238.         {
  239.             $list = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'];
  240.  
  241.             $mois = $list[intval($mois) - 1];
  242.  
  243.             return ($ucfirst) ? ucfirst($mois) : $mois;
  244.         }
  245.  
  246.  
  247.  
  248.  
  249.  
  250.         public static function isAdmin ()
  251.         {
  252.             if (isset($_SESSION['ADMIN_OPENING']) AND $_SESSION['ADMIN_OPENING'] === true)
  253.                 return true;
  254.             else
  255.                 return false;
  256.         }
  257.  
  258.  
  259.  
  260.  
  261.  
  262.         public static function rrmdir ($dir)
  263.         {
  264.             if (is_dir($dir)) :
  265.                 $dirOpen = @opendir($dir);
  266.  
  267.                 while (($file = readdir($dirOpen)) !== false) :
  268.                     if (filetype($dir . $file) == 'dir' AND $file != '.' AND $file != '..') :
  269.                         if (!rrmdir($dir . $file)) :
  270.                             return false;
  271.                         endif;
  272.                     elseif (filetype($dir . $file) == 'file') :
  273.                         if (!@unlink($dir . $file)) :
  274.                             return false;
  275.                         endif;
  276.                     endif;
  277.                 endwhile;
  278.  
  279.                 closedir($dirOpen);
  280.                 else :
  281.                     return false;
  282.             endif;
  283.  
  284.             if (!@rmdir($dir))
  285.                 return false;
  286.             else
  287.                 return true;
  288.         }
  289.  
  290.  
  291.  
  292.  
  293.  
  294.         public static function is_file_path ($string)
  295.         {
  296.             return (preg_match('`^[^/]+$`', $string)) ? true : false;
  297.         }
  298.  
  299.  
  300.  
  301.  
  302.  
  303.         public static function is_dir_path ($string)
  304.         {
  305.             return (substr($string, -1, 1) == '/') ? true : false;
  306.         }
  307.  
  308.  
  309.  
  310.  
  311.  
  312.         public static function titleFormat ($string)
  313.         {
  314.             $string = htmlentities(trim($string), ENT_NOQUOTES);
  315.             $string = preg_replace('`\&([[:alpha:]]{1,2})(?:acute|caron|cedil|circ|grave|lig|ring|slash|tilde|uml|uro);`i', '\1', $string);
  316.             $string = preg_replace('`\&[^;]+;`', '', $string);
  317.             $string = trim(preg_replace('`[^\w|-]`', '-', $string), '-');
  318.             return preg_replace('`-{2,}`', '-', strtolower($string));
  319.         }
  320.  
  321.  
  322.  
  323.  
  324.  
  325.         public static function verifyCaptcha ()
  326.         {
  327.             $response = json_decode(file_get_contents(
  328.                 'https://www.google.com/recaptcha/api/siteverify'
  329.                 . '?secret=' . BUI_RECAPTCHA_PRIVATE
  330.                 . '&response=' . @$_POST['g-recaptcha-response']
  331.                 . '&remoteip=' . Utilities::getIp()
  332.             ));
  333.  
  334.             return ($response->success) ? true : ((!isset($response->{'error-codes'})) ? false : $response->{'error-codes'});
  335.         }
  336.  
  337.  
  338.  
  339.  
  340.  
  341.         public static function isCaptcha ($var)
  342.         {
  343.             if (is_array($var))
  344.                 return false;
  345.             else
  346.                 return true;
  347.         }
  348.  
  349.  
  350.  
  351.  
  352.  
  353.         public static function is_ip ($string)
  354.         {
  355.             return (filter_var($string, FILTER_VALIDATE_IP)) ? true : false;
  356.         }
  357.  
  358.  
  359.  
  360.  
  361.  
  362.         public static function getIp ()
  363.         {
  364.             return (isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] :
  365.                     (isset($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : $_SERVER['REMOTE_ADDR']));
  366.         }
  367.  
  368.  
  369.  
  370.  
  371.  
  372.         public static function getPost ($objet)
  373.         {
  374.             if (isset($_SESSION['returnDataReloadPage'])) :
  375.                     $objet->TPL->balise(array('returnDataReloadPage' => $_SESSION['returnDataReloadPage']));
  376.  
  377.                     if (isset($_SESSION['returnDataReloadPage']['POST']))
  378.                         $objet->TPL->balise(array('POST' => $_SESSION['returnDataReloadPage']['POST']));
  379.  
  380.                     unset($_SESSION['returnDataReloadPage']);
  381.             endif;
  382.         }
  383.     }
  384.  
  385.  
  386. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement