Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


ingenerks
 Share

Recommended Posts

Добрый день. Подскажиет как в категории, где идет краткое описание товара, вместо описание выводить характеристики товара.

Тоесть вместо 1 выводить 2. Как на рисунке. Спасибо!!!!

post-19940-0-60936700-1342424586_thumb.jpg

  • +1 1
Link to comment
Share on other sites

Если вы характеристики храните в поле модель, то:

В файле catalogcontrollerproductcategory.php

добавить в районе 200 строки:

'model'	   => $result['model'],

А потом в шаблоне вывода категории (catalogviewthemedefaulttemplateproductcategory.tpl) в нужном вам месте добавить

<?php echo $product['model']; ?>
Link to comment
Share on other sites

Если вы характеристики храните в поле модель, то:

В файле catalogcontrollerproductcategory.php

добавить в районе 200 строки:

'model'	   => $result['model'],

А потом в шаблоне вывода категории (catalogviewthemedefaulttemplateproductcategory.tpl) в нужном вам месте добавить

<?php echo $product['model']; ?>
Нет я не храню в поле модель. В том то и прикол, что нужно склеивать из поля характеристики и через слеш выводить их. То есть выводить каждый атрибут, потом через слеш новый атрибут и так все атрибуты которые встречаются в товаре. А какой смысл выводить краткое описание. Человеку важнее увидеть технические характеристики товара!!!!
  • +1 1
Link to comment
Share on other sites

И что мешает упростить задачу, используя поле модели, чтобы хранить эти характеристики там? Все равно модель товара указывается обычно в его названии, и получается бесполезное дублирование.

Link to comment
Share on other sites

И что мешает упростить задачу, используя поле модели, чтобы хранить эти характеристики там? Все равно модель товара указывается обычно в его названии, и получается бесполезное дублирование.

Например при вводе товара на сайт вводится его описание. Оно есть у любого товара. Дальше забиваются атрибуты. Которые потом будут использоватся в фильтрации. Вот именно эти атрибуты нужно выносить вместо краткого описания товара. Так как на картинке.
Link to comment
Share on other sites

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>
  • +1 9
Link to comment
Share on other sites

catalogcontrollerproductcategory.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,

catalogviewthemedefaulttemplateproductcategory.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>
Ура получилось спасибо. Единственный вопрос как выводить все в строчку и после каждого нового атрибута ставить разделитель слешь с пробьелами, что бы было так

Экран 11.6” (1366x768) LED, глянцевый / AMD Dual-Core E-450 (1.65 ГГц) / RAM 2 ГБ / HDD 500 ГБ / AMD Radeon HD 6320 / без ОДД / LAN / Wi-Fi / Bluetooth / веб-камера / DOS /

  • +1 1
Link to comment
Share on other sites

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

Экран 11.6” (1366x768) LED, глянцевый / AMD Dual-Core E-450 (1.65 ГГц) / RAM 2 ГБ / HDD 500 ГБ / AMD Radeon HD 6320 / без ОДД / LAN / Wi-Fi / Bluetooth / веб-камера / DOS /

catalogviewthemedefaulttemplateproductcategory.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>
на:

<div class="description">
					    <?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="#0000FF">|</font>
									   
							    </tr>
									    <?php } ?>
							    </tbody>
							    <?php } ?>
					    </table>
					    <?php } ?>
			    </div>
Я сделал вертикальную разделительную палочку, мне кажется так органичней. И так же добавил стиль для этой палочки (синий цвет color="#0000FF"), чтобы было более заметно где заканчивается один атрибут и начинается другой.

Так же убрал название груп характеристик

Зы В ИЕ некрасиво получается. МБ ктонить поэкспериментирует и чёнить порекомендует?

  • +1 2
Link to comment
Share on other sites


Код что бы отображалось нормально в IE.

<div class="description">

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

<ul>

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

<tbody>

<?php foreach($attribute_group['attribute'] as $attribute) { ?><?php echo $attribute['name']; ?> - <?php echo $attribute['text']; ?> <font color="#0000FF">|</font>

<?php } ?>

