name = esc_html__('Logo Grid', 'addons-for-divi');
$this->icon_path = $this->dtl_icon_path('grid');
$this->settings_modal_toggles = array(
'general' => array(
'toggles' => array(
'grid' => esc_html__('Grid Settings', 'addons-for-divi'),
),
),
);
$this->custom_css_fields = array(
'logo' => array(
'label' => esc_html__('Logo', 'addons-for-divi'),
'selector' => '%%order_class%% .dtq-logo-grid__item img',
),
);
}
public function get_fields()
{
$fields = array(
'column_count' => array(
'label' => esc_html__('Column', 'addons-for-divi'),
'description' => esc_html__('Here you can define grid columns number.', 'addons-for-divi'),
'type' => 'select',
'default' => '4',
'options' => array(
'1' => esc_html__('1', 'addons-for-divi'),
'2' => esc_html__('2', 'addons-for-divi'),
'3' => esc_html__('3', 'addons-for-divi'),
'4' => esc_html__('4', 'addons-for-divi'),
'5' => esc_html__('5', 'addons-for-divi'),
'6' => esc_html__('6', 'addons-for-divi'),
'7' => esc_html__('7', 'addons-for-divi'),
'8' => esc_html__('8', 'addons-for-divi'),
'9' => esc_html__('9', 'addons-for-divi'),
'10' => esc_html__('10', 'addons-for-divi'),
),
'toggle_slug' => 'grid',
'mobile_options' => true,
),
'grid_height' => array(
'label' => esc_html__('Column Height', 'addons-for-divi'),
'description' => esc_html__('Here you can define grid column height.', 'addons-for-divi'),
'type' => 'range',
'toggle_slug' => 'grid',
'default_unit' => 'px',
'mobile_options' => true,
'range_settings' => array(
'min' => 0,
'max' => 800,
'step' => 1,
),
),
'grid_gap' => array(
'label' => esc_html__('Grid Gap', 'addons-for-divi'),
'description' => esc_html__('Here you can define the spacing between grid columns.', 'addons-for-divi'),
'type' => 'range',
'toggle_slug' => 'grid',
'default' => '5px',
'allowed_units' => array('px', '%', 'em'),
'mobile_options' => true,
'range_settings' => array(
'min' => 0,
'max' => 100,
'step' => 1,
),
),
'logo_size' => array(
'label' => esc_html__('Logo Size', 'addons-for-divi'),
'description' => esc_html__('Here you can define static logo width.', 'addons-for-divi'),
'type' => 'range',
'toggle_slug' => 'grid',
'default_unit' => 'px',
'mobile_options' => true,
'range_settings' => array(
'min' => 0,
'max' => 1000,
'step' => 1,
),
),
'image_hover' => array(
'label' => esc_html__('Logo Hover Style', 'addons-for-divi'),
'description' => esc_html__('Select logo hover animation.', 'addons-for-divi'),
'type' => 'select',
'toggle_slug' => 'grid',
'default' => 'zoom_in',
'options' => array(
'no_hover' => esc_html__('None', 'addons-for-divi'),
'zoom_in' => esc_html__('Zoom In', 'addons-for-divi'),
'zoom_out' => esc_html__('Zoom Out', 'addons-for-divi'),
'fade' => esc_html__('Fade Out', 'addons-for-divi'),
'black_n_white' => esc_html__('Black and White', 'addons-for-divi'),
),
),
'logo_overflow' => array(
'label' => esc_html__('Logo Overflow', 'addons-for-divi'),
'description' => esc_html__('Here you can control logo image overflow on the X and Y axis. If set to hidden, logo will be clipped.', 'addons-for-divi'),
'type' => 'select',
'toggle_slug' => 'grid',
'default' => 'visible',
'options' => array(
'hidden' => esc_html__('Hidden', 'addons-for-divi'),
'visible' => esc_html__('Visible', 'addons-for-divi'),
),
),
);
return $fields;
}
public function get_advanced_fields_config()
{
$advanced_fields = array();
$advanced_fields['text'] = array();
$advanced_fields['text_shadow'] = array();
$advanced_fields['fonts'] = array();
return $advanced_fields;
}
public function render($attrs, $content, $render_slug)
{
$this->render_css($render_slug);
return sprintf(
'
%1$s
',
$this->props['content'],
$this->props['image_hover']
);
}
protected function render_css($render_slug)
{
$grid_height = $this->props['grid_height'];
$grid_height_tablet = $this->props['grid_height_tablet'];
$grid_height_phone = $this->props['grid_height_phone'];
$grid_height_last_edited = $this->props['grid_height_last_edited'];
$grid_height_responsive_status = et_pb_get_responsive_status($grid_height_last_edited);
$logo_size = $this->props['logo_size'];
$logo_size_tablet = $this->props['logo_size_tablet'];
$logo_size_phone = $this->props['logo_size_phone'];
$logo_size_last_edited = $this->props['logo_size_last_edited'];
$logo_size_responsive_status = et_pb_get_responsive_status($logo_size_last_edited);
$grid_gap = $this->props['grid_gap'];
$grid_gap_tablet = $this->props['grid_gap_tablet'];
$grid_gap_phone = $this->props['grid_gap_phone'];
$grid_gap_last_edited = $this->props['grid_gap_last_edited'];
$grid_gap_responsive_status = et_pb_get_responsive_status($grid_gap_last_edited);
$column_count = $this->props['column_count'];
$column_count_tablet = $this->props['column_count_tablet'];
$column_count_phone = $this->props['column_count_phone'];
$logo_overflow = $this->props['logo_overflow'];
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .dtq-logo-grid__item',
'declaration' => sprintf('overflow: %1$s;', $logo_overflow),
)
);
if (!empty($grid_height)) {
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .ba_logo_grid_child',
'declaration' => sprintf('height: %1$s;', $grid_height),
)
);
if (!empty($grid_height_tablet) && $grid_height_responsive_status) {
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .ba_logo_grid_child',
'media_query' => ET_Builder_Element::get_media_query('max_width_980'),
'declaration' => sprintf('height: %1$s;', $grid_height_tablet),
)
);
}
if (!empty($grid_height_phone) && $grid_height_responsive_status) {
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .ba_logo_grid_child',
'media_query' => ET_Builder_Element::get_media_query('max_width_767'),
'declaration' => sprintf('height: %1$s;', $grid_height_phone),
)
);
}
}
if (!empty($logo_size)) {
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '.dtq-logo-grid__item img',
'declaration' => sprintf('width: %1$s;', $logo_size),
)
);
if (!empty($logo_size_tablet) && $logo_size_responsive_status) {
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '.dtq-logo-grid__item img',
'media_query' => ET_Builder_Element::get_media_query('max_width_980'),
'declaration' => sprintf('width: %1$s;', $logo_size_tablet),
)
);
}
if (!empty($logo_size_phone) && $logo_size_responsive_status) {
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '.dtq-logo-grid__item img',
'media_query' => ET_Builder_Element::get_media_query('max_width_767'),
'declaration' => sprintf('width: %1$s;', $logo_size_phone),
)
);
}
} else {
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '.dtq-logo-grid__item img',
'declaration' => 'width: 100%;',
)
);
}
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .dtq-logo-grid',
'declaration' => sprintf('margin: -%1$s;', $grid_gap),
)
);
if (!empty($grid_gap_tablet) && $grid_gap_responsive_status) {
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .dtq-logo-grid',
'media_query' => ET_Builder_Element::get_media_query('max_width_980'),
'declaration' => sprintf('margin: -%1$s;', $grid_gap_tablet),
)
);
}
if (!empty($grid_gap_phone) && $grid_gap_responsive_status) {
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .dtq-logo-grid',
'media_query' => ET_Builder_Element::get_media_query('max_width_767'),
'declaration' => sprintf('margin: -%1$s;', $grid_gap_phone),
)
);
}
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .ba_logo_grid_child',
'declaration' => sprintf('flex: 0 0 calc(100%%/%1$s);padding:%2$s;', $column_count, $grid_gap),
)
);
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .ba_logo_grid_child',
'media_query' => ET_Builder_Element::get_media_query('max_width_980'),
'declaration' => sprintf('flex: 0 0 calc(100%%/%1$s);padding:%2$s;', $column_count_tablet, $grid_gap_tablet),
)
);
ET_Builder_Element::set_style(
$render_slug,
array(
'selector' => '%%order_class%% .ba_logo_grid_child',
'media_query' => ET_Builder_Element::get_media_query('max_width_767'),
'declaration' => sprintf('flex: 0 0 calc(100%%/%1$s);padding:%2$s;', $column_count_phone, $grid_gap_phone),
)
);
}
}
new DTQ_Logo_Grid();