Example #1
0
 function render_field($field)
 {
     // decode value (convert to array)
     $field['value'] = acf_get_array($field['value'], false);
     // hiden input
     acf_hidden_input(array('type' => 'hidden', 'name' => $field['name']));
     // vars
     $i = 0;
     $li = '';
     $all_checked = true;
     // checkbox saves an array
     $field['name'] .= '[]';
     // foreach choices
     if (!empty($field['choices'])) {
         foreach ($field['choices'] as $value => $label) {
             // increase counter
             $i++;
             // vars
             $atts = array('type' => 'checkbox', 'id' => $field['id'], 'name' => $field['name'], 'value' => $value);
             // is choice selected?
             if (in_array($value, $field['value'])) {
                 $atts['checked'] = 'checked';
             } else {
                 $all_checked = false;
             }
             if (isset($field['disabled']) && acf_in_array($value, $field['disabled'])) {
                 $atts['disabled'] = 'disabled';
             }
             // each input ID is generated with the $key, however, the first input must not use $key so that it matches the field's label for attribute
             if ($i > 1) {
                 $atts['id'] .= '-' . $value;
             }
             // append HTML
             $li .= '<li><label><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>';
         }
         // toggle all
         if ($field['toggle']) {
             // vars
             $label = __("Toggle All", 'acf');
             $atts = array('type' => 'checkbox', 'class' => 'acf-checkbox-toggle');
             // custom label
             if (is_string($field['toggle'])) {
                 $label = $field['toggle'];
             }
             // checked
             if ($all_checked) {
                 $atts['checked'] = 'checked';
             }
             // append HTML
             $li = '<li><label><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>' . $li;
         }
     }
     // class
     $field['class'] .= ' acf-checkbox-list';
     $field['class'] .= $field['layout'] == 'horizontal' ? ' acf-hl' : ' acf-bl';
     // return
     echo '<ul ' . acf_esc_attr(array('class' => $field['class'])) . '>' . $li . '</ul>';
 }
Example #2
0
 function render_field($field)
 {
     // decode value (convert to array)
     $field['value'] = acf_force_type_array($field['value']);
     // hiden input
     acf_hidden_input(array('type' => 'hidden', 'name' => $field['name']));
     // vars
     $i = 0;
     // class
     $field['class'] .= ' acf-checkbox-list';
     $field['class'] .= $field['layout'] == 'horizontal' ? ' acf-hl' : ' acf-bl';
     // e
     $e = '<ul ' . acf_esc_attr(array('class' => $field['class'])) . '>';
     // checkbox saves an array
     $field['name'] .= '[]';
     // foreach choices
     if (!empty($field['choices'])) {
         foreach ($field['choices'] as $value => $label) {
             // increase counter
             $i++;
             // vars
             $atts = array('type' => 'checkbox', 'id' => $field['id'], 'name' => $field['name'], 'value' => $value);
             if (in_array($value, $field['value'])) {
                 $atts['checked'] = 'checked';
             }
             if (isset($field['disabled']) && acf_in_array($value, $field['disabled'])) {
                 $atts['disabled'] = 'disabled';
             }
             // each input ID is generated with the $key, however, the first input must not use $key so that it matches the field's label for attribute
             if ($i > 1) {
                 $atts['id'] .= '-' . $value;
             }
             $e .= '<li><label><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>';
         }
     }
     $e .= '</ul>';
     // return
     echo $e;
 }
Example #3
0
 function get_valid_relationship_field($field)
 {
     // force array
     $field['post_type'] = acf_get_array($field['post_type']);
     $field['taxonomy'] = acf_get_array($field['taxonomy']);
     // remove 'all' from post_type
     if (acf_in_array('all', $field['post_type'])) {
         $field['post_type'] = array();
     }
     // remove 'all' from taxonomy
     if (acf_in_array('all', $field['taxonomy'])) {
         $field['taxonomy'] = array();
     }
     // save_format is now return_format
     if (!empty($field['result_elements'])) {
         $field['elements'] = acf_extract_var($field, 'result_elements');
     }
     // return
     return $field;
 }
Example #4
0
 function render_field($field)
 {
     // vars
     $i = 0;
     $checked = false;
     // class
     $field['class'] .= ' acf-radio-list';
     $field['class'] .= $field['layout'] == 'horizontal' ? ' acf-hl' : ' acf-bl';
     // e
     $e = '<ul ' . acf_esc_attr(array('class' => $field['class'])) . '>';
     // other choice
     if ($field['other_choice']) {
         // vars
         $input = array('type' => 'text', 'name' => $field['name'], 'value' => '', 'disabled' => 'disabled');
         // select other choice if value is not a valid choice
         if (!isset($field['choices'][$field['value']])) {
             unset($input['disabled']);
             $input['value'] = $field['value'];
             $field['value'] = 'other';
         }
         $field['choices']['other'] = '</label><input type="text" ' . acf_esc_attr($input) . ' /><label>';
     }
     // require choices
     if (!empty($field['choices'])) {
         // select first choice if value is not a valid choice
         if (!isset($field['choices'][$field['value']])) {
             $field['value'] = key($field['choices']);
         }
         // foreach choices
         foreach ($field['choices'] as $value => $label) {
             // increase counter
             $i++;
             // vars
             $atts = array('type' => 'radio', 'id' => $field['id'], 'name' => $field['name'], 'value' => $value);
             if (strval($value) === strval($field['value'])) {
                 $atts['checked'] = 'checked';
                 $checked = true;
             }
             if (isset($field['disabled']) && acf_in_array($value, $field['disabled'])) {
                 $atts['disabled'] = 'disabled';
             }
             // each input ID is generated with the $key, however, the first input must not use $key so that it matches the field's label for attribute
             if ($i > 1) {
                 $atts['id'] .= '-' . $value;
             }
             $e .= '<li><label><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>';
         }
     }
     $e .= '</ul>';
     echo $e;
 }
