]> _ Git - pmi.git/commitdiff
wip #2926 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 23 Aug 2019 13:31:39 +0000 (15:31 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 23 Aug 2019 13:31:39 +0000 (15:31 +0200)
app/Http/Controllers/Admin/ApplicationCrudController.php [new file with mode: 0644]
app/Http/Controllers/Admin/CrudController.php [new file with mode: 0644]
app/Models/Application.php [new file with mode: 0644]
resources/views/vendor/backpack/base/inc/sidebar_content.blade.php
routes/backpack/custom.php

diff --git a/app/Http/Controllers/Admin/ApplicationCrudController.php b/app/Http/Controllers/Admin/ApplicationCrudController.php
new file mode 100644 (file)
index 0000000..1c01434
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use Cubist\Backpack\app\Magic\Controllers\CubistMagicNestedController;
+
+class ApplicationCrudController extends CubistMagicNestedController
+{
+    protected $_modelNamespace = 'App\Models\Page';
+    protected $_routeURL = 'application';
+    protected $_singular = 'application';
+    protected $_plural = 'applications';
+    protected $_clonable = true;
+    protected $_bulk = true;
+    protected $_oneInstance= false;
+}
diff --git a/app/Http/Controllers/Admin/CrudController.php b/app/Http/Controllers/Admin/CrudController.php
new file mode 100644 (file)
index 0000000..3467ed2
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+use Cubist\Backpack\app\Magic\Controllers\CubistMagicController;
+
+class CrudController extends CubistMagicController
+{
+    protected $_modelNamespace = 'App\Models\Application';
+    protected $_routeURL = '';
+    protected $_singular = '';
+    protected $_plural = '';
+    protected $_clonable = true;
+    protected $_bulk = true;
+    protected $_oneInstance= false;
+}
diff --git a/app/Models/Application.php b/app/Models/Application.php
new file mode 100644 (file)
index 0000000..9ce59a2
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+
+
+namespace App\Models;
+
+
+use Cubist\Backpack\app\Magic\Models\CubistMagicPageModel;
+
+class Application extends CubistMagicPageModel
+{
+    protected $table = 'applications';
+
+    protected $_options = ['name' => 'application',
+        'singular' => 'application',
+        'plural' => 'applications'];
+
+    public function setFields()
+    {
+        $this->addField(['name' => 'title',
+            'label' => 'Titre',
+            'type' => 'Text',
+            'column' => true,
+            'tab' => 'Contenus']);
+
+        $this->addField(['name' => 'image',
+            'type' => 'Images',
+            'label' => 'Image',
+            'tab' => 'Contenus']);
+
+        $this->addField(['name' => 'content',
+            'type' => 'Markdown',
+            'label' => 'Contenu',
+            'tab' => 'Contenus'
+        ]);
+
+        $this->addField(['name' => 'title_solutions',
+            'type' => 'Text',
+            'label' => 'Titre (Solution)',
+            'hint' => 'Titre affiché sur la page « Solution »',
+            'tab' => 'Page « Solution »']);
+
+        $this->addField(['name' => 'image_solutions',
+            'type' => 'Images',
+            'label' => 'Image (Solution)',
+            'hint' => 'Image affichée sur la page « Solutions »',
+            'tab' => 'Page « Solution »']);
+
+        $this->addField(['name' => 'related',
+            'label' => 'Produits associés',
+            'type' => 'SelectFromModel',
+            'optionsmodel' => 'App\Models\Product',
+            'multiple' => true,
+            'attribute' => 'reference',
+            'tab' => 'Produits associés',
+        ]);
+
+        parent::setFields();
+    }
+}
index ce3f9cc81d07f42ccbd7b1cd8a89deb2b24128b4..e51462498af66b6f5184554a7be7ace000a03660 100644 (file)
@@ -9,6 +9,7 @@
     @can('dev')
         <li><a href='{{ backpack_url('page') }}'><i class='fa fa-file-o'></i> <span>Pages</span></a></li>
         <li><a href="{{ backpack_url('news') }}"><i class="fa fa-newspaper-o"></i> <span>News</span></a></li>
+        <li><a href="{{ backpack_url('application') }}"><i class="fa fa-archive"></i> <span>Applications</span></a></li>
         @can('backpack_settings')
             <li><a href='{{ backpack_url('settings') }}'><i class='fa fa-cog'></i> <span>Paramètres</span></a></li>
         @endcan
index ffe9c802dbe93434568079c6661c342f9dcb459c..98b50658646469fb05da3451393ed6c6455e39ca 100644 (file)
@@ -4,6 +4,11 @@ Route::group([
     'middleware' => ['web', config('backpack.base.middleware_key', 'admin')],
     'namespace'  => 'App\Http\Controllers\Admin',
 ], function () { // custom admin routes
+    CRUD::resource('', 'CrudController')->with(function () {
+        Route::match(['post'], '/{id}/media', 'CrudController@uploadMedia');
+        Route::match(['delete'], '/{id}/media/{mediaId}', 'CrudController@deleteMedia');
+        Route::match(['post'], '/{id}/media/reorder', 'CrudController@reorderMedia');
+    });
     CRUD::resource('locale', 'LocaleCrudController')->with(function () {
         Route::match(['post'], 'locale/{id}/media', 'LocaleCrudController@uploadMedia');
         Route::match(['delete'], 'locale/{id}/media/{mediaId}', 'LocaleCrudController@deleteMedia');
@@ -14,10 +19,10 @@ Route::group([
         Route::match(['delete'], 'news/{id}/media/{mediaId}', 'NewsCrudController@deleteMedia');
         Route::match(['post'], 'news/{id}/media/reorder', 'NewsCrudController@reorderMedia');
     });
-    CRUD::resource('page', 'PageCrudController')->with(function () {
-        Route::match(['post'], 'page/{id}/media', 'PageCrudController@uploadMedia');
-        Route::match(['delete'], 'page/{id}/media/{mediaId}', 'PageCrudController@deleteMedia');
-        Route::match(['post'], 'page/{id}/media/reorder', 'PageCrudController@reorderMedia');
+    CRUD::resource('application', 'ApplicationCrudController')->with(function () {
+        Route::match(['post'], 'application/{id}/media', 'ApplicationCrudController@uploadMedia');
+        Route::match(['delete'], 'application/{id}/media/{mediaId}', 'ApplicationCrudController@deleteMedia');
+        Route::match(['post'], 'application/{id}/media/reorder', 'ApplicationCrudController@reorderMedia');
     });
     CRUD::resource('product', 'ProductCrudController')->with(function () {
         Route::match(['post'], 'product/{id}/media', 'ProductCrudController@uploadMedia');