block_name = 'container'; $this->styles = array( 'sp_smart_post_blocks_social_icons_style', 'sp_smart_post_blocks_css', 'pcp-likes', 'sp_smart_post_blocks_google_fonts', ); } /** * Container Shape Divider SVG Array. * * @var array */ public $shape_divider = array( 'none' => '', // Mountains. 'mountains' => '', // Drops. 'drops' => '', // Clouds. 'clouds' => '', // Zigzag. 'zigzag' => '', // Pyramids. 'pyramids' => '', // Triangle. 'triangle' => '', // Triangle Asymmetrical. 'triangle-asymmetrical' => '', // Tilt. 'tilt' => '', // Tilt Opacity. 'tilt-opacity' => '', // Fan Opacity. 'fan-opacity' => '', // Curve. 'curve' => '', // Curve Asymmetrical. 'curve-asymmetrical' => '', // Waves. 'waves' => '', // Waves Brush. 'waves-brush' => '', // Waves Pattern. 'waves-pattern' => '', // Arrow. 'arrow' => '', // Arrow Split. 'arrow-split' => '', // Book. 'book' => '', ); /** * Render Block * * @param array $attributes Block attributes. * @param string $content Block content. * @param array $blocks Inner blocks. * * @return string */ public function render_block( $attributes, $content = '', $blocks = array() ) { if ( Helper::is_editor_page() ) { return $content; } $attributes['page_id'] = get_the_ID(); // $sp_block_name = $attributes['blockName'] ?? ''; // $align = $attributes['align'] ?? ''; unset( $attributes['dynamicCss'], $attributes['fontListsEditPage'], $attributes['fontLists'] ); $additional_id = $attributes['advancedAdditionalID'] ?? ''; $container_wide = $attributes['containerWidth'] ?? 'full-width'; $unique_id = $attributes['uniqueId'] ?? ''; $additional_class = $attributes['advancedAdditionalClass'] ?? ''; $container_layout = $attributes['layout'] ?? ''; $container_columns = $attributes['columns'] ?? ''; $align = $attributes['align'] ?? ''; $container_flex_direction = $attributes['containerFlexDirection'] ?? array(); $container_column_root_attr = $attributes['containerColumnRoot'] ?? array(); $container_column_one_root = $container_column_root_attr['--columnOne'] ?? 'auto'; $container_column_two_root = $container_column_root_attr['--columnTwo'] ?? 'auto'; $container_column_three_root = $container_column_root_attr['--columnThree'] ?? 'auto'; $container_column_four_root = $container_column_root_attr['--columnFour'] ?? 'auto'; $container_column_five_root = $container_column_root_attr['--columnFive'] ?? 'auto'; $container_column_six_root = $container_column_root_attr['--columnSix'] ?? 'auto'; $container_column_gap_root = $container_column_root_attr['--gap'] ?? '16px'; $container_column_multi_root = $container_column_root_attr['--gapMultiplier'] ?? '2'; $container_column_root_style = '--columnOne: ' . $container_column_one_root . ' ; --columnTwo: ' . $container_column_two_root . '; --columnThree: ' . $container_column_three_root . '; --columnFour: ' . $container_column_four_root . '; --columnFive: ' . $container_column_five_root . '; --columnSix: ' . $container_column_six_root . '; --gap: ' . $container_column_gap_root . '; --gapMultiplier: ' . $container_column_multi_root . ';'; // Divider Attributes. $top_divider_type = $attributes['containerTopDividerType'] ?? 'none'; $top_divider_flip = $attributes['shapeDividerFlipTop'] ?? false; $bottom_divider_type = $attributes['containerBottomDividerType'] ?? 'none'; $bottom_divider_flip = $attributes['containerBGVideo'] ?? false; $top_divider_output = $this->shape_divider[ $top_divider_type ]; $bottom_divider_output = $this->shape_divider[ $bottom_divider_type ]; // Video Background Attributes. $background_style = isset( $attributes['containerBG']['color']['style'] ) ? $attributes['containerBG']['color']['style'] : ''; $background_video = $attributes['containerBGVideo'] ?? ''; // Container Wrapper Link Attributes. $enable_wrapper_link = $attributes['advanceWrapperLink'] ?? false; $wrapper_link_url = $attributes['advanceWrapperLinkUrl'] ?? ''; $wrapper_link_target = isset( $attributes['advanceWrapperLinkNewTab'] ) && $attributes['advanceWrapperLinkNewTab'] ? '_blank' : '_self'; // Security check for necessary Attributes. $html_tag = isset( $attributes['htmlTag'] ) ? $attributes['htmlTag'] : 'div'; $allowed_tags = array( 'div', 'section', 'article', 'aside', 'header', 'footer', 'nav' ); $container_tag = in_array( $html_tag, $allowed_tags, true ) ? $html_tag : 'div'; // Short variable. $classes = array( 'sp-smart-post-show-pro', 'sp-smart-post-show-container-front-page', 'sp-mart-post-show-container-front-page', $unique_id ); if ( ! empty( $additional_class ) ) { $classes[] = $additional_class; } $align_classes = 'boxed' === $container_wide ? ( $align ? 'align' . $align : '' ) : 'alignfull'; $classes_output = implode( ' ', $classes ); // Render the block content. ob_start(); ?>