Astra_Addon_Builder_Helper
Class Astra_Addon_Builder_Helper.
Description
Source
File: classes/builder/class-astra-addon-builder-helper.php
final class Astra_Addon_Builder_Helper {
/**
* Member Variable
*
* @since 3.0.0
* @var instance
*/
private static $instance = null;
/**
* Cached Helper Variable.
*
* @since 3.0.0
* @var instance
*/
private static $cached_properties = null;
/**
* No. Of. Component count array.
*
* @var int
*/
public static $component_count_array = array();
/**
* No. Of. Component Limit.
*
* @var int
*/
public static $component_limit = 10;
/**
* No. Of. Header Dividers.
*
* @since 3.0.0
* @var int
*/
public static $num_of_header_divider;
/**
* No. Of. Footer Dividers.
*
* @since 3.0.0
* @var int
*/
public static $num_of_footer_divider;
/**
* Initiator
*
* @since 3.0.0
*/
public static function get_instance() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor
*
* @since 3.0.0
*/
public function __construct() {
add_filter( 'astra_builder_elements_count', __CLASS__ . '::elements_count', 10 );
$component_count_by_key = self::elements_count();
self::$num_of_header_divider = $component_count_by_key['header-divider'];
self::$num_of_footer_divider = $component_count_by_key['footer-divider'];
}
/**
* Update the count of elements in HF Builder.
*
* @param array $elements array of elements having key as slug and value as count.
* @return array $elements
*/
public static function elements_count( $elements = array() ) {
$db_elements = get_option( 'astra-settings' );
$db_elements = isset( $db_elements['cloned-component-track'] ) ? $db_elements['cloned-component-track'] : array();
if ( ! empty( $db_elements ) ) {
return $db_elements;
}
$elements['header-button'] = 2;
$elements['footer-button'] = 2;
$elements['header-html'] = 3;
$elements['footer-html'] = 2;
$elements['header-menu'] = 3;
$elements['header-widget'] = 4;
$elements['footer-widget'] = 6;
$elements['header-social-icons'] = 1;
$elements['footer-social-icons'] = 1;
$elements['header-divider'] = 3;
$elements['footer-divider'] = 3;
$elements['removed-items'] = array();
return $elements;
}
/**
* Callback of external properties.
*
* @param string $property_name property name.
* @return false
*/
public function __get( $property_name ) {
if ( isset( self::$cached_properties[ $property_name ] ) ) {
return self::$cached_properties[ $property_name ];
}
if ( property_exists( 'Astra_Addon_Builder_Helper', $property_name ) ) {
// Directly override theme helper properties.
$return_value = self::${$property_name};
} else {
$return_value = property_exists( 'Astra_Builder_Helper', $property_name ) ? Astra_Builder_Helper::${$property_name} : false;
}
self::$cached_properties[ $property_name ] = $return_value;
return $return_value;
}
/**
* Callback exception for static methods.
*
* @param string $function_name function name.
* @param array $function_agrs function arguments.
* @return false|mixed
*/
public static function __callStatic( $function_name, $function_agrs ) {
$key = md5( $function_name ) . md5( maybe_serialize( $function_agrs ) );
if ( isset( self::$cached_properties[ $key ] ) ) {
return self::$cached_properties[ $key ];
}
if ( method_exists( 'Astra_Addon_Builder_Helper', $function_name ) ) {
// Check if self method exists.
$class_name = 'Astra_Addon_Builder_Helper';
} elseif ( method_exists( 'Astra_Builder_Helper', $function_name ) ) {
// if self method doesnot exists then check for theme helper.
$class_name = 'Astra_Builder_Helper';
} else {
// If not found anything then return false directly.
return false;
}
$return_value = call_user_func_array( array( $class_name, $function_name ), $function_agrs );
self::$cached_properties[ $key ] = $return_value;
return $return_value;
}
}
Expand full source code Collapse full source code View on Trac
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |
Methods
- __callStatic — Callback exception for static methods.
- __construct — Constructor
- __get — Callback of external properties.
- astra_addon_get_addon_helper_static — Callback to get addon's static property.
- astra_addon_get_theme_helper_static — Callback to get theme's static property.
- elements_count — Update the count of elements in HF Builder.
- get_instance — Initiator