<?php namespace SHServ\Entities; class Image extends \SHServ\Middleware\Entity { public static $table_name = "images"; protected static $fields = [ "id", "uid", "ent_id", "assignment", "alias", "sequence", "create_at", "update_at" ]; public function __construct(Int $id, Array $data = []){ parent::__construct( self::$table_name, $id, $data ); } public function image_exists(String $size = "original") { return file_exists($this -> get_path_to_image($size)); } public function get_url(String $size = "original") { if(!isset(FCONF["image_resize_map"][$size])){ // TODO: NORMAL ERR VIEW dd("Error of size name `{$size}`"); } $postfix = $size == "original" ? "" : "_{$size}"; if(!$this -> image_exists($size)) { if($size == "original") { return $this -> default_image(); } else { return $this -> get_url("original"); } } $img_name = "{$this -> alias}{$postfix}.jpg"; return app() -> routes -> urlto("ImgUploaderController@show_img", [ "img_name" => $img_name ]); } public function get_path_to_image(String $size = "original") { if(!isset(FCONF["image_resize_map"][$size])){ // TODO: NORMAL ERR VIEW dd("Error of size name `{$size}`"); } $postfix = $size == "original" ? "" : "_{$size}"; return FCONF["users_folder"] . "/{$this -> alias}{$postfix}.jpg"; } protected function remove_files() { foreach (FCONF["image_resize_map"] as $size => $props) { if($this -> image_exists($size)) { unlink($this -> get_path_to_image($size)); } } return true; } public function remove() { $this -> remove_files(); return $this -> remove_entity(); } public function default_image() { return "/SHServ/Resources/img/default-product-img.png"; } }