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

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

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

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

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

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

	      <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 товаров, и знаете? Нормально работает, деньги приносит...

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

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


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

Отправил в лс

  • +1 1

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


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

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

Делал магазины аж(!) на 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']

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

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


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

if(isset($this->request->get['product_id'])) {

 

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

  • +1 2

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


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

Все ок...только один нюанс - в 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) { ?>

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

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


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

isset

if (!isset($product['product_id'])) {
   // Genious code
}
  • +1 1

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


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

 

isset

if (!isset($product['product_id'])) {
   // Genious code
}

Да, уже после серфинга тоже справился.

Спасибо всем парни!

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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