__( 'Displays a list of features.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/features-widget-documentation/' ), array(), false, plugin_dir_path(__FILE__) ); } function initialize() { $this->register_frontend_styles( array( array( 'siteorigin-widgets', plugin_dir_url(__FILE__) . 'css/style.css', array(), SOW_BUNDLE_VERSION ) ) ); } function get_widget_form(){ return array( 'features' => array( 'type' => 'repeater', 'label' => __('Features', 'so-widgets-bundle'), 'item_name' => __('Feature', 'so-widgets-bundle'), 'item_label' => array( 'selector' => "[id*='features-title']", 'update_event' => 'change', 'value_method' => 'val' ), 'fields' => array( // The container shape 'container_color' => array( 'type' => 'color', 'label' => __('Container color', 'so-widgets-bundle'), 'default' => '#404040', ), 'container_position' => array( 'type' => 'select', 'label' => __('Container Position', 'so-widgets-bundle'), 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), 'default' => 'top', ), // The Icon 'icon' => array( 'type' => 'icon', 'label' => __('Icon', 'so-widgets-bundle'), ), 'icon_title' => array( 'type' => 'text', 'label' => __( 'Icon title', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __('Icon color', 'so-widgets-bundle'), 'default' => '#FFFFFF', ), 'icon_image' => array( 'type' => 'media', 'library' => 'image', 'label' => __('Icon image', 'so-widgets-bundle'), 'description' => __('Use your own icon image.', 'so-widgets-bundle'), ), 'icon_image_size' => array( 'type' => 'image-size', 'label' => __('Icon image size', 'so-widgets-bundle'), ), // The text under the icon 'title' => array( 'type' => 'text', 'label' => __('Title text', 'so-widgets-bundle'), ), 'text' => array( 'type' => 'tinymce', 'label' => __('Text', 'so-widgets-bundle') ), 'more_text' => array( 'type' => 'text', 'label' => __('More link text', 'so-widgets-bundle'), ), 'more_url' => array( 'type' => 'link', 'label' => __('More link URL', 'so-widgets-bundle'), ), ), ), 'fonts' => array( 'type' => 'section', 'label' => __( 'Font Design', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'title_options' => array( 'type' => 'section', 'label' => __( 'Title', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default' ), 'size' => array( 'type' => 'measurement', 'label' => __( 'Size', 'so-widgets-bundle' ), ), 'color' => array( 'type' => 'color', 'label' => __( 'Color', 'so-widgets-bundle' ), ) ) ), 'text_options' => array( 'type' => 'section', 'label' => __( 'Text', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default' ), 'size' => array( 'type' => 'measurement', 'label' => __( 'Size', 'so-widgets-bundle' ), ), 'color' => array( 'type' => 'color', 'label' => __( 'Color', 'so-widgets-bundle' ), ) ) ), 'more_text_options' => array( 'type' => 'section', 'label' => __( 'More Link', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default' ), 'size' => array( 'type' => 'measurement', 'label' => __( 'Size', 'so-widgets-bundle' ), ), 'color' => array( 'type' => 'color', 'label' => __( 'Color', 'so-widgets-bundle' ), ) ) ), ), ), 'container_shape' => array( 'type' => 'select', 'label' => __('Container shape', 'so-widgets-bundle'), 'default' => 'round', 'options' => include dirname( __FILE__ ) . '/inc/containers.php', ), 'container_size' => array( 'type' => 'measurement', 'label' => __('Container size', 'so-widgets-bundle'), 'default' => '84px', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __('Icon size', 'so-widgets-bundle'), 'default' => '24px', ), 'icon_size_custom' => array( 'type' => 'checkbox', 'label' => __( 'Use icon size for custom icon', 'so-widgets-bundle' ), 'default' => false, ), 'per_row' => array( 'type' => 'number', 'label' => __('Features per row', 'so-widgets-bundle'), 'default' => 3, ), 'responsive' => array( 'type' => 'checkbox', 'label' => __('Responsive layout', 'so-widgets-bundle'), 'default' => true, ), 'title_link' => array( 'type' => 'checkbox', 'label' => __('Link feature title to more URL', 'so-widgets-bundle'), 'default' => false, ), 'icon_link' => array( 'type' => 'checkbox', 'label' => __('Link icon to more URL', 'so-widgets-bundle'), 'default' => false, ), 'new_window' => array( 'type' => 'checkbox', 'label' => __('Open more URL in a new window', 'so-widgets-bundle'), 'default' => false, ), ); } function get_less_variables( $instance ) { $less_vars = array(); $fonts = $instance['fonts']; $styleable_text_fields = array( 'title', 'text', 'more_text' ); foreach ( $styleable_text_fields as $field_name ) { if ( ! empty( $fonts[$field_name.'_options'] ) ) { $styles = $fonts[$field_name.'_options']; if ( ! empty( $styles['size'] ) ) { $less_vars[$field_name.'_size'] = $styles['size']; } if ( ! empty( $styles['color'] ) ) { $less_vars[$field_name.'_color'] = $styles['color']; } if ( ! empty( $styles['font'] ) ) { $font = siteorigin_widget_get_font( $styles['font'] ); $less_vars[$field_name.'_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars[$field_name.'_font_weight'] = $font['weight']; } } } } $less_vars['container_size'] = $instance['container_size']; $less_vars['icon_size'] = $instance['icon_size']; $less_vars['use_icon_size'] = empty( $instance['icon_size_custom'] ) ? 'false' : 'true'; $global_settings = $this->get_global_settings(); if ( ! empty( $global_settings['responsive_breakpoint'] ) ) { $less_vars['responsive_breakpoint'] = $global_settings['responsive_breakpoint']; } return $less_vars; } function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '520px', 'description' => __( 'This setting controls when the features widget will collapse for mobile devices. The default value is 520px', 'so-widgets-bundle' ) ) ); } function get_google_font_fields( $instance ) { $fonts = $instance['fonts']; return array( $fonts['title_options']['font'], $fonts['text_options']['font'], $fonts['more_text_options']['font'], ); } } siteorigin_widget_register('sow-features', __FILE__, 'SiteOrigin_Widget_Features_Widget');