Example #1
0
 /**
  * {@inheritdoc}
  *
  * Set the destination route information based on the source link_path.
  */
 public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property)
 {
     list($link_path, $options) = $value;
     $extracted = $this->pathValidator->getUrlIfValidWithoutAccessCheck($link_path);
     $route = array();
     if ($extracted) {
         if ($extracted->isExternal()) {
             $route['route_name'] = null;
             $route['route_parameters'] = array();
             $route['options'] = $options;
             $route['url'] = $extracted->getUri();
         } else {
             $route['route_name'] = $extracted->getRouteName();
             $route['route_parameters'] = $extracted->getRouteParameters();
             $route['options'] = $extracted->getOptions();
             if (isset($options['query'])) {
                 // If the querystring is stored as a string (as in D6), convert it
                 // into an array.
                 if (is_string($options['query'])) {
                     parse_str($options['query'], $old_query);
                 } else {
                     $old_query = $options['query'];
                 }
                 $options['query'] = $route['options']['query'] + $old_query;
                 unset($route['options']['query']);
             }
             $route['options'] = $route['options'] + $options;
             $route['url'] = null;
         }
     }
     return $route;
 }