This repository has been archived on 2022-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
divi/includes/builder/module/field/Overflow.php

86 lines
2.8 KiB
PHP

<?php
class ET_Builder_Module_Field_Overflow extends ET_Builder_Module_Field_Base {
public function get_defaults() {
return array(
'prefix' => '',
'tab_slug' => 'custom_css',
'toggle_slug' => 'visibility',
'hover' => 'tabs',
'mobile_options' => true,
'sticky' => true,
'default' => ET_Builder_Module_Helper_Overflow::OVERFLOW_DEFAULT,
);
}
public function get_fields( array $args = array() ) {
$settings = array_merge( $this->get_defaults(), $args );
return array_merge(
$this->get_field( 'x', $settings ),
$this->get_field( 'y', $settings )
);
}
protected function get_field( $axis, $args ) {
static $i18n;
if ( ! $i18n ) {
$i18n = array(
'default' => __( 'Default', 'et_builder' ),
'visible' => __( 'Visible', 'et_builder' ),
'scroll' => __( 'Scroll', 'et_builder' ),
'hidden' => __( 'Hidden', 'et_builder' ),
'auto' => __( 'Auto', 'et_builder' ),
'description' => __( 'Here you can control element overflow on the %s axis. If set to scroll, content that overflows static widths or heights will trigger a browser scrollbar. If set to hidden, content overflow will be clipped.', 'et_builder' ),
'horizontal' => __( 'Horizontal Overflow', 'et_builder' ),
'vertical' => __( 'Vertical Overflow', 'et_builder' ),
);
}
$overflow = et_pb_overflow();
$OVERFLOW_DEFAULT = ET_Builder_Module_Helper_Overflow::OVERFLOW_DEFAULT;
$OVERFLOW_VISIBLE = ET_Builder_Module_Helper_Overflow::OVERFLOW_VISIBLE;
$OVERFLOW_SCROLL = ET_Builder_Module_Helper_Overflow::OVERFLOW_SCROLL;
$OVERFLOW_HIDDEN = ET_Builder_Module_Helper_Overflow::OVERFLOW_HIDDEN;
$OVERFLOW_AUTO = ET_Builder_Module_Helper_Overflow::OVERFLOW_AUTO;
switch ( $axis ) {
case 'x':
$field = $overflow->get_field_x( $args['prefix'] );
$label = $i18n['horizontal'];
break;
default:
$field = $overflow->get_field_y( $args['prefix'] );
$label = $i18n['vertical'];
break;
}
$settings = array(
'label' => $label,
'type' => 'select',
'hover' => $args['hover'],
'mobile_options' => $args['mobile_options'],
'sticky' => $args['sticky'],
'default' => $args['default'],
'tab_slug' => $args['tab_slug'],
'toggle_slug' => $args['toggle_slug'],
'options' => array(
$OVERFLOW_DEFAULT => $i18n['default'],
$OVERFLOW_VISIBLE => $i18n['visible'],
$OVERFLOW_SCROLL => $i18n['scroll'],
$OVERFLOW_HIDDEN => $i18n['hidden'],
$OVERFLOW_AUTO => $i18n['auto'],
),
'description' => sprintf( $i18n['description'], strtoupper( $axis ) ),
);
$options = array( $field => $settings );
return $options;
}
}
return new ET_Builder_Module_Field_Overflow();