Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).

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

Сложность задачи заключается в том, что в настройках категории Virtuemart у нас есть только одно поле описания:

1

Соответственно, вывести его можно только в одном месте категории:

2

Решение

Прибегнем к хитрости.

Шаг 1. Переопределение макета категории в используемый шаблон Joomla.

Копируем файл:

components/com_virtuemart/views/category/tmpl/default.php

в папку:

templates/ИМЯ_ИСПОЛЬЗУЕМОГО_ШАБЛОНА_JOOMLA/html/com_virtuemart/category

Шаг 2. Вносим изменения в скопированный файл.

Находим код:

<div class="category_description">
        <?php echo $this->category->category_description; ?>
</div>

И заменяем на:

<?php
$desc = explode('<hr id="system-readmore" />', $this->category->category_description);
if($desc[1]){ ?>
	<div class="category_description description_top"><?php echo $desc[0]; ?></div>                    
<?php } else { ?>
<div class="category_description">	
	<?php echo $this->category->category_description; ?>	
</div>
<?php } ?>	

Далее, находим в макете место, в которое мы хотим вставить вторую часть описания. Обычно такое место перед самым последним закрывающим </div> на странице.

В это место вставляем следующий код:

<?php if($desc[1]){ ?>
		<div class="category_description description_bottom"><?php echo $desc[1]; ?></div>
<?php } ?>			

Шаг 3. Создаем в настройках категории правильное описание.

После того, как макет отредактирован, описание категории Virtuemart будет формироваться следующим образом:

  • Если в описании категории вставлен разделитель «Подробнее», которым в Joomla отделяется вступительная часть статьи от основной, то текст, расположенный над разделителем, будет показан перед списком товаров в категории, а текст, расположенный под разделителем – под списком.
  • Если в описании категории отсутствует разделитель «Подробнее», текст описания будет показан так, как будто никаких правок не происходило (по умолчанию над товарами категории).

3

Что мы сделали?

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

Результат:

4

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

----------------------------

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

Понравилась статья? Сохраните себе на стену:

Ваша оценка материала очень важна для нас. Просим вас оценить статью или оставить отзыв в комментариях.

Комментарии  

-2 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Виталий8K 30.01.2016 12:15
тов Wedal, хотелось бы увидеть уникальные какие-либо материалы, а не тупо содранные с других ресурсов.
раньше Ваш ресурс славился уникальной и полезной информацией, а за последнее время либо содранное, либо не относящееся вообще к Joomla.
Ответить | Ответить с цитатой | Цитировать
+2 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Wedal 01.02.2016 05:45
Виталий8K, я приветствую критику, но она должна быть объективной. Сообщите, пожалуйста, что и у кого я "тупо содрал"? Что для вас "уникальная и полезная информация" ?
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Владимир11 02.02.2016 00:33
Формат кейсов предполагает краткое изложение решения конкретной проблемы.
И даже если решение где-то уже встречается это не значит, что другие пользователи читали о нем.
Вместо необоснованной критики лучше поддержите автора, чтобы появился дополнительный стимул для написания "уникальной и полезной информации".
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Данил 07.12.2016 19:05
Спасибо за хак! Подскажите как быть если для большинства категорий описание требуется под товарами и для нескольких нужно его разделить на 2 части? Ставить разделитель Подробнее в начале текста у большинства категорий не хочется
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Wedal 08.12.2016 05:24
Данил, начнем с того, что это не хак. Хак - это изменение в системных файлах расширения, которые будут перезаписаны при первом же обновлении. Здесь мы создаем свой, переопределенный в шаблон, макет. Проблем с обновлениями у этого решения нет.

По вашему вопросу:
Если не хочется ставить разделитель в большинстве категорий, то можно сделать обратную логику:
1) Перед товарами проверяете: если $desc[1] существует, то выводите только $desc[0], если нет, то не выводите ничего.
2) После товаров проверяете: если $desc[1] существует, то выводите только $desc[1], если нет, то выводите $this->category->category_description

Таким образом, когда у вас нет разделителя, описание будет полностью выводиться под товарами, а когда разделитель есть, то первая часть - над товарами, а вторая - под товарами.
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).данил 08.12.2016 09:50
Получилось, спасибо! Только почему-то позиция right шаблона смещается в самый низ под футор
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Wedal 09.12.2016 05:02
данил, скорее всего вы забыли где-то поставить закрывающий тег, либо разбили открывающий и закрывающий тег PHP-уловием (if), т.е., к примеру, тег открывается внутри условия, только когда оно выполняется, а закрывается снаружи, независимо от того, выполнилось оно или нет. В этом случае, всякий раз, когда условие не выполнилось, на странице будет лишний закрывающий тег и верстка будет рушиться.
Ответить | Ответить с цитатой | Цитировать
-2 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Виталий8K 01.02.2016 21:48
http://virtuemart3.ru/ustanovka-virtuemart3/sozdanie-i-nastrojka-kategorij-virtuemart3

