]> _ Git - pmi.git/commitdiff
wip #2837 @2
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 17 Jun 2019 17:14:07 +0000 (19:14 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 17 Jun 2019 17:14:07 +0000 (19:14 +0200)
app/Models/Product.php
config/app.php
config/medialibrary.php [new file with mode: 0644]
public/.htaccess

index 5add13e73f3127c479b65b103fb004b82405057d..49c78149ac863d483e030ebb675fd3e0c4454043 100644 (file)
@@ -3,6 +3,7 @@
 namespace App\Models;
 
 use Cubist\Backpack\app\Magic\Models\CubistMagicModel;
+use Cubist\Util\Text;
 use Illuminate\Support\Str;
 
 class Product extends CubistMagicModel
@@ -112,14 +113,13 @@ class Product extends CubistMagicModel
             'type' => 'Markdown',
             'tab' => 'Textes']);
 
-//        $this->addField(['name' => 'related',
-//            'label' => 'Produits associés',
-//            'type' => 'SelectFromModel',
-//            'optionsmodel' => 'App\Models\Product',
-//            'multiple' => true,
-//            'tab'=>'Produits associés'
-//        ]);
-
+        $this->addField(['name' => 'related',
+            'label' => 'Produits associés',
+            'type' => 'SelectFromModel',
+            'optionsmodel' => 'App\Models\Product',
+            'multiple' => true,
+            'tab' => 'Produits associés'
+        ]);
 
         $this->addSpecifications();
     }
