realname.admin.inc 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * @file
  4. * Administrative page callbacks for the realname module.
  5. */
  6. /**
  7. * Form constructor for the Real name settings form.
  8. *
  9. * @see realname_settings_form_validate()
  10. * @see realname_settings_form_submit()
  11. */
  12. function realname_settings_form($form, &$form_state) {
  13. $form['general'] = array(
  14. '#type' => 'fieldset',
  15. '#title' => t('General settings'),
  16. );
  17. $note = '<div>';
  18. $note .= t('Note that if it is changed, all current Realnames will be deleted and the list in the database will be rebuilt as needed.');
  19. $note .= '</div>';
  20. $form['general']['realname_pattern'] = array(
  21. '#type' => 'textfield',
  22. '#title' => t('Realname pattern'),
  23. '#default_value' => variable_get('realname_pattern', '[user:name-raw]'),
  24. '#element_validate' => array('token_element_validate'),
  25. '#token_types' => array('user'),
  26. '#min_tokens' => 1,
  27. '#required' => TRUE,
  28. '#maxlength' => 256,
  29. '#description' => t('This pattern will be used to construct Realnames for all users.') . $note,
  30. );
  31. // Add the token tree UI.
  32. $form['general']['token_help'] = array(
  33. '#theme' => 'token_tree',
  34. '#token_types' => array('user'),
  35. '#global_types' => FALSE,
  36. '#dialog' => TRUE,
  37. );
  38. $form['advanced'] = array(
  39. '#type' => 'fieldset',
  40. '#title' => t('Advanced settings'),
  41. );
  42. $form['advanced']['realname_suppress_user_name_mail_validation'] = array(
  43. '#type' => 'checkbox',
  44. '#title' => t('Suppress missing token warning in e-mail templates'),
  45. '#description' => t('With Real name module enabled you need to replace the token <code>[user:name]</code> with <code>[user:name-raw]</code> in your <a href="@people">e-mail</a> templates. If you are running modules like <em>Email Registration</em> you may like to suppress this warning and use a different token.', array('@people' => url('admin/config/people/accounts', array('fragment' => 'edit-email-admin-created')))),
  46. '#default_value' => variable_get('realname_suppress_user_name_mail_validation', FALSE),
  47. );
  48. $form['#submit'][] = 'realname_settings_form_submit';
  49. return system_settings_form($form);
  50. }
  51. /**
  52. * Form validation handler for realname_settings_form().
  53. *
  54. * @see realname_settings_form_submit()
  55. */
  56. function realname_settings_form_validate($form, &$form_state) {
  57. if (strpos($form_state['values']['realname_pattern'], '[user:name]') !== FALSE) {
  58. form_set_error('realname_pattern', t('The %token token cannot be used as it will cause recursion.', array('%token' => '[user:name]')));
  59. }
  60. }
  61. /**
  62. * Form submission handler for realname_settings_form().
  63. *
  64. * @see realname_settings_form_validate()
  65. */
  66. function realname_settings_form_submit($form, $form_state) {
  67. if ($form['general']['realname_pattern']['#default_value'] != $form_state['values']['realname_pattern']) {
  68. // Only clear the realname cache if the pattern was changed.
  69. realname_delete_all();
  70. }
  71. }