'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'] ) : ''; ?>