public function to_json($load)
{
$complex_data = parent::to_json($load);
$groups_data = array();
$values_data = array();
foreach ($this->groups as $group) {
$groups_data[] = $group->to_json(false);
}
foreach ($this->values as $fields) {
$group = $this->get_group_by_name($fields['type']);
unset($fields['type']);
$data = array('name' => $group->get_name(), 'label' => $group->get_label(), 'group_id' => $group->get_group_id(), 'fields' => array());
foreach ($fields as $index => $field) {
$data['fields'][] = $field->to_json(false);
}
$values_data[] = $data;
}
$complex_data = array_merge($complex_data, array('layout' => $this->layout, 'labels' => $this->labels, 'min' => $this->get_min(), 'max' => $this->get_max(), 'multiple_groups' => count($groups_data) > 1, 'groups' => $groups_data, 'value' => $values_data));
return $complex_data;
}