MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks

List_Block::render_content()protectedWC 1.0

Renders the block content.

Method of the class: List_Block{}

No Hooks.

Return

String.

Usage

// protected - for code of main (parent) or child class
$result = $this->render_content( $block_content, $parsed_block, $settings_controller ): string;
$block_content(string) (required)
Block content.
$parsed_block(array) (required)
Parsed block.
$settings_controller(Settings_Controller) (required)
Settings controller.

List_Block::render_content() code WC 9.8.2

protected function render_content( string $block_content, array $parsed_block, Settings_Controller $settings_controller ): string {
	$html     = new \WP_HTML_Tag_Processor( $block_content );
	$tag_name = ( $parsed_block['attrs']['ordered'] ?? false ) ? 'ol' : 'ul';
	if ( $html->next_tag( array( 'tag_name' => $tag_name ) ) ) {
		/** @var string $styles */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort -- used for phpstan
		$styles = $html->get_attribute( 'style' ) ?? '';
		$styles = $settings_controller->parse_styles_to_array( $styles );

		// Font size.
		if ( isset( $parsed_block['email_attrs']['font-size'] ) ) {
			$styles['font-size'] = $parsed_block['email_attrs']['font-size'];
		} else {
			// Use font-size from email theme when those properties are not set.
			$theme_data          = $settings_controller->get_theme()->get_data();
			$styles['font-size'] = $theme_data['styles']['typography']['fontSize'];
		}

		$html->set_attribute( 'style', esc_attr( \WP_Style_Engine::compile_css( $styles, '' ) ) );
		$block_content = $html->get_updated_html();
	}

	$wrapper_style = \WP_Style_Engine::compile_css(
		array(
			'margin-top' => $parsed_block['email_attrs']['margin-top'] ?? '0px',
		),
		''
	);

	// \WP_HTML_Tag_Processor escapes the content, so we have to replace it back
	$block_content = str_replace( ''', "'", $block_content );

	return sprintf(
		'<div style="%1$s">%2$s</div>',
		esc_attr( $wrapper_style ),
		$block_content
	);
}