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

Вывод атрибутов вместо описания в категориях


ingenerks

Recommended Posts

Получилось сделать. Но теперь где есть атрибуты съезжает блок с корзиной влево http://whiskyburo.com/speyside

Как привязать этот блок в одном положении? Пытался прописывать в dispay: block; но это не помогает? Может кто подскажет?

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


  • 1 month later...

Подскажите, пожалуйста, есть такая проблема:

атрибуты в категории выводятся, всё ок! но..

 

У меня в категории выведены товары из подкатегорий

 

'filter_sub_category' => true,

 

и вот когда находишься в основной категории, в которой нет товаров, но в ней отображаются товары из её подкатегорий, то на них не отображаются атрибуты, а когда заходишь в подкатегорию с товарами, то там всё ок.

 

Подскажите, пожалуйста, как сделать так, чтобы в основной категории тоже отображались атрибуты?

 

Решено!

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


  • 3 months later...

Уважаемые гуру помогите пожалуйста если есть возможность реализовать данный вывод для Русской сборки OpenCart Version 2.0.1.1 (rs.7). Я начинающий, но для 1.5.5.1.2 сделал и хотел бы постепенно перейти на новую версию. Но пока не получается. Спасибо!

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


  • 4 weeks later...

catalog\controller\product\category.php, 199

 

			   	 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
					'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
					'price'	   => $price,

catalog\view\theme\default\template\product\category.tpl, 76

<div class="description">
			<?php if($product['attribute_groups']) { ?>
			<table>
				<?php foreach($product['attribute_groups'] as $attribute_group) { ?>
				<thead><!--названия групп-->
				<tr>
					<td colspan="2"><?php echo $attribute_group['name']; ?></td>
				</tr>
				</thead><!---->
				<tbody>
					<?php foreach($attribute_group['attribute'] as $attribute) { ?>
				<tr>
					<td><?php echo $attribute['name']; ?></td>
					<td><?php echo $attribute['text']; ?></td>
				</tr>
					<?php } ?>
				</tbody>
				<?php } ?>
			</table>
			<?php } ?>
		</div>

Хочу в соседней колонке выводить определенный атрибут используя это : 

<?php if ($attr_show) { ?>
	<div class="attribute"><?php foreach($product['attribute_groups'] as $attribute_group) { ?>
		<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
		 <?php if ($attribute_group['name'] == 'Тип актива') { ?>

	

	<span class="atribute-color"><?php echo $attribute['name']; ?></span>: <?php echo $attribute['text']; ?> </br> <?php } ?><?php } ?><?php } ?>

 

    </div>
	<?php } ?>	

Где Тип актива это название группы и название атрибута. Но вот беда, тогда в соседней колонке у меня выводит все атрибуты :

<?php if ($attr_show) { ?>
	<div class="attribute"><?php foreach($product['attribute_groups'] as $attribute_group) { ?>
		<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
		<?php if (in_array($attribute['attribute_id'], $attr_array)) { ?>

	

	<span class="atribute-color"><?php echo $attribute['name']; ?></span>: <?php echo $attribute['text']; ?> </br> <?php } ?><?php } ?><?php } ?>

 

    </div>
	<?php } ?> 

и тогда остальные параметры пропадают и показывает только Тип Актива в двух местах. 

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


  • 3 weeks later...
  • 3 months later...
  • 4 weeks later...

Подскажите пожалуйста, как вывеси атрибуты вместо описания в шаблоне категорий, для версии OpenCart 2.1.0.1

 

Все тоже самое, в controller добавляем attribute_groups после description

 

'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',

'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
'price'       => $price,

И в tpl вместо 

 

<p><?php echo $product['description']; ?></p>

вставляем

 

  <?php if($product['attribute_groups']) { ?>

   <table>
   <?php foreach($product['attribute_groups'] as $attribute_group) { ?>
  
   <tbody>
   <?php foreach($attribute_group['attribute'] as $attribute) { ?>
   <tr>
   <?php echo $attribute['name']; ?> - <?php echo $attribute['text']; ?> <font color="#00A7C7">/</font>
  
   </tr>
   <?php } ?>
   </tbody>
   <?php } ?>
   </table>
<?php } ?>
Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

catalog\controller\product\category.php, 199

 

			   	 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
					'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
					'price'	   => $price,

catalog\view\theme\default\template\product\category.tpl, 76

<div class="description">
			<?php if($product['attribute_groups']) { ?>
			<table>
				<?php foreach($product['attribute_groups'] as $attribute_group) { ?>
				<thead><!--названия групп-->
				<tr>
					<td colspan="2"><?php echo $attribute_group['name']; ?></td>
				</tr>
				</thead><!---->
				<tbody>
					<?php foreach($attribute_group['attribute'] as $attribute) { ?>
				<tr>
					<td><?php echo $attribute['name']; ?></td>
					<td><?php echo $attribute['text']; ?></td>
				</tr>
					<?php } ?>
				</tbody>
				<?php } ?>
			</table>
			<?php } ?>
		</div

а как сделать такое же, только в Opencart 2.1.0.1?

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


 

 

Все тоже самое, в controller добавляем attribute_groups после description

У меня нет 

