function styles_style_save_preset in Styles 7.2
Save a style/preset instance.
@TODO: Throw an error instead?
Parameters
string $field_type: The field type of the style/preset to save.
string $container_name: The container.
string $style_name: The name of the style to save to.
string $preset_name: The name of the preset.
boolean $delete_only: If TRUE, then we delete only, rather than saving.
Return value
boolean Return TRUE, or FALSE if the save was not successful.
1 call to styles_style_save_preset()
- styles_ui_style_edit_form_submit in contrib/styles_ui/ styles_ui.admin.inc 
- Submission handler for the add style form.
File
- ./styles.module, line 572 
- Bundles similar display formatters together.
Code
function styles_style_save_preset($field_type, $container_name, $style_name, $preset_name, $delete_only = FALSE) {
  $query = db_select('styles_presets', 'p');
  $query
    ->addField('p', 'pid');
  $query
    ->condition('p.name', $preset_name);
  $query
    ->condition('p.field_type', $field_type);
  $query
    ->condition('p.container_name', $container_name);
  $result = $query
    ->execute();
  foreach ($result as $preset) {
    $preset = (array) $preset;
  }
  if (empty($preset)) {
    $preset = array(
      'name' => $preset_name,
      'field_type' => $field_type,
      'container_name' => $container_name,
    );
    drupal_write_record('styles_presets', $preset);
  }
  $styles = styles_default_styles($field_type);
  if (!isset($styles['styles'][$style_name])) {
    return FALSE;
  }
  else {
    $style = $styles['styles'][$style_name];
  }
  if (!isset($style['sid'])) {
    return FALSE;
  }
  // Delete old style/preset instances for this container.
  // Unfortunately, we can't use joins with DeleteQuery. See following comment.
  db_query("DELETE FROM {styles_preset_instances} WHERE {styles_preset_instances}.sid = :sid AND EXISTS (SELECT * FROM {styles} s, {styles_presets} p WHERE s.sid = {styles_preset_instances}.sid AND p.pid = {styles_preset_instances}.pid AND s.field_type = p.field_type AND p.container_name = :container_name);", array(
    ':sid' => $style['sid'],
    ':container_name' => $container_name,
  ));
  // @TODO: See if there's a way to implement something like the following:
  //   db_delete('styles_preset_instances')
  //     ->join('styles', 's')
  //     ->join('styles_presets', 'p')
  //     ->condition('s.sid', 'styles_preset_instances.sid')
  //     ->condition('styles_preset_instances.pid', 'p.pid')
  //     ->condition('s.field_type', 'p.field_type')
  //     ->condition('styles_preset_instances.sid', $style['sid'])
  //     ->condition('p.container_name', $container_name)
  //     ->execute();
  // Write the revised style for an update, unless we're only deleting the old.
  if (!$delete_only) {
    $record = array(
      'sid' => $style['sid'],
      'pid' => $preset['pid'],
    );
    drupal_write_record('styles_preset_instances', $record);
  }
  // Let other modules update as necessary on save.
  module_invoke_all('styles_preset_save', $field_type, $container_name, $style_name, $preset_name, $delete_only);
  // Clear all caches and flush.
  styles_style_flush($style);
  return TRUE;
}