Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


komok

Recommended Posts

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

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

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

	      <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. поиск ничего не дал и кеш яндекса тоже...

Надіслати
Поділитися на інших сайтах


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

 

 

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

Делал магазины аж(!) на 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.