You are here

public function PictureMapping::setValues in Picture 7.2

Set data values based on schema.

See also

picture_mapping_object_factory()

1 call to PictureMapping::setValues()
PictureMapping::save in includes/PictureMapping.php
Save the picture mapping.

File

includes/PictureMapping.php, line 49
Picture Mapping class.

Class

PictureMapping
Picture mapping class.

Code

public function setValues($schema, $data) {
  foreach ($schema['fields'] as $field => $info) {
    if (isset($data->{$field})) {
      $this->{$field} = !empty($info['serialize']) && is_string($data->{$field}) ? unserialize($data->{$field}) : $data->{$field};
    }
    else {
      $this->{$field} = NULL;
    }
    unset($data->{$field});
  }
  if (isset($schema['join'])) {
    foreach ($schema['join'] as $join) {
      $join_schema = ctools_export_get_schema($join['table']);
      if (!empty($join['load'])) {
        foreach ($join['load'] as $field) {
          $info = $join_schema['fields'][$field];
          $this->{$field} = empty($info['serialize']) ? $data->{$field} : unserialize($data->{$field});
          unset($data->field);
        }
      }
    }
  }
  foreach ((array) $data as $field => $val) {
    $this->{$field} = $val;
  }
  $this
    ->loadBreakpointGroup();
  $this
    ->loadAllMappings();
}