09c411b857cd11e0cbee75738c5138cdbd9e85e7
[drupal/clients/restelae/profiles/restelae.git] / docroot / profiles / restelae / modules / custom / restelae_global / restelae_global.module
1 <?php
2
3 /**
4 * @file
5 * Traitements généraux pour ce site.
6 */
7
8 use Drupal\Core\Entity\EntityInterface;
9 use Drupal\Core\Form\FormStateInterface;
10 use Drupal\Core\Url;
11 use Drupal\node\Entity\Node;
12
13 /**
14 * Implements hook_language_switch_links_alter().
15 */
16 function restelae_global_language_switch_links_alter(array &$links, $type, $path) {
17 if (($node = \Drupal::routeMatch()->getParameter('node')) && $node instanceof Node) {
18 $translated_languages = $node->getTranslationLanguages(TRUE);
19 foreach ($links as $langcode => $link) {
20 if (!isset($translated_languages[$langcode])) {
21 // Ne pas afficher le lien de cette langue s'il n'existe pas en
22 // réalité de traduction pour ce nœud.
23 unset($links[$langcode]);
24 }
25 }
26 }
27
28 // Utiliser les codes ISO pour désigner les langues.
29 foreach ($links as $langcode => &$link) {
30 $link['attributes']['title'] = $link['title'];
31 $link['title'] = strtoupper($langcode);
32 }
33 }
34
35 /**
36 * Implements hook_entity_insert().
37 */
38 function restelae_global_entity_insert(EntityInterface $entity) {
39 // Ne traiter que les commentaires non publiés.
40 if ($entity->getEntityTypeId() != 'comment' || $entity->getStatus()) {
41 return;
42 }
43
44 $mail_manager = \Drupal::service('plugin.manager.mail');
45 $to = \Drupal::config('system.site')->get('mail');
46 $params = array(
47 'site_name' => \Drupal::config('system.site')->get('name'),
48 'user_name' => $entity->getAuthorName(),
49 'comment_title' => $entity->getSubject(),
50 'node_title' => $entity->getCommentedEntity()->label(),
51 'comment_admin_url' => Url::fromRoute('comment.admin_approval', array(), array('absolute' => TRUE))->toString(),
52 );
53 $mail_manager->mail('restelae_global', 'notif_comment', $to, 'fr', $params);
54 }
55
56 /**
57 * Implements hook_mail().
58 */
59 function restelae_global_mail($key, &$message, $params) {
60 switch ($key) {
61 case 'notif_comment':
62 $message['subject'] = t('Nouveau commentaire à modérer sur @site', array(
63 '@site' => $params['site_name'],
64
65 ));
66 $message['body'][] = t("@name vient de commenter @content (@comment-title) sur @site. La liste de tous les commentaires à approuver est à cette adresse : :url", array(
67 '@name' => $params['user_name'],
68 '@content' => $params['node_title'],
69 '@comment-title' => $params['comment_title'],
70 '@site' => $params['site_name'],
71 ':url' => $params['comment_admin_url'],
72 ));
73 break;
74 }
75 }
76
77 /**
78 * Implements hook_form_FORM_ID_alter().
79 */
80 function restelae_global_form_contact_message_principal_form_alter(&$form, FormStateInterface $form_state, $form_id) {
81 // Supprimer le bouton « Preview » sur le formulaire de contact.
82 if (isset($form['actions']['preview'])) {
83 $form['actions']['preview']['#access'] = FALSE;
84 }
85 }