Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Platform
Commits
78d761e9
Commit
78d761e9
authored
Jan 09, 2017
by
Nicolas Widart
Committed by
GitHub
Jan 09, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #297 from armababy/feature/extra-view-namespaces
Feature/extra view namespaces
parents
61b2dcab
40764b7a
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
291 additions
and
58 deletions
+291
-58
config.php
Modules/Core/Config/config.php
+18
-0
core.php
Modules/Core/Config/core.php
+43
-36
CoreServiceProvider.php
Modules/Core/Providers/CoreServiceProvider.php
+61
-16
helpers.php
Modules/Core/helpers.php
+7
-0
config.php
Modules/Dashboard/Config/config.php
+18
-0
DashboardServiceProvider.php
Modules/Dashboard/Providers/DashboardServiceProvider.php
+0
-4
config.php
Modules/Media/Config/config.php
+18
-0
config.php
Modules/Menu/Config/config.php
+18
-0
config.php
Modules/Page/Config/config.php
+18
-0
config.php
Modules/Setting/Config/config.php
+18
-0
config.php
Modules/Tag/Config/config.php
+18
-0
config.php
Modules/Translation/Config/config.php
+18
-0
config.php
Modules/User/Config/config.php
+18
-0
UserServiceProvider.php
Modules/User/Providers/UserServiceProvider.php
+0
-2
config.php
Modules/Workshop/Config/config.php
+18
-0
No files found.
Modules/Core/Config/config.php
View file @
78d761e9
...
...
@@ -14,4 +14,22 @@ return [
'setting'
,
'media'
,
],
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
false
,
],
];
Modules/Core/Config/core.php
View file @
78d761e9
...
...
@@ -148,4 +148,11 @@ return [
'main.js'
,
],
],
/*
|--------------------------------------------------------------------------
| Enable module view overrides at theme locations
|--------------------------------------------------------------------------
*/
'enable-theme-overrides'
=>
false
,
];
Modules/Core/Providers/CoreServiceProvider.php
View file @
78d761e9
...
...
@@ -23,11 +23,6 @@ class CoreServiceProvider extends ServiceProvider
*/
protected
$defer
=
false
;
/**
* @var string
*/
protected
$prefix
=
'asgard'
;
/**
* The filters base class name.
*
...
...
@@ -45,15 +40,15 @@ class CoreServiceProvider extends ServiceProvider
public
function
boot
()
{
$this
->
registerMiddleware
(
$this
->
app
[
'router'
]);
$this
->
registerModuleResourceNamespaces
();
$this
->
publishConfig
(
'core'
,
'available-locales'
);
$this
->
publishConfig
(
'core'
,
'config'
);
$this
->
publishConfig
(
'core'
,
'core'
);
$this
->
publishConfig
(
'core'
,
'settings'
);
$this
->
publishConfig
(
'core'
,
'permissions'
);
$this
->
registerMiddleware
(
$this
->
app
[
'router'
]);
$this
->
registerModuleResourceNamespaces
();
$this
->
bladeDirectives
();
}
...
...
@@ -119,6 +114,24 @@ class CoreServiceProvider extends ServiceProvider
return
new
ThemeManager
(
$app
,
$path
);
});
$this
->
app
->
singleton
(
'asgard.ModulesList'
,
function
()
{
return
[
'block'
,
'blog'
,
'core'
,
'dashboard'
,
'media'
,
'menu'
,
'notification'
,
'page'
,
'setting'
,
'tag'
,
'translation'
,
'user'
,
'workshop'
,
];
});
}
/**
...
...
@@ -126,8 +139,20 @@ class CoreServiceProvider extends ServiceProvider
*/
private
function
registerModuleResourceNamespaces
()
{
$themes
=
[];
// Saves about 20ms-30ms at loading
if
(
$this
->
app
[
'config'
]
->
get
(
'asgard.core.core.enable-theme-overrides'
)
===
true
)
{
$themeManager
=
app
(
ThemeManager
::
class
);
$themes
=
[
'backend'
=>
$themeManager
->
find
(
config
(
'asgard.core.core.admin-theme'
))
->
getPath
(),
'frontend'
=>
$themeManager
->
find
(
setting
(
'core::template'
,
null
,
'Flatly'
))
->
getPath
(),
];
}
foreach
(
$this
->
app
[
'modules'
]
->
getOrdered
()
as
$module
)
{
$this
->
registerViewNamespace
(
$module
);
$this
->
registerViewNamespace
(
$module
,
$themes
);
$this
->
registerLanguageNamespace
(
$module
);
}
}
...
...
@@ -135,16 +160,36 @@ class CoreServiceProvider extends ServiceProvider
/**
* Register the view namespaces for the modules
* @param Module $module
* @param array $themes
*/
protected
function
registerViewNamespace
(
Module
$module
)
protected
function
registerViewNamespace
(
Module
$module
,
array
$themes
)
{
if
(
$module
->
getLowerName
()
==
'user'
)
{
return
;
$hints
=
[];
$moduleName
=
$module
->
getLowerName
();
if
(
is_core_module
(
$moduleName
))
{
$configFile
=
'config'
;
$configKey
=
'asgard.'
.
$moduleName
.
'.'
.
$configFile
;
$this
->
mergeConfigFrom
(
$module
->
getExtraPath
(
'Config'
.
DIRECTORY_SEPARATOR
.
$configFile
.
'.php'
),
$configKey
);
$moduleConfig
=
$this
->
app
[
'config'
]
->
get
(
$configKey
.
'.useViewNamespaces'
);
if
(
count
(
$themes
)
>
0
)
{
if
(
$themes
[
'backend'
]
!==
null
&&
array_get
(
$moduleConfig
,
'backend-theme'
)
===
true
)
{
$hints
[]
=
$themes
[
'backend'
]
.
'/views/modules/asgard/'
.
$moduleName
;
}
$this
->
app
[
'view'
]
->
addNamespace
(
$module
->
getLowerName
(),
$module
->
getPath
()
.
'/Resources/views'
);
if
(
$themes
[
'frontend'
]
!==
null
&&
array_get
(
$moduleConfig
,
'frontend-theme'
)
===
true
)
{
$hints
[]
=
$themes
[
'frontend'
]
.
'/views/modules/asgard/'
.
$moduleName
;
}
}
if
(
array_get
(
$moduleConfig
,
'resources'
)
===
true
)
{
$hints
[]
=
base_path
(
'resources/views/asgard/'
.
$moduleName
);
}
}
$hints
[]
=
$module
->
getPath
()
.
'/Resources/views'
;
$this
->
app
[
'view'
]
->
addNamespace
(
$moduleName
,
$hints
);
}
/**
...
...
Modules/Core/helpers.php
View file @
78d761e9
...
...
@@ -26,3 +26,10 @@ if (! function_exists('is_module_enabled')) {
return
array_key_exists
(
$module
,
app
(
'modules'
)
->
enabled
());
}
}
if
(
!
function_exists
(
'is_core_module'
))
{
function
is_core_module
(
$module
)
{
return
in_array
(
strtolower
(
$module
),
app
(
'asgard.ModulesList'
));
}
}
Modules/Dashboard/Config/config.php
View file @
78d761e9
...
...
@@ -10,4 +10,22 @@ return [
| No custom sidebar: null
*/
'custom-sidebar'
=>
null
,
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
true
,
],
];
Modules/Dashboard/Providers/DashboardServiceProvider.php
View file @
78d761e9
...
...
@@ -44,10 +44,6 @@ class DashboardServiceProvider extends ServiceProvider
__DIR__
.
'/../Resources/views'
=>
base_path
(
'resources/views/asgard/dashboard'
),
],
'views'
);
$this
->
app
[
'view'
]
->
prependNamespace
(
'dashboard'
,
base_path
(
'resources/views/asgard/dashboard'
)
);
$this
->
app
[
'view'
]
->
prependNamespace
(
'dashboard'
,
$theme
->
find
(
config
(
'asgard.core.core.admin-theme'
))
->
getPath
()
.
'/views/modules/dashboard'
...
...
Modules/Media/Config/config.php
View file @
78d761e9
...
...
@@ -48,4 +48,22 @@ return [
| No custom sidebar: null
*/
'custom-sidebar'
=>
null
,
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
false
,
],
];
Modules/Menu/Config/config.php
View file @
78d761e9
...
...
@@ -18,4 +18,22 @@ return [
| having to send it via the views
*/
'default_menu_presenter'
=>
null
,
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
false
,
],
];
Modules/Page/Config/config.php
View file @
78d761e9
...
...
@@ -53,4 +53,22 @@ return [
| No custom sidebar: null
*/
'custom-sidebar'
=>
null
,
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
false
,
],
];
Modules/Setting/Config/config.php
View file @
78d761e9
...
...
@@ -10,4 +10,22 @@ return [
| No custom sidebar: null
*/
'custom-sidebar'
=>
null
,
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
false
,
],
];
Modules/Tag/Config/config.php
View file @
78d761e9
...
...
@@ -12,4 +12,22 @@ return [
| No custom sidebar: null
*/
'custom-sidebar'
=>
null
,
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
false
,
],
];
Modules/Translation/Config/config.php
View file @
78d761e9
...
...
@@ -18,4 +18,22 @@ return [
| No custom sidebar: null
*/
'custom-sidebar'
=>
null
,
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
false
,
],
];
Modules/User/Config/config.php
View file @
78d761e9
...
...
@@ -98,4 +98,22 @@ return [
| No custom sidebar: null
*/
'custom-sidebar'
=>
null
,
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
true
,
],
];
Modules/User/Providers/UserServiceProvider.php
View file @
78d761e9
...
...
@@ -67,8 +67,6 @@ class UserServiceProvider extends ServiceProvider
$this
->
publishes
([
__DIR__
.
'/../Resources/views'
=>
base_path
(
'resources/views/asgard/user'
),
]);
$this
->
loadViewsFrom
(
base_path
(
'resources/views/asgard/user'
),
'user'
);
$this
->
loadViewsFrom
(
__DIR__
.
'/../Resources/views'
,
'user'
);
$this
->
publishConfig
(
'user'
,
'permissions'
);
$this
->
publishConfig
(
'user'
,
'config'
);
...
...
Modules/Workshop/Config/config.php
View file @
78d761e9
...
...
@@ -10,4 +10,22 @@ return [
| No custom sidebar: null
*/
'custom-sidebar'
=>
null
,
/*
|--------------------------------------------------------------------------
| Load additional view namespaces for a module
|--------------------------------------------------------------------------
| You can specify place from which you would like to use module views.
| You can use any combination, but generally it's advisable to add only one,
| extra view namespace.
| By default every extra namespace will be set to false.
*/
'useViewNamespaces'
=>
[
// Read module views from /Themes/<backend-theme-name>/views/modules/asgard/<module-name>
'backend-theme'
=>
false
,
// Read module views from /Themes/<frontend-theme-name>/views/modules/asgard/<module-name>
'frontend-theme'
=>
false
,
// Read module views from /resources/views/asgard/<module-name>
'resources'
=>
false
,
],
];
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment