function enforce_revlog_nodeapi in Enforce revision log message 6
Implementation of hook_nodeapi()
Displays a message when the revision log is empty.
File
- ./
enforce_revlog.module, line 85 - Allows enforcing unpriviledged users to enter a log message every time a node revision is created or reverted
Code
function enforce_revlog_nodeapi(&$node, $op, $arg = 0) {
switch ($op) {
case 'prepare':
// We should enable enforce_revlog on this form if:
if ($node->nid && variable_get('enforce_revlog_node_type_' . $node->type, 0) && !user_access('skip revision log message')) {
$node->enforce_revlog = TRUE;
}
break;
case 'validate':
// A log message will only be required if:
if ($node->nid && $node->revision && $node->op == $node->submit && variable_get('enforce_revlog_node_type_' . $node->type, 0) && !user_access('skip revision log message') && empty($node->log)) {
// different message if user is a node administrator
$message = user_access('administer nodes') ? t('Please enter a revision log message or uncheck the revision checkbox.') : t('Please enter a revision log message.');
form_set_error('log', $message);
}
break;
case 'presave':
// Trigger only if we're reverting a revision
// Determined thanks to a custom property in the node object
if (!empty($node->enforce_revlog_revision_revert)) {
// Adding the custom log message to the standard one
$node->log = $node->enforce_revlog_log_message . ' (' . $node->log . ')';
// Deleting custom object properties, there aren't needed anymore
unset($node->enforce_revlog_log_message, $node->enforce_revlog_revision_revert);
}
break;
}
}