Example #5
0
 function get_valid_user_field($field)
 {
     // remove 'all' from roles
     if (acf_in_array('all', $field['role'])) {
         $field['role'] = '';
     }
     // field_type removed in favour of multiple
     if (!empty($field['field_type'])) {
         // extract vars
         $field_type = acf_extract_var($field, 'field_type');
         // multiple
         if ($field_type === 'multi_select') {
             $field['multiple'] = true;
         }
     }
     // return
     return $field;
 }
Example #6
0
 function render_field($field)
 {
     // vars
     $i = 0;
     $e = '';
     $ul = array('class' => 'acf-radio-list', 'data-allow_null' => $field['allow_null'], 'data-other_choice' => $field['other_choice']);
     // append to class
     $ul['class'] .= ' ' . ($field['layout'] == 'horizontal' ? 'acf-hl' : 'acf-bl');
     $ul['class'] .= ' ' . $field['class'];
     // select value
     $checked = '';
     $value = strval($field['value']);
     // selected choice
     if (isset($field['choices'][$value])) {
         $checked = $value;
         // custom choice
     } elseif ($field['other_choice'] && $value !== '') {
         $checked = 'other';
         // allow null
     } elseif ($field['allow_null']) {
         // do nothing
         // select first input by default
     } else {
         $checked = key($field['choices']);
     }
     // ensure $checked is a string (could be an int)
     $checked = strval($checked);
     // other choice
     if ($field['other_choice']) {
         // vars
         $input = array('type' => 'text', 'name' => $field['name'], 'value' => '', 'disabled' => 'disabled', 'class' => 'acf-disabled');
         // select other choice if value is not a valid choice
         if ($checked === 'other') {
             unset($input['disabled']);
             $input['value'] = $field['value'];
         }
         // append other choice
         $field['choices']['other'] = '</label><input type="text" ' . acf_esc_attr($input) . ' /><label>';
     }
     // bail early if no choices
     if (empty($field['choices'])) {
         return;
     }
     // hiden input
     $e .= acf_get_hidden_input(array('name' => $field['name']));
     // open
     $e .= '<ul ' . acf_esc_attr($ul) . '>';
     // foreach choices
     foreach ($field['choices'] as $value => $label) {
         // ensure value is a string
         $value = strval($value);
         $class = '';
         // increase counter
         $i++;
         // vars
         $atts = array('type' => 'radio', 'id' => $field['id'], 'name' => $field['name'], 'value' => $value);
         // checked
         if ($value === $checked) {
             $atts['checked'] = 'checked';
             $class = ' class="selected"';
         }
         // deisabled
         if (isset($field['disabled']) && acf_in_array($value, $field['disabled'])) {
             $atts['disabled'] = 'disabled';
         }
         // id (use crounter for each input)
         if ($i > 1) {
             $atts['id'] .= '-' . $value;
         }
         // append
         $e .= '<li><label' . $class . '><input ' . acf_esc_attr($atts) . '/>' . $label . '</label></li>';
     }
     // close
     $e .= '</ul>';
     // return
     echo $e;
 }
Example #7
0
 function get_post_title($post, $field, $post_id = 0, $is_search = 0)
 {
     // get post_id
     if (!$post_id) {
         $post_id = acf_get_form_data('post_id');
     }
     // vars
     $title = acf_get_post_title($post, $is_search);
     // featured_image
     if (acf_in_array('featured_image', $field['elements'])) {
         // vars
         $class = 'thumbnail';
         $thumbnail = acf_get_post_thumbnail($post->ID, array(17, 17));
         // icon
         if ($thumbnail['type'] == 'icon') {
             $class .= ' -' . $thumbnail['type'];
         }
         // append
         $title = '<div class="' . $class . '">' . $thumbnail['html'] . '</div>' . $title;
     }
     // filters
     $title = apply_filters('acf/fields/relationship/result', $title, $post, $field, $post_id);
     $title = apply_filters('acf/fields/relationship/result/name=' . $field['_name'], $title, $post, $field, $post_id);
     $title = apply_filters('acf/fields/relationship/result/key=' . $field['key'], $title, $post, $field, $post_id);
     // return
     return $title;
 }