/** * {@inheritdoc} */ private function getTemplates($name) { $posA = strrpos($name, ':'); $posB = strrpos($name, '/'); $posC = strrpos($name, '/'); $b = $this->siteContext->getCurrentBrandingName(); $l = $this->siteContext->getCurrentLocale(); if ($posA === false && $posB === false && $posC === false) { $prefix = ''; $suffix = '/' . $name; } else { $pos = max($posA, $posB, $posC); $prefix = substr($name, 0, $pos + 1); $suffix = '/' . substr($name, $pos + 1); } return array($prefix . '_' . $b . '_' . $l . '' . $suffix, $prefix . '_' . $b . '_' . $suffix, $prefix . '__' . $l . '' . $suffix, $name); }
/** * {@inheritdoc} */ public function generate($name, $parameters = array(), $referenceType = self::ABSOLUTE_PATH) { if (isset($parameters['_branding'])) { $branding = $parameters['_branding']; unset($parameters['_branding']); } else { $branding = $this->getSiteContext()->getCurrentBrandingName(); } if (isset($parameters['_locale'])) { $locale = $parameters['_locale']; unset($parameters['_locale']); } else { $locale = $this->siteContext->getCurrentLocale(); } if (null !== $branding && null !== $locale) { $multisiteName = self::ROUTE_PREFIX . '_' . $branding . '_' . $locale . '__' . $name; try { return parent::generate($multisiteName, $parameters, $referenceType); } catch (RouteNotFoundException $e) { // fallback to default behavior } } return parent::generate($name, $parameters, $referenceType); }