1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
<?php
class Papi_Property_Radio extends Papi_Property {
public function format_value( $value, $slug, $post_id ) {
return papi_cast_string_value( $value );
}
public function get_default_settings() {
return [
'items' => [],
'selected' => ''
];
}
public function html() {
$settings = $this->get_settings();
$value = papi_cast_string_value( $this->get_value() );
if ( ! papi_is_empty( $value ) ) {
$settings->selected = $value;
}
echo '<div class="papi-property-radio">';
foreach ( $settings->items as $key => $value ) {
$key = is_numeric( $key ) ? $value : $key;
papi_render_html_tag( 'p', [
papi_html_tag( 'label', [
'class' => 'light',
'for' => $this->html_id( $key ),
papi_html_tag( 'input', [
'id' => $this->html_id( $key ),
'name' => $this->html_name(),
'type' => 'radio',
'checked' => $value === $settings->selected ? 'checked' : null,
'value' => $value
] ),
papi_convert_to_string( $key )
] )
] );
}
echo '</div>';
}
}