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

Выбор атрибутов "галочкой" для отображения на странице списка товаров


nash

Recommended Posts

Добрый день! Нужна помощь в реализации следующего функционала (возможно есть уже такие модули):

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

Змінено користувачем nash
Надіслати
Поділитися на інших сайтах


вообщем добавил текстовое поле, в базе поле atr_tov

AD7h4bl1.png

В контроллере product.php добавил переменную atr_tov 

// Attributes
		$this->load->model('catalog/attribute');
		
		if (isset($this->request->post['product_attribute'])) {
			$product_attributes = $this->request->post['product_attribute'];
		} elseif (isset($this->request->get['product_id'])) {
			$product_attributes = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']);
		} else {
			$product_attributes = array();
		}
		
		$this->data['product_attributes'] = array();
		
		foreach ($product_attributes as $product_attribute) {
			$attribute_info = $this->model_catalog_attribute->getAttribute($product_attribute['attribute_id']);
			
			if ($attribute_info) {
				$this->data['product_attributes'][] = array(
					'attribute_id'                  => $product_attribute['attribute_id'],
					'name'                          => $attribute_info['name'],
					'product_attribute_description' => $product_attribute['product_attribute_description'],
					'atr_tov'                  => $product_attribute['atr_tov']
				);
			}
		}		

В модель product.php добавил переменную в запрос в функции addProduct()

if (isset($data['product_attribute'])) {
			foreach ($data['product_attribute'] as $product_attribute) {
				if ($product_attribute['attribute_id']) {
					$this->db->query("DELETE FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product_id . "' AND attribute_id = '" . (int)$product_attribute['attribute_id'] . "'");
					
					foreach ($product_attribute['product_attribute_description'] as $language_id => $product_attribute_description) {				
						$this->db->query("INSERT INTO " . DB_PREFIX . "product_attribute SET product_id = '" . (int)$product_id . "', attribute_id = '" . (int)$product_attribute['attribute_id'] . "', language_id = '" . (int)$language_id . "', text = '" .  $this->db->escape($product_attribute_description['text']) . "', atr_tov = '" . (int)$product_attribute_description['atr_tov'] . "'");
					}
				}
			}
		}

в editProduct() добавил тоже. 

 

В итоге при добавлении товара появляется ошибка, которая ссылается на строку из первого листинга:

'atr_tov'  => $product_attribute['atr_tov']
Notice: Undefined index: atr_tov in /home/c/xxx/xxx/public_html/vqmod/vqcache/vq2-admin_controller_catalog_product.php on line 1538

Подскажите, пожалуйста, где у меня ошибка.

Змінено користувачем nash
Надіслати
Поділитися на інших сайтах


Чего-то тут проще указать, где ошибки нет... Там, где вы до исходного кода не добрались.

Откровенно говоря, мне даже замысел ваш непонятен - что за атрибут, чекбокс это или все-таки текстовый.

А меняете вы где попало и что попало, даже комментировать нет смысла.

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


Чего-то тут проще указать, где ошибки нет... Там, где вы до исходного кода не добрались.

Откровенно говоря, мне даже замысел ваш непонятен - что за атрибут, чекбокс это или все-таки текстовый.

А меняете вы где попало и что попало, даже комментировать нет смысла.

что я меняю не там где нужно?!

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


Если не обращать внимания, что я даже формулировку задачи в вашем изложении осилить не могу,

вот это:

 

atr_tov = '" . (int)$product_attribute_description['atr_tov'] . "'"

бессмысленный копипаст чего попало - авось пригодится.

И с чего вы решили, что после этого поле atr_tov чудесным образом появится в БД?

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


Если не обращать внимания, что я даже формулировку задачи в вашем изложении осилить не могу,

вот это:

бессмысленный копипаст чего попало - авось пригодится.

И с чего вы решили, что после этого поле atr_tov чудесным образом появится в БД?

ну скажите тогда как правильно надо сделать.

Змінено користувачем nash
Надіслати
Поділитися на інших сайтах


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

Какая роль у дополнительного поля атрибута на рисунке, что за "выбор атрибута (чекбокс)", куда его выводить, при чем здесь разные категории...

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


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

Какая роль у дополнительного поля атрибута на рисунке, что за "выбор атрибута (чекбокс)", куда его выводить, при чем здесь разные категории...

ну задача поменялась. Мне нужно, чтобы в текстовое поле, которое я добавил, вводили некоторые цифры и чтобы эти цифры сохранялись в бд.

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


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

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

Important Information

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