e-commerce needs

This commit is contained in:
vedatakdogan 2020-12-04 18:23:18 +03:00
parent 5e6d378b17
commit 3658be64c2
6 changed files with 152 additions and 41 deletions

View File

@ -42,4 +42,5 @@ return [
'replicate' => 'Replicate', 'replicate' => 'Replicate',
'fast_create' => 'Fast create', 'fast_create' => 'Fast create',
'publish' => 'Publish', 'publish' => 'Publish',
'import' => 'Import',
]; ];

View File

@ -0,0 +1,19 @@
<?php
namespace Visiosoft\AdvsModule\Adv;
use Illuminate\Support\Str;
use Maatwebsite\Excel\Concerns\ToModel;
class AdvsImport implements ToModel
{
public function model(array $row)
{
return new AdvModel([
'name' => $row[0],
'slug' => Str::slug($row[0]),
'price' => $row[1],
'currency' => $row[2],
]);
}
}

View File

@ -25,13 +25,7 @@ class AdvTableButtons
return ($entry->getStatus() == 'approved') ? "danger" : "success"; return ($entry->getStatus() == 'approved') ? "danger" : "success";
}, },
], ],
'edit',
'edit' => [
'href' => function (EntryModel $entry) {
return route('visiosoft.module.advs::edit_adv', ['id' => $entry->getId()]);
},
'text' => "<font class='hidden-xs-down'>" . trans('streams::button.edit') . "</font>"
],
'settings' => [ 'settings' => [
'text' => false, 'text' => false,
'href' => false, 'href' => false,

View File

@ -1,13 +1,56 @@
<?php namespace Visiosoft\AdvsModule; <?php namespace Visiosoft\AdvsModule;
use Anomaly\FilesModule\Disk\Contract\DiskRepositoryInterface;
use Anomaly\FilesModule\Folder\Contract\FolderRepositoryInterface;
use Anomaly\Streams\Platform\Database\Seeder\Seeder; use Anomaly\Streams\Platform\Database\Seeder\Seeder;
class AdvsModuleSeeder extends Seeder class AdvsModuleSeeder extends Seeder
{ {
/**
* The disk repository.
*
* @var DiskRepositoryInterface
*/
protected $disks;
/**
* The folder repository.
*
* @var FolderRepositoryInterface
*/
protected $folders;
/**
* Create a new FolderSeeder instance.
*
* @param DiskRepositoryInterface $disks
* @param FolderRepositoryInterface $folders
*/
public function __construct(DiskRepositoryInterface $disks, FolderRepositoryInterface $folders)
{
parent::__construct();
$this->disks = $disks;
$this->folders = $folders;
}
/** /**
* Run the seeder. * Run the seeder.
*/ */
public function run() public function run()
{ {
//Create Store Icon Folder
if (!$this->folders->findBySlug('ads_excel')) {
$disk = $this->disks->findBySlug('local');
$this->folders->create([
'en' => [
'name' => 'Ads Excel',
'description' => 'A folder for Ads Excel.',
],
'slug' => 'ads_excel',
'disk' => $disk
]);
};
} }
} }

View File

@ -47,10 +47,18 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
], ],
'admin/advs-users/choose/{advId}' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@choose', 'admin/advs-users/choose/{advId}' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@choose',
'admin/class/actions/{id}/{type}' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@actions', 'admin/class/actions/{id}/{type}' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@actions',
//Excel
'admin/advs/export' => [ 'admin/advs/export' => [
'as' => 'advs::exportAdvs', 'as' => 'advs::exportAdvs',
'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@exportAdvs', 'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@exportAdvs',
], ],
'admin/advs/import' => [
'as' => 'visiosoft.module.advs::import.advs',
'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\ExcelController@import',
],
// advsController // advsController
'advs/list' => [ 'advs/list' => [
@ -263,6 +271,11 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
'title' => 'visiosoft.module.advs::button.export', 'title' => 'visiosoft.module.advs::button.export',
'href' => route('advs::exportAdvs'), 'href' => route('advs::exportAdvs'),
'page' => 'visiosoft.module.advs' 'page' => 'visiosoft.module.advs'
],
'import' => [
'title' => 'visiosoft.module.advs::button.import',
'href' => route('visiosoft.module.advs::import.advs'),
'page' => 'visiosoft.module.advs'
] ]
]; ];

View File

@ -0,0 +1,41 @@
<?php namespace Visiosoft\AdvsModule\Http\Controller\Admin;
use Anomaly\FilesModule\File\Contract\FileRepositoryInterface;
use Anomaly\Streams\Platform\Http\Controller\AdminController;
use Anomaly\Streams\Platform\Ui\Form\FormBuilder;
use Maatwebsite\Excel\Facades\Excel;
use Visiosoft\AdvsModule\Adv\AdvsImport;
class ExcelController extends AdminController
{
public function import(FormBuilder $builder, FileRepositoryInterface $fileRepository)
{
if (request()->action == "save" and $file = $fileRepository->find(request()->file)) {
if ($file->extension === 'xls' || $file->extension === 'xlsx') {
$pathToFolder = "/storage/streams/default/files-module/local/ads_excel/";
Excel::import(new AdvsImport(), base_path() . $pathToFolder . $file->name);
$this->messages->success(trans('streams::message.create_success', ['name' => trans('module::addon.title')]));
}
}
//Form Render
$builder->setFields([
'file' => [
"type" => "anomaly.field_type.file",
"config" => [
'folders' => ["ads_excel"],
'mode' => 'upload'
]
],
]);
$builder->setActions([
'save'
]);
$builder->setOptions([
'redirect' => route('visiosoft.module.advs::admin_advs')
]);
return $builder->render();
}
}