1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- /**
- * @file
- * Contains materio_decoupled.module.
- */
- use Drupal\Core\Routing\RouteMatchInterface;
- /**
- * Implements hook_help().
- */
- function materio_decoupled_help($route_name, RouteMatchInterface $route_match) {
- switch ($route_name) {
- // Main module help for the materio_decoupled module.
- case 'help.page.materio_decoupled':
- $output = '';
- $output .= '<h3>' . t('About') . '</h3>';
- $output .= '<p>' . t('helpers for progressive decoupling') . '</p>';
- return $output;
- default:
- }
- }
- /**
- * Implements hook_page_attachments().
- * @param array $attachments
- */
- function materio_decoupled_page_attachments(array &$attachments) {
- $current_path = \Drupal::service('path.current')->getPath();
- $route_name = \Drupal::routeMatch()->getRouteName();
- // $route_parameters = \Drupal::routeMatch()->getParameters()->all();
- // ksm($route_parameters);
- $current_language = \Drupal::languageManager()->getCurrentLanguage()->getId();
- $is_front = \Drupal::service('path.matcher')->isFrontPage();
- $entity_type = null;
- $entity_bundle = null;
- $entity_id = null;
- $entity_uuid = null;
- foreach (['node', 'taxonomy_term'] as $type) {
- $entity = \Drupal::routeMatch()->getParameter($type);
- if($entity){
- $entity_type = $type;
- $entity_bundle = $entity->bundle();
- $entity_id = $entity->id();
- $entity_uuid = $entity->uuid();
- break;
- }
- }
- // route_parameters:'".json_encode($route_parameters)."',\n
- $js_str = "var drupalDecoupled = {\n
- sys_path:'".$current_path."',\n
- route_name:'".$route_name."',\n
- is_front:".($is_front ? 'true':'false').",\n
- lang_code:'".$current_language."',\n
- entity_type:'".$entity_type."',\n
- entity_bundle:'".$entity_bundle."',\n
- entity_id:'".$entity_id."',\n
- entity_uuid:'".$entity_uuid."',\n
- };";
- $attachments['#attached']['html_head'][] = [
- [
- '#type' => 'html_tag',
- '#tag' => 'script',
- '#value' => $js_str,
- '#weight' => -999,
- '#group' => 'decoupled'
- ],
- // A key, to make it possible to recognize this HTML element when altering.
- 'decoupled',
- ];
- }
|