mirror of https://github.com/vtrois/kratos
67 lines
2.0 KiB
PHP
67 lines
2.0 KiB
PHP
<?php if (!defined('ABSPATH')) {
|
|
die;
|
|
}
|
|
/**
|
|
*
|
|
* Field: button_set
|
|
*
|
|
* @since 1.0.0
|
|
* @version 1.0.0
|
|
*
|
|
*/
|
|
if (!class_exists('CSF_Field_button_set')) {
|
|
class CSF_Field_button_set extends CSF_Fields
|
|
{
|
|
|
|
public function __construct($field, $value = '', $unique = '', $where = '', $parent = '')
|
|
{
|
|
parent::__construct($field, $value, $unique, $where, $parent);
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
|
|
$args = wp_parse_args($this->field, array(
|
|
'multiple' => false,
|
|
'options' => array(),
|
|
'query_args' => array(),
|
|
));
|
|
|
|
$value = (is_array($this->value)) ? $this->value : array_filter((array) $this->value);
|
|
|
|
echo $this->field_before();
|
|
|
|
if (isset($this->field['options'])) {
|
|
|
|
$options = $this->field['options'];
|
|
$options = (is_array($options)) ? $options : array_filter($this->field_data($options, false, $args['query_args']));
|
|
|
|
if (is_array($options) && !empty($options)) {
|
|
|
|
echo '<div class="csf-siblings csf--button-group" data-multiple="' . esc_attr($args['multiple']) . '">';
|
|
|
|
foreach ($options as $key => $option) {
|
|
|
|
$type = ($args['multiple']) ? 'checkbox' : 'radio';
|
|
$extra = ($args['multiple']) ? '[]' : '';
|
|
$active = (in_array($key, $value) || (empty($value) && empty($key))) ? ' csf--active' : '';
|
|
$checked = (in_array($key, $value) || (empty($value) && empty($key))) ? ' checked' : '';
|
|
|
|
echo '<div class="csf--sibling csf--button' . esc_attr($active) . '">';
|
|
echo '<input type="' . esc_attr($type) . '" name="' . esc_attr($this->field_name($extra)) . '" value="' . esc_attr($key) . '"' . $this->field_attributes() . esc_attr($checked) . '/>';
|
|
echo $option;
|
|
echo '</div>';
|
|
}
|
|
|
|
echo '</div>';
|
|
} else {
|
|
|
|
echo (!empty($this->field['empty_message'])) ? esc_attr($this->field['empty_message']) : esc_html__('No data available.', 'csf');
|
|
}
|
|
}
|
|
|
|
echo $this->field_after();
|
|
}
|
|
}
|
|
}
|