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
We can no longer add contrib projects in the Tugboat sandboxes that we use for core PR's? Can this be fixed or is there a reason for this? We can add contrib projects to demo...
Apr 25th Weekly Meetings
The Mail System and MimeMail modules are now installed. I'll let you know if they solve the problem. Edit: Using Mail System with MimeMail I was able to send plain text emails. There is...
HTML Email treated as plain text
If you haven't already I recommend installing Mail System and MimeMail. The latter will help format emails as HTML and first helps with configuring which module will handle the formatting...
HTML Email treated as plain text