You are here

function widgets_set_visibility_save in Widgets 7

1 call to widgets_set_visibility_save()
widgets_set_save in ./widgets.module
Save an widget set.

File

./widgets.module, line 535
Exposes global functionality for creating widget sets.

Code

function widgets_set_visibility_save($set) {

  /*
  $set['data']['visibility'] += array(
  'block' => 1,
  'token' => 1,
  );
  */
  $mode = 'wsid';
  $query = db_merge('widgets_visibility')
    ->key(array(
    'wsid' => $set['wsid'],
  ))
    ->fields(array(
    'token' => isset($set['data']['visibility']['token']) ? $set['data']['visibility']['token'] : 1,
    'block' => isset($set['data']['visibility']['block']) ? $set['data']['visibility']['block'] : 1,
  ));
  $query
    ->execute();
  if (!isset($set['data']['visibility']['content_types'])) {
    $set['data']['visibility']['content_types'] = node_type_get_types();
  }
  foreach ($set['data']['visibility']['content_types'] as $typename => $values) {

    // unset node types if node_type_get_types() was used to set array
    if (is_object($values)) {
      $values = array();
    }
    $query = db_merge('widgets_visibility_type')
      ->key(array(
      'wsid' => $set['wsid'],
      'type' => $typename,
    ))
      ->fields(array(
      'links_full' => isset($values['links_full']) && $values['links_full'] ? 1 : 0,
      'links_teaser' => isset($values['links_teaser']) && $values['links_teaser'] ? 1 : 0,
    ));
    $query
      ->execute();
  }
}