Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


ZerG1

Recommended Posts

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

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

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>

 

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

Надіслати
Поділитися на інших сайтах

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://opencartforum.com/topic/101049-perenapravlenie-na-glavnuyu-pri-smene-yazyka/?tab=comments#comment-972281

 

  • +1 2
Надіслати
Поділитися на інших сайтах

  • 2 weeks later...
  • 4 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.