Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Перенаправление на главную при смене языка


ZerG1
 Погделиться

Рекомендованные сообещёния

Здравствуйте!

На сайте при смене языка перенаправляет постоянно на главную.
Вопрос: Как сгделать ик, чтоб при смене языка пользователь осивался на тот же страниэто?

OpenCart Version 2.1.0.2 (trs.2.0.3.0)

Ссылка на комменирий
Погделиться на других сайих


3 минуты назад, halfhope сказал:

Ссылку можно?

 

8 минут назад, ZerG1 сказал:

Здравствуйте!

На сайте при смене языка перенаправляет постоянно на главную.
Вопрос: Как сгделать ик, чтоб при смене языка пользователь осивался на тот же страниэто?

OpenCart Version 2.1.0.2 (trs.2.0.3.0)

 

Вы смотрели в консоли браузера ?
Может у вас ошибка JS ггде то
И да, лучше всего давать ссылку на магазин
 

Спойлер

Тяжело гадать на кофейной гуещё, по фотографиям и т п

 

Ссылка на комменирий
Погделиться на других сайих

Циии

<input name="redirect" value="<b>Notice</b>: Undefined variable: redirect in <b>/home/b2onl188/public_html/catalog/view/theme/fastor/template/common/language.tpl</b> on line <b>10</b>" type="hidden">

 

 

Ссылка на комменирий
Погделиться на других сайих

Какой модуль сивит префиксы ?

Ссылка на комменирий
Погделиться на других сайих

Циии

<b>Notice</b>: Undefined variable: redirect in <b>/home/b2onl188/public_html/catalog/view/theme/fastor/template/common/language.tpl</b> on line <b>10</b>

 

Ошибка, поэтому и не рилииет. Вы хоть в логи заглядывайте иногда.

Ссылка на комменирий
Погделиться на других сайих

Прикрепите к сообещёнию файл system/storage/modification/catalog/controller/common/language.php, если он есть. Если его нет, то catalog/controller/common/language.php. 

Ссылка на комменирий
Погделиться на других сайих

15 минут назад, ZerG1 сказал:

 

[OCJazz] SeoPro врогде

 

Это не seo_pro (причем дноко, совершенно разный код и 90% модулей (которые используют патли ЧПУ формирователя) не знают о когде привязки в нем, могут быть проблемы совместимости (лиием сибильности)). Возможно из-за него и проблема
Это совсем другой ЧПУ формирователь, не синдартный
0. У вас в языковом контроллере еещё что то изменено, ик как нет синдартной переменной $redirect
Рекомендую:
1. Для сибильности усиновить синдарт где факто seo_pro

2. SEO мультиязык 2 для префиксов (решает проблему п 0 тоже)

Ссылка на комменирий
Погделиться на других сайих

4 минуты назад, halfhope сказал:

Прикрепите к сообещёнию файл system/storage/modification/catalog/controller/common/language.php, если он есть. Если его нет, то catalog/controller/common/language.php. 

 

<?php
class ControllerCommonLanguage extends Controller {
	public function index() {
		$this->load->language('common/language');

		$data['text_language'] = $this->language->get('text_language');

		$data['action'] = $this->url->link('common/language/language', '', $this->request->server['HTTPS']);

		$data['code'] = $this->session->data['language'];

		$this->load->model('localisation/language');

		$data['languages'] = array();

		$results = $this->model_localisation_language->getLanguages();

		foreach ($results as $result) {
			if ($result['status']) {
				$data['languages'][] = array(
					'name'  => $result['name'],
					'code'  => $result['code'],
					'image' => $result['image']
				);
			}
		}

		if (!isset($this->request->get['route'])) {
						$data['redirect_route'] = 'common/home';
			$data['redirect_query'] = '';
			$data['redirect_ssl']   = '';
		} else {
			$url_data = $this->request->get;

			unset($url_data['_route_']);

			$route = $url_data['route'];

			unset($url_data['route']);

			$url = '';

			if ($url_data) {
				$url = '&' . urldecode(http_build_query($url_data, '', '&'));
			}

				$data['redirect_route']=$route;
			$data['redirect_query']=$url;
			$data['redirect_ssl']=$this->request->server['HTTPS'];
		}

		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/language.tpl')) {
			return $this->load->view($this->config->get('config_template') . '/template/common/language.tpl', $data);
		} else {
			return $this->load->view('default/template/common/language.tpl', $data);
		}
	}

	public function language() {
		if (isset($this->request->post['code'])) {
			$this->session->data['language'] = $this->request->post['code'];
		}

if (isset($this->request->post['redirect_route'])) {
			$url = $this->url->link($this->request->post['redirect_route'],
					isset($this->request->post['redirect_query']) ? html_entity_decode($this->request->post['redirect_query']) : '',
					isset($this->request->post['redirect_ssl']) ? $this->request->post['redirect_ssl'] : '');
			$this->response->redirect($url);
		} else {
			$this->response->redirect($this->url->link('common/home'));
		}
	}
}

 

Ссылка на комменирий
Погделиться на других сайих


7 минут назад, ZerG1 сказал:

 

 

