Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Как определить переменную id_product в модуле "Категории"


komok
 Поделиться

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

Всем здравствуйте!

Долго ковырялся, но так и не смог сделать.. Собственно, вся задача написана в теме.

Появилась необходимость в модуле категорий выводить не сами категории, а товары (вообще тема немноготоварного магазина актуальна...жаль тут нельзя реализовать). В самом файле сделал "жесткую" структуру списка. В нем надо как-то выделить классом активные пункты, если по образу исходника, то контрукцией:

	      <li>
		<?php if ($category['product_id'] == $category_id) { ?>
		<a class="active" href="/index.php?route=product/product&path=65&product_id=66">Один</a>
		<?php } else { ?>
		<a href="/index.php?route=product/product&path=65&product_id=66">Два</a>
		<?php } ?>
	     </li>

Только нужно вместо $category_id ставить $product_id . И в контроллере определить эту переменную. Не буду описывать какую свою логику тестировал, но в итоге ничего не смог сделать.... Прошу помощи тут)

Спасибо заранее.

p.s. поиск ничего не дал и кеш яндекса тоже...

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


не зная вашего кода и того, как сильно вы там всё перемудрили (а задачка-то простая) могу посоветовать банальное $_GET['product_id']

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

(вообще тема немноготоварного магазина актуальна...жаль тут нельзя реализовать

 

 

Кто это Вам такие глупости наговорил?

Делал магазины аж(!) на 5 товаров, и знаете? Нормально работает, деньги приносит...

 

В контроллере модуля пишите 

if(isset($this->request->get['product_id']) {
$this->data['product_id'] = $this->request->get['product_id'];
}

И в случае нахождения в карте товара (например) у вас будет $product_id  в шаблоне

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Кто это Вам такие глупости наговорил?

Делал магазины аж(!) на 5 товаров, и знаете? Нормально работает, деньги приносит...

Спасибо за ответ. Если не секрет, можно посмотреть на магазины? (можно в ЛС чтобы не афишировать). Очень интересно как все организовано.

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


Кто это Вам такие глупости наговорил?

Делал магазины аж(!) на 5 товаров, и знаете? Нормально работает, деньги приносит...

 

В контроллере модуля пишите 

if(isset($this->request->get['product_id']) {
$this->data['product_id'] = $this->request->get['product_id'];
}

И в случае нахождения в карте товара (например) у вас будет $product_id  в шаблоне

 

Не хочет работать, выдает ошибку (собственно на той строке куда вставил конструкцию).

Parse error: syntax error, unexpected '{' in /catalog/controller/module/category.php on line 67

В файле /catalog/view/theme/hyla/template/module/category.tpl стоит конструкция

	    <li>
		<?php if ($category['product_id'] == $product_id) { ?>
		<a class="active" href="/index.php?route=product/product&path=65&product_id=66">1</a>
		<?php } else { ?>
		<a href="/index.php?route=product/product&path=65&product_id=66">2</a>
		<?php } ?>
	  </li>

Я так думаю, что необходимо указать откуда читать $this->data['product_id'] и затем передать в шаблон... И скорее всего это должен быть цикл, дабы считать все продукты...

Могу быть не прав конечно...

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


не зная вашего кода и того, как сильно вы там всё перемудрили (а задачка-то простая) могу посоветовать банальное $_GET['product_id']

Задача элементарная)) только вот не знаю как решить ее..

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


Все ок...только один нюанс - в tpl файле сея конструкция не пашет:

<?php if ($category['product_id'] == $product_id) { ?>

А как определить текущую страницу с товаром??

p.s.

И  если тупо поставить проверку <?php if ($product_id=66) { ?> ...то все категории становятся активными, т.е. условие справедливо для всех id товаров...бред

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


 

не теряем символы  :twisted:

 

Ой  :oops:

 

Все ок...только один нюанс - в tpl файле сея конструкция не пашет:

<?php if ($category['product_id'] == $product_id) { ?>

А как определить текущую страницу с товаром??

p.s.

И  если тупо поставить проверку <?php if ($product_id=66) { ?> ...то все категории становятся активными, т.е. условие справедливо для всех id товаров...бред

 

А что Вы хотели показать\сказать этим сравнением? 

И, на будушее

 

НЕ ИСПОЛЬЗУЙТЕ в конструкции if операторы присваивания

($product_id ==66 ) 

Собственно из-за этого у Вас

 

все категории становятся активными, т.е. условие справедливо для всех id товаров...бред
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


НЕ ИСПОЛЬЗУЙТЕ в конструкции if операторы присваивания

Тьфу ты...видимо перегрелся.

Правда все равно интересно как сделать не "жесткую" конструкцию....

На карточке товара все работает исправно. На странице списка категории не работает. т.к. там переменная $product_id не определена.

Как сделать дополнительную проверку на существование переменной? (с php слабо знаком...только бейсик и си) =) Наподобии if{$product_id=EMPTY}... т.е. чтобы на страницах, отличных от карточки товара где переменная определена, срабатывало второе условие (после else)..

Решено (для будущих поколений пишу):

добавляем проверку на существование переменной - <?php if (isset($_GET['product_id']) and $product_id==66) { ?>

И спасибо всем!

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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