class AdminContentNotification in Admin Content Notification 8
Same name and namespace in other branches
- 8.3 src/Form/AdminContentNotification.php \Drupal\admin_content_notification\Form\AdminContentNotification
- 8.2 src/Form/AdminContentNotification.php \Drupal\admin_content_notification\Form\AdminContentNotification
Class AdminContentNotification implements settings for admin notification.
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
- class \Drupal\admin_content_notification\Form\AdminContentNotification
- class \Drupal\Core\Form\ConfigFormBase uses ConfigFormBaseTrait
Expanded class hierarchy of AdminContentNotification
1 string reference to 'AdminContentNotification'
File
- src/
Form/ AdminContentNotification.php, line 12
Namespace
Drupal\admin_content_notification\FormView source
class AdminContentNotification extends ConfigFormBase {
/**
* Get the form_id.
*
* @inheritDoc
*/
public function getFormId() {
return 'admin_content_notification_form';
}
/**
* Build the Form.
*
* @inheritDoc
*/
public function buildForm(array $form, FormStateInterface $form_state, Request $request = NULL) {
$form = array();
$form['admin_content_notification_content_types'] = array(
'#type' => 'fieldset',
'#title' => $this
->t('Select the content types'),
'#description' => $this
->t('Choose the content type for which you want to admin notified on content insert.'),
);
$default_content_types = \Drupal::config('admin_content_notification.settings')
->get('admin_content_notification_node_types') ?: array();
$form['admin_content_notification_content_types']['admin_content_notification_node_types'] = array(
'#type' => 'checkboxes',
'#title' => $this
->t('Content types'),
'#default_value' => $default_content_types,
'#options' => node_type_get_names(),
);
$trigger_node_update = \Drupal::config('admin_content_notification.settings')
->get('admin_content_notification_trigger_on_node_update') ?: FALSE;
$form['admin_content_notification_trigger_on_node_update'] = array(
'#type' => 'checkbox',
'#title' => $this
->t('Enable on update action'),
'#default_value' => $trigger_node_update,
'#description' => $this
->t('Please check on it if you want to send notification on update action as well.'),
);
$trigger_for_roles = \Drupal::config('admin_content_notification.settings')
->get('admin_content_notification_allowed_roles') ?: array();
$user_roles = user_role_names();
if (array_key_exists('authenticated', $user_roles)) {
unset($user_roles['authenticated']);
}
$form['admin_content_notification_allowed_roles'] = array(
'#type' => 'checkboxes',
'#title' => $this
->t('Select roles'),
'#options' => $user_roles,
'#default_value' => $trigger_for_roles,
'#description' => $this
->t('Please select roles for which you want to trigger email notfication on content insert/update'),
);
$site_email = \Drupal::config('system.site')
->get('mail');
$admin_content_notification_email = \Drupal::config('admin_content_notification.settings')
->get('admin_content_notification_email');
$form['admin_content_notification_email'] = array(
'#type' => 'email',
'#title' => $this
->t('Email to whom the notification is to be sent'),
'#default_value' => isset($admin_content_notification_email) ? $admin_content_notification_email : $site_email,
);
$form['admin_content_notification_email_fieldset'] = array(
'#type' => 'fieldset',
'#title' => $this
->t('Email Settings'),
);
$form['admin_content_notification_email_fieldset']['admin_content_notification_email_subject'] = array(
'#type' => 'textfield',
'#title' => $this
->t('Configurable email subject'),
'#default_value' => \Drupal::config('admin_content_notification.settings')
->get('admin_content_notification_email_subject'),
'#description' => $this
->t('Enter a default subject of the notification email.'),
);
$form['admin_content_notification_email_fieldset']['admin_content_notification_email_body'] = array(
'#type' => 'textarea',
'#title' => $this
->t('Configurable email body'),
'#default_value' => \Drupal::config('admin_content_notification.settings')
->get('admin_content_notification_email_body'),
'#description' => $this
->t('Enter the default email template to notify users about new content posted on the site. Use the following tokens: %user_who_posted, %content_link, %content_title, %content_type, %action (posted or updated, will update accrodingly).'),
);
return parent::buildForm($form, $form_state);
}
/**
* Get Editable config names.
*
* @inheritDoc
*/
protected function getEditableConfigNames() {
return [
'admin_content_notification.settings',
];
}
/**
* Add submit handler.
*
* @inheritDoc
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$user_input_values = $form_state
->getUserInput();
$config = $this->configFactory
->getEditable('admin_content_notification.settings');
$config
->set('admin_content_notification_node_types', $user_input_values['admin_content_notification_node_types']);
$config
->set('admin_content_notification_trigger_on_node_update', $user_input_values['admin_content_notification_trigger_on_node_update']);
$config
->set('admin_content_notification_allowed_roles', $user_input_values['admin_content_notification_allowed_roles']);
$config
->set('admin_content_notification_email', $user_input_values['admin_content_notification_email']);
$config
->set('admin_content_notification_email_subject', $user_input_values['admin_content_notification_email_subject']);
$config
->set('admin_content_notification_email_body', $user_input_values['admin_content_notification_email_body']);
$config
->save();
parent::submitForm($form, $form_state);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AdminContentNotification:: |
public | function |
Build the Form. Overrides ConfigFormBase:: |
|
AdminContentNotification:: |
protected | function |
Get Editable config names. Overrides ConfigFormBaseTrait:: |
|
AdminContentNotification:: |
public | function |
Get the form_id. Overrides FormInterface:: |
|
AdminContentNotification:: |
public | function |
Add submit handler. Overrides ConfigFormBase:: |
|
ConfigFormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides FormBase:: |
13 |
ConfigFormBase:: |
public | function | Constructs a \Drupal\system\ConfigFormBase object. | 11 |
ConfigFormBaseTrait:: |
protected | function | Retrieves a configuration object. | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
FormBase:: |
public | function |
Form validation handler. Overrides FormInterface:: |
62 |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |