You are here

public function SocialContent::saveInstanceSettings in Social Content 7.2

Save instance settings.

Parameters

array $settings: The settings to save.

4 calls to SocialContent::saveInstanceSettings()
SocialContent::saveForm in ./social_content.class.inc
Save the form values of a form that was request with the getForm method.
SocialContentFacebook::saveInstanceSettings in modules/facebook/social_content_facebook.class.inc
Save instance settings.
SocialContentInstagram::saveInstanceSettings in modules/instagram/social_content_instagram.class.inc
Save instance settings.
SocialContentYoutube::saveInstanceSettings in modules/youtube/social_content_youtube.class.inc
Save instance settings.
3 methods override SocialContent::saveInstanceSettings()
SocialContentFacebook::saveInstanceSettings in modules/facebook/social_content_facebook.class.inc
Save instance settings.
SocialContentInstagram::saveInstanceSettings in modules/instagram/social_content_instagram.class.inc
Save instance settings.
SocialContentYoutube::saveInstanceSettings in modules/youtube/social_content_youtube.class.inc
Save instance settings.

File

./social_content.class.inc, line 417
Social Content class.

Class

SocialContent
TODO: Table names should be a property for ease of change Separate this class into smaller classes.

Code

public function saveInstanceSettings($settings) {
  if (isset($settings['fields'])) {
    $extra_fields = explode("\r\n", $settings['fields']['extra']);
    $extra_fields = array_filter($extra_fields);
    unset($settings['fields']['extra']);
    foreach ($extra_fields as $map) {
      list($key, $value) = explode('|', $map);
      $settings['fields'][$key] = $value;
    }

    // Remove indicated fields.
    foreach ($settings['fields'] as $key => $value) {
      if ($value == '_REMOVE_') {
        unset($settings['fields'][$key]);
      }
      elseif ($value == '_NO_MAP_') {
        $settings['fields'][$key] = NULL;
      }
    }
    unset($settings['fields']['extra']);
  }
  $settings['id'] = is_numeric($settings['id']) ? $settings['id'] : NULL;

  // Convert author field from username to uid.
  if (empty($settings['author'])) {
    $settings['author'] = 0;
  }
  else {
    $author = user_load_by_name($settings['author']);
    $settings['author'] = $author->uid;
  }
  $row = (object) $settings;
  $row->settings = serialize($settings);
  $update = !empty($row->id) ? 'id' : array();
  drupal_write_record('social_content_instances', $row, $update);
  return $row->id;
}