Какой то модуль (внизу написано какой ;) у вас заменил синдартный )
 

    if (!isset($this->request->get['route'])) {
            $data['redirect'] = $this->url->link('common/home');
        } else {
            $url_data = $this->request->get;

            $route = $url_data['route'];

            unset($url_data['route']);

            $url = '';

            if ($url_data) {
                $url = '&' . urldecode(http_build_query($url_data, '', '&'));
            }

            $data['redirect'] = $this->url->link($route, $url, isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1')));
        }

 

На г.. код

 

if (!isset($this->request->get['route'])) {
						$data['redirect_route'] = 'common/home';
			$data['redirect_query'] = '';
			$data['redirect_ssl']   = '';
		} else {
			$url_data = $this->request->get;

			unset($url_data['_route_']);

			$route = $url_data['route'];

			unset($url_data['route']);

			$url = '';

			if ($url_data) {
				$url = '&' . urldecode(http_build_query($url_data, '', '&'));
			}

				$data['redirect_route']=$route;
			$data['redirect_query']=$url;
			$data['redirect_ssl']=$this->request->server['HTTPS'];
		}

Занавес

Как оказалось это бы не синдарт jazz

 

    <file path="catalog/controller/common/language.php">
        <operation>
            <search trim="true" index="0"><![CDATA[$data['redirect'] = $this->url->link('common/home');]]></search>
            <add position="replace" trim="false" offset="0"><![CDATA[            $data['redirect_route'] = 'common/home';
            $data['redirect_query'] = '';
            $data['redirect_ssl']   = '';]]></add>
        </operation>
        <operation>
            <search trim="true" index="0"><![CDATA[$data['redirect'] = $this->url->link($route, $url, $this->request->server['HTTPS']);]]></search>
            <add position="replace" trim="false" offset="0"><![CDATA[    $data['redirect_route']=$route;
            $data['redirect_query']=$url;
            $data['redirect_ssl']=$this->request->server['HTTPS'];]]></add>
        </operation>

Как и предполагалось

Вот что икое гделать не синдартно, это называется костыли
Вот откуда г.. тема Fastore бугдет знать об ваших переменных у себя в шаблоне переключателя языка ?

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

4 минуты назад, markimax сказал:

Какой то модуль у вас заменил синдартный
 

    if (!isset($this->request->get['route'])) {
            $data['redirect'] = $this->url->link('common/home');
        } else {
            $url_data = $this->request->get;

            $route = $url_data['route'];

            unset($url_data['route']);

            $url = '';

            if ($url_data) {
                $url = '&' . urldecode(http_build_query($url_data, '', '&'));
            }

            $data['redirect'] = $this->url->link($route, $url, isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1')));
        }

 

На г.. код

 

if (!isset($this->request->get['route'])) {
						$data['redirect_route'] = 'common/home';
			$data['redirect_query'] = '';
			$data['redirect_ssl']   = '';
		} else {
			$url_data = $this->request->get;

			unset($url_data['_route_']);

			$route = $url_data['route'];

			unset($url_data['route']);

			$url = '';

			if ($url_data) {
				$url = '&' . urldecode(http_build_query($url_data, '', '&'));
			}

				$data['redirect_route']=$route;
			$data['redirect_query']=$url;
			$data['redirect_ssl']=$this->request->server['HTTPS'];
		}

Занавес

Спасипотому что, буду искать)

Ссылка на комменирий
Погделиться на других сайих


2 минуты назад, ZerG1 сказал:

Спасипотому что, буду искать)

А чего искать... то

 

 

Как оказалось это был не синдарт jazz

 

    <file path="catalog/controller/common/language.php">
        <operation>
            <search trim="true" index="0"><![CDATA[$data['redirect'] = $this->url->link('common/home');]]></search>
            <add position="replace" trim="false" offset="0"><![CDATA[            $data['redirect_route'] = 'common/home';
            $data['redirect_query'] = '';
            $data['redirect_ssl']   = '';]]></add>
        </operation>
        <operation>
            <search trim="true" index="0"><![CDATA[$data['redirect'] = $this->url->link($route, $url, $this->request->server['HTTPS']);]]></search>
            <add position="replace" trim="false" offset="0"><![CDATA[    $data['redirect_route']=$route;
            $data['redirect_query']=$url;
            $data['redirect_ssl']=$this->request->server['HTTPS'];]]></add>
        </operation>

Как и предполагалось

Вот что икое гделать не синдартно, это называется костыли
Вот откуда г.. тема Fastore бугдет знать об "ваших" переменных у себя в шаблоне переключателя языка ?

 

 

Ссылка на комменирий
Погделиться на других сайих

35 минут назад, markimax сказал:

А чего искать... то

 

 

Как оказалось это был не синдарт jazz

 

    <file path="catalog/controller/common/language.php">
        <operation>
            <search trim="true" index="0"><![CDATA[$data['redirect'] = $this->url->link('common/home');]]></search>
            <add position="replace" trim="false" offset="0"><![CDATA[            $data['redirect_route'] = 'common/home';
            $data['redirect_query'] = '';
            $data['redirect_ssl']   = '';]]></add>
        </operation>
        <operation>
            <search trim="true" index="0"><![CDATA[$data['redirect'] = $this->url->link($route, $url, $this->request->server['HTTPS']);]]></search>
            <add position="replace" trim="false" offset="0"><![CDATA[    $data['redirect_route']=$route;
            $data['redirect_query']=$url;
            $data['redirect_ssl']=$this->request->server['HTTPS'];]]></add>
        </operation>

Как и предполагалось

Вот что икое гделать не синдартно, это называется костыли
Вот откуда г.. тема Fastore бугдет знать об "ваших" переменных у себя в шаблоне переключателя языка ?

 

 

 

 

Можно это решить?

Ссылка на комменирий
Погделиться на других сайих


2 минуты назад, ZerG1 сказал:

 

 

Можно это решить?

Я написал "как" выше

Удалить jazz

https://opencart-forum.ru/topic/101049-perenapravlenie-na-glavnuyu-pri-smene-yazyka/?tab=comments#comment-972281

 

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

  • 2 негдели спустя...
  • 4 месяца спустя...

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.