MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Layout
Flex_Layout_Renderer::render_inner_blocks_in_layout()
Render inner blocks in flex layout.
Method of the class: Flex_Layout_Renderer{}
No Hooks.
Return
String
.
Usage
$Flex_Layout_Renderer = new Flex_Layout_Renderer(); $Flex_Layout_Renderer->render_inner_blocks_in_layout( $parsed_block, $settings_controller ): string;
- $parsed_block(array) (required)
- Parsed block.
- $settings_controller(Settings_Controller) (required)
- Settings controller.
Flex_Layout_Renderer::render_inner_blocks_in_layout() Flex Layout Renderer::render inner blocks in layout code WC 9.8.1
public function render_inner_blocks_in_layout( array $parsed_block, Settings_Controller $settings_controller ): string { $theme_styles = $settings_controller->get_email_styles(); $flex_gap = $theme_styles['spacing']['blockGap'] ?? '0px'; $flex_gap_number = $settings_controller->parse_number_from_string_with_pixels( $flex_gap ); $margin_top = $parsed_block['email_attrs']['margin-top'] ?? '0px'; $justify = $parsed_block['attrs']['layout']['justifyContent'] ?? 'left'; $styles = wp_style_engine_get_styles( $parsed_block['attrs']['style'] ?? array() )['css'] ?? ''; $styles .= 'margin-top: ' . $margin_top . ';'; $styles .= 'text-align: ' . $justify; // MS Outlook doesn't support style attribute in divs so we conditionally wrap the buttons in a table and repeat styles. $output_html = sprintf( '<!--[if mso | IE]><table align="%2$s" role="presentation" border="0" cellpadding="0" cellspacing="0" width="100%%"><tr><td style="%1$s" ><![endif]--> <div style="%1$s"><table class="layout-flex-wrapper" style="display:inline-block"><tbody><tr>', esc_attr( $styles ), esc_attr( $justify ) ); $inner_blocks = $this->compute_widths_for_flex_layout( $parsed_block, $settings_controller, $flex_gap_number ); foreach ( $inner_blocks as $key => $block ) { $styles = array(); if ( $block['email_attrs']['layout_width'] ?? null ) { $styles['width'] = $block['email_attrs']['layout_width']; } if ( $key > 0 ) { $styles['padding-left'] = $flex_gap; } $output_html .= '<td class="layout-flex-item" style="' . esc_attr( \WP_Style_Engine::compile_css( $styles, '' ) ) . '">' . render_block( $block ) . '</td>'; } $output_html .= '</tr></table></div> <!--[if mso | IE]></td></tr></table><![endif]-->'; return $output_html; }