appendText( $field->value( ) ) ->setAttribute( 'id' , $prefix . 'field' ); } } class FieldView_Text implements FieldView { public function getFieldType( ) { return 'text'; } public function render( Field $field , $prefix ) { return HTML::make( 'input' ) ->setAttribute( 'type' , 'text' ) ->setAttribute( 'name' , $field->name( ) ) ->setAttribute( 'id' , $prefix . 'field' ) ->setAttribute( 'class' , 'form-text-field' ) ->setAttribute( 'value' , HTML::from( $field->value( ) ) ); } } class FieldView_Password implements FieldView { public function getFieldType( ) { return 'password'; } public function render( Field $field , $prefix ) { return HTML::make( 'input' ) ->setAttribute( 'type' , 'password' ) ->setAttribute( 'name' , $field->name( ) ) ->setAttribute( 'id' , $prefix . 'field' ) ->setAttribute( 'class' , 'form-text-field' ); } } class FieldView_TextArea implements FieldView { public function getFieldType( ) { return 'textarea'; } public function render( Field $field , $prefix ) { return HTML::make( 'textarea' ) ->setAttribute( 'name' , $field->name( ) ) ->setAttribute( 'id' , $prefix . 'field' ) ->setAttribute( 'class' , 'form-text-field' ) ->appendText( (string) $field->value( ) ); } } class FieldView_Select implements FieldView { public function getFieldType( ) { return 'select'; } public function render( Field $field , $prefix ) { $select = HTML::make( 'select' ) ->setAttribute( 'name' , $field->name( ) ) ->setAttribute( 'id' , $prefix . 'field' ) ->setAttribute( 'class' , 'form-select' ); if ( $field->hasParameter( 'multiple' ) ) { $select->setAttribute( 'multiple' , 'multiple' ); $v = $field->value( ); if ( is_array( $v ) ) { $selected = array_fill_keys( $v , '' ); } else { $selected = array( ); } } else { $selected = array( $field->value( ) => '' ); } foreach ( $field->options( ) as $value => $obj ) { $option = HTML::make( 'option' ) ->setAttribute( 'value' , $value ) ->setAttribute( 'disabled' , $obj->disabled ? 'disabled' : null ) ->appendText( $obj->text ); if ( array_key_exists( $value , $selected ) ) { $option->setAttribute( 'selected' , 'selected' ); } $select->appendElement( $option ); } return $select; } }