eideroliveira
Forum Replies Created
-
Forum: Plugins
In reply to: [Polylang] [Polylang] How to support more than one domain per language?This is a patch that solves the issue:
diff –git a/wordpress/wp-content/plugins/polylang/admin/settings.php b/wordpress/wp-content/plugins/polylang/admin/settings.php
index b625c2c..be7d11c 100644
— a/wordpress/wp-content/plugins/polylang/admin/settings.php
+++ b/wordpress/wp-content/plugins/polylang/admin/settings.php
@@ -267,7 +267,8 @@ class PLL_Settings {if (3 == $this->options[‘force_lang’] && isset($_POST[‘domains’]) && is_array($_POST[‘domains’])) {
foreach ($_POST[‘domains’] as $key => $domain) {
– $this->options[‘domains’][$key] = esc_url_raw(trim($domain));
+ //$this->options[‘domains’][$key] = esc_url_raw(trim($domain));
+ $this->options[‘domains’][$key] = preg_split(“/[\s,]+/”, trim($domain));
}
}diff –git a/wordpress/wp-content/plugins/polylang/admin/view-tab-settings.php b/wordpress/wp-content/plugins/polylang/admin/view-tab-settings.php
index c29e001..989bf68 100644
— a/wordpress/wp-content/plugins/polylang/admin/view-tab-settings.php
+++ b/wordpress/wp-content/plugins/polylang/admin/view-tab-settings.php
@@ -76,7 +76,8 @@ $page_on_front = ‘page’ == get_option(‘show_on_front’) ? get_option(‘page_on_fro
‘<td><input name=”domains[%1$s]” id=”pll-domain[%1$s]” type=”text” value=”%3$s” size=”40″ aria-required=”true” /></td></tr>’,
esc_attr($lg->slug),
esc_attr($lg->name),
– esc_url(isset($this->options[‘domains’][$lg->slug]) ? $this->options[‘domains’][$lg->slug] : ($lg->slug == $this->options[‘default_lang’] ? $this->links_model->home : ”))
+ //esc_url(isset($this->options[‘domains’][$lg->slug]) ? $this->options[‘domains’][$lg->slug] : ($lg->slug == $this->options[‘default_lang’] ? $this->links_model->home : ”))
+ esc_attr(is_array($this->options[‘domains’][$lg->slug]) ? implode(“, “, $this->options[‘domains’][$lg->slug]) : ($lg->slug == $this->options[‘default_lang’] ? $this->links_model->home : ”))
);
}?>
</table>
diff –git a/wordpress/wp-content/plugins/polylang/include/links-domain.php b/wordpress/wp-content/plugins/polylang/include/links-domain.php
index af7419d..b9edcd1 100644
— a/wordpress/wp-content/plugins/polylang/include/links-domain.php
+++ b/wordpress/wp-content/plugins/polylang/include/links-domain.php
@@ -20,8 +20,13 @@ class PLL_Links_Domain extends PLL_Links_Permalinks {
* @return string modified url
*/
public function add_language_to_link($url, $lang) {
– if (!empty($lang) && !empty($this->options[‘domains’][$lang->slug]))
– $url = str_replace($this->home, $this->options[‘domains’][$lang->slug], $url);
+ if (!empty($lang) && !empty($this->options[‘domains’][$lang->slug])) {
+ if (!is_array($this->options[‘domains’][$lang->slug])) {
+ $url = str_replace($this->home, $this->options[‘domains’][$lang->slug], $url);
+ } else {
+ $url = str_replace($this->home, $this->options[‘domains’][$lang->slug][0], $url);
+ }
+ }
return $url;
}@@ -49,7 +54,20 @@ class PLL_Links_Domain extends PLL_Links_Permalinks {
* @return string language slug
*/
public function get_language_from_url() {
– return ($lang = array_search( (is_ssl() ? ‘https://’ : ‘https://’) . $_SERVER[‘HTTP_HOST’] . parse_url($this->home, PHP_URL_PATH), $this->options[‘domains’] ) ) ? $lang : $this->options[‘default_lang’];
+ $search = (is_ssl() ? ‘https://’ : ‘https://’).str_replace(‘www.’, ”, $_SERVER[‘HTTP_HOST’]).parse_url($this->home, PHP_URL_PATH);
+
+ // default
+ $slug = $this->options[‘default_lang’];
+ foreach ($this->options[‘domains’] as $lang => $domains) {
+ if (is_array($domains)) {
+ if (!(array_search($search, $domains) === FALSE)) {
+ $slug = $lang;
+ }
+ } elseif ($search == $domains) {
+ $slug = $lang;
+ }
+ }
+ return $slug;
}/*
@@ -62,7 +80,11 @@ class PLL_Links_Domain extends PLL_Links_Permalinks {
* @return string
*/
function home_url($lang) {
– return empty($this->options[‘domains’][$lang->slug]) ? $this->home : $this->options[‘domains’][$lang->slug];
+ $domains = empty($this->options[‘domains’][$lang->slug]) ? $this->home : $this->options[‘domains’][$lang->slug];
+ if (is_array($domains)) {
+ return $domains[0];
+ }
+ return $domains;
}/*
@@ -73,6 +95,14 @@ class PLL_Links_Domain extends PLL_Links_Permalinks {
* @return array list of hosts
*/
public function get_hosts() {
– return array_map(create_function(‘$v’, ‘return parse_url($v, PHP_URL_HOST);’), $this->options[‘domains’]);
+ $result = array();
+ foreach ($this->options[‘domains’] as $lang => $domains) {
+ if (is_array($domains)) {
+ $result = array_merge($result, array_map(create_function(‘$v’, ‘return parse_url($v, PHP_URL_HOST);’), $domains));
+ } else {
+ array_push($result, $domains);
+ }
+ }
+ return $result;
}
}Forum: Plugins
In reply to: [Polylang] [Polylang] How to support more than one domain per language?Would it make sense to change options[‘domains’] to support a list of domains, given the first element of the list would be the default url for that language?
/*
* returns the language based on language code in url
* links_model interface
*
* @since 1.2
*
* @return string language slug
*/
public function get_language_from_url() {
return ($lang = array_search( (is_ssl() ? ‘https://’ : ‘https://’) . $_SERVER[‘HTTP_HOST’] . parse_url($this->home, PHP_URL_PATH), $this->options[‘domains’] ) ) ? $lang : $this->options[‘default_lang’];
}Forum: Themes and Templates
In reply to: [Customizr] Customizr and WPMLI gave up on WPML and now I’m really happy with Polylang. Waaaaay faster and easier to use.
Forum: Themes and Templates
In reply to: [Customizr] Customizr and WPMLIt turns out that only the Featured Pages are not featuring the translated pages. Even the demo slider is translated, which is really good.