@@ -158,7 +158,7 @@ class Product extends CubistMagicModel
                 continue;
             }
             $params = ['tab' => 'Spécifications',
-                'name' => 's_' . Str::snake($spec->name),
+                'name' => 's_' . Text::removeAccents(Str::snake($spec->name)),
                 'label' => $spec->name,
                 'fake' => true,
                 'store_in' => 'specifications',
index 696ac99060f29268d49877c9f0f45da15f5f53a3..2ea4754983c80390327b2e7875de75e8f8b034fe 100644 (file)
@@ -41,6 +41,30 @@ return [
 
     'debug' => env('APP_DEBUG', false),
 
+    'debug_blacklist' => [
+        '_ENV' => [
+            'APP_KEY',
+            'DB_PASSWORD',
+            'REDIS_PASSWORD',
+            'MAIL_PASSWORD',
+            'PUSHER_APP_KEY',
+            'PUSHER_APP_SECRET',
+            'BACKPACK_LICENSE',
+        ],
+        '_SERVER' => [
+            'APP_KEY',
+            'DB_PASSWORD',
+            'REDIS_PASSWORD',
+            'MAIL_PASSWORD',
+            'PUSHER_APP_KEY',
+            'PUSHER_APP_SECRET',
+            'BACKPACK_LICENSE',
+        ],
+        '_POST' => [
+            'password',
+        ],
+    ],
+
     /*
     |--------------------------------------------------------------------------
     | Application URL
diff --git a/config/medialibrary.php b/config/medialibrary.php
new file mode 100644 (file)
index 0000000..9275e29
--- /dev/null
@@ -0,0 +1,150 @@
+<?php
+
+return [
+
+    /*
+     * The disk on which to store added files and derived images by default. Choose
+     * one or more of the disks you've configured in config/filesystems.php.
+     */
+    'disk_name' => 'public',
+
+    /*
+     * The maximum file size of an item in bytes.
+     * Adding a larger file will result in an exception.
+     */
+    'max_file_size' => 1024 * 1024 * 1024,
+
+    /*
+     * This queue will be used to generate derived and responsive images.
+     * Leave empty to use the default queue.
+     */
+    'queue_name' => '',
+
+    /*
+     * The fully qualified class name of the media model.
+     */
+    'media_model' => Spatie\MediaLibrary\Models\Media::class,
+
+    's3' => [
+        /*
+         * The domain that should be prepended when generating urls.
+         */
+        'domain' => 'https://'.env('AWS_BUCKET').'.s3.amazonaws.com',
+    ],
+
+    'remote' => [
+        /*
+         * Any extra headers that should be included when uploading media to
+         * a remote disk. Even though supported headers may vary between
+         * different drivers, a sensible default has been provided.
+         *
+         * Supported by S3: CacheControl, Expires, StorageClass,
+         * ServerSideEncryption, Metadata, ACL, ContentEncoding
+         */
+        'extra_headers' => [
+            'CacheControl' => 'max-age=604800',
+        ],
+    ],
+
+    'responsive_images' => [
+
+        /*
+        * This class is responsible for calculating the target widths of the responsive
+        * images. By default we optimize for filesize and create variations that each are 20%
+        * smaller than the previous one. More info in the documentation.
+        *
+        * https://docs.spatie.be/laravel-medialibrary/v7/advanced-usage/generating-responsive-images
+        */
+        'width_calculator' => Spatie\MediaLibrary\ResponsiveImages\WidthCalculator\FileSizeOptimizedWidthCalculator::class,
+
+        /*
+         * By default rendering media to a responsive image will add some javascript and a tiny placeholder.
+         * This ensures that the browser can already determine the correct layout.
+         */
+        'use_tiny_placeholders' => true,
+
+        /*
+         * This class will generate the tiny placeholder used for progressive image loading. By default
+         * the medialibrary will use a tiny blurred jpg image.
+         */
+        'tiny_placeholder_generator' => Spatie\MediaLibrary\ResponsiveImages\TinyPlaceholderGenerator\Blurred::class,
+    ],
+
+    /*
+     * When urls to files get generated, this class will be called. Leave empty
+     * if your files are stored locally above the site root or on s3.
+     */
+    'url_generator' => null,
+
+    /*
+     * The class that contains the strategy for determining a media file's path.
+     */
+    'path_generator' => null,
+
+    /*
+     * Medialibrary will try to optimize all converted images by removing
+     * metadata and applying a little bit of compression. These are
+     * the optimizers that will be used by default.
+     */
+    'image_optimizers' => [
+        Spatie\ImageOptimizer\Optimizers\Jpegoptim::class => [
+            '--strip-all', // this strips out all text information such as comments and EXIF data
+            '--all-progressive', // this will make sure the resulting image is a progressive one
+        ],
+        Spatie\ImageOptimizer\Optimizers\Pngquant::class => [
+            '--force', // required parameter for this package
+        ],
+        Spatie\ImageOptimizer\Optimizers\Optipng::class => [
+            '-i0', // this will result in a non-interlaced, progressive scanned image
+            '-o2', // this set the optimization level to two (multiple IDAT compression trials)
+            '-quiet', // required parameter for this package
+        ],
+        Spatie\ImageOptimizer\Optimizers\Svgo::class => [
+            '--disable=cleanupIDs', // disabling because it is known to cause troubles
+        ],
+        Spatie\ImageOptimizer\Optimizers\Gifsicle::class => [
+            '-b', // required parameter for this package
+            '-O3', // this produces the slowest but best results
+        ],
+    ],
+
+    /*
+     * These generators will be used to create an image of media files.
+     */
+    'image_generators' => [
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Image::class,
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Webp::class,
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Pdf::class,
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Svg::class,
+        Spatie\MediaLibrary\ImageGenerators\FileTypes\Video::class,
+    ],
+
+    /*
+     * The engine that should perform the image conversions.
+     * Should be either `gd` or `imagick`.
+     */
+    'image_driver' => 'gd',
+
+    /*
+     * FFMPEG & FFProbe binaries paths, only used if you try to generate video
+     * thumbnails and have installed the php-ffmpeg/php-ffmpeg composer
+     * dependency.
+     */
+    'ffmpeg_path' => env('FFMPEG_PATH', '/usr/bin/ffmpeg'),
+    'ffprobe_path' => env('FFPROBE_PATH', '/usr/bin/ffprobe'),
+
+    /*
+     * The path where to store temporary files while performing image conversions.
+     * If set to null, storage_path('medialibrary/temp') will be used.
+     */
+    'temporary_directory_path' => null,
+
+    /*
+     * Here you can override the class names of the jobs used by this package. Make sure
+     * your custom jobs extend the ones provided by the package.
+     */
+    'jobs' => [
+        'perform_conversions' => Spatie\MediaLibrary\Jobs\PerformConversions::class,
+        'generate_responsive_images' => Spatie\MediaLibrary\Jobs\GenerateResponsiveImages::class,
+    ],
+];
index 8a54ec930a7633523b0b9fbd4f35e23b0a40f4e6..dd46d0cb17204a6a8c61d6a61464dfa419ad9faa 100644 (file)
@@ -5,10 +5,12 @@
 
     RewriteEngine On
 
+    # Redirect to https if accessing from http
     RewriteCond %{HTTPS} off
     RewriteCond %{HTTP_HOST} (pm-instrumentation.com)$
     RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
 
+    # Redirect first dev space to staging
     RewriteCond %{HTTP_HOST} =pmi.dev.cubedesigners.com
     RewriteRule ^(.*)$ https://staging.pm-instrumentation.com/$1 [R=301,L]