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

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


ingenerks
 Share

Recommended Posts

Я буквально пару постов выше давал ссылку на готовый модуль http://opencartforum...k-s-atributami/

Совместимость:

- OpenCart v1.5.4.1

- OCStore v1.5.3.1

- OCStore v1.5.1.3

 

На OCStore v1.5.4.1 пойдет?

Да

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>

 

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

post-30305-0-15664800-1366813097_thumb.png

post-30305-0-30942100-1366813104_thumb.png

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>

 

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

Link to comment
Share on other sites

Нужно так же в скрипт который при переключении отвечает за вывод сетки добавить этот блок!

 

Не совсем так. Т.е. добавлять туда не надо, в версии 1.5.4.1 немного другая конструкция - добавляется 1 раз, в начале.

Вобщем, кто не желает заморачиваться правкой кода, есть модуль. Ну а тем кто в теме и вносит изменения - все достаточно просто.

 

Вышеприведенный код - вставляем как указано, только вместо description лучше указать какойнибудь другой класс, чтоб его можно было модифицировать с помошью CSS

 

<div class="description">
...
</div>
 

 

Я назвал class="attributes". Ниже в вдух местах, в файле category.tpl ищем где выводится description и добавляем ниже наши аттрибуты. Это линейный (блочный) вид:

 

            html += '  <div class="description">' + $(element).find('.description').html() + '</div>';
            html += '  <div class="attributes">' + $(element).find('.attributes').html() + '</div>';
 

 

Тоже самое надо обязательно проделать и на вид "Сетка". Тоже самое, один в один. Но так как сетка имеет сокращенный вид, и описание даже убирается, то надо прописать в CSS рядом с этим еще один класс для attributes:

 

.product-grid .description, 
.product-grid .attributes {
    display: none;
} 

 

 

Еще один вариант, проще.

 

1. Проделываем те же действия что и в посте #7 на предыдущей странице с файлом catalog\controller\product\category.php

 

2. Ищем в catalog\view\theme\default\template\product\category.tpl

 

<div class="description"><?php echo $product['description']; ?></div>
 

И добавляем в внутрь DIV. Я удалил из кода выше <div class="description">, так как в данном случае уже вносим в этот DIV (т.е. можно не оборачивать аттрибуты в свой отдельный DIV и назначать стили, возьмутся из готового class="description")

      <div class="description"><?php echo $product['description']; ?>
        
            <?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']; ?></td>
                    <td><?php echo $attribute['text']; ?></td>
                </tr>
                    <?php } ?>
                </tbody>
                <?php } ?>
            </table>
            <?php } ?>
        
      </div>
 

 

В общем-то, идея достаточно проста и должна быть понятна. Все модификации со стилями - дело рук уже каждого )

Link to comment
Share on other sites


  • 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>

а как сделать так чтобы отображались не все группы а только 1 например "Основные характеристики"

Link to comment
Share on other sites


  • 1 month later...
  • 2 months later...

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

 

Хорошая работа. Но должен заметить, что <font> - это моветон, даже может навредить странице с точки зрения seo, тем паче в большой концентрации.

Link to comment
Share on other sites


из-за модуля filterpro

атрибуты в категориях появляются, а потом исчезают.

в файле filterpro есть такие строки.

по идее по аналогии можно изменить и вставить сюда атрибуты.

Пожалуйста, помогите сделать это!

$description = function_exists('utf8_substr') ? utf8_substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 218) . '..' :
substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 218) . '..';
Link to comment
Share on other sites


добавила строку 

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

в вывод $result[] = array(

кажись помогло

 

так нельзя. перестал работать filterpro

Link to comment
Share on other sites


добавила строку 

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

в вывод $result[] = array(

кажись помогло

 

так нельзя. перестал работать filterpro

 

можно добавить под

$description = function_exists('utf8_substr') ? utf8_substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 218) . '..' :
substr(strip_tags(html_entity_decode($product['description'], ENT_QUOTES, 'UTF-8')), 0, 218) . '..';

строку

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

а потом в filterpro_proucts.tpl уже вывести все, что нужно так же, как описано в теме

и не забыть в category.tpl это продублировать, чтобы при первой загрузке фильтра еще без выбора атрибутов тоже был вывод

  • +1 1
Link to comment
Share on other sites

спасибо за подсказку, но выдает ошибку Parse error: syntax error, unexpected T_DOUBLE_ARROW in 

 

и еще такого файла нет  filterpro_proucts.tpl 

А откуда ему взяться, если вы фильтр, по всей видимости, не покупали, а скачали на варезнике?)

Link to comment
Share on other sites

я перед покупкой мода всегда стараюсь его протестировать на сайте, если возможность. ;)  со многими так поступала, а потом покупала оригинал.

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

Link to comment
Share on other sites


я перед покупкой мода всегда стараюсь его протестировать на сайте, если возможность. ;)  со многими так поступала, а потом покупала оригинал.

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

вот как купите его, увидите этот файл, в который достаточно скопировать код вывода товаров из category.tpl и все будет прекрасно работать

та версия, что у вас сейчас, уже морально устарела и с ней вас ждут лишь мучения, уныние и депрессия :)

Link to comment
Share on other sites

если новая версия встанет и с этим модулем 

OCU Waitlist - уведомление на email при поступлении товара

то с огромным удовольствием! Вы не пробовали?

Link to comment
Share on other sites


если новая версия встанет и с этим модулем 

OCU Waitlist - уведомление на email при поступлении товара

то с огромным удовольствием! Вы не пробовали?

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

если все равно боитесь проблем с совместимостью, то вам нужен вот такой фильтр https://opencartforum.com/files/file/1452-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-vsfilter-full-%D0%B4%D0%BB%D1%8F-ocstore/

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

  • +1 1
Link to comment
Share on other sites

  • 1 month later...
  • 4 weeks later...

У меня два вопроса, буду вам признателен за помощь:

1. Как можно вывести в описание товара в категории: (а) часть текста с описания товара и (б) атрибуты товара через запятую?

2. Как можно вывести в описание товара на странице товара( модель и т.д) атрибуты?

 

спасибо

Link to comment
Share on other sites


  • 2 weeks later...

Нужно так же в скрипт который при переключении отвечает за вывод сетки добавить этот блок!

 

Люди добрые! Ткните меня носом пожалста в этот скрипт! Никак не могу разобраться  :(

В сетке выводит какой-то мизер текста и изменение в цифре новодобавленного description'a никакого эффекта не дает..

 

 

И, быть может, знающие люди подскажут, как сделать так, что бы эти атрибуты (которые выводятся вместо короткого описания в категориях) выводились без учета html?

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.