class ContactFormHooks
Form hook implementations for Contact module.
Hierarchy
- class \Drupal\contact\Hook\ContactFormHooks uses \Drupal\Core\StringTranslation\StringTranslationTrait
Expanded class hierarchy of ContactFormHooks
File
-
core/
modules/ contact/ src/ Hook/ ContactFormHooks.php, line 15
Namespace
Drupal\contact\HookView source
class ContactFormHooks {
use StringTranslationTrait;
public function __construct(AccountInterface $currentUser, UserDataInterface $userData, configFactoryInterface $configFactory) {
}
/**
* Implements hook_form_FORM_ID_alter() for \Drupal\user\ProfileForm.
*
* Add the enable personal contact form to an individual user's account page.
*
* @see \Drupal\user\ProfileForm::form()
*/
public function formUserFormAlter(&$form, FormStateInterface $form_state) : void {
$form['contact'] = [
'#type' => 'details',
'#title' => $this->t('Contact settings'),
'#open' => TRUE,
'#weight' => 5,
];
$account = $form_state->getFormObject()
->getEntity();
if (!$this->currentUser
->isAnonymous() && $account->id()) {
$account_data = $this->userData
->get('contact', $account->id(), 'enabled');
}
$form['contact']['contact'] = [
'#type' => 'checkbox',
'#title' => $this->t('Personal contact form'),
'#default_value' => $account_data ?? $this->configFactory
->getEditable('contact.settings')
->get('user_default_enabled'),
'#description' => $this->t('Allow other users to contact you via a personal contact form which keeps your email address hidden. Note that some privileged users such as site administrators are still able to contact you even if you choose to disable this feature.'),
];
$form['actions']['submit']['#submit'][] = 'contact_user_profile_form_submit';
}
/**
* Implements hook_form_FORM_ID_alter() for \Drupal\user\AccountSettingsForm.
*
* Adds the default personal contact setting on the user settings page.
*/
public function formUserAdminSettingsAlter(&$form, FormStateInterface $form_state) : void {
$form['contact'] = [
'#type' => 'details',
'#title' => $this->t('Contact settings'),
'#open' => TRUE,
'#weight' => 0,
];
$form['contact']['contact_default_status'] = [
'#type' => 'checkbox',
'#title' => $this->t('Enable the personal contact form by default for new users'),
'#description' => $this->t('Changing this setting will not affect existing users.'),
'#default_value' => $this->configFactory
->getEditable('contact.settings')
->get('user_default_enabled'),
];
// Add submit handler to save contact configuration.
$form['#submit'][] = 'contact_form_user_admin_settings_submit';
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overrides |
---|---|---|---|---|
ContactFormHooks::formUserAdminSettingsAlter | public | function | Implements hook_form_FORM_ID_alter() for \Drupal\user\AccountSettingsForm. | |
ContactFormHooks::formUserFormAlter | public | function | Implements hook_form_FORM_ID_alter() for \Drupal\user\ProfileForm. | |
ContactFormHooks::__construct | public | function | ||
StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 |
StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | |
StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | |
StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | 1 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.