148 lines
3.1 KiB
PHP
148 lines
3.1 KiB
PHP
<?php
|
|
/**
|
|
* This file contains helper functions for Elements.
|
|
*
|
|
* @package GP Premium
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // No direct access, please.
|
|
}
|
|
|
|
/**
|
|
* Helper functions.
|
|
*/
|
|
class GeneratePress_Elements_Helper {
|
|
/**
|
|
* Instance.
|
|
*
|
|
* @access private
|
|
* @var object Instance
|
|
* @since 1.7
|
|
*/
|
|
private static $instance;
|
|
|
|
/**
|
|
* Initiator.
|
|
*
|
|
* @since 1.7
|
|
* @return object initialized object of class.
|
|
*/
|
|
public static function get_instance() {
|
|
if ( ! isset( self::$instance ) ) {
|
|
self::$instance = new self();
|
|
}
|
|
|
|
return self::$instance;
|
|
}
|
|
|
|
/**
|
|
* Check to see if specific theme/GPP options exist and are set.
|
|
*
|
|
* @since 1.7
|
|
*
|
|
* @param string $option Option to check.
|
|
* @return bool
|
|
*/
|
|
public static function does_option_exist( $option ) {
|
|
if ( function_exists( 'generate_get_defaults' ) ) {
|
|
$theme_settings = wp_parse_args(
|
|
get_option( 'generate_settings', array() ),
|
|
generate_get_defaults()
|
|
);
|
|
|
|
if ( 'site-title' === $option ) {
|
|
return $theme_settings['hide_title'] ? false : true;
|
|
}
|
|
|
|
if ( 'site-tagline' === $option ) {
|
|
return $theme_settings['hide_tagline'] ? false : true;
|
|
}
|
|
|
|
if ( 'retina-logo' === $option ) {
|
|
return $theme_settings['retina_logo'];
|
|
}
|
|
}
|
|
|
|
if ( 'site-logo' === $option ) {
|
|
return get_theme_mod( 'custom_logo' );
|
|
}
|
|
|
|
if ( function_exists( 'generate_menu_plus_get_defaults' ) ) {
|
|
$menu_settings = wp_parse_args(
|
|
get_option( 'generate_menu_plus_settings', array() ),
|
|
generate_menu_plus_get_defaults()
|
|
);
|
|
|
|
if ( 'navigation-as-header' === $option ) {
|
|
return $menu_settings['navigation_as_header'];
|
|
}
|
|
|
|
if ( 'mobile-logo' === $option ) {
|
|
return $menu_settings['mobile_header_logo'];
|
|
}
|
|
|
|
if ( 'navigation-logo' === $option ) {
|
|
return $menu_settings['sticky_menu_logo'];
|
|
}
|
|
|
|
if ( 'sticky-navigation' === $option ) {
|
|
return 'false' !== $menu_settings['sticky_menu'] ? true : false;
|
|
}
|
|
|
|
if ( 'sticky-navigation-logo' === $option ) {
|
|
return $menu_settings['sticky_navigation_logo'];
|
|
}
|
|
|
|
if ( 'mobile-header-branding' === $option ) {
|
|
return $menu_settings['mobile_header_branding'];
|
|
}
|
|
|
|
if ( 'sticky-mobile-header' === $option ) {
|
|
return 'disable' !== $menu_settings['mobile_header_sticky'] ? true : false;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Check whether we should execute PHP or not.
|
|
*/
|
|
public static function should_execute_php() {
|
|
$php = true;
|
|
|
|
if ( defined( 'DISALLOW_FILE_EDIT' ) ) {
|
|
$php = false;
|
|
}
|
|
|
|
return apply_filters( 'generate_hooks_execute_php', $php );
|
|
}
|
|
|
|
/**
|
|
* Build our HTML generated by the blocks.
|
|
*
|
|
* @since 1.11.0
|
|
*
|
|
* @param int $id The ID to check.
|
|
* @return string
|
|
*/
|
|
public static function build_content( $id ) {
|
|
if ( ! function_exists( 'do_blocks' ) ) {
|
|
return;
|
|
}
|
|
|
|
$block_element = get_post( $id );
|
|
|
|
if ( ! $block_element || 'gp_elements' !== $block_element->post_type ) {
|
|
return '';
|
|
}
|
|
|
|
if ( 'publish' !== $block_element->post_status || ! empty( $block_element->post_password ) ) {
|
|
return '';
|
|
}
|
|
|
|
return apply_filters( 'generate_do_block_element_content', do_blocks( $block_element->post_content ) );
|
|
}
|
|
}
|