salesforce-8.x-4.x-dev/modules/salesforce_webform/salesforce_webform.module

modules/salesforce_webform/salesforce_webform.module
<?php

/**
 * @file
 * Salesforce webform.
 */

use Drupal\webform\Entity\WebformSubmission;

/**
 * Implements hook_menu_local_tasks_alter().
 */
function salesforce_webform_menu_local_tasks_alter(&$data, $route_name) {
  // ISSUE:
  // Salesforce route does not use 'webform' parameter which throws an error.
  // Some mandatory parameters are missing ("webform") to generate a URL for
  // route "entity.webform_submission.salesforce"
  //
  // WORKAROUND:
  // Make sure webform parameter is set for all routes.
  //
  // @see webform_menu_local_tasks_alter()
  if ($route_name === 'entity.webform_submission.salesforce') {
    foreach ($data['tabs'] as $tab_level) {
      foreach ($tab_level as $tab) {
        /** @var Drupal\Core\Url $url */
        $url = $tab['#link']['url'];
        $tab_route_name = $url->getRouteName();
        $tab_route_parameters = $url->getRouteParameters();

        if (strpos($tab_route_name, 'entity.webform_submission.salesforce') !== 0) {
          /** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */
          $webform_submission = WebformSubmission::load($tab_route_parameters['webform_submission']);
          $url->setRouteParameter('webform', $webform_submission->getWebform()->id());
        }
      }
    }
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc