Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


 Share

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 текущей страницы?

Link to comment
Share on other sites


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

 

 

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

Link to comment
Share on other sites

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

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

 

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

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

 

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

Edited by Andrej1986
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.