4, 'sidebar_primary' => 1, 'sidebar_secondary' => 1, 'breakpoint' => 'medium' ) ); $g = beans_get( 'grid', $args ); // $g stands for grid. $c = $g; // $c stands for content. Same value as grid by default $sp = beans_get( 'sidebar_primary', $args ); // $sp stands for sidebar primary. $ss = beans_get( 'sidebar_secondary', $args ); // $ss stands for 'sidebar secondary. $prefix = 'uk-width-' . beans_get( 'breakpoint', $args, 'medium' ); $classes = array(); switch ( $layout = beans_get_layout() ) { case 'c': $classes['content'] = "$prefix-$c-$g"; break; default: $classes['content'] = "$prefix-$c-$g"; } // Add sidebar primary layouts if the primary widget area is registered. if ( $has_primary = beans_has_widget_area( 'sidebar_primary' ) ) { switch ( $layout ) { case 'c_sp': $c = $g - $sp; $classes['content'] = "$prefix-$c-$g"; $classes['sidebar_primary'] = "$prefix-$sp-$g"; break; case 'sp_c': $c = $g - $sp; $classes['content'] = "$prefix-$c-$g uk-push-$sp-$g"; $classes['sidebar_primary'] = "$prefix-$sp-$g uk-pull-$c-$g"; break; } } // Add sidebar secondary layouts if the primary and secondary widget area are registered. if ( $has_primary && beans_has_widget_area( 'sidebar_secondary' ) ) { switch ( $layout ) { case 'c_ss': $c = $g - $sp; $classes['content'] = "$prefix-$c-$g"; $classes['sidebar_secondary'] = "$prefix-$sp-$g"; break; case 'c_sp_ss': $c = $g - ( $sp + $ss ); $classes['content'] = "$prefix-$c-$g"; $classes['sidebar_primary'] = "$prefix-$sp-$g"; $classes['sidebar_secondary'] = "$prefix-$ss-$g"; break; case 'ss_c': $c = $g - $sp; $classes['content'] = "$prefix-$c-$g uk-push-$sp-$g"; $classes['sidebar_secondary'] = "$prefix-$sp-$g uk-pull-$c-$g"; break; case 'sp_ss_c': $c = $g - ( $sp + $ss ); $push_content = $sp + $ss; $classes['content'] = "$prefix-$c-$g uk-push-$push_content-$g"; $classes['sidebar_primary'] = "$prefix-$sp-$g uk-pull-$c-$g"; $classes['sidebar_secondary'] = "$prefix-$ss-$g uk-pull-$c-$g"; break; case 'sp_c_ss': $c = $g - ( $sp + $ss ); $classes['content'] = "$prefix-$c-$g uk-push-$sp-$g"; $classes['sidebar_primary'] = "$prefix-$sp-$g uk-pull-$c-$g"; $classes['sidebar_secondary'] = "$prefix-$ss-$g"; break; } } /** * Filter the layout class. * * The dynamic portion of the hook name refers to the searched layout section ID. * * @since 1.0.0 * * @param string $layout The layout class. */ return apply_filters( "beans_layout_class_$id", beans_get( $id, $classes ) ); } /** * Generate layout elements used by Beans 'imageradio' option type. * * Added layout should contain a unique ID as the array key and a URL path to its related image * as the array value. * * @since 1.0.0 * * @param bool $add_default Optional. Whether the 'default_fallback' element is added or not. * * @return array Layouts ready for Beans 'imageradio' option type. */ function beans_get_layouts_for_options( $add_default = false ) { $base = BEANS_ADMIN_ASSETS_URL . 'images/layouts/'; $layouts = array( 'c' => $base . 'c.png' ); // Add sidebar primary layouts if the primary widget area is registered. if ( $has_primary = beans_has_widget_area( 'sidebar_primary' ) ) { $layouts['c_sp'] = $base . 'cs.png'; $layouts['sp_c'] = $base . 'sc.png'; } // Add sidebar secondary layouts if the primary and secondary widget area are registered. if ( $has_primary && beans_has_widget_area( 'sidebar_secondary' ) ) { $layouts['c_sp_ss'] = $base . 'css.png'; $layouts['sp_ss_c'] = $base . 'ssc.png'; $layouts['sp_c_ss'] = $base . 'scs.png'; } /** * Filter the layouts. * * - $c stands for content. * - $sp stands for sidebar primary. * - $ss stands for 'sidebar secondary. * * @since 1.0.0 * * @param array $args An array of layouts. */ $layouts = apply_filters( 'beans_layouts', $layouts ); if ( $add_default ) $layouts = array_merge( array( 'default_fallback' => sprintf( __( 'Use Default Layout (%s)', 'beans' ), '' . _x( 'Modify', 'Default layout', 'beans' ) . '' ) ), $layouts ); return $layouts; }