function cms_portfolio_field_group_pre_render in Glazed CMS Portfolio 8
Same name and namespace in other branches
- 7 cms_portfolio.module \cms_portfolio_field_group_pre_render()
Implements hook_field_group_pre_render().
File
- ./
cms_portfolio.module, line 23 - Primary module hooks for CMS Portfolio module.
Code
function cms_portfolio_field_group_pre_render(&$element, $group, &$form) {
if ($group->bundle == 'cms_portfolio_project' && $group->context == 'view') {
$layout = 'top';
if (!empty($form['#node']
->get('field_cms_portfolio_layout')
->getString())) {
$layout = $form['#node']
->get('field_cms_portfolio_layout')
->getString();
}
elseif (theme_get_setting('portfolio_details')) {
$layout = theme_get_setting('portfolio_details');
}
$sidebar = 4;
if (!empty($form['#node']
->get('field_cms_portfolio_sb_width')
->getString())) {
$sidebar = $form['#node']
->get('field_cms_portfolio_sb_width')
->getString();
}
elseif (theme_get_setting('portfolio_sidebar')) {
$sidebar = theme_get_setting('portfolio_sidebar');
}
$main = 12 - $sidebar;
$sidebar_class = 'col-sm-' . $sidebar;
$main_class = 'col-sm-' . $main;
// LAYOUT CLASSES FOR PORTFOLIO NODES
// Top Fields Wrapper Field Group
if ($group->group_name == 'group_cms_portfolio_top_fields') {
// Set weight to change source order of groups
if ($layout == 'hide') {
unset($element['group_extra_fields']);
unset($element['field_cms_page_body']);
}
else {
if ($layout == 'right' or $layout == 'bottom') {
$group->weight = 99;
}
if ($layout == 'bottom' or $layout == 'top') {
$group->format_settings['classes'] .= ' row';
$element['field_cms_page_body']['#attributes'] = [
'class' => [
$main_class,
],
];
}
else {
$group->format_settings['classes'] .= ' ' . $sidebar_class;
}
}
}
// Extra Fields Field Group
if ($group->group_name == 'group_extra_fields') {
if ($layout == 'bottom' or $layout == 'top') {
$group->format_settings['classes'] .= ' ' . $sidebar_class;
}
else {
$element['#prefix'] = '<hr>';
}
}
// Images Field Group
if ($group->group_name == 'group_cms_portfolio_images') {
if ($layout == 'left' or $layout == 'right') {
$group->format_settings['classes'] .= ' ' . $main_class;
}
}
}
}