We currently only have module_exists
. If there were respective functions for themes and layouts, then code like this:
function _installer_browser_is_project_enabled($type, $name) {
switch ($type) {
case 'module':
return module_exists($name);
break;
case 'theme':
$themes = list_themes();
return isset($themes[$name]);
break;
case 'layout':
$layout = layout_load($name);
return !empty($layout);
break;
}
return FALSE;
}
...which is actually not working to effectively determine whether a layout is enabled or not (#2336) and the best that I could come up with to correct it is this:
function _installer_browser_is_project_enabled($type, $name) {
switch ($type) {
case 'module':
return module_exists($name);
break;
case 'theme':
$themes = list_themes();
return isset($themes[$name]);
break;
case 'layout':
$excluded_templates = config_get('layout.settings', 'excluded_templates');
return (!empty(layout_get_layout_info($name)) && !in_array($name, $excluded_templates));
break;
}
return FALSE;
}
...would be much simpler:
function _installer_browser_is_project_enabled($type, $name) {
switch ($type) {
case 'module':
return module_exists($name);
break;
case 'theme':
return theme_exists($name);
break;
case 'layout':
return layout_exists($name);
break;
}
return FALSE;
}
And if there was a generic project_exists
function, then we wouldn't need _installer_browser_is_project_enabled()
in the first place.
In fact, I don't think that *_exists
as function names are precise. We should consider separate *_exists
and *_enabled
functions. Especially now that we have Project Installer where we need to distinguish between downloaded vs installed/enabled projects.
PS: this is a sibling issue to #332
Recent comments
Hi Mike, try user/login, that should work.
Admin login - help
I wrote a blog post a while back about how the color module works, in case that is helpful. https://www.triplo.co/blog/color-module-backdrop-cms
Color module aggressive search and replace custom css color values
You are asking this question at the right time. Work has been done on the Content Moderation module for Backdrop CMS, but it's still not working fully. We would welcome help getting this...
Workflow module or equivalent?