Перейти к содержанию
supergone

[Решено] Как вывести в переменную текущий url страницы?

Рекомендуемые сообщения

Друзья, я буду весьма признателен, если мне подскажут, как вывести через переменную в шаблон текущий url страницы.

В шаблоне условие if сравнивает текущий url и искомый - и если они совпадают, то не выводит часть кода шаблона, которая на данной странице является лишней. Возможно идея выглядит квадратно-гнездовой, но очень хочется сделать именно так).

Заранее спасибо Вам за помощь.

Поделиться сообщением


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

к примеру в продукте получается таким образом

идете /catalog/controller/product/product.php

находите

$this->data['heading_title'] = $product_info['name'];

ниже добавляете

$this->data['hrefs'] = $this->url->link('product/product', $url . '&product_id=' . $this->request->get['product_id']);

в итоге в product.tpl сможете получить переменную $hrefs;

  • +1 2

Поделиться сообщением


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

к примеру в продукте получается таким образом

идете /catalog/controller/product/product.php

находите

$this->data['heading_title'] = $product_info['name'];

ниже добавляете

$this->data['hrefs'] = $this->url->link('product/product', $url . '&product_id=' . $this->request->get['product_id']);

в итоге в product.tpl сможете получить переменную $hrefs;

Спасибо за подсказку snastik.

А если я хочу получить переменную в шаблоне header.tpl, и не знаю схему, которая задействована. По большому счету, именно текущую схему мне нужно узнать (home, category, product или checkout)?

  • +1 1

Поделиться сообщением


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

схему я не отлавливал так что ничего сказать не могу

категорию в хидере ловится так как на основании актив категори подсвечивается меню

Поделиться сообщением


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

$gdeya = ($this->request->get['route']);

Как-то так.

  • +1 1

Поделиться сообщением


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

$gdeya = ($this->request->get['route']);

Как-то так.

Вот это испробую) Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость anrisovich

к примеру в продукте получается таким образом

идете /catalog/controller/product/product.php

находите

$this->data['heading_title'] = $product_info['name'];
ниже добавляете

$this->data['hrefs'] = $this->url->link('product/product', $url . '&product_id=' . $this->request->get['product_id']);
в итоге в product.tpl сможете получить переменную $hrefs;

 

подскажите, а как можно получить url без названия сайта?

То есть:

catalog/555.html

вместо:

название_сайта/catalog/555.html

 

Поделиться сообщением


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

Всё вышенаписанное - это хорошо, но вы, фактически, не получаете url, а составляете его сами, вместо обработчика кода. А как же всё-таки получить url текущей страницы?

 

В инете нарыл, что он хранится в переменной opencarta $og_urlurl адрес текущей страницы, значение переменной формируется автоматически (c версии ocStore 1.5.4.1.1)

 

на одном форуме человек даже выложил пример кода с её применением:

 

в *.tpl вставляем:

php code:
  1. <?php echo $og_url; ?>

в *.php вставляем:

php code:
  1. $this->data['og_url'] = (isset($this->request->server['HTTPS']) ? HTTPS_SERVER : HTTP_SERVER) . substr($this->request->server['REQUEST_URI'], 1, (strlen($this->request->server['REQUEST_URI'])-1));

 

но у меня лично эти примеры не заработали... вполне возможно. что у меня просто руки не совсем прямые, но если у кого вышло - дайте знать (желательно пример с запросом и результатом)

 

Сам ещё нарыл массив $this->url, но как достучаться до отдельного элемента, не знаю....

 

В общем, хелп кто может=))

Поделиться сообщением


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

А зачем чего-то вставлять? 

 

Стандартный header.tpl уже формирует  в <head> html-страницы строку 

<meta property="og:url" content="http://имя_сайта/index.php?route=common/home" />

Формирует строкой 

<meta property="og:url" content="<?php echo $og_url; ?>" />

Просто берите его оттуда.

 

 

 

ЗЫ: у меня версия OC 1.5.5.1.2

Поделиться сообщением


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

JS

 

window.location

Получает/устанавливает URL окна и его компоненты

 

Следующий ... :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
<?php
$where_i_am = $_SERVER["REQUEST_URI"];
echo ​$where_i_am;
?>

*echo - это чтобы посмотреть, то ли это, что вас интересует. Потом echo можно закомментить.

Переменную ​$where_i_am можно разбить на составляющие любым удобным способом.

Разбираете строку на нужные части, присваиваете переменные каждой интересующей части.

Функций и методов разбора полно - выбирайте любой, какой больше по нраву. Проще всего разбить по "/"

Поделиться сообщением


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

просто так <?php echo $_SERVER["REQUEST_URI"]; ?> 

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 03.06.2017 в 03:44, uglevsky сказал:

просто так <?php echo $_SERVER["REQUEST_URI"]; ?> 

за это огромное спасибо.

Или если надо с доменом

<?php echo "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 03.06.2017 в 03:44, uglevsky сказал:

просто так <?php echo $_SERVER["REQUEST_URI"]; ?> 

 

Спасибо. Работает на ocStore 2.3.0.2.3

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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