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

Помогите с $_GET['product_id']

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

Был сделан хак небольшой для возможности выбора параметров товара

Вроде все работает гуд, но после включения SEO ссылок выяснилось что хак перестал работать

Вот ссылка на работающую страницу без включенной сео ссылки

http://setka-uniplast.com/index.php?route=product/product&path=20&product_id=76

 

Вот ссылка на страницу с включенной сео ссылкой где хак перестал работать как надо

http://setka-uniplast.com/rabytsa/rabitza.html

 

хак вшивался в product.tpl

 <?php if ($_GET['product_id'] == 47 or $_GET['product_id'] == 65 or $_GET['product_id'] == 75 or $_GET['product_id'] == 76 or $_GET['product_id'] == 66){?>

 

При изменении ссылки в конце отстутсвует ид номер страницы и хак не знает что показывать

Может кто то подсказать как побороть?

вот product.tpl

http://yadi.sk/d/c139AGOG9U8oc

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


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

как минимум надо так


<?php if ($this->request->get['route']=='product/category' && $this->request->get['path']=='id страницы') { ?>
для продуктов product/product и product_id

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


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

Я бы в контроллер добавил, типа: 

$this->data['products'][] = array(
   'product_id'  => $result['product_id'],
   ...

а ловил бы в ТПЛ-ке просто: 

<?php if ($product['product_id'] == 47 || $product['product_id'] == 65 || $product['product_id'] == 75 || $product['product_id'] == 76 || $product['product_id'] == 66){?>

Хотя, если о карточке товара идёт речь, то ещё проще:

$this->data['product_id'] = $product_info['product_id'];

а в ТПЛ :

<?php if ($product_id == 47 || $product_id == 65 || $product_id == 75 || $product_id == 76 || $product_id == 66){?>

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


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

 

Я бы в контроллер добавил, типа: 

$this->data['products'][] = array(
   'product_id'  => $result['product_id'],
   ...

а ловил бы в ТПЛ-ке просто: 

<?php if ($product['product_id'] == 47 || $product['product_id'] == 65 || $product['product_id'] == 75 || $product['product_id'] == 76 || $product['product_id'] == 66){?>

не подскажете, как это же сделать для category_id?

хочу в хедере менять фоновую картинку в зависимости от текущего айди категории

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


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

не подскажете, как это же сделать для category_id?

хочу в хедере менять фоновую картинку в зависимости от текущего айди категории

для категорий как раз я и ответил ))) https://opencartforum.com/topic/25942-помогите-с-getproduct-id/?do=findComment&comment=199905

  • +1 1

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


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

не пойму тогда, куда энто вставить... и что такое айди страницы в коде? его вручную там вписывать?

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


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

CONTROLLER

 

$this->data['cat_id'] = $category_info['category_id'];

 

TPL

 

<?php if ($cat_id == 47){ вывод нужного класса} else { клас по умолчанию }

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


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

CONTROLLER

 

$this->data['cat_id'] = $category_info['category_id'];

 

TPL

 

<?php if ($cat_id == 47){ вывод нужного класса} else { клас по умолчанию }

вставляю в контроллер хедера, получаю ошибку

Notice: Undefined variable: category_info in .../catalog/controller/common/header.php on line 20

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


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

Попробуйте после:

$category_info = $this->model_catalog_category->getCategory($category_id);

 добавить:

$this->data['cat_id'] = $category_id;

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


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

все равно та же ошибка...

может чет не так делаю?

я в контроллер header.php 

вставляю строку 

$this->data['cat_id'] = $category_info['category_id'];

в контроллер category.php

$this->data['cat_id'] = $category_id;

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


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

Если в контроллер header.php  , то будет ошибка однозначно... писалось для контроллера category.php

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


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

так в том и дело, что мне нужно айди категории вывести в хедере, чтобы я там мог менять фоновую картинку в зависимости от категории

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


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

Если через хедер делать, то направление примерно такое:

в файл - catalog\controller\common\header.php

перед строкой

'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])

добавить

'back'     => $category['category_id'],

 

в файл - catalog\view\theme\default\template\common\header.tpl

перед

</head>

 

добавить

<style type="text/css">
<!--
body {
background: url("catalog/view/theme/default/image/bg<?php foreach ($categories as $category) { ?>
<?php if ($category['active']) { ?>
<?php echo $category['back']; ?>
<?php } else {}} ?>.jpg") no-repeat center top fixed;
}
-->
</style>

 

в папку - catalog/view/theme/default/image/

поместить фоновые изображения с именами

bg.jpg - для страниц не относящихся к категориям

bgX.jpg - для страниц категорий где X=id категории

  • +1 2

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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