<?php namespace SHServ; class Utils { public function redirect(String $url) { return header("Location: {$url}"); } public function table_row_is_exists(\Fury\Modules\ThinBuilder\ThinBuilder $tb_instance, String $tablename, String $field_name, String $value): Bool { return $tb_instance -> count($tablename, [ [$field_name, "=", $value] ]) ? true : false; } public function response_error(String $error_alias, Array $failed_fields = [], Array $extra = []) { return json_encode(array_merge([ "status" => false, "error_alias" => $error_alias, "failed_fields" => $failed_fields, "msg" => $this -> get_msg_by_alias($error_alias) ], $extra)); } public function response_success(Array $resp_data = []) { return json_encode([ "status" => true, "data" => $resp_data ]); } public function compress_image(String $source, String $destination, Int $quality) { $info = getimagesize($source); if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source); elseif ($info['mime'] == 'image/gif') $image = imagecreatefromgif($source); elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source); imagejpeg($image, $destination, $quality); return $destination; } public function image_resize(String $file_name, String $output, Int $quality, Int $width, $height = 0) { list($wid, $ht) = \getimagesize($file_name); $r = $wid / $ht; $height = $height ? $height : $width / $r; if ($width / $height > $r) { $new_width = $height * $r; $new_height = $height; } else { $new_height = $width / $r; $new_width = $width; } $source = \imagecreatefromjpeg($file_name); $dst = \imagecreatetruecolor($new_width, $new_height); \imagecopyresampled($dst, $source, 0, 0, 0, 0, $new_width, $new_height, $wid, $ht); \imagejpeg($dst, $output, $quality); } public function get_current_page_num(): Int { return max(1, intval(isset($_GET["pn"]) ? $_GET["pn"] : 0)); } public function get_limits_for_select_query(Int $per_page): Array { $current_page = $this -> get_current_page_num(); $from = ($current_page - 1) * $per_page; return [$from, $per_page]; } public function get_default_val_for_type(String $type) { $default_val = null; $types_default_vals = [ "Int" => 0, "String" => "", "JSON" => "{}", "Float" => 0 ]; return $types_default_vals[$type]; } public function link_is_active(String $action, Array $params = []) { return app() -> routes -> urlto($action, $params) == app() -> router -> uri; } public function formatted_timestamp(String $timestamp, $with_clock = false): String { if($with_clock) { return date("d.m.Y H:i", strtotime($timestamp)); } return date("d.m.Y", strtotime($timestamp)); } public function convert_png_to_jpg($png_data) { $png_image = imagecreatefromstring($png_data); $jpg_image = imagecreatetruecolor(imagesx($png_image), imagesy($png_image)); imagecopy($jpg_image, $png_image, 0, 0, 0, 0, imagesx($png_image), imagesy($png_image)); ob_start(); imagejpeg($jpg_image, NULL, 100); $jpg_data = ob_get_contents(); ob_end_clean(); imagedestroy($png_image); imagedestroy($jpg_image); return $jpg_data; } public function dayname_translate(String $dayname, String $lang = "ru"): ?String { $days = [ ["en" => "monday", "ru" => "понедельник", "uk" => "понеділок"], ["en" => "tuesday", "ru" => "вторник", "uk" => "вівторок"], ["en" => "wednesday", "ru" => "среда", "uk" => "середа"], ["en" => "thursday", "ru" => "четверг", "uk" => "четвер"], ["en" => "friday", "ru" => "пятница", "uk" => "п'ятниця"], ["en" => "saturday", "ru" => "суббота", "uk" => "субота"], ["en" => "sunday", "ru" => "воскресенье", "uk" => "неділя"] ]; $dayname = strtolower($dayname); foreach($days as $day) { if($day["en"] == $dayname) { return $day[$lang]; } } return null; } }