'ampforwp-blurb', 'description' => esc_html__( 'Displays Icon, headline and description. Best for showing features.', 'accelerated-mobile-pages' ) ) ); add_action( 'admin_enqueue_scripts', array( $this, 'register_admin_scripts' ) ); } // end constructor /*--------------------------------------------------*/ /* Widget API Functions /*--------------------------------------------------*/ /** * Outputs the content of the widget. * * @param array args The array of form elements * @param array instance The current instance of the widget */ public function widget( $args, $instance ) { $output = ""; extract( $args, EXTR_SKIP ); $title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : ''; $title = apply_filters( 'widget_title', $title, $instance, $this->id_base ); $features = ( ! empty( $instance['features'] ) ) ? $instance['features'] : array(); echo $before_widget; $output .= '
'; if ( $title ) { $output .= '
'; $output .= esc_html( $title ); $output .= '
'; } $output .= '
'; foreach( $features as $feature ) { $output .= '
'; if ( $feature['image'] ) { $output .= ''; } $output .= '
'; $output .= '

'.esc_html( $feature['title']).'

'; $output .= '

' .esc_html( $feature['description']).'

'; $output .= '
'; $output .= '
'; } $output .= '
'; // flex-grid & amp_cb_module $sanitizer = new AMPFORWP_Content( $output, array(), apply_filters( 'ampforwp_content_sanitizers',array( 'AMP_Img_Sanitizer' => array(),'AMP_Style_Sanitizer' => array() ) ) ); $sanitized_output = $sanitizer->get_amp_content(); if( $sanitized_output ) { echo $sanitized_output; // amphtml content, no kses } echo $after_widget; } // end widget /** * Processes the widget's options to be saved. * * @param array new_instance The new instance of values to be generated via the update. * @param array old_instance The previous instance of values before the update. */ public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); foreach($new_instance['features'] as $feature){ $feature['title'] = strip_tags($feature['title']); $feature['description'] = strip_tags($feature['description']); $feature['image'] = strip_tags($feature['image']); } $instance['features'] = $new_instance['features']; return $instance; } // end widget /** * Generates the administration form for the widget. * * @param array instance The array of keys and values for the widget. */ public function form( $instance ) { $instance = wp_parse_args( (array) $instance ); $title = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : ''; ?>

0 ) { foreach( $features as $feature ) { if ( isset( $feature['title'] ) || isset( $feature['description'] ) ) { ?>

" class="preview-image block-image-" > " />