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

Скрыть пустые атрибуты/характеристики товара

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

Здравствуйте.

 

Если решения, что бы срывать пустые атрибуты товара а заполненные оставлять ?

 

Т.е. если у товара заполнены 5 атрибутов из 10 то оставить только 5 заполненных а пустые скрыть.

 

 

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


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

1 способ. Удалить пустые атрибуты у товаров через phpmyadmin
2 способ. Добавить в выборку атрибутов товара (метод getProductAttributes в catalog\model\catalog\product.php) условие

pa.text != ''

 

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


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

Спасибо за наводку. Я не программист и меня хватило только на то что бы условие сделать в /catalog/view/theme/fractal/template/product/product.tpl

 

Заменил: 

<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<tr>
  <td><?php echo $attribute['name']; ?></td>
  <td><?php echo $attribute['text']; ?></td>
</tr>
<?php } ?>

На

<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
<?php if ($attribute['text'] != '') { ?>
<tr>
  <td><?php echo $attribute['name']; ?></td>
  <td><?php echo $attribute['text']; ?></td>
</tr>
<?php
} 
}
?>

Такой вариант сработал

 

Как то же самое сделать через модель я не понял.Если не трудно подскажите для общего развития так сказать.

 

Вот код из модели

public function getProductAttributes($product_id) {
		$product_attribute_group_data = array();

		$product_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.product_id = '" . (int)$product_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name");

		foreach ($product_attribute_group_query->rows as $product_attribute_group) {
			$product_attribute_data = array();

			$product_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "product_attribute pa LEFT JOIN " . DB_PREFIX . "attribute a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.product_id = '" . (int)$product_id . "' AND a.attribute_group_id = '" . (int)$product_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY a.sort_order, ad.name");

			foreach ($product_attribute_query->rows as $product_attribute) {
				$product_attribute_data[] = array(       
					'attribute_id' => $product_attribute['attribute_id'],
					'name'         => $product_attribute['name'],
					'text'         => $product_attribute['text']
       );
			}

			$product_attribute_group_data[] = array(
				'attribute_group_id' => $product_attribute_group['attribute_group_id'],
				'name'               => $product_attribute_group['name'],
				'attribute'          => $product_attribute_data
			);
		}

		return $product_attribute_group_data;
	}

 

Изменено пользователем orchanin

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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