demo_umami.profile 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * @file
  4. * Enables modules and site configuration for a demo_umami site installation.
  5. */
  6. use Drupal\contact\Entity\ContactForm;
  7. use Drupal\Core\Form\FormStateInterface;
  8. /**
  9. * Implements hook_form_FORM_ID_alter() for install_configure_form().
  10. *
  11. * Allows the profile to alter the site configuration form.
  12. */
  13. function demo_umami_form_install_configure_form_alter(&$form, FormStateInterface $form_state) {
  14. $form['site_information']['site_name']['#default_value'] = 'Umami Food Magazine';
  15. $form['#submit'][] = 'demo_umami_form_install_configure_submit';
  16. }
  17. /**
  18. * Submission handler to sync the contact.form.feedback recipient.
  19. */
  20. function demo_umami_form_install_configure_submit($form, FormStateInterface $form_state) {
  21. $site_mail = $form_state->getValue('site_mail');
  22. ContactForm::load('feedback')->setRecipients([$site_mail])->trustData()->save();
  23. }
  24. /**
  25. * Implements hook_toolbar().
  26. */
  27. function demo_umami_toolbar() {
  28. // Add a warning about using an experimental profile.
  29. // @todo This can be removed once a generic warning for experimental profiles
  30. // has been introduced. https://www.drupal.org/project/drupal/issues/2934374
  31. $items['experimental-profile-warning'] = [
  32. '#weight' => 999,
  33. '#cache' => [
  34. 'contexts' => ['route'],
  35. ],
  36. ];
  37. // Show warning only on administration pages.
  38. $admin_context = \Drupal::service('router.admin_context');
  39. if ($admin_context->isAdminRoute()) {
  40. $items['experimental-profile-warning']['#type'] = 'toolbar_item';
  41. $items['experimental-profile-warning']['tab'] = [
  42. '#type' => 'inline_template',
  43. '#template' => '<a class="toolbar-warning" href="{{ more_info_link }}">This site is intended for demonstration purposes.</a>',
  44. '#context' => [
  45. 'more_info_link' => 'https://www.drupal.org/node/2941833',
  46. ],
  47. '#attached' => [
  48. 'library' => ['demo_umami/toolbar-warning'],
  49. ],
  50. ];
  51. }
  52. return $items;
  53. }