Jump to content
Sign in to follow this  
supergone

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

Recommended Posts

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

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

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

Share this post


Link to post
Share on other sites

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

идете /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

Share this post


Link to post
Share on other sites

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

идете /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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Как-то так.

  • +1 1

Share this post


Link to post
Share on other sites

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

Как-то так.

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

Share this post


Link to post
Share on other sites
Guest 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

 

Share this post


Link to post
Share on other sites

Всё вышенаписанное - это хорошо, но вы, фактически, не получаете 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, но как достучаться до отдельного элемента, не знаю....

 

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

Share this post


Link to post
Share on other sites

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

 

Стандартный 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

Share this post


Link to post
Share on other sites

JS

 

window.location

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

 

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

Share this post


Link to post
Share on other sites
<?php
$where_i_am = $_SERVER["REQUEST_URI"];
echo ​$where_i_am;
?>

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

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

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

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

Share this post


Link to post
Share on other sites

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

  • +1 2

Share this post


Link to post
Share on other sites
В 03.06.2017 в 03:44, uglevsky сказал:

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

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

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

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

Share this post


Link to post
Share on other sites
В 03.06.2017 в 03:44, uglevsky сказал:

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

 

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

Share this post


Link to post
Share on other sites
В 26.09.2018 в 01:01, alexzhy сказал:

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

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

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

этот вариант цепляет последовательность символов с ROM и ссылка не открывается. Лучше использовать 

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.