name = 'swatch';
$this->label = __('Color Swatch', 'acf');
$this->category = __('Choice', 'acf');
$this->defaults = array(
'layout' => 'vertical',
'choices' => array(),
'default_value' => '',
'other_choice' => 0,
'save_other_choice' =>0,
);
$this->settings = array(
'path' => apply_filters('acf/helpers/get_path', __FILE__),
'dir' => apply_filters('acf/helpers/get_dir', __FILE__),
'version' => '1.0.0'
);
// do not delete!
parent::__construct();
}
/*
* create_field()
*
* Create the HTML interface for your field
*
* @param $field - an array holding all the field's data
*
* @type action
* @since 3.6
* @date 23/01/13
*/
function create_field($field) {
$obj = array();
$arr = explode("\n", $field['choices']);
foreach ($arr as $a) {
$k = explode(' : ', $a);
$obj[$k[0]] = $k[1];
}
$field['choices'] = $obj; // this all seems very hacky... the default radio class didnt use this
// vars
$i = 0;
$e = '
';
//$e .= var_dump($obj);
// add choices
if (is_array($field['choices'])) {
foreach($field['choices'] as $key => $value) {
// vars
$i++;
$atts = '';
// if there is no value and this is the first of the choices, select this on by default
if ($field['value'] === false) {
if ($i === 1) {
$atts = 'checked="checked" data-checked="checked"';
}
} else {
if (strval($key) === strval($field['value'])) {
$atts = 'checked="checked" data-checked="checked"';
}
}
// HTML
$e .= '';
}
}
// other choice
if ($field['other_choice']) {
// vars
$atts = '';
$atts2 = 'name="" value="" style="display:none"';
if ($field['value'] !== false) {
if (!isset($field['choices'][$field['value']])) {
$atts = 'checked="checked" data-checked="checked"';
$atts2 = 'name="' . esc_attr($field['name']) . '" value="' . esc_attr($field['value']) . '"';
}
}
$e .= '
';
}
$e .= '
';
echo $e;
}
/*
* create_options()
*
* Create extra options for your field. This is rendered when editing a field.
* The value of $field['name'] can be used (like bellow) to save extra data to the $field
*
* @type action
* @since 3.6
* @date 23/01/13
*
* @param $field - an array holding all the field's data
*/
function create_options($field) {
// vars
$key = $field['name'];
// implode checkboxes so they work in a textarea
if (is_array($field['choices'])) {
foreach ($field['choices'] as $k => $v) {
$field['choices'][ $k ] = $k . ' : ' . $v;
}
$field['choices'] = implode("\n", $field['choices']);
}
?>