heartbeat8.module 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. /**
  3. * @file
  4. * Contains heartbeat8.module.
  5. */
  6. use Drupal\Core\Routing\RouteMatchInterface;
  7. use Drupal\Core\Entity\EntityInterface;
  8. use Drupal\node\NodeInterface;
  9. use Drupal\Core\Session\AccountInterface;
  10. use Drupal\Core\Entity;
  11. use Drupal\heartbeat8\Entity\Heartbeat;
  12. use Drupal\heartbeat8\Entity\HeartbeatType;
  13. /**
  14. * Implements hook_help().
  15. */
  16. function heartbeat8_help($route_name, RouteMatchInterface $route_match) {
  17. switch ($route_name) {
  18. // Main module help for the heartbeat8 module.
  19. case 'help.page.heartbeat8':
  20. $output = '';
  21. $output .= '<h3>' . t('About') . '</h3>';
  22. $output .= '<p>' . t('Heartbeat for Drupal 8') . '</p>';
  23. return $output;
  24. default:
  25. }
  26. }
  27. /**
  28. * Implements hook_theme().
  29. */
  30. function heartbeat8_theme() {
  31. $theme = [];
  32. $theme['heartbeat'] = array(
  33. 'render element' => 'elements',
  34. 'file' => 'heartbeat.page.inc',
  35. 'template' => 'heartbeat',
  36. );
  37. $theme['heartbeat_content_add_list'] = [
  38. 'render element' => 'content',
  39. 'variables' => ['content' => NULL],
  40. 'file' => 'heartbeat.page.inc',
  41. ];
  42. return $theme;
  43. }
  44. /**
  45. * Implements hook_theme_suggestions_HOOK().
  46. */
  47. function heartbeat8_theme_suggestions_heartbeat(array $variables) {
  48. $suggestions = array();
  49. $entity = $variables['elements']['#heartbeat'];
  50. $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_');
  51. $suggestions[] = 'heartbeat__' . $sanitized_view_mode;
  52. $suggestions[] = 'heartbeat__' . $entity->bundle();
  53. $suggestions[] = 'heartbeat__' . $entity->bundle() . '__' . $sanitized_view_mode;
  54. $suggestions[] = 'heartbeat__' . $entity->id();
  55. $suggestions[] = 'heartbeat__' . $entity->id() . '__' . $sanitized_view_mode;
  56. return $suggestions;
  57. }
  58. /**
  59. * Implements hook_entity_insert().
  60. */
  61. function heartbeat8_entity_insert(EntityInterface $entity) {
  62. $thisiswhere = 'ithappens';
  63. $nid = $entity->id();
  64. if ($nid) {
  65. $heartbeatTypeService = \Drupal::service('heartbeat8.heartbeattype');
  66. foreach ($heartbeatTypeService->getTypes() as $type) {
  67. $heartbeatTypeEntity = \Drupal::entityTypeManager()->getStorage('heartbeat_type')->load($type);
  68. }
  69. }
  70. \Drupal::logger('content')->notice('Entity Insert
  71. called !');
  72. }
  73. //TODO Add heartbeat language to Javascript
  74. //TODO Determine necessity of polling
  75. //Add