</tbody>

<?php } ?>

</ul>

<?php } ?>

</div>

  • +1 1
Link to comment
Share on other sites

  • 3 weeks later...

Может кому то понадобится сделал vqmod

На версии 1.5.1.3 не работает.

А можно сделать так чтобы при отображении сеткой атрибуты выводились в столбик как в модуле Product Display Settings ?

Link to comment
Share on other sites


  • 2 months later...

Не подскажете как сделать что бы можно еще в это описание вывести наличие. Делаю по анологии - выскакивает ошибка. Посмотрел как это сделано в catalogcontrollerproductproduct.php

там вывод с помощью следующего блока:

   if ($product_info['quantity'] <= 0) {
    $this->data['stock'] = $product_info['stock_status'];
   } elseif ($this->config->get('config_stock_display')) {
    $this->data['stock'] = $product_info['quantity'];
   } else {
    $this->data['stock'] = $this->language->get('text_instock');
   }
Но к catalogcontrollerproductcategory.php так подключить и не удалось. Помогите кто знает
Link to comment
Share on other sites


Не подскажете как сделать что бы можно еще в это описание вывести наличие. Делаю по анологии - выскакивает ошибка. Посмотрел как это сделано в catalogcontrollerproductproduct.php

там вывод с помощью следующего блока:

   if ($product_info['quantity'] <= 0) {
	$this->data['stock'] = $product_info['stock_status'];
   } elseif ($this->config->get('config_stock_display')) {
	$this->data['stock'] = $product_info['quantity'];
   } else {
	$this->data['stock'] = $this->language->get('text_instock');
   }
Но к catalogcontrollerproductcategory.php так подключить и не удалось. Помогите кто знает
https://opencartforum.com/topic/10263-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82-%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0-%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2/ тут описано
Link to comment
Share on other sites

Мне нужно НАЛИЧИЕ, тоесть что бы на странице категории в описании товара можно было вывести: "Есть в наличи", "Предзаказ" и тп. По анологии как это сделано в карточке товара

Link to comment
Share on other sites


Мне нужно НАЛИЧИЕ, тоесть что бы на странице категории в описании товара можно было вывести: "Есть в наличи", "Предзаказ" и тп. По анологии как это сделано в карточке товара

это легко делается...наличие ещё можно вывести на витрину по аналогии...вот ссылка на блог пользователя этого форума:

http://rb.labtodo.com/page/opencart-151-vyvod-informacii-o-nalichii-pod-kartinkoj-v-kataloge-tovarov (не баньте)

  • +1 1
Link to comment
Share on other sites


Сделал вывод текстового блока с атрибутами отдельным модулем для тех, кому нужно более правильное и функциональное решение данной проблемы и не жалко за это заплатить 150 рублей.

Почему лучше это делать модулем я немного описал в этом сообщении.

  • +1 1
Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...
  • 2 weeks later...
  • 2 weeks later...

А как вывести атрибуты в produсt.tpl (v 1.5.4.1)? Что-то никак не получается там сделать.

Конкретно, в блоке <div class="description">, где модель, наличие...:

 <div class="description">
	<?php if ($manufacturer) { ?>
	<span><?php echo $text_manufacturer; ?></span> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a><br />
	<?php } ?>
	<span><?php echo $text_model; ?></span> <?php echo $model; ?><br />
	<span><?php echo $text_reward; ?></span> <?php echo $reward; ?><br />
	<span><?php echo $text_stock; ?></span> <?php echo $stock; ?></div>

Link to comment
Share on other sites


  • 2 months later...

А как вывести атрибуты в produсt.tpl (v 1.5.4.1)? Что-то никак не получается там сделать.

 

Поддерживаю вопрос. 1.5.4.1 не работает. Кто нибудь решил?

  • +1 1
Link to comment
Share on other sites


  • 2 weeks later...

Кто сделает это за деньгу? Писать ценник в личку

 

Я буквально пару постов выше давал ссылку на готовый модуль https://opencartforum.com/files/file/693-tekstovyi-blok-s-atributami/

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.