Repository URL to install this package:
|
Version:
3.7.1 ▾
|
<?php
/**
* Header Builder Row component
*
* @since 2.0
* @author Ilya K.
*/
Class Oxy_Header_Builder_Row extends CT_Component {
function __construct( $options ) {
// run initialization
$this->init( $options );
// Add shortcodes
add_shortcode( $this->options['tag'], array( $this, 'add_shortcode' ) );
for ( $i = 2; $i <= 16; $i++ ) {
add_shortcode( $this->options['tag'] . "_" . $i, array( $this, 'add_shortcode' ) );
}
// add specific options
add_action("ct_toolbar_component_settings", array( $this, "header_settings"), 9 );
// change component button place
remove_action("ct_toolbar_fundamentals_list", array( $this, "component_button" ) );
add_action("ct_toolbar_smart_list", array( $this, "component_button" ) );
}
/**
* Add a toolbar button
*
* @since 2.0
*/
function component_button() {
if (oxygen_hide_element_button($this->options['tag'])) {
return;
}
?>
<div class="oxygen-add-section-element"
data-searchid="<?php echo strtolower( preg_replace('/\s+/', '_', sanitize_text_field( $this->options['name'] ) ) ) ?>"
ng-click="iframeScope.addComponent('<?php echo esc_attr($this->options['tag']); ?>')"
ng-show="isActiveName('oxy_header')||isActiveName('oxy_header_row')">
<img src='<?php echo CT_FW_URI; ?>/toolbar/UI/oxygen-icons/add-icons/header.svg' />
<img src='<?php echo CT_FW_URI; ?>/toolbar/UI/oxygen-icons/add-icons/header-active.svg' />
<?php echo esc_html($this->options['name']); ?>
</div>
<?php }
/**
* Add a [oxy_header_row] shortcode to WordPress
*
* @since 2.0
*/
function add_shortcode( $atts, $content, $name ) {
if ( ! $this->validate_shortcode( $atts, $content, $name ) ) {
return '';
}
$options = $this->set_options( $atts );
ob_start();
?><div id="<?php echo esc_attr($options['selector']); ?>" class="<?php echo (isset($options["hide_in_sticky"])&&$options["hide_in_sticky"]=="yes") ? "oxygen-hide-in-sticky " : "";?><?php echo (isset($options["show_in_sticky_only"])&&$options["show_in_sticky_only"]=="yes") ? "oxygen-show-in-sticky-only " : "";?><?php echo ($options["overlay_display"]=="hide_in_overlay") ? "oxygen-hide-in-overlay " : "";?><?php echo ($options["overlay_display"]=="only_show_in_overlay") ? "oxygen-only-show-in-overlay " : "";?><?php echo esc_attr($options['classes']); ?>" <?php do_action("oxygen_vsb_component_attr", $options, $this->options['tag']); ?>><div class="oxy-header-container"><?php echo do_shortcode( $content ); ?></div></div><?php
return ob_get_clean();
}
/**
* Output special settings in Basic Styles tab
*
* @since 2.0
*/
function header_settings() { ?>
<div ng-show="isActiveName('<?php echo $this->options['tag']; ?>')">
<div class="oxygen-control-row">
<div class='oxygen-control-wrapper'>
<label class='oxygen-control-label'><?php _e("Stack Vertically Below","oxygen"); ?></label>
<div class='oxygen-control oxygen-special-property not-available-for-media not-available-for-classes'>
<div class="oxygen-select oxygen-select-box-wrapper">
<div class="oxygen-select-box"
ng-class="{'oxygen-option-default':iframeScope.isInherited(iframeScope.component.active.id, 'stack-header-vertically')}">
<div class="oxygen-select-box-current">{{iframeScope.getMediaTitle(iframeScope.getOption('stack-header-vertically'))}}</div>
<div class="oxygen-select-box-dropdown"></div>
</div>
<div class="oxygen-select-box-options">
<div class="oxygen-select-box-option"
ng-repeat="name in iframeScope.sortedMediaList()"
ng-if="name!='default'"
ng-click="iframeScope.setOptionModel('stack-header-vertically',name)"
ng-class="{'oxygen-select-box-option-active':iframeScope.getOption('stack-header-vertically')==name}">
{{iframeScope.getMediaTitle(name)}}
</div>
<div class="oxygen-select-box-option"
ng-click="iframeScope.setOptionModel('stack-header-vertically','never')"
ng-class="{'oxygen-select-box-option-active':iframeScope.getOption('stack-header-vertically')=='never'}">
<?php _e("Never","oxygen"); ?>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="oxygen-control-row">
<div class='oxygen-control-wrapper'>
<label class='oxygen-control-label'><?php _e("Hide Row Below","oxygen"); ?></label>
<div class='oxygen-control oxygen-special-property not-available-for-media not-available-for-classes'>
<div class="oxygen-select oxygen-select-box-wrapper">
<div class="oxygen-select-box"
ng-class="{'oxygen-option-default':iframeScope.isInherited(iframeScope.component.active.id, 'hide-row')}">
<div class="oxygen-select-box-current">{{iframeScope.getMediaTitle(iframeScope.getOption('hide-row'))}}</div>
<div class="oxygen-select-box-dropdown"></div>
</div>
<div class="oxygen-select-box-options">
<div class="oxygen-select-box-option"
ng-repeat="name in iframeScope.sortedMediaList()"
ng-if="name!='default'"
ng-click="iframeScope.setOptionModel('hide-row',name)"
ng-class="{'oxygen-select-box-option-active':iframeScope.getOption('hide-row')==name}">
{{iframeScope.getMediaTitle(name)}}
</div>
<div class="oxygen-select-box-option"
ng-click="iframeScope.setOptionModel('hide-row','never')"
ng-class="{'oxygen-select-box-option-active':iframeScope.getOption('hide-row')=='never'}">
<?php _e("Never","oxygen"); ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php }
}
// Create instance
global $oxygen_vsb_components;
$oxygen_vsb_components['header_row'] = new Oxy_Header_Builder_Row( array(
'name' => __('Header Row','oxygen'),
'tag' => 'oxy_header_row',
'params' => array(
array(
"type" => "colorpicker",
"heading" => __("Background color"),
"param_name" => "background-color",
),
array(
"type" => "measurebox",
"heading" => __("Height","oxygen"),
"param_name" => "height",
"param_units" => "px",
"value" => "",
),
array(
// special setting type for backwrad compatibility
"heading" => __("Sticky Display","oxygen"),
"type" => "hide_show_in_sticky",
"param_name" => "",
),
array(
"type" => "radio",
"heading" => __("Overlay Display", "oxygen"),
"param_name" => "overlay_display",
"value" => array(
'only_show_in_overlay' => __("only show in overlay", "oxygen"),
'hide_in_overlay' => __("hide in overlay", "oxygen"),
),
"default" => "",
"css" => false,
),
array(
"param_name" => "header-row-custom-width-unit",
"value" => "auto",
"hidden" => true
),
),
'advanced' => array(
"size" => array(
"values" => array(
'header-row-width' => '',
)
)
),
'not_css_params' => array(
'stack-header-vertically',
'hide-row'
)
)
);