You are here

function conditional_fields_load_data in Conditional Fields 6

Same name and namespace in other branches
  1. 5 conditional_fields.module \conditional_fields_load_data()
  2. 6.2 conditional_fields.module \conditional_fields_load_data()

Returns an array of conditional fields settings for a given node type. $structure can be either 'flat' or 'row' . 'row' data is data per row, while 'flat' data is a list of both controlling and controlled fields.

5 calls to conditional_fields_load_data()
conditional_fields_content_admin_field in ./conditional_fields.module
Alteration of the field editing form
conditional_fields_field_overview_form in ./conditional_fields.module
Find conditional fields and mark them.
conditional_fields_field_overview_form_validate in ./conditional_fields.module
Conditional fields can't change group.
conditional_fields_nodeapi in ./conditional_fields.module
Implementation of hook_nodeapi().
conditional_fields_node_editing_form in ./conditional_fields.module
Alteration of the node editing form

File

./conditional_fields.module, line 855
Content fields and groups visibility based on the values of user defined 'trigger' fields.

Code

function conditional_fields_load_data($type, $structure = 'row', $reset = FALSE) {
  static $data;
  if ($reset) {
    unset($data);
  }
  if (!$data[$structure][$type]) {
    $data[$structure][$type] = array();
    if ($structure == 'row') {
      $query = db_query("SELECT control_field_name, field_name, trigger_values FROM {conditional_fields} WHERE type = '%s'", $type);
      while ($result = db_fetch_array($query)) {
        $result['trigger_values'] = unserialize($result['trigger_values']);
        $data['row'][$type][] = $result;
      }
    }
    elseif ($structure == 'flat') {
      $query = db_query("SELECT control_field_name, field_name FROM {conditional_fields} WHERE type = '%s'", $type);
      while ($result = db_fetch_array($query)) {
        $data['flat'][$type][$result['control_field_name']] = $result['control_field_name'];
        $data['flat'][$type][$result['field_name']] = $result['field_name'];
      }
      $data['flat'][$type] = array_unique($data['flat'][$type]);
    }
  }
  return $data[$structure][$type];
}