| 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',  ];}
 |