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

При переключении языка передать url текущей страницы в сторонний модуль меню


Andrej1986

Recommended Posts

Приветствую. Подскажите, пожалуйста. Нужно вывести переключение в мобильной версии меню. Меню имеет свой контроллер и шаблон.

Добавил в контроллер модуля меню:

$data['language'] = $this->load->controller('common/language');

 

Далее в шаблон модуля меню вывел язык и скрипт переключения языка:

 

<li class="menu-li">{{ language }}</li>

		<script>$('#form-language .language-select').on('click', function(e) {
		e.preventDefault();

		$('#form-language input[name=\'code\']').val($(this).attr('name'));

		$('#form-language').submit();
	});</script>

 

Язык переключается, но проблема в том, что редирект происходит не на текущую страницу сайта, а на страницу модуля вида https://МОЙ_САЙТ/en/index.php?route=extentions/module/menu

Как модулю передать url текущей страницы?

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


$this->request

наверно сдесь нужно смотреть

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

В 22.11.2023 в 18:39, Andrej1986 сказав:

Приветствую. Подскажите, пожалуйста. Нужно вывести переключение в мобильной версии меню. Меню имеет свой контроллер и шаблон.

Добавил в контроллер модуля меню:

$data['language'] = $this->load->controller('common/language');

 

Далее в шаблон модуля меню вывел язык и скрипт переключения языка:

 

<li class="menu-li">{{ language }}</li>

		<script>$('#form-language .language-select').on('click', function(e) {
		e.preventDefault();

		$('#form-language input[name=\'code\']').val($(this).attr('name'));

		$('#form-language').submit();
	});</script>

 

Язык переключается, но проблема в том, что редирект происходит не на текущую страницу сайта, а на страницу модуля вида https://МОЙ_САЙТ/en/index.php?route=extentions/module/menu

Как модулю передать url текущей страницы?

А стандартне переключення працює?
Можливо ви створили дублі по #id, і невказали в свому меню input типу hidden:

<input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />

 

в контроллері вашого меню є щось подібне?

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')));
		}

 

 

Треба було в свому шаблоні банально вивести прапорці, чи як у вас там - кнопки для переключення і кожна кнопка тригерить стандартну кнопку переключення мов.

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

В 22.11.2023 в 20:17, Eldaeron сказав:

А стандартне переключення працює?

 

Треба було в свому шаблоні банально вивести прапорці, чи як у вас там - кнопки для переключення і кожна кнопка тригерить стандартну кнопку переключення мов.

Стандартне переключення працює. Вивести переключення мов у хедері я можу без проблем у будь-якому місці. Тобто, якби я прямо у хедер вписав це меню (без контролеру модуля, просто html та скрипт переключення) - там би все працювало, як треба. Але я вивожу меню в хедер через шаблон( наприклад <div>{{ menu }}</div>), а скрипт переключення вставив у шаблон модуля меню. Переключення мов працює корректно, мова переключається. Проблема саме в редіректі, бо модуль меню віддає свій url ("index.php?route=extentions/module/menu", при цьому префікс змінюється, мова переключається). Начебто така поведінка логічна, бо сторінка товару або категорії теж віддають свій url. Так от, як модулю передати саме url сторінки, яка зараз відкрита, замість свого url

 

Може якось через $_SERVER["REQUEST_URI"]?

Змінено користувачем Andrej1986
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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