#3002 maabir pdf.rar geliştirme talebi

This commit is contained in:
Muammer Top 2021-01-07 15:05:05 +03:00
parent 4c81790ab5
commit ec008183d8
9 changed files with 165 additions and 95 deletions

View File

@ -0,0 +1,26 @@
<?php
use Anomaly\Streams\Platform\Database\Migration\Migration;
class VisiosoftModuleAdvsAddDocFilesField extends Migration
{
protected $delete = false;
protected $stream = [
'slug' => 'advs',
];
protected $fields = [
'doc_files' => [
'type' => 'visiosoft.field_type.media',
'config' => [
'folders' => ["ads_documents"],
'mode' => 'upload',
],
],
];
protected $assignments = [
'doc_files'
];
}

View File

@ -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',

View File

@ -36,6 +36,12 @@
</div>
<!--detail-ad -->
<ul class="docs list-unstyled">
{% for doc in adv.doc_files %}
<li><a class="text-dark small" href="{{ doc.url }}"><i class="fa fa-lg fa-download small"></i> {{ doc.name }}</a></li>
{% endfor %}
</ul>
{% if setting_value('visiosoft.theme.base::ad_details_tab') %}
{% if blocks('ad-item-content-block-area') is null %}

View File

@ -178,6 +178,7 @@
<div class="row form-group images">
<div class="col-md-12">
{{ form.fields.files.input |raw }}
<input name="doc_files" value="{{ form.fields.doc_files.value.pluck('id').all()|join(',') }}" >
</div>
</div>
</div>

View File

@ -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'
];

View File

@ -1,5 +1,6 @@
<?php namespace Visiosoft\AdvsModule\Http\Controller;
use Anomaly\FilesModule\File\Contract\FileRepositoryInterface;
use Anomaly\SettingsModule\Setting\Contract\SettingRepositoryInterface;
use Anomaly\Streams\Platform\Http\Controller\PublicController;
use Anomaly\Streams\Platform\Message\MessageBag;

View File

@ -3,6 +3,7 @@ Dropzone.autoDiscover = false;
$("div#myDrop").dropzone({url: "/file/post"});
var uploaded = $('input[name="files"]').val().split(',').map(Number);
var docsUploaded = $('input[name="doc_files"]').val().split(',').map(Number);
$(function () {
@ -67,23 +68,28 @@ $(function () {
dropzone.on('success', function (file) {
var response = JSON.parse(file.xhr.response);
var mimeType = response.mime_type.split('/')
if (mimeType[0] === 'image'){
uploaded.push(response.id);
uploaded.push(response.id);
$('.media-selected-wrapper').load(
REQUEST_ROOT_PATH + '/streams/media-field_type/selected?uploaded=' + uploaded.join(','),
function () {
$('input[name="files"]').val(uploaded.join(','))
}
);
$('.media-selected-wrapper').load(
REQUEST_ROOT_PATH + '/streams/media-field_type/selected?uploaded=' + uploaded.join(','),
function () {
$('input[name="files"]').val(uploaded.join(','))
}
);
file.previewElement.querySelector('[data-dz-uploadprogress]').setAttribute('class', 'progress progress-success');
file.previewElement.querySelector('[data-dz-uploadprogress]').setAttribute('class', 'progress progress-success');
setTimeout(function () {
setTimeout(function () {
addAppendByData(uploaded[0])
file.previewElement.remove();
}, 500);
addAppendByData(uploaded[0])
file.previewElement.remove();
}, 500);
} else {
docsUploaded.push(response.id);
$('input[name="doc_files"]').val(docsUploaded.join(','))
}
});
// When file fails to upload.

View File

@ -50,94 +50,104 @@ class UploadController extends AdminController
public function upload()
{
$file = $this->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,
]);
}
}

View File

@ -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',
],
]);
};
}
}