function _socialfield_validate_services in Social field 7
Setting instance settings from table settings.
1 string reference to '_socialfield_validate_services'
- _socialfield_field_instance_settings_form in ./
socialfield.module - Instance settings form process callback function.
File
- ./
socialfield.module, line 423 - Provides a field for adding social services links.
Code
function _socialfield_validate_services($form, &$form_state) {
$used_services = $form_state['#used_services'];
$displayed_services = $form_state['#services'];
$weights = $form_state['#weights'];
// Getting new instance settings.
foreach ($form['rows'] as $key => &$row) {
if (!is_numeric($key)) {
continue;
}
$service_name = $row['service_name']['#value'];
// Service checked, wanted to be used.
if ($row['used_services']['#value']) {
$used_services[$service_name] = $service_name;
}
else {
unset($used_services[$service_name]);
}
// This service was checked to be displayed with icon on widget.
if ($row['displayed_services']['#value']) {
$used_services[$service_name] = $service_name;
$displayed_services[$service_name] = $service_name;
}
else {
unset($displayed_services[$service_name]);
}
$weights[$service_name] = $row['weight']['#value'];
}
if (!count($displayed_services)) {
form_set_error('table', t('Select at least one service to display.'));
}
// Setting new instance settings.
$form_state['values']['instance']['settings']['used_services'] = $used_services;
$form_state['values']['instance']['settings']['services'] = $displayed_services;
$form_state['values']['instance']['settings']['weights'] = $weights;
unset($form_state['values']['instance']['settings']['table']);
}