File "responsive.php"
Full path: C:/Inetpub/vhosts/drshti.com/httpdocs/wp-content/themes/spectra-one/inc/extensions/responsive.php
File
size: 2.22 B (2.22 KB bytes)
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
<?php
/**
* Responsive Support for Gutenburg Blocks
*
* @package Spectra One
* @author Brainstorm Force
* @since 0.0.1
*/
declare(strict_types=1);
namespace Swt;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
add_filter( 'render_block', SWT_NS . 'render_responsive_blocks', 10, 2 );
/**
* Render Responsive Blocks.
*
* @since 0.0.1
* @param string $block_content Entire Block Content.
* @param array $block Block Properties As An Array.
* @return string
*/
function render_responsive_blocks( string $block_content, array $block ): string {
$responsive_classes = '';
if ( isset( $block['attrs']['SWTHideDesktop'] ) && true === $block['attrs']['SWTHideDesktop'] ) {
$responsive_classes .= ' swt-hide-desktop';
}
if ( isset( $block['attrs']['SWTHideTab'] ) && true === $block['attrs']['SWTHideTab'] ) {
$responsive_classes .= ' swt-hide-tablet';
}
if ( isset( $block['attrs']['SWTHideMob'] ) && true === $block['attrs']['SWTHideMob'] ) {
$responsive_classes .= ' swt-hide-mobile';
}
$dom = dom( $block_content );
$first_item = get_dom_element( '*', $dom );
if ( ! $first_item ) {
return $block_content;
}
$classes = $first_item->getAttribute( 'class' );
if ( $responsive_classes ) {
$first_item->setAttribute( 'class', $classes . $responsive_classes );
$block_content = $dom->saveHTML();
}
add_filter( 'swt_dynamic_theme_css', SWT_NS . 'responsive_blocks_inline_css' );
return $block_content;
}
/**
* Responsive Blocks Inline CSS.
*
* @since 0.0.1
* @param string $css Inline CSS.
* @return string
*/
function responsive_blocks_inline_css( $css ): string {
$css_desktop_output = array(
'.swt-hide-desktop' => array(
'display' => 'none !important',
),
);
$css .= parse_css( $css_desktop_output, '1025', '' );
$css_tablet_output = array(
'.swt-hide-tablet' => array(
'display' => 'none !important ',
),
);
$css .= parse_css( $css_tablet_output, '768', '1024' );
$css_mobile_output = array(
'.swt-hide-mobile' => array(
'display' => 'none !important',
),
);
$css .= parse_css( $css_mobile_output, '', '767' );
return $css;
}
// Disable spectra plugin responsive controls.
add_filter( 'enable_responsive_condition_for_core', '__return_false' );