diff --git a/Changelog b/Changelog index ee0a94037..dfe4faed7 100755 --- a/Changelog +++ b/Changelog @@ -1,4 +1,5 @@ 2018-03-05 DariusIII + * Chg: Add laravel-theme support for future usage * Chg: Update htmlpurifier to latest version * Chg: Fix bad logic in additional postprocessing settings check * Chg: Log error messages from ReleaseImage diff --git a/composer.json b/composer.json index 9943e4204..24c0670a3 100755 --- a/composer.json +++ b/composer.json @@ -132,6 +132,7 @@ "fxp/composer-asset-plugin": "~1.1", "google/recaptcha": "~1.1", "guzzlehttp/guzzle": "^6.3", + "igaster/laravel-theme": "^2.0", "imdbphp/imdbphp": "^5.2", "intervention/image": "^2.4", "intervention/imagecache": "^2.3", diff --git a/composer.lock b/composer.lock index a698d050b..9f4f2ae90 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "e63593e4354a3c5d87cd69467a629041", + "content-hash": "28aba5bba1e9c29d397f2d9358033d02", "packages": [ { "name": "adrenth/thetvdb2", @@ -2712,6 +2712,69 @@ ], "time": "2017-03-20T17:10:46+00:00" }, + { + "name": "igaster/laravel-theme", + "version": "v2.0.6", + "source": { + "type": "git", + "url": "https://github.com/igaster/laravel-theme.git", + "reference": "d3835fd99418848ba130e3f7a73d3f78ab636471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/igaster/laravel-theme/zipball/d3835fd99418848ba130e3f7a73d3f78ab636471", + "reference": "d3835fd99418848ba130e3f7a73d3f78ab636471", + "shasum": "" + }, + "require": { + "illuminate/contracts": "5.4.*|5.5.*|5.6.*" + }, + "require-dev": { + "orchestra/testbench": "~3.4", + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "orchestra/asset": "Use '@css' and '@js' in Blade files" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Igaster\\LaravelTheme\\themeServiceProvider" + ], + "aliases": { + "Theme": "Igaster\\LaravelTheme\\Facades\\Theme" + } + } + }, + "autoload": { + "psr-4": { + "Igaster\\LaravelTheme\\": "src/", + "Igaster\\LaravelTheme\\Tests\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Giannis Gasteratos", + "email": "igasteratos@gmail.com" + } + ], + "description": "Laravel 5 Themes: Asset & Views folder per theme. Theme inheritance. Blade integration and more...", + "homepage": "https://github.com/Igaster/laravel-theme.git", + "keywords": [ + "assets", + "blade", + "laravel-5", + "package", + "themes", + "views" + ], + "time": "2018-02-12T11:19:00+00:00" + }, { "name": "imdbphp/imdbphp", "version": "v5.2.6", diff --git a/config/app.php b/config/app.php index be2395ba3..610f30be8 100644 --- a/config/app.php +++ b/config/app.php @@ -164,6 +164,7 @@ return [ Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class, Orangehill\Iseed\IseedServiceProvider::class, Intervention\Image\ImageServiceProvider::class, + Igaster\LaravelTheme\themeServiceProvider::class, ], @@ -214,6 +215,7 @@ return [ 'URL' => Illuminate\Support\Facades\URL::class, 'Validator' => Illuminate\Support\Facades\Validator::class, 'View' => Illuminate\Support\Facades\View::class, + 'Theme' => Igaster\LaravelTheme\Facades\Theme::class, ], diff --git a/config/themes.php b/config/themes.php new file mode 100644 index 000000000..3db36d06e --- /dev/null +++ b/config/themes.php @@ -0,0 +1,98 @@ + null, // eg: base_path('resources/themes') + + /* + |-------------------------------------------------------------------------- + | Set behavior if an asset is not found in a Theme hierarchy. + | Available options: THROW_EXCEPTION | LOG_ERROR | IGNORE + |-------------------------------------------------------------------------- + */ + + 'asset_not_found' => 'LOG_ERROR', + + /* + |-------------------------------------------------------------------------- + | Do we want a theme activated by default? Can be set at runtime with: + | Theme::set('theme-name'); + |-------------------------------------------------------------------------- + */ + + 'default' => 'Gentele', + + /* + |-------------------------------------------------------------------------- + | Cache theme.json configuration files that are located in each theme's folder + | in order to avoid searching theme settings in the filesystem for each request + |-------------------------------------------------------------------------- + */ + + 'cache' => true, + + /* + |-------------------------------------------------------------------------- + | Define available themes. Format: + | + | 'theme-name' => [ + | 'extends' => 'theme-to-extend', // optional + | 'views-path' => 'path-to-views', // defaults to: resources/views/theme-name + | 'asset-path' => 'path-to-assets', // defaults to: public/theme-name + | + | // You can add your own custom keys + | // Use Theme::getSetting('key') & Theme::setSetting('key', 'value') to access them + | 'key' => 'value', + | ], + | + |-------------------------------------------------------------------------- + */ + + 'themes' => [ + + // Add your themes here. These settings will override theme.json settings defined for each theme + + /* + |---------------------------[ Example Structure ]-------------------------- + | + | // Full theme Syntax: + | + | 'example1' => [ + | 'extends' => null, // doesn't extend any theme + | 'views-path' => example, // = resources/views/example_theme + | 'asset-path' => example, // = public/example_theme + | ], + | + | // Use all Defaults: + | + | 'example2', // Assets =\public\example2, Views =\resources\views\example2 + | // Note that if you use all default values, you can omit declaration completely. + | // i.e. defaults will be used when you call Theme::set('undefined-theme') + | + | + | // This theme shares the views with example2 but defines its own assets in \public\example3 + | + | 'example3' => [ + | 'views-path' => 'example', + | ], + | + | // This theme extends example1 and may override SOME views\assets in its own paths + | + | 'example4' => [ + | 'extends' => 'example1', + | ], + | + |-------------------------------------------------------------------------- + */ + ], + +];