You are here

function user_rev_diff_user_form_build_preview_changes in User Revision 7.2

Callback if 'View changes' is pressed.

1 string reference to 'user_rev_diff_user_form_build_preview_changes'
user_rev_diff_form_user_profile_form_alter in diff/user_rev_diff.module
Implements hook_form_alter().

File

diff/user_rev_diff.module, line 210
Provides functionality to show a diff between two user revisions.

Code

function user_rev_diff_user_form_build_preview_changes($form, &$form_state) {
  module_load_include('inc', 'user_rev_diff', 'user_rev_diff.pages');
  $user_old = $form_state['user'];

  // zap the old password, as the unedited field is blank.
  $user_old->pass = '';
  $user_new = clone $user_old;

  // build a user object representing the edited values.
  entity_form_submit_build_entity('user', $user_new, $form, $form_state);

  // Create diff of old node and edited node
  $state = variable_get('diff_default_state_user', 'raw');
  $rows = _user_rev_diff_body_rows($user_old, $user_new, $state);

  // Build the table with the list of changes.
  $cols = _diff_default_cols();
  $header = _diff_default_header(t('Original'), t('Changes'));
  $changes = theme('table__diff__preview', array(
    'header' => $header,
    'rows' => $rows,
    'attributes' => array(
      'class' => array(
        'diff',
      ),
    ),
    'colgroups' => $cols,
    'sticky' => FALSE,
  ));

  // Attach diff to form state, is added to form in hook_form_alter().
  $form_state['user_preview'] = $changes;
  $form_state['rebuild'] = TRUE;
}