-например тут, год назад, автором сайта была опубликована инфа, как описание категории разделить и выводить внизу списка товаров....

"уникальная и полезная информация" и для меня, и, думаю для всех, это именно уникальная информация, которой или нет на других источниках или которая не ищется в поисковике в первой же выдачи. полезная - которую реально можно применить на сайтах, скажем, которой многие пользуются или хотели бы воспользоваться.
Ответить | Ответить с цитатой | Цитировать
+2 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Wedal 02.02.2016 06:01
Виталий8K, если бы вы внимательно прочли кейс, то могли бы отметить, что его идея совершенно отличается от описанного в статье по ссылке, которую вы привели. В той статье просто рассказывается о том, как вставить описание категории в какое-либо место макета. Я же пишу про то, как разделить описание категории на две части , не прибегая при этом, к хакам Virtuemart.

Кстати, в комментариях статьи, которую вы привели, есть вопрос как раз по тому, как разделить описание, но ответа на него за последний год так и не появилось. Данный вариант решения возник не на стороннем сайте, а в моей голове, когда это потребовалось реализовать одному из заказчиков. Я погуглил, и, действительно, нашел аналогичные решения на форумах, но разве от этого данный кейс, разжевывающий все по пунктам, стал менее полезным?
Ответить | Ответить с цитатой | Цитировать
-3 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Виталий8K 02.02.2016 13:57
//Я же пишу про то, как разделить описание категории на две части , не прибегая при этом, к хакам Virtuemart.

тогда напишите - создаем модуль html, там вписываем что нужно, привязываем к нужной категории и нужной позиции и усе. но более правильном при этом было бы написать что в принципе можно в любом месте joomla где есть модульная позиция, размещать инфу....
а приводить новую версию старого решения, это "круто", но круто ли... вот в чем сомнения.
мы (подписчики) джем интересную инфу, познавательную инфу, познавательную инфу!
а при таком раскладе ждем что-то больше года, и все не дожидаемся...
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Wedal 03.02.2016 04:17
Виталий8K, не советуйте людям плохие решения. Так:
Цитата:
создаем модуль html, там вписываем что нужно, привязываем к нужной категории и нужной позиции и усе
делать нельзя! Да, оно будет работать. Но если категорий товаров у вас больше чем 5, то таким способом можно создать себе очень много проблем.

Насчет "познавательной инфы"... Вы так пишите, как будто я чем-то вам обязан. Проект некоммерческий. Держится только за счет энтузиазма. Денег, которые приносит реклама, едва хватает на поддержку сайта в Интернете. Я тоже человек и мне нужно содержать себя и свою семью. Я пишу то, что успеваю и тогда, когда успеваю. Подготовка одной большой статьи может требовать до нескольких дней времени, которое не всегда есть в наличии.
Ответить | Ответить с цитатой | Цитировать
-3 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Виталий8K 03.02.2016 11:02
//Но если категорий товаров у вас больше чем 5, то таким способом можно создать себе очень много проблем.

интересно, каких проблем? обычно, описание товарных категорий нужно для сео, т.к. пипл смотрят товары и редко читают описания. тем более длинные описания в конце категорий. да, можно описание поставить/перенести вниз, можно вообще им не заморачиваться. т.к. магазины по сео, продвигаются не категориями (это почти не целеесообразно и слишком хлопотно), а товарами и соответственно более актуально, это описание товаров и шаманство там! скажем описание товаров с помощью шорткодов и др инструментов, сильно облегчающих жизнь или создание полноценных лендингов при минимуме усилий - крайне полезно и актуально всем! идею новой статьи я предложил :-) :roll:

//Проект некоммерческий. Держится только за счет энтузиазма.

мы, подписчики, в курсе ;-)
но мы, подписчики, требуем новости и интересности! :-) :P

//Денег, которые приносит реклама, едва хватает на поддержку сайта в Интернете.

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

//Я тоже человек и мне нужно содержать себя и свою семью.

