function _jeditable_save_other_field in jEditable inline content editing 6.2
Same name and namespace in other branches
- 6 jeditable.module \_jeditable_save_other_field()
Helper function to save other fields.
Parameters
$node: The node to act on.
$field: An array containing the field properties.
$value: The new field value.
Return value
The value that was actually saved in the field.
1 call to _jeditable_save_other_field()
- _jeditable_ajax_save in ./
jeditable.module - Helper function to save a value using the jeditable callback.
File
- ./
jeditable.module, line 392
Code
function _jeditable_save_other_field($node, $field, $value) {
module_load_include('inc', 'node', 'node.pages');
$field_name = $field['field_name'];
switch ($field['widget']['type']) {
case 'optionwidgets_buttons':
case 'optionwidgets_select':
$defaults = array_values(optionwidgets_options($field));
$value = $defaults[$value];
break;
}
$form_state = array();
$form_state['values'][$field_name][0]['value'] = $value;
$form_state['values']['op'] = t('Save');
$form_id = $node->type . '_node_form';
drupal_execute($form_id, &$form_state, (object) $node);
drupal_get_messages('status');
// Discard status messages
// @todo: Do some Ajax with the warning and error messages.
//$messages = drupal_get_messages();
// Reload the node to get the value that was saved, if any. Avoid the cache.
$node = node_load(array(
"nid" => $node->nid,
));
if (isset($node->{$field_name})) {
$value = $node->{$field_name}[0]['value'];
$value = content_format($field_name, array(
'value' => $value,
));
}
else {
$value = NULL;
}
// Any HTML tags will already be in place outside the editor
$value = strip_tags($value);
return $value;
}