private function replaceDefaultTaxonomySlug($url, $taxonomyDetails) { $localeCode = $this->currentLocale->getCode(); if (Hash::check((array) $taxonomyDetails->i18n, "{$localeCode}.rewrite.slug")) { return Utility::replaceFirstOccurence(Hash::get($taxonomyDetails->i18n, "{$localeCode}.rewrite.slug"), $taxonomyDetails->rewrite['slug'], $url); } return $url; }
protected function removeLocalizedRoutedSlugs($route, $model) { if (!$this->currentLocale->isDefault() && is_array($model->routed)) { $key = "i18n." . $this->currentLocale->getCode() . ".rewrite"; if (Hash::check($model->routed, $key)) { foreach (Hash::get($model->routed, $key) as $rewriteKey => $rewriteUrl) { if (Hash::check($model->routed, "rewrite.{$rewriteKey}")) { $defaultValue = Hash::get($model->routed, "rewrite.{$rewriteKey}"); $route = Utility::replaceFirstOccurence($rewriteUrl, $defaultValue, $route); } } } } return $route; }
protected function localizeStaticSlugs($localizedPost, $routedUrl, $originalUrl) { // Localize back the parameters in the default language if (!$this->currentLocale->isDefault()) { if (preg_match('/' . preg_quote($localizedPost->post_name) . '\\/(.+?)$/', $routedUrl, $matches)) { $cpt = CustomPostType::factoryFromKey($localizedPost->post_type); $key = "i18n." . $this->currentLocale->getCode() . ".rewrite.slug"; if ($cpt->hasConfig($key)) { $additionalParameters = Utility::replaceFirstOccurence($cpt->getConfig($key), $cpt->getConfig("rewrite.slug"), $additionalParameters); } } } return trailingslashit($originalUrl); }
private function localizeDefaultSlug($model, $permalink) { $defaultSlug = $model->getConfig("rewrite.slug"); if ($defaultSlug) { $slugs = array(); foreach ($model->extractConfig("i18n.{s}.rewrite.slug") as $slug) { $slugs[] = $slug; } if (count($slugs)) { $permalink = preg_replace('#/(' . implode("|", $slugs) . ')/#', '/' . $defaultSlug . '/', $permalink); } if (!$this->currentLocale->isDefault() && $model->hasConfig("i18n." . $this->currentLocale->getCode() . ".rewrite.slug")) { return Utility::replaceFirstOccurence($defaultSlug, $model->getConfig("i18n." . $this->currentLocale->getCode() . ".rewrite.slug"), $permalink); } } return $permalink; }