description 

 и при добавлении в 199 строку получаю вот что - Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/u388135042/public_html/catalog/controller/product/category.php on line 200

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


У меня нет 

description 

 и при добавлении в 199 строку получаю вот что - Parse error: syntax error, unexpected T_DOUBLE_ARROW in /home/u388135042/public_html/catalog/controller/product/category.php on line 200

Печально...Но у меня description тоже в 199 строке нет... Но то что description вообще нет, я с вами не согласен. К примеру ocStore 2.1.0.1 в файле catalog/controller/product/category.php description встречается 7 раз. Найдите

$data['products'][] = array(

и вставьте после 

'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
Надіслати
Поділитися на інших сайтах


 

Печально...Но у меня description тоже в 199 строке нет... Но то что description вообще нет, я с вами не согласен. К примеру ocStore 2.1.0.1 в файле catalog/controller/product/category.php description встречается 7 раз. Найдите

$data['products'][] = array(

и вставьте после 

'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),

Спасибо огромное! Так заработало :eek:

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


  • 1 month later...

Подскажите а если мне нужно добавить атрибуты не вместо описания, а отдельным DIVом, что нужно сделать. Я делаю так как описано тут но когда в  catalog/view/product/category.php  я добавляю свой новый <div class="attributes"></div> он не выводится в браузер!

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


  • 4 weeks later...

Подскажите, как нужно изменить существующий код, чтобы выводились только первые три атрибута этого товара?

<?php if($product['attribute_groups']) { ?>
			<table>
				<?php foreach($product['attribute_groups'] as $attribute_group) { ?>

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

Не по id атрибутов, а именно первые три, какие бы они там ни были.

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


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

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


  • 4 weeks later...

Версия ocStore 2.1.0.2.1

Решение правильное, но пишет ошибки в валидации html, чтобы этого избежать и шаблоне выводим так :

   <?php if($product['attribute_groups']) { ?>
  <ul class="list-unstyled">
  <?php foreach($product['attribute_groups'] as $attribute_group) { ?>
  <?php foreach($attribute_group['attribute'] as $attribute) { ?>
  <li><strong><?php echo $attribute['name']; ?></strong> : <?php echo $attribute['text']; ?></li>
 <?php } ?>
   <?php } ?>
 </ul>
 <?php } else { ?>
<p><?php echo $product['description']; ?></p>
  <?php } ?>       

да и еще, если у товара нет аттрибутов, выводится описание товара :)

post-696786-0-98119000-1461443929_thumb.png

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


  • 2 weeks later...
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Способ, который предложил freelancer, работает на 2.1.0.2.1, но есть небольшое но: если воспользоваться стандартной сортировкой опенкарт, или фильтрами, то отображается опять описание, а не характеристики

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


  • 1 month later...

catalog\controller\product\category.php, 199

 

			   	 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
					'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),
					'price'	   => $price,

catalog\view\theme\default\template\product\category.tpl, 76

<div class="description">
			<?php if($product['attribute_groups']) { ?>
			<table>
				<?php foreach($product['attribute_groups'] as $attribute_group) { ?>
				<thead><!--названия групп-->
				<tr>
					<td colspan="2"><?php echo $attribute_group['name']; ?></td>
				</tr>
				</thead><!---->
				<tbody>
					<?php foreach($attribute_group['attribute'] as $attribute) { ?>
				<tr>
					<td><?php echo $attribute['name']; ?></td>
					<td><?php echo $attribute['text']; ?></td>
				</tr>
					<?php } ?>
				</tbody>
				<?php } ?>
			</table>
			<?php } ?>
		</div>

Подскажите а как сделать чтоб показывались к примеру первые 4 атрибута, а остальные показывались при нажатии на кнопку показать все?

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


  • 4 months later...

Подскажите а как сделать чтоб показывались к примеру первые 4 атрибута, а остальные показывались при нажатии на кнопку показать все?

<div class="description">
<?php if($product['attribute_groups']) { ?>
<table>
<?php foreach($product['attribute_groups'] as $attribute_group) { ?>
<thead><!--названия групп-->
</thead><!---->
<tbody>
<?php foreach($attribute_group['attribute'] as $attribute) { ?>
<?php if(in_array($attribute['attribute_id'], array(26))) { ?>
<tr>
<b><td><?php echo $attribute['text']; ?></td></b>
</tr>
<?php } ?>
</tbody><p>
<tbody>
<?php foreach($attribute_group['attribute'] as $attribute) { ?>
<?php if(in_array($attribute['attribute_id'], array(14))) { ?>
<tr>
<td><?php echo $attribute['name']; ?>:</td>
<b><td><?php echo $attribute['text']; ?></td></b>
</tr>
<?php } ?><?php }?>
</tbody>
<?php } ?>
</table>
<?php } ?>
</div><?php }?>

Можно вообще только нужный атрибут выводить, где номер в скобочках после array это необходимый атрибут

 

ID атрибута можно узнать, если в админке клацнуть на редактирование нужного атрибута. В адресной строке будет видно

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


Это работает, чтобы выводить в карточке продукта, в категориях, рекомендуемых, но не работает, чтобы вывести в корзине.

 

Может кто знает, как вывести атрибуты в корзине, при оформлении товара ?

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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