/** * Index a field based on the stored value(s). * * @since 1.0.0 * * @param CMB2_Field $field Field object. * @param array $defaults Array of default values. */ public function index_field_values($field, $defaults) { $index = array(); $values = (array) $field->escaped_value(); foreach ($values as $value) { if (empty($value)) { continue; } $index[] = array('facet_value' => $value, 'facet_display_value' => $field->args('name')); } $this->index_multiple($index, $defaults); }
/** * Peforms saving of `file` attachement's ID * @since 1.1.0 */ public function _save_file_id() { $group = $this->field->group; $args = $this->field->args(); $args['id'] = $args['_id'] . '_id'; unset($args['_id'], $args['_name']); // And get new field object $field = new CMB2_Field(array('field_args' => $args, 'group_field' => $group, 'object_id' => $this->field->object_id, 'object_type' => $this->field->object_type)); $id_key = $field->_id(); $id_val_old = $field->escaped_value('absint'); if ($group) { // Check group $_POST data $i = $group->index; $base_id = $group->_id(); $id_val = isset($_POST[$base_id][$i][$id_key]) ? absint($_POST[$base_id][$i][$id_key]) : 0; } else { // Check standard $_POST data $id_val = isset($_POST[$field->id()]) ? $_POST[$field->id()] : null; } // If there is no ID saved yet, try to get it from the url if ($this->value && !$id_val) { $id_val = cmb2_utils()->image_id_from_url($this->value); } if ($group) { return array('attach_id' => $id_val, 'field_id' => $id_key); } if ($id_val && $id_val != $id_val_old) { return $field->update_data($id_val); } elseif (empty($id_val) && $id_val_old) { return $field->remove_data($id_val_old); } }
/** * Manually render a field column display. * * @param array $field_args Array of field arguments. * @param CMB2_Field $field The field object */ function yourprefix_display_text_small_column($field_args, $field) { ?> <div class="custom-column-display <?php echo $field->row_classes(); ?> "> <p><?php echo $field->escaped_value(); ?> </p> <p class="description"><?php echo $field->args('description'); ?> </p> </div> <?php }