Group()
Description #
AnsPress Group type field object.
Source #
File: lib/form/class-group.php
class Group extends Field { /** * The field type. * * @var string */ public $type = 'group'; /** * The child fields. * * @var AnsPress\Form */ public $child; /** * Prepare field. * * @return void */ protected function prepare() { $this->args = wp_parse_args( $this->args, array( 'label' => __( 'AnsPress Group Field', 'anspress-question-answer' ), 'toggleable' => false, 'delete_button' => false, // Used for repeatable fields. ) ); $this->child = new Form( $this->form_name, $this->args ); $this->child->prepare(); // Call parent prepare(). parent::prepare(); } /** * Order of HTML markup. * * @return void */ protected function html_order() { $this->output_order = array( 'wrapper_start', 'label', 'field_wrap_start', 'desc', 'errors', 'field_markup', 'field_wrap_end', 'wrapper_end' ); } /** * Output label of field. * * @return void */ public function label() { $this->add_html( '<label class="ap-form-label" for="' . sanitize_html_class( $this->field_name ) . '">' . esc_html( $this->get( 'label' ) ) ); // Shows delete button for repeatable fields. if ( true === $this->get( 'delete_button', false ) ) { $this->add_html( '<button class="ap-btn ap-repeatable-delete">' . __( 'Delete', 'anspress-question-answer' ) . '</button>' ); } $this->add_html( '</label>' ); } /** * Field markup. * * @return void */ public function field_markup() { parent::field_markup(); $checked = true; if ( $this->get( 'toggleable' ) ) { // Show toggle group if child fields have errors. $value = $this->have_errors() ? 1 : ! empty( array_filter( (array) $this->value() ) ); $checked = checked( $value, 1, false ); $this->add_html( '<label for="' . sanitize_html_class( $this->field_name ) . '"><input' . $this->common_attr() . ' ' . $checked . ' type="checkbox" value="1" onchange="AnsPress.Helper.toggleNextClass(this);" />' . esc_html( $this->get( 'toggleable.label', $this->get( 'label' ) ) ) ); $this->add_html( '</label>' ); } $this->add_html( '<div class="ap-fieldgroup-c' . ( $checked ? ' show' : '' ) . '">' ); $this->add_html( $this->child->generate_fields() ); $this->add_html( '</div>' ); /** This action is documented in lib/form/class-input.php */ do_action_ref_array( 'ap_after_field_markup', array( &$this ) ); } }
Expand full source code Collapse full source code View on GitHub: lib/form/class-group.php:28
Add your comment