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;
}