From ec008183d8a415e3f05219e8929cd57109ae53c4 Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Thu, 7 Jan 2021 15:05:05 +0300 Subject: [PATCH] =?UTF-8?q?#3002=20maabir=20pdf.rar=20geli=C5=9Ftirme=20ta?= =?UTF-8?q?lebi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...osoft.module.advs__add_doc-files_field.php | 26 +++ .../advs-module/resources/lang/en/field.php | 1 + .../resources/views/ad-detail/detail.twig | 6 + .../resources/views/new-ad/new-create.twig | 1 + .../src/Adv/Form/AdvFormBuilder.php | 3 +- .../src/Http/Controller/advsController.php | 1 + .../media-field_type/resources/js/upload.js | 32 ++-- .../src/Http/Controller/UploadController.php | 172 +++++++++--------- database/seeds/DatabaseSeeder.php | 18 ++ 9 files changed, 165 insertions(+), 95 deletions(-) create mode 100644 addons/default/visiosoft/advs-module/migrations/2021_01_06_110331_visiosoft.module.advs__add_doc-files_field.php diff --git a/addons/default/visiosoft/advs-module/migrations/2021_01_06_110331_visiosoft.module.advs__add_doc-files_field.php b/addons/default/visiosoft/advs-module/migrations/2021_01_06_110331_visiosoft.module.advs__add_doc-files_field.php new file mode 100644 index 000000000..72343feed --- /dev/null +++ b/addons/default/visiosoft/advs-module/migrations/2021_01_06_110331_visiosoft.module.advs__add_doc-files_field.php @@ -0,0 +1,26 @@ + 'advs', + ]; + + protected $fields = [ + 'doc_files' => [ + 'type' => 'visiosoft.field_type.media', + 'config' => [ + 'folders' => ["ads_documents"], + 'mode' => 'upload', + ], + ], + ]; + + protected $assignments = [ + 'doc_files' + ]; +} diff --git a/addons/default/visiosoft/advs-module/resources/lang/en/field.php b/addons/default/visiosoft/advs-module/resources/lang/en/field.php index cb6b0ae4b..4f8860df0 100644 --- a/addons/default/visiosoft/advs-module/resources/lang/en/field.php +++ b/addons/default/visiosoft/advs-module/resources/lang/en/field.php @@ -319,6 +319,7 @@ return [ 'congratulations' => 'Congratulations', 'ad_desc' => 'Ad Description', 'upload_photos' => 'Upload Photos', + 'upload_files' => 'Upload Files', 'additional_fields' => 'Additional Fields', 'ad_location' => 'Ad Location', diff --git a/addons/default/visiosoft/advs-module/resources/views/ad-detail/detail.twig b/addons/default/visiosoft/advs-module/resources/views/ad-detail/detail.twig index 3c1678bf9..f7335e0c4 100644 --- a/addons/default/visiosoft/advs-module/resources/views/ad-detail/detail.twig +++ b/addons/default/visiosoft/advs-module/resources/views/ad-detail/detail.twig @@ -36,6 +36,12 @@ + + {% if setting_value('visiosoft.theme.base::ad_details_tab') %} {% if blocks('ad-item-content-block-area') is null %} diff --git a/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig b/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig index 2b71af7c6..51b205a21 100644 --- a/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig +++ b/addons/default/visiosoft/advs-module/resources/views/new-ad/new-create.twig @@ -178,6 +178,7 @@
{{ form.fields.files.input |raw }} +
diff --git a/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php b/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php index 02b855771..ef1e7e90e 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php +++ b/addons/default/visiosoft/advs-module/src/Adv/Form/AdvFormBuilder.php @@ -53,7 +53,8 @@ class AdvFormBuilder extends FormBuilder 'class' => 'hidden d-none mapVal' ], 'files', - 'popular_adv', + 'doc_files', + 'popular_adv', 'adv_day', 'product_options_value' ]; diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php index 89fad88d1..e7100af2a 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php @@ -1,5 +1,6 @@ uploader->upload($this->request->file('upload'), $this->folders->find($this->request->get('folder'))); + $doc_folder = app(FolderRepositoryInterface::class)->findBySlug('ads_documents')->id; + $mimes = explode('/', $this->request->file('upload')->getMimeType()); + + if ($mimes[0] == 'image'){ + $file = $this->uploader->upload($this->request->file('upload'), $this->folders->find($this->request->get('folder'))); + } else { + $file = $this->uploader->upload($this->request->file('upload'), $this->folders->find($doc_folder)); + } + if ($file) { + if ($mimes[0] == 'image'){ - $settings_key = [ - 'image_resize_backend', - 'full_image_width', - 'full_image_height', - 'medium_image_width', - 'medium_image_height', - 'thumbnail_width', - 'thumbnail_height', - 'add_canvas', - 'image_canvas_width', - 'image_canvas_height', - 'watermark_type', - 'watermark_text', - 'watermark_image', - 'watermark_position' - ]; + $settings_key = [ + 'image_resize_backend', + 'full_image_width', + 'full_image_height', + 'medium_image_width', + 'medium_image_height', + 'thumbnail_width', + 'thumbnail_height', + 'add_canvas', + 'image_canvas_width', + 'image_canvas_height', + 'watermark_type', + 'watermark_text', + 'watermark_image', + 'watermark_position' + ]; - $settings_value = array(); + $settings_value = array(); - foreach ($settings_key as $key) { - $settings_value[$key] = setting_value('visiosoft.module.advs::' . $key); - } + foreach ($settings_key as $key) { + $settings_value[$key] = setting_value('visiosoft.module.advs::' . $key); + } - $fullImg = WaterMark::make($this->request->file('upload')->getRealPath()); + $fullImg = WaterMark::make($this->request->file('upload')->getRealPath()); - if ($settings_value['image_resize_backend']) { - $fullImg = $fullImg->resize(null, $settings_value['full_image_height'], - function ($constraint) { - $constraint->aspectRatio(); - }); - } + if ($settings_value['image_resize_backend']) { + $fullImg = $fullImg->resize(null, $settings_value['full_image_height'], + function ($constraint) { + $constraint->aspectRatio(); + }); + } - $mdImg = WaterMark::make($this->request->file('upload')->getRealPath()) - ->resize(null, $settings_value['medium_image_height'], function ($constraint) { - $constraint->aspectRatio(); - }); + $mdImg = WaterMark::make($this->request->file('upload')->getRealPath()) + ->resize(null, $settings_value['medium_image_height'], function ($constraint) { + $constraint->aspectRatio(); + }); - if ($settings_value['add_canvas']) { + if ($settings_value['add_canvas']) { - $fullImg->resizeCanvas( - $settings_value['image_canvas_width'], $settings_value['image_canvas_height'], - 'center', false, 'fff' - ); + $fullImg->resizeCanvas( + $settings_value['image_canvas_width'], $settings_value['image_canvas_height'], + 'center', false, 'fff' + ); - $mdImg->resizeCanvas( - $settings_value['medium_image_width'], $settings_value['medium_image_height'], - 'center', false, 'fff' - ); - } + $mdImg->resizeCanvas( + $settings_value['medium_image_width'], $settings_value['medium_image_height'], + 'center', false, 'fff' + ); + } - $image_types = array('full' => $fullImg, 'medium' => $mdImg); + $image_types = array('full' => $fullImg, 'medium' => $mdImg); - foreach ($image_types as $key => $image) { + foreach ($image_types as $key => $image) { - if ($settings_value['watermark_type'] == 'image') { + if ($settings_value['watermark_type'] == 'image') { - if ($watermarkimage = $this->files->find($settings_value['watermark_image'])) { - $watermark = WaterMark::make(app_storage_path() . '/files-module/local/' . $watermarkimage->path()); - $image->insert($watermark, $settings_value['watermark_position']); - } + if ($watermarkimage = $this->files->find($settings_value['watermark_image'])) { + $watermark = WaterMark::make(app_storage_path() . '/files-module/local/' . $watermarkimage->path()); + $image->insert($watermark, $settings_value['watermark_position']); + } - } else { - $v = "top"; - $h = "center"; - $w = $image->width() / 2; - $h1 = $image->height() / 2; - $font_size = $w / 20; - $image->text($settings_value['watermark_text'], $w, $h1, function ($font) use ($v, $h, $font_size) { - $font->file(public_path('Antonio-Bold.ttf')); - $font->size($font_size); - $font->align($h); - $font->valign($v); - }); - } - if ($key === "full") { - $fileName = $file->getAttributes()['name']; - } else { - $fileName = 'md-' . $file->getAttributes()['name']; + } else { + $v = "top"; + $h = "center"; + $w = $image->width() / 2; + $h1 = $image->height() / 2; + $font_size = $w / 20; + $image->text($settings_value['watermark_text'], $w, $h1, function ($font) use ($v, $h, $font_size) { + $font->file(public_path('Antonio-Bold.ttf')); + $font->size($font_size); + $font->align($h); + $font->valign($v); + }); + } + if ($key === "full") { + $fileName = $file->getAttributes()['name']; + } else { + $fileName = 'md-' . $file->getAttributes()['name']; - $this->createFile($this->request->get('folder'),$fileName,$image); - } - $image->save(app_storage_path() . '/files-module/local/images/' . $fileName); - } + $this->createFile($this->request->get('folder'),$fileName,$image); + } + $image->save(app_storage_path() . '/files-module/local/images/' . $fileName); + } + } return $this->response->json($file->getAttributes()); } @@ -173,15 +183,15 @@ class UploadController extends AdminController return response()->json(['status' => 'error']); } - public function createFile($folder, $filename, $image) - { - $this->files->create([ - 'folder_id' => $folder, - 'name' => $filename, - 'disk_id' => 1, - 'size' => $image->filesize(), - 'mime_type' => $image->mime, - 'extension' => $image->extension, - ]); - } + public function createFile($folder, $filename, $image = null) + { + $this->files->create([ + 'folder_id' => $folder, + 'name' => $filename, + 'disk_id' => 1, + 'size' => $image->filesize(), + 'mime_type' => $image->mime, + 'extension' => $image->extension, + ]); + } } diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index f9a9d30db..680ca7d31 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -174,5 +174,23 @@ class DatabaseSeeder extends Seeder ], ]); }; + + + //Create Ads Documents Folder + if (!$this->folders->findBySlug('ads_documents')) { + $disk = $this->disks->findBySlug('local'); + + $this->folders->create([ + 'en' => [ + 'name' => 'Ads Documents', + 'description' => 'A folder for Ads Documents.', + ], + 'slug' => 'ads_documents', + 'disk' => $disk, + 'allowed_types' => [ + 'pdf', 'doc', 'docx', 'xls', 'xlsx', + ], + ]); + }; } }