????JFIF??x?x????'
Server IP : 104.21.96.1 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/./tempvsty/pontiacques.org/wp-content/themes/layerswp/core/widgets/modules/ |
Upload File : |
<?php /** * Content Widget * * This file is used to register and display the Layers - Content widget. * * @package Layers * @since Layers 1.0.0 */ if( !class_exists( 'Layers_Content_Widget' ) ) { class Layers_Content_Widget extends Layers_Widget { /** * Widget construction */ function __construct() { /** * Widget variables * * @param string $widget_title Widget title * @param string $widget_id Widget slug for use as an ID/classname * @param string $post_type (optional) Post type for use in widget options * @param string $taxonomy (optional) Taxonomy slug for use as an ID/classname * @param array $checkboxes (optional) Array of checkbox names to be saved in this widget. Don't forget these please! */ $this->widget_title = __( 'Content' , 'layerswp' ); $this->widget_id = 'column'; $this->post_type = ''; $this->taxonomy = ''; $this->checkboxes = array(); $this->support_lightbox = true; /* Widget settings. */ $widget_ops = array( 'classname' => 'obox-layers-' . $this->widget_id .'-widget', 'description' => __( 'This widget is used to display text and images in a flexible grid.', 'layerswp' ), 'customize_selective_refresh' => TRUE, ); /* Widget control settings. */ $control_ops = array( 'width' => LAYERS_WIDGET_WIDTH_LARGE, 'height' => NULL, 'id_base' => LAYERS_THEME_SLUG . '-widget-' . $this->widget_id, ); /* Create the widget. */ parent::__construct( LAYERS_THEME_SLUG . '-widget-' . $this->widget_id , $this->widget_title, $widget_ops, $control_ops ); /* Setup Widget Defaults */ $this->defaults = array ( 'title' => __( 'Our Services', 'layerswp' ), 'excerpt' => __( 'Our services run deep and are backed by over ten years of experience.', 'layerswp' ), 'design' => array( 'layout' => 'layout-boxed', 'liststyle' => 'list-grid', 'gutter' => 'on', 'background' => array( 'position' => 'center', 'repeat' => 'no-repeat' ), 'fonts' => array( 'align' => 'text-left', 'size' => 'medium', 'color' => NULL, 'shadow' => NULL, 'heading-type' => 'h3', ), 'advanced' => array ( 'animation' => 'on', ) ), ); /* Setup Widget Repeater Defaults */ $this->register_repeater_defaults( 'column', 3, array( 'title' => __( 'Your service title', 'layerswp' ), 'excerpt' => __( 'Give us a brief description of the service that you are promoting. Try keep it short so that it is easy for people to scan your page.', 'layerswp' ), 'width' => '4', 'design' => array( 'featuredimage-size' => '', 'imagealign' => 'image-top', 'background' => NULL, 'fonts' => array( 'align' => 'text-left', 'size' => 'medium', 'color' => NULL, 'shadow' => NULL, 'heading-type' => 'h5', ), ), ) ); } /** * Widget front end display */ function widget( $args, $instance ) { global $wp_customize; $this->backup_inline_css(); // Turn $args array into variables. extract( $args ); // Use defaults if $instance is empty. if( empty( $instance ) && ! empty( $this->defaults ) ) { $instance = wp_parse_args( $instance, $this->defaults ); } // Mix in new/unset defaults on every instance load (NEW) $instance = $this->apply_defaults( $instance ); // Enqueue Masonry if need be if( 'list-masonry' == $this->check_and_return( $instance , 'design', 'liststyle' ) ) { wp_enqueue_script( LAYERS_THEME_SLUG . '-layers-masonry-js' ); } // Set the background styling if( NULL !== $this->check_and_return( $instance, 'design', 'background' ) ) $this->inline_css .= layers_inline_styles( "#{$widget_id}", 'background', array( 'background' => $this->check_and_return( $instance, 'design', 'background' ) ) ); if( NULL !== $this->check_and_return( $instance, 'design', 'fonts', 'color' ) ) $this->inline_css .= layers_inline_styles( "#{$widget_id}", 'color', array( 'selectors' => array( '.section-title .heading' , '.section-title div.excerpt' ) , 'color' => $this->check_and_return( $instance, 'design', 'fonts', 'color' ) ) ); if( NULL !== $this->check_and_return( $instance, 'design', 'fonts', 'excerpt-color' ) ) $this->inline_css .= layers_inline_styles( "#{$widget_id}", 'color', array( 'selectors' => array( '.section-title div.excerpt' , '.section-title div.excerpt p', '.section-title div.excerpt a' ) , 'color' => $this->check_and_return( $instance, 'design', 'fonts', 'excerpt-color' ) ) ); // Apply the advanced widget styling $this->apply_widget_advanced_styling( $widget_id, $instance ); /** * Generate the widget container class */ $widget_container_class = array(); $widget_container_class[] = 'widget'; $widget_container_class[] = 'layers-content-widget'; $widget_container_class[] = 'content-vertical-massive'; $widget_container_class[] = ( 'on' === $this->check_and_return( $instance , 'design', 'background', 'darken' ) ? 'darken' : '' ); // Only enable animation if enabled form advance settings $widget_container_class[] = $this->get_animation_class( $instance ); $widget_container_class[] = $this->check_and_return( $instance , 'design', 'advanced', 'customclass' ); // Apply custom class from design-bar's advanced control. $widget_container_class[] = $this->get_widget_spacing_class( $instance ); $widget_container_class = apply_filters( 'layers_content_widget_container_class' , $widget_container_class, $this, $instance ); $widget_container_class = implode( ' ', $widget_container_class ); // Custom Anchor echo $this->custom_anchor( $instance ); ?> <div id="<?php echo esc_attr( $widget_id ); ?>" class="<?php echo esc_attr( $widget_container_class ); ?>" <?php $this->selective_refresh_atts( $args ); ?>> <?php do_action( 'layers_before_content_widget_inner', $this, $instance ); ?> <?php if ( NULL !== $this->check_and_return( $instance , 'title' ) || NULL !== $this->check_and_return( $instance , 'excerpt' ) ) { ?> <div class="container clearfix"> <?php /** * Generate the Section Title Classes */ $section_title_class = array(); $section_title_class[] = 'section-title clearfix'; $section_title_class[] = $this->check_and_return( $instance , 'design', 'fonts', 'size' ); $section_title_class[] = $this->check_and_return( $instance , 'design', 'fonts', 'align' ); $section_title_class[] = ( $this->check_and_return( $instance, 'design', 'background' , 'color' ) && 'dark' == layers_is_light_or_dark( $this->check_and_return( $instance, 'design', 'background' , 'color' ) ) ? 'invert' : '' ); $section_title_class = implode( ' ', $section_title_class ); ?> <div class="<?php echo $section_title_class; ?>"> <?php if( '' != $this->check_and_return( $instance, 'title' ) ) { ?> <<?php echo $this->check_and_return( $instance, 'design', 'fonts', 'heading-type' ); ?> class="heading"> <?php echo $instance['title'] ?> </<?php echo $this->check_and_return( $instance, 'design', 'fonts', 'heading-type' ); ?>> <?php } ?> <?php if( '' != $this->check_and_return( $instance, 'excerpt' ) ) { ?> <div class="excerpt"><?php echo layers_the_content( $instance['excerpt'] ); ?></div> <?php } ?> </div> </div> <?php } ?> <?php if ( ! empty( $instance[ 'columns' ] ) ) { $column_ids = explode( ',', $instance[ 'column_ids' ] ); // Set total width $col_no = 0; $first_last_class = ''; $row_width = 0; ?> <div class="<?php echo $this->get_widget_layout_class( $instance ); ?> <?php echo $this->check_and_return( $instance , 'design', 'liststyle' ); ?>"> <div class="grid"> <?php foreach ( $column_ids as $column_key ) { // Make sure we've got a column going on here if( !isset( $instance[ 'columns' ][ $column_key ] ) ) continue; // Setup Internal Vars. $item_instance = $instance[ 'columns' ][ $column_key ]; $item_id_attr = "{$widget_id}-tabs-{$column_key}"; // Mix in new/unset defaults on every instance load (NEW) $item_instance = $this->apply_defaults( $item_instance, 'column' ); // Get the Next Column for use later. if( isset( $column_ids[ ($col_no+1) ] ) && isset( $instance[ 'columns' ][ $column_ids[ ($col_no+1) ] ] ) ) { $next_item = $instance[ 'columns' ][ $column_ids[ ($col_no+1) ] ]; } // Set the background styling if( NULL !== $this->check_and_return( $item_instance, 'design', 'background' ) ) $this->inline_css .= layers_inline_styles( ".{$widget_id}-{$column_key}", 'background', array( 'background' => $this->check_and_return( $item_instance, 'design', 'background' ) ) ); if( NULL !== $this->check_and_return( $item_instance, 'design', 'fonts', 'color' ) ) $this->inline_css .= layers_inline_styles( ".{$widget_id}-{$column_key}", 'color', array( 'selectors' => array( '.heading', '.heading a', 'div.excerpt' ) , 'color' => $this->check_and_return( $item_instance, 'design', 'fonts', 'color' ) ) ); if( NULL !== $this->check_and_return( $item_instance, 'design', 'fonts', 'excerpt-color' ) ) $this->inline_css .= layers_inline_styles( ".{$widget_id}-{$column_key}", 'color', array( 'selectors' => array( 'div.excerpt', 'div.excerpt p', 'div.excerpt a' ) , 'color' => $this->check_and_return( $item_instance, 'design', 'fonts', 'excerpt-color' ) ) ); if( NULL !== $this->check_and_return( $item_instance, 'design', 'fonts', 'shadow' ) ) $this->inline_css .= layers_inline_styles( ".{$widget_id}-{$column_key}", 'text-shadow', array( 'selectors' => array( '.heading a', '.heading' , 'div.excerpt' , 'div.excerpt p' ) , 'text-shadow' => $this->check_and_return( $item_instance, 'design', 'fonts', 'shadow' ) ) ); // Set column margin & padding if( NULL !== $this->check_and_return( $item_instance, 'design', 'advanced', 'margin' ) ) $this->inline_css .= layers_inline_styles( ".{$widget_id}-{$column_key}", 'margin', array( 'margin' => $this->check_and_return( $item_instance, 'design', 'advanced', 'margin' ) ) ); if( NULL !== $this->check_and_return( $item_instance, 'design', 'advanced', 'padding' ) ) $this->inline_css .= layers_inline_styles( ".{$widget_id}-{$column_key}", 'padding', array( 'padding' => $this->check_and_return( $item_instance, 'design', 'advanced', 'padding' ) ) ); if( !isset( $item_instance[ 'width' ] ) ) $item_instance[ 'width' ] = $this->column_defaults[ 'width' ]; // Set the button styling $button_size = ''; if ( function_exists( 'layers_pro_apply_widget_button_styling' ) ) { $this->inline_css .= layers_pro_apply_widget_button_styling( $this, $item_instance, array( ".{$widget_id}-{$column_key} .button" ) ); $button_size = $this->check_and_return( $item_instance , 'design' , 'buttons-size' ) ? 'btn-' . $this->check_and_return( $item_instance , 'design' , 'buttons-size' ) : '' ; } // Add the correct span class $span_class = 'span-' . $item_instance[ 'width' ]; $col_no++; $max = 12; $initial_width = $row_width; $item_width = $item_instance[ 'width' ]; $next_item_width = ( isset( $next_item[ 'width' ] ) ? $next_item[ 'width' ] : 0 ); $row_width += $item_width; if( $max == $row_width ){ $first_last_class = 'last'; $row_width = 0; } elseif( $max < $next_item_width + $row_width ){ $first_last_class = 'last'; $row_width = 0; } elseif( 0 == $initial_width ){ $first_last_class = 'first'; } else { $first_last_class = ''; } // Set Featured Media $featureimage = $this->check_and_return( $item_instance , 'design' , 'featuredimage' ); $featurevideo = $this->check_and_return( $item_instance , 'design' , 'featuredvideo' ); // Calculate which cut based on ratio. if( isset( $item_instance['design'][ 'imageratios' ] ) ){ // Translate Image Ratio into something usable $image_ratio = layers_translate_image_ratios( $item_instance['design'][ 'imageratios' ] ); if( !isset( $item_instance[ 'width' ] ) ) $item_instance[ 'width' ] = 6; if( 4 >= $item_instance['width'] && 'layout-fullwidth' != $this->check_and_return( $instance, 'design', 'layout' ) ) $use_image_ratio = $image_ratio . '-medium'; else $use_image_ratio = $image_ratio . '-large'; } else { if( 4 > $item_instance['width'] ) $use_image_ratio = 'medium'; else $use_image_ratio = 'full'; } $media = layers_get_feature_media( $featureimage , $use_image_ratio , $featurevideo ); // Set Image Size if( isset( $item_instance['design']['featuredimage-size'] ) && 0 != $item_instance['design']['featuredimage-size'] && '' != $item_instance['design']['featuredimage-size'] && !is_array( $item_instance['design'][ 'featuredimage-size' ] )) { $image_width = $item_instance['design'][ 'featuredimage-size' ].'px'; $this->inline_css .= layers_inline_styles( "#{$widget_id}-{$column_key} .media-image img { max-width : {$image_width}; }"); } // Get the link array. $link_array = $this->check_and_return_link( $item_instance, 'button' ); $link_href_attr = ( $link_array['link'] ) ? 'href="' . esc_url( $link_array['link'] ) . '"' : ''; $link_target_attr = ( '_blank' == $link_array['target'] ) ? 'target="_blank"' : ''; /** * Set Individual Column CSS */ $classes = array(); $classes[] = "{$widget_id}-{$column_key}"; $classes[] = 'layers-masonry-column'; $classes[] = $this->id_base . '-' . $column_key; $classes[] = $span_class; $classes[] = ( 'on' == $this->check_and_return( $item_instance , 'design', 'background', 'darken' ) ? 'darken' : '' ); $classes[] = ( '' != $first_last_class ? $first_last_class : '' ); $classes[] = ( 'list-masonry' == $this->check_and_return( $instance, 'design', 'liststyle' ) ? '' : '' ); $classes[] = 'column' . ( 'on' != $this->check_and_return( $instance, 'design', 'gutter' ) ? '-flush' : '' ); $classes[] = $this->check_and_return( $item_instance, 'design', 'advanced', 'customclass' ); // Apply custom class from design-bar's advanced control. if( $this->check_and_return( $item_instance, 'design' , 'background', 'image' ) || '' != $this->check_and_return( $item_instance, 'design' , 'background', 'color' ) ) $classes[] = 'content'; // Calculate which cut based on ratio. if( isset( $item_instance['design'][ 'imageratios' ] ) ){ // Translate Image Ratio into something usable $image_ratio = layers_translate_image_ratios( $item_instance['design'][ 'imageratios' ] ); if( !isset( $item_instance[ 'width' ] ) ) $item_instance[ 'width' ] = 6; if( 4 >= $item_instance['width'] && 'layout-fullwidth' != $this->check_and_return( $instance, 'design', 'layout' ) ) $use_image_ratio = $image_ratio . '-medium'; else $use_image_ratio = $image_ratio . '-large'; } else { if( 4 > $item_instance['width'] ) $use_image_ratio = 'medium'; else $use_image_ratio = 'full'; } if( $this->check_and_return( $item_instance , 'design' , 'featuredimage' ) || $this->check_and_return( $item_instance , 'design' , 'featuredvideo' ) ) $classes[] = 'has-image'; $classes = apply_filters( 'layers_content_widget_item_class', $classes, $this, $item_instance ); $classes = implode( ' ', $classes ); ?> <div id="<?php echo "{$widget_id}-{$column_key}"; ?>" class="<?php echo esc_attr( $classes ); ?>"> <?php /** * Set Overlay CSS Classes */ $column_inner_classes = array(); $column_inner_classes[] = 'media'; if( !$this->check_and_return( $instance, 'design', 'gutter' ) ) { $column_inner_classes[] = 'no-push-bottom'; } if( $this->check_and_return( $item_instance, 'design', 'background' , 'color' ) ) { if( 'dark' == layers_is_light_or_dark( $this->check_and_return( $item_instance, 'design', 'background' , 'color' ) ) ) { $column_inner_classes[] = 'invert'; } } else { if( $this->check_and_return( $instance, 'design', 'background' , 'color' ) && 'dark' == layers_is_light_or_dark( $this->check_and_return( $instance, 'design', 'background' , 'color' ) ) ) { $column_inner_classes[] = 'invert'; } } $column_inner_classes[] = $this->check_and_return( $item_instance, 'design', 'imagealign' ); $column_inner_classes[] = $this->check_and_return( $item_instance, 'design', 'fonts' , 'size' ); $column_inner_classes = implode( ' ', $column_inner_classes ); ?> <div class="<?php echo $column_inner_classes; ?>"> <?php // Display featured image $this->featured_media( 'media-image', $item_instance ); ?> <?php if( $this->check_and_return( $item_instance, 'title' ) || $this->check_and_return( $item_instance, 'excerpt' ) || ( $link_array['link'] && $link_array['text'] ) ) { ?> <div class="media-body <?php echo ( isset( $item_instance['design']['fonts'][ 'align' ] ) ) ? $item_instance['design']['fonts'][ 'align' ] : ''; ?>"> <?php if( $this->check_and_return( $item_instance, 'title') ) { ?> <<?php echo $this->check_and_return( $item_instance, 'design', 'fonts', 'heading-type' ) ?> class="heading"> <?php if ( $link_array['link'] ) { ?> <a <?php echo $link_href_attr; ?> <?php echo $link_target_attr; ?>> <?php } ?> <?php echo $item_instance['title']; ?> <?php if ( $link_array['link'] ) { ?> </a> <?php } ?> </<?php echo $this->check_and_return( $item_instance, 'design', 'fonts', 'heading-type' ) ?>> <?php } ?> <?php if( $this->check_and_return( $item_instance, 'excerpt' ) ) { ?> <div class="excerpt"><?php layers_the_content( $item_instance['excerpt'] ); ?></div> <?php } ?> <?php if ( $link_array['link'] && $link_array['text'] ) { ?> <a <?php echo $link_href_attr; ?> class="button <?php echo $button_size; ?>" <?php echo $link_target_attr; ?>> <?php echo $link_array['text']; ?> </a> <?php } ?> </div> <?php } ?> </div> </div> <?php } ?> </div><!-- /row --> </div> <?php } do_action( 'layers_after_content_widget_inner', $this, $instance ); // Print the Inline Styles for this Widget $this->print_inline_css( $this, $instance ); if( 'list-masonry' == $this->check_and_return( $instance , 'design', 'liststyle' ) ) { ?> <script type='text/javascript'> jQuery(function($){ $('#<?php echo $widget_id; ?>').find('.list-masonry .grid').layers_masonry({ itemSelector: '.layers-masonry-column', layoutMode: 'masonry', gutter: <?php echo ( isset( $instance['design'][ 'gutter' ] ) ? 20 : 0 ); ?>, }); }); </script> <?php } // masonry trigger ?> </div> <?php } /** * Widget update */ function update($new_instance, $old_instance) { if ( isset( $this->checkboxes ) ) { foreach( $this->checkboxes as $cb ) { if( isset( $old_instance[ $cb ] ) ) { $old_instance[ $cb ] = strip_tags( $new_instance[ $cb ] ); } } // foreach checkboxes } // if checkboxes return $new_instance; } /** * Widget form * * We use regular HTML here, it makes reading the widget much easier than if we used just php to echo all the HTML out. * */ function form( $instance ){ // Use defaults if $instance is empty. if( empty( $instance ) && ! empty( $this->defaults ) ) { $instance = wp_parse_args( $instance, $this->defaults ); } // Mix in new/unset defaults on every instance load (NEW) $instance = $this->apply_defaults( $instance ); $this->design_bar( 'side', // CSS Class Name array( // Widget Object 'name' => $this->get_layers_field_name( 'design' ), 'id' => $this->get_layers_field_id( 'design' ), 'widget_id' => $this->widget_id, 'widget_object' => $this, ), $instance, // Widget Values apply_filters( 'layers_column_widget_design_bar_components', array( // Components 'layout', 'liststyle' => array( 'icon-css' => 'icon-list-masonry', 'label' => __( 'List Style', 'layerswp' ), 'wrapper-class' => 'layers-small to layers-pop-menu-wrapper layers-animate', 'elements' => array( 'liststyle' => array( 'type' => 'select-icons', 'name' => $this->get_layers_field_name( 'design', 'liststyle' ) , 'id' => $this->get_layers_field_id( 'design', 'liststyle' ) , 'value' => ( isset( $instance['design'][ 'liststyle' ] ) ) ? $instance['design'][ 'liststyle' ] : NULL, 'options' => array( 'list-grid' => __( 'Grid' , 'layerswp' ), 'list-masonry' => __( 'Masonry' , 'layerswp' ) ) ), 'gutter' => array( 'type' => 'checkbox', 'label' => __( 'Gutter' , 'layerswp' ), 'name' => $this->get_layers_field_name( 'design', 'gutter' ) , 'id' => $this->get_layers_field_id( 'design', 'gutter' ) , 'value' => ( isset( $instance['design']['gutter'] ) ) ? $instance['design']['gutter'] : NULL ) ) ), 'background', 'advanced', ), $this, $instance ) ); ?> <div class="layers-container-large" id="layers-column-widget-<?php echo $this->number; ?>"> <?php $this->form_elements()->header( array( 'title' =>'Content', 'icon_class' =>'text' ) ); ?> <section class="layers-accordion-section layers-content"> <div class="layers-form-item"> <?php echo $this->form_elements()->input( array( 'type' => 'text', 'name' => $this->get_layers_field_name( 'title' ) , 'id' => $this->get_layers_field_id( 'title' ) , 'placeholder' => __( 'Enter title here' , 'layerswp' ), 'value' => ( isset( $instance['title'] ) ) ? $instance['title'] : NULL , 'class' => 'layers-text layers-large layers-input-has-controls', ) ); ?> <?php $this->design_bar( 'top', // CSS Class Name array( // Widget Object 'name' => $this->get_layers_field_name( 'design' ), 'id' => $this->get_layers_field_id( 'design' ), 'widget_id' => $this->widget_id, 'widget_object' => $this, 'show_trash' => FALSE, 'inline' => TRUE, 'align' => 'right', ), $instance, // Widget Values apply_filters( 'layers_column_widget_inline_design_bar_components', array( // Components 'header_excerpt', ), $this, $instance ) ); ?> </div> <div class="layers-form-item"> <?php echo $this->form_elements()->input( array( 'type' => 'rte', 'name' => $this->get_layers_field_name( 'excerpt' ) , 'id' => $this->get_layers_field_id( 'excerpt' ) , 'placeholder' => __( 'Short Excerpt' , 'layerswp' ), 'value' => ( isset( $instance['excerpt'] ) ) ? $instance['excerpt'] : NULL , 'class' => 'layers-textarea layers-large' ) ); ?> </div> </section> <section class="layers-accordion-section layers-content"> <div class="layers-form-item"> <?php $this->repeater( 'column', $instance ); ?> </div> </section> </div> <?php } function column_item( $item_guid, $item_instance ) { // Required - Get the name of this type. $type = str_replace( '_item', '', __FUNCTION__ ); // Mix in new/unset defaults on every instance load (NEW) $item_instance = $this->apply_defaults( $item_instance, 'column' ); ?> <li class="layers-accordion-item" data-guid="<?php echo esc_attr( $item_guid ); ?>"> <a class="layers-accordion-title"> <span> <?php echo ucfirst( $type ); ?><span class="layers-detail"><?php if ( isset( $item_instance['title'] ) ) echo $this->format_repeater_title( $item_instance['title'] ); ?></span> </span> </a> <section class="layers-accordion-section layers-content"> <?php $this->design_bar( 'top', // CSS Class Name array( // Widget Object 'name' => $this->get_layers_field_name( 'design' ), 'id' => $this->get_layers_field_id( 'design' ), 'widget_id' => $this->widget_id . '_item', 'widget_object' => $this, 'number' => $this->number, 'show_trash' => TRUE, ), $item_instance, // Widget Values apply_filters( 'layers_column_widget_column_design_bar_components', array( // Components 'background', 'featuredimage', 'imagealign', 'header_excerpt', 'buttons' => array( 'icon-css' => 'icon-call-to-action', 'label' => __( 'Buttons', 'layerswp' ), 'elements' => array( 'layers-pro-upsell' =>array( 'type' => 'html', 'html' => '<div class="layers-upsell-tag"> <span class="layers-upsell-title">Upgrade to Layers Pro</span> <div class="description customize-control-description"> Want more control over your button styling and sizes? <a target="_blank" href="https://www.layerswp.com/layers-pro/?ref=obox&utm_source=layers%20theme&utm_medium=link&utm_campaign=Layers%20Pro%20Upsell&utm_content=Widget%20Button%20Control">Purchase Layers Pro</a> and gain more control over your button styling! </div> </div>' ) ), 'elements_combine' => 'replace', ), 'width' => array( 'icon-css' => 'icon-columns', 'label' => 'Column Width', 'elements' => array( 'layout' => array( 'type' => 'select', 'label' => __( '' , 'layerswp' ), 'name' => $this->get_layers_field_name( 'width' ), 'id' => $this->get_layers_field_id( 'width' ), 'value' => ( isset( $item_instance['width'] ) ) ? $item_instance['width'] : NULL, 'options' => array( '1' => __( '1 of 12 columns' , 'layerswp' ), '2' => __( '2 of 12 columns' , 'layerswp' ), '3' => __( '3 of 12 columns' , 'layerswp' ), '4' => __( '4 of 12 columns' , 'layerswp' ), '5' => __( '5 of 12 columns' , 'layerswp' ), '6' => __( '6 of 12 columns' , 'layerswp' ), '7' => __( '7 of 12 columns' , 'layerswp' ), '8' => __( '8 of 12 columns' , 'layerswp' ), '9' => __( '9 of 12 columns' , 'layerswp' ), '10' => __( '10 of 12 columns' , 'layerswp' ), '11' => __( '11 of 12 columns' , 'layerswp' ), '12' => __( '12 of 12 columns' , 'layerswp' ) ) ) ) ), 'advanced' => array( 'elements' => array( 'advanced-margin-padding-start' => array( 'type' => 'group-start', 'label' => __( 'Margin & Padding', 'layerswp' ), ), 'padding' => array( 'type' => 'inline-numbers-fields', 'label' => __( 'Padding (px)', 'layerswp' ), 'name' => $this->get_layers_field_name( 'design', 'advanced', 'padding' ), 'id' => $this->get_layers_field_id( 'design', 'advanced', 'padding' ), 'value' => ( isset( $item_instance['design']['advanced']['padding'] ) ) ? $item_instance['design']['advanced']['padding'] : NULL, 'fields' => array( 'top', 'right', 'bottom', 'left', ), 'input_class' => 'inline-fields-flush', ), 'margin' => array( 'type' => 'inline-numbers-fields', 'label' => __( 'Margin (px)', 'layerswp' ), 'name' => $this->get_layers_field_name( 'design', 'advanced', 'margin' ), 'id' => $this->get_layers_field_id( 'design', 'advanced', 'margin' ), 'value' => ( isset( $item_instance['design']['advanced']['margin'] ) ) ? $item_instance['design']['advanced']['margin'] : NULL, 'fields' => array( 'top', 'bottom', ), 'input_class' => 'inline-fields-flush', ), 'advanced-margin-padding-end' => array( 'type' => 'group-end', ), 'advanced-custom-class-start' => array( 'type' => 'group-start', 'label' => __( 'Custom Classes', 'layerswp' ), ), 'customclass', 'advanced-custom-class-end' => array( 'type' => 'group-end' ), ), 'elements_combine' => 'replace', ), ), $this, $item_instance ) ); ?> <div class="layers-row"> <p class="layers-form-item"> <label for="<?php echo $this->get_layers_field_id( 'title' ); ?>"><?php _e( 'Title' , 'layerswp' ); ?></label> <?php echo $this->form_elements()->input( array( 'type' => 'text', 'name' => $this->get_layers_field_name( 'title' ), 'id' => $this->get_layers_field_id( 'title' ), 'placeholder' => __( 'Enter title here' , 'layerswp' ), 'value' => ( isset( $item_instance['title'] ) ) ? $item_instance['title'] : NULL , 'class' => 'layers-text' ) ); ?> </p> <p class="layers-form-item"> <label for="<?php echo $this->get_layers_field_id( 'excerpt' ); ?>"><?php _e( 'Excerpt' , 'layerswp' ); ?></label> <?php echo $this->form_elements()->input( array( 'type' => 'rte', 'name' => $this->get_layers_field_name( 'excerpt' ), 'id' => $this->get_layers_field_id( 'excerpt' ), 'placeholder' => __( 'Short Excerpt' , 'layerswp' ), 'value' => ( isset( $item_instance['excerpt'] ) ) ? $item_instance['excerpt'] : NULL , 'class' => 'layers-form-item layers-textarea', 'rows' => 6 ) ); ?> </p> <?php // Fix widget's that were created before dynamic linking structure. $item_instance = $this->convert_legacy_widget_links( $item_instance, 'button' ); ?> <div class="layers-form-item"> <label> <?php _e( 'Insert Link' , 'layerswp' ); ?> </label> <?php echo $this->form_elements()->input( array( 'type' => 'link-group', 'name' => $this->get_layers_field_name( 'button' ), 'id' => $this->get_layers_field_id( 'button' ), 'value' => ( isset( $item_instance['button'] ) ) ? $item_instance['button'] : NULL, ) ); ?> </div> </div> </section> </li> <?php } } // Class // Add our function to the widgets_init hook. register_widget("Layers_Content_Widget"); }