diff --git a/plugins/layouts/flexible/flexible.inc b/plugins/layouts/flexible/flexible.inc index f49886b..415acbe 100644 --- a/plugins/layouts/flexible/flexible.inc +++ b/plugins/layouts/flexible/flexible.inc @@ -471,15 +471,26 @@ function panels_flexible_render_items($renderer, $list, $owner_id) { switch ($item['type']) { case 'column': $content = panels_flexible_render_items($renderer, $item['children'], $renderer->base['column'] . '-' . $id); - $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max); + if (empty($renderer->settings['items'][$id]['hide_empty']) || trim($content)) { + $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max); + } break; case 'row': $content = panels_flexible_render_items($renderer, $item['children'], $renderer->base['row'] . '-' . $id); - $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max, TRUE); + if (empty($renderer->settings['items'][$id]['hide_empty']) || trim($content)) { + $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max, TRUE); + } break; case 'region': - $content = isset($renderer->content[$id]) ? $renderer->content[$id] : " "; - $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max); + if (empty($renderer->settings['items'][$id]['hide_empty'])) { + $content = isset($renderer->content[$id]) ? $renderer->content[$id] : " "; + } + else { + $content = isset($renderer->content[$id]) ? trim($renderer->content[$id]) : ""; + } + if (empty($renderer->settings['items'][$id]['hide_empty']) || $content) { + $groups[$location] .= panels_flexible_render_item($renderer, $item, $content, $id, $position, $max); + } break; } @@ -1186,6 +1197,12 @@ function panels_flexible_config_item_form($form, &$form_state) { } } + $form['hide_empty'] = array( + '#title' => t('Hide element if empty'), + '#type' => 'checkbox', + '#default_value' => !empty($item['hide_empty']) ? 1 : 0, + ); + $form['save'] = array( '#type' => 'submit', '#value' => t('Save'), @@ -1223,6 +1240,7 @@ function panels_flexible_config_item_form_submit(&$form, &$form_state) { else { $item['contains'] = $form_state['values']['contains']; } + $item['hide_empty'] = $form_state['values']['hide_empty']; }