Skip to content

Commit

Permalink
Merge pull request #12 from thedevdojo/updatingThemes
Browse files Browse the repository at this point in the history
Updating themes
  • Loading branch information
tnylea authored Aug 4, 2024
2 parents 4840cc0 + 5f08d3a commit 7735128
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 20 deletions.
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,16 @@ You will want to publish the themes config, and you will now see a new config lo
return [
'themes_folder' => resource_path('views/themes'),
'folder' => resource_path('themes'),
'publish_assets' => true,
'create_tables' => true
];
```

Now, you can choose an alternate location for your themes folder. By default this will be put into the `resources/views` folder; however, you can change that to any location you would like.
Now, you can choose an alternate location for your themes folder. By default this will be put into the `resources` folder; however, you can change that to any location you would like.

> Warning, If you add the themes folder into the `resources/views` folder and you run `php artisan optimize` you may get an error that it cannot find certain components. This is because it will search all the `.blade.php` files inside the views folder. So, this may not be the best place to put your themes. Instead this package will register only the views of the active theme.
Additionally, you can set **publish_assets** to *true* or *false*, if it is set to *true* anytime the themes directory is scanned it will publish the `assets` folder in your theme to the public folder inside a new `themes` folder. Set this to *false* and this will no longer happen.

4 changes: 1 addition & 3 deletions config/themes.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
<?php

return [

'themes_folder' => resource_path('views/themes'),
'folder' => resource_path('themes'),
'publish_assets' => true,
'create_tables' => true

];
2 changes: 1 addition & 1 deletion resources/views/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@
@if(count($themes) < 1)
<div class="alert alert-warning">
<strong>Wuh oh!</strong>
<p>It doesn't look like you have any themes available in your theme folder located at <code><?= resource_path('views/themes'); ?></code></p>
<p>It doesn't look like you have any themes available in your theme folder located at <code><?= resource_path('themes'); ?></code></p>
</div>
@endif

Expand Down
2 changes: 1 addition & 1 deletion resources/views/options.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
<div class="panel">
<div class="panel-body">

@if(file_exists(config('themes.themes_folder', resource_path('views/themes')) . '/' . $theme->folder . '/options.blade.php'))
@if(file_exists(config('themes.folder', resource_path('themes')) . '/' . $theme->folder . '/options.blade.php'))
<?php if (!defined('ACTIVE_THEME_FOLDER')) { define("ACTIVE_THEME_FOLDER", $theme->folder); } ?>
<form action="{{ route('voyager.theme.options', $theme->folder) }}" method="POST" enctype="multipart/form-data">

Expand Down
2 changes: 1 addition & 1 deletion src/Http/Controllers/ThemesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class ThemesController extends Controller
private $themes_folder = '';

public function __construct(){
$this->themes_folder = config('themes.themes_folder', resource_path('views/themes'));
$this->themes_folder = config('themes.folder', resource_path('themes'));
}

public function index(){
Expand Down
26 changes: 14 additions & 12 deletions src/ThemesServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class ThemesServiceProvider extends ServiceProvider
*/
public function register()
{
if ( request()->is(config('voyager.prefix')) || request()->is(config('voyager.prefix').'/*') || app()->runningInConsole() ) {
if ( app()->runningInConsole() ) {

try {
DB::connection()->getPdo();
Expand Down Expand Up @@ -66,7 +66,9 @@ public function boot()
{
try{

$this->loadViewsFrom(__DIR__.'/../resources/views', 'themes');
// dd(config('themes.folder'));

//$this->loadViewsFrom(config('themes.folder'), 'themes');

$theme = '';

Expand All @@ -84,17 +86,17 @@ public function boot()

view()->share('theme', $theme);

$this->themes_folder = config('themes.themes_folder', resource_path('views/themes'));
$folder = config('themes.folder', resource_path('themes'));

$this->loadDynamicMiddleware($this->themes_folder, $theme);
$this->loadDynamicMiddleware($folder, $theme);
$this->registerThemeComponents($theme);
$this->registerThemeFolioDirectory($theme);

// Make sure we have an active theme
if (isset($theme)) {
$this->loadViewsFrom($this->themes_folder.'/'.@$theme->folder, 'theme');
$this->loadViewsFrom($folder.'/'.@$theme->folder, 'theme');
}
$this->loadViewsFrom($this->themes_folder, 'themes_folder');
//$this->loadViewsFrom($folder, 'themes_folder');

} catch(\Exception $e){
return $e->getMessage();
Expand All @@ -120,13 +122,13 @@ public function addThemeRoutes($router)
}

private function registerThemeComponents($theme){
Blade::anonymousComponentPath(resource_path('views/themes/' . $theme->folder . '/components/elements'));
Blade::anonymousComponentPath(resource_path('views/themes/' . $theme->folder . '/components'));
Blade::anonymousComponentPath(config('themes.folder') . '/' . $theme->folder . '/components/elements');
Blade::anonymousComponentPath(config('themes.folder') . '/' . $theme->folder . '/components');
}

private function registerThemeFolioDirectory($theme){
if (File::exists(resource_path('views/themes/' . $theme->folder . '/pages'))) {
Folio::path(resource_path('views/themes/' . $theme->folder . '/pages'))->middleware([
if (File::exists( config('themes.folder') . '/' . $theme->folder . '/pages')) {
Folio::path( config('themes.folder') . '/' . $theme->folder . '/pages')->middleware([
'*' => [
//
],
Expand Down Expand Up @@ -182,11 +184,11 @@ protected function ensurePermissionExist()
}
}

private function loadDynamicMiddleware($themes_folder, $theme){
private function loadDynamicMiddleware($folder, $theme){
if (empty($theme)) {
return;
}
$middleware_folder = $themes_folder . '/' . $theme->folder . '/middleware';
$middleware_folder = $folder . '/' . $theme->folder . '/middleware';
if(file_exists( $middleware_folder )){
$middleware_files = scandir($middleware_folder);
foreach($middleware_files as $middleware){
Expand Down

0 comments on commit 7735128

Please sign in to comment.