From d22f2e09cecd2bcb064996d50ca189731f572bef Sat, 2 Jul 2016 12:36:06 +0200 From: hass Date: Sat, 2 Jul 2016 12:36:00 +0200 Subject: [PATCH] Issue #1233810 by hass: Customizable revision log message diff --git a/workbench_moderation.info b/workbench_moderation.info index 3f9939f..d3b0a87 100644 --- a/workbench_moderation.info +++ b/workbench_moderation.info @@ -16,3 +16,6 @@ files[] = tests/external_node_update.test files[] = tests/workbench_moderation.test files[] = tests/workbench_moderation.files.test + +; Required for create/update log messages. +dependencies[] = token diff --git a/workbench_moderation.install b/workbench_moderation.install index 8d68ed3..d02224a 100644 --- a/workbench_moderation.install +++ b/workbench_moderation.install @@ -31,6 +31,8 @@ $types = node_type_get_types(); foreach ($types as $type_object) { $type = $type_object->type; + variable_del("workbench_moderation_default_revision_information_log_create_$type"); + variable_del("workbench_moderation_default_revision_information_log_update_$type"); variable_del("workbench_moderation_default_state_$type"); // Get node options that might hold a moderation flag. diff --git a/workbench_moderation.module b/workbench_moderation.module index 26ea794..97c2e49 100644 --- a/workbench_moderation.module +++ b/workbench_moderation.module @@ -703,7 +703,7 @@ // Don't proceed if moderation is not enabled on this content, or if // we're replacing an already-published revision. - if (!workbench_moderation_node_moderated($node) || + if (!workbench_moderation_node_moderated($node) || !empty($node->workbench_moderation['updating_live_revision'])) { return; } @@ -818,6 +818,31 @@ 'disabled' => array(':input[name="node_options[revision]"]' => array('checked' => FALSE)), ); + // The default "create" moderation note. + $form['workflow']['workbench_moderation_default_revision_information_log_create'] = array( + '#default_value' => variable_get('workbench_moderation_default_revision_information_log_create_' . $form['#node_type']->type, t('Created by [user:name].')), + '#description' => t('Default create revision log message. Can be overridden by the user.'), + '#title' => t('Default create moderation notes'), + '#type' => 'textarea', + '#element_validate' => array('token_element_validate'), + '#token_types' => array('user'), + ); + // The default "update" moderation note. + $form['workflow']['workbench_moderation_default_revision_information_log_update'] = array( + '#default_value' => variable_get('workbench_moderation_default_revision_information_log_update_' . $form['#node_type']->type, t('Edited by [user:name].')), + '#description' => t('Default update revision log message. Can be overridden by the user.'), + '#title' => t('Default update moderation notes'), + '#type' => 'textarea', + '#element_validate' => array('token_element_validate'), + '#token_types' => array('user'), + ); + $form['workflow']['workbench_moderation_default_revision_information_log'] = array( + '#theme' => 'token_tree', + '#token_types' => array('user'), + '#show_restricted' => TRUE, + '#dialog' => TRUE, + ); + // This select element is hidden when moderation is not enabled. $form['workflow']['workbench_moderation_default_state'] = array( '#title' => t('Default moderation state'), @@ -922,13 +947,13 @@ ); // Set a default revision log message. - $logged_name = (user_is_anonymous() ? variable_get('anonymous', t('Anonymous')) : format_username($user)); if (!empty($form['#node']->nid)) { - $form['revision_information']['log']['#default_value'] = t('Edited by !user.', array('!user' => $logged_name)); + $revision_information_log = t(variable_get('workbench_moderation_default_revision_information_log_update_' . $form['#node']->type, t('Edited by [user:name].'))); } else { - $form['revision_information']['log']['#default_value'] = t('Created by !user.', array('!user' => $logged_name)); + $revision_information_log = t(variable_get('workbench_moderation_default_revision_information_log_create_' . $form['#node']->type, t('Created by [user:name].'))); } + $form['revision_information']['log']['#default_value'] = token_replace($revision_information_log, array('user' => $user), array('sanitize' => FALSE, 'clear' => TRUE)); // Move the revision log into the publishing options to make things pretty. if ($form['options']['#access']) {