не в обиду, но ~ 500р. вполне можно выделить на карманные расходы на этот проект (сайт) в месяц.
в эти ~500р. я подразумеваю vps.
и, вполне можно, если Вы занимаетесь сайтами, раз в месяцок, выкладывать по статейке :roll:
Ответить | Ответить с цитатой | Цитировать
+1 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Владимир11 03.02.2016 10:13
На странице http://wedal.ru/pages/help.html есть номера кошельков, которые помогут ускорить появление познавательной инфы.
Ответить | Ответить с цитатой | Цитировать
+2 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).spro1 02.02.2016 14:10
Полезная статья, очень даже может пригодится! ждем новые интересные статьи от вас!
Ответить | Ответить с цитатой | Цитировать
+1 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Константин 28.08.2016 14:07
Спасибо. Все получилось.
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Андрей 31.01.2017 03:48
Огромное спасибо за статью. Очень полезное, а главное, простое решение!
Так же хочу высказать справедливое возмущение в адрес некоторых горе-комментаторов. Какие бы добрые дела человек не делал обязательно находятся те кому это не по душе. Вот из-за таких задротов опускаются руки п ропадает желание что-либо делать во благо. Как говорила старуха Шепокляк: "Кто людям помогает тот время тартит зря"
Вам, товарищи, написали, разжевали, в рот положили, и, когда Вы и с этим умудрились накосячить еще и путем, прям, телепатии, сказали где что вы криво накодили. А вам нэ такэ... у-у-у, блин, аж зло берет.
Автору ще раз огромное спасибо и РЕСПЕКТ!, сорри за лирическое отступление, но промолчать не смог
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Андрей 02.02.2017 05:13
Доброго времени суток Виталий, все работает отлично, но у меня вылез небольшой ньюанс. Он не связан с этим решением.. Суть проблемы в том что описание категории выводится на главной странице, витрине товаров. Скорее всего это задумка авторов шаблона, но, учитывая длину описания категории меня оно не устраивает. Если есть возможность подскажте пожалуйста как на главной странице Virtuemart вывести описание категорий до "подробнее", или вообще скрыть описание категорий. Заранее огромное спасибо
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Wedal 03.02.2017 05:32
Андрей, это зависит от того, что у вас является главной страницей. Пункт меню какого типа является Главной?
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Андрей 06.02.2017 05:24
Здравствуйте. Я немного неправильно выразился. Главная страница сайта у меня - избранные материалы + прикручено куча всяких модулей, слайдеров и прочего мельтешащего и ипривлекаюзего внимание. Категории товаров там выводяться в виде списка, модулем. Там все работает нормально.
Описания категории у меня выводяться на главной странице Wirtuemart!!, которой присвоен пункт меню МАГАЗИН. Выводятся, я так понял соглдасно задумке авторов шаблона (OT Keila). Временное решение я нашел на просторах интернета:
редактировал файл templates/ваш_шаблон/html/com_virtuemart/sublayouts/categories.php
Блок category_description, вместо того что там было, вставил следующий код

category_description, 0, 200 );
echo strip_tags($cat_desc); ?>

Вместо 200 ставлю нолик, и описания нету. Но не уверен что это рещение мне подходит лучшим образом. Все-таки хотелось бы знать как отключить полностью вывод описания категорий в витрине товаров. Скрыть описание стилями не вариант, потому что более 30ти категорий, и на каждую опсиание 3000-5000 знаков. Да и ключевики надо распределить по страницам а не свалить все в одну кучу... Очень буду благодарен за ответ) и спасибо огромное за Вашу отзывчивость и помощь!
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Wedal 06.02.2017 05:58
Андрей, я все никак не могу понять, что вы хотите получить. Скрыть описание только на главной странице Virtuemart? Тогда переходите в админке в Virtuemart -> Магазин -> Магазин и удаляете там описание.
Если нужно скрыть описание во всех категориях, то переопределяете макет категории в шаблон Joomla, находите в нем переменную описания категории и удаляете ее из макета.
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Андрей 07.02.2017 01:31
Доброго времени суток. Да, хочу скрыть описания категорий только на главной странице Virtuemart. Просто не знал что это есть в настройках. Огромное спасибо за подсказку!
Ответить | Ответить с цитатой | Цитировать
0 # Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаровРинат 10.05.2017 19:23
Крутотенное решение!!!! Самое главное простое. Спасибо Тебе огромное, Автор.
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Provato 06.06.2017 15:23
Почему-то не получается разделить описание. Обе правки внес, но весть текст так и остается в верхней части страницы.
VM 3.2.0
Ответить | Ответить с цитатой | Цитировать
0 # RE: Как разделить описание в категории Virtuemart 2-3 на ДО и ПОСЛЕ товаров (Кейс #6).Provato 06.06.2017 16:19
Цитирую Provato:
Почему-то не получается разделить описание. Обе правки внес, но весть текст так и остается в верхней части страницы.
VM 3.2.0

Все заработало! Спасибо Автору.
Немного не разобрался - в редакторе описания категорий VM не оказалось кнопки "Подробнее" (ошибочно воспользовался кнопкой "Разрыв страницы"), хотя в редакторе материалов она есть.
Скопировал код разделителя "Подробнее" из текста материала, вставил в текст описания категории:
Ответить | Ответить с цитатой | Цитировать

Добавить комментарий

Для отправки комментария введите код с картинки:
Защитный код
Обновить

Вверх