function cmf_admin_both_form_submit in Content Management Filter 5
Same name and namespace in other branches
- 6.2 both.inc \cmf_admin_both_form_submit()
- 6 both.inc \cmf_admin_both_form_submit()
- 7 both.inc \cmf_admin_both_form_submit()
Handle post-validation form submission. \n Execute the chosen 'Update option' on the selected objects, such as publishing, unpublishing or deleting.
Parameters
the ID of the passed form:
array with the form properties values:
See also
cmf_admin_both_form_validate()
File
- ./
both.inc, line 163 - Content management filter module file
Code
function cmf_admin_both_form_submit($form_id, $form_values) {
// Queries building.
switch ($form_values['operation']) {
case 'publish':
$node_query = 'UPDATE {node} SET status = 1 WHERE nid = %d';
$comment_query = 'UPDATE {comments} SET status = ' . COMMENT_PUBLISHED . ' WHERE cid = %d';
break;
case 'unpublish':
$node_query = 'UPDATE {node} SET status = 0 WHERE nid = %d';
$comment_query = 'UPDATE {comments} SET status = ' . COMMENT_NOT_PUBLISHED . ' WHERE cid = %d';
break;
case 'delete':
$node_query = 'DELETE FROM {node} WHERE nid = %d';
$comment_query = 'DELETE FROM {comments} WHERE cid = %d';
break;
}
// Perform queries.
foreach ($form_values['objects'] as $flag) {
if ($flag) {
$object = explode('-', $flag);
$kind = $object[0];
$value = $object[1];
if ($kind == 'n') {
db_query($node_query, $value);
}
elseif ($kind == 'c') {
// perform the update action, then refresh node statistics
db_query($comment_query, $value);
$comment = _comment_load($value);
_comment_update_node_statistics($comment->nid);
// Allow modules to respond to the updating of a comment.
comment_invoke_comment($comment, $form_values['operation']);
}
}
}
cache_clear_all();
drupal_set_message(t('The update has been performed.'));
if (arg(0) == 'user' && is_numeric(arg(1)) && arg(1) > 0) {
return 'user/' . arg(1) . '/user-content';
}
else {
return 'admin/content/filter';
}
}