Refactor taxonomy widget

Adds new widget form class, which all three widgets can share.
This commit is contained in:
Robin Cornett
2017-05-18 16:36:27 -04:00
parent 338fc6e41d
commit 4ef7e552da
8 changed files with 317 additions and 127 deletions
+8
View File
@@ -0,0 +1,8 @@
<?php
$value = isset( $instance[ $args['id'] ] ) ? $instance[ $args['id'] ] : $this->parent->defaults[ $args['id'] ];
echo '<p>';
printf( '<input type="hidden" name="%s" value="0" />', esc_attr( $this->parent->get_field_name( $args['id'] ) ) );
printf( '<input id="%s" type="checkbox" name="%s" value="1" %s/>', esc_attr( $this->parent->get_field_id( $args['id'] ) ), esc_attr( $this->parent->get_field_name( $args['id'] ) ), checked( 1, esc_attr( $value ), false ) );
printf( '<label for="%s">%s</label>', esc_attr( $this->parent->get_field_id( $args['id'] ) ), esc_attr( $args['label'] ) );
echo '</p>';
+8
View File
@@ -0,0 +1,8 @@
<?php
$after = isset( $args['after'] ) ? $args['after'] : '';
$flex = isset( $args['flex'] ) && $args['flex'] ? ' class="flex"' : '';
printf( '<p%s>', wp_kses( $flex, array( 'class' ) ) );
printf( '<label for="%s">%s </label>', esc_attr( $this->parent->get_field_id( $args['id'] ) ), esc_attr( $args['label'] ) );
printf( '<input type="number" min="%s" max="%s" id="%s" name="%s" value="%s" />%s', intval( $args['min'] ), intval( $args['max'] ), esc_attr( $this->parent->get_field_id( $args['id'] ) ), esc_attr( $this->parent->get_field_name( $args['id'] ) ), esc_attr( $instance[ $args['id'] ] ), esc_attr( $after ) );
echo '</p>';
+15
View File
@@ -0,0 +1,15 @@
<?php
$onchange = isset( $args['onchange'] ) ? sprintf( ' onchange="%s"', $args['onchange'] ) : '';
$class = isset( $args['class'] ) ? sprintf( ' class="%s"', $args['class'] ) : '';
$flex = isset( $args['flex'] ) && $args['flex'] ? ' class="flex"' : '';
printf( '<p%s>', wp_kses( $flex, array( 'class' ) ) );
printf( '<label for="%1$s">%2$s </label>', esc_attr( $this->parent->get_field_id( $args['id'] ) ), esc_attr( $args['label'] ) );
printf( '<select id="%1$s" name="%2$s"%3$s%4$s style="max-width:220px;">', esc_attr( $this->parent->get_field_id( $args['id'] ) ), esc_attr( $this->parent->get_field_name( $args['id'] ) ), $class, $onchange );
$function = "get_{$args['id']}";
$options = method_exists( $this->parent, $function ) ? $this->parent->$function( $instance ) : $args['choices'];
foreach ( $options as $option => $label ) {
printf( '<option value="%1$s" %2$s>%3$s</option>', $option, selected( $option, $instance[ $args['id'] ], false ), $label );
}
echo '</select>';
echo '</p>';
+8
View File
@@ -0,0 +1,8 @@
<?php
$class = isset( $args['class'] ) ? sprintf( ' class="%s"', esc_attr( $args['class'] ) ) : '';
$label_class = isset( $args['label_class'] ) ? sprintf( ' class="%s"', esc_attr( $args['label_class'] ) ) : '';
echo '<p>';
printf( '<label for="%s"%s>%s </label>', esc_attr( $this->parent->get_field_id( $args['id'] ) ), $label_class, esc_attr( $args['label'] ) );
printf( '<input type="text" id="%s" name="%s" value="%s"%s />', esc_attr( $this->parent->get_field_id( $args['id'] ) ), esc_attr( $this->parent->get_field_name( $args['id'] ) ), esc_attr( $instance[ $args['id'] ] ), $class );
echo '</p>';
+7
View File
@@ -0,0 +1,7 @@
<?php
echo '<p>';
$rows = isset( $args['rows'] ) ? $args['rows'] : 3;
printf( '<label for="%s">%s</label>', esc_attr( $this->parent->get_field_id( $args['id'] ) ), esc_attr( $args['label'] ) );
printf( '<textarea class="large-text" rows="%s" id="%s" name="%s">%s</textarea>', absint( $rows ), esc_attr( $this->parent->get_field_id( $args['id'] ) ), esc_attr( $this->parent->get_field_name( $args['id'] ) ), esc_attr( $instance[ $args['id'] ] ) );
echo '</p>';