Перейти к содержимому


highslide - увеличиваем картинку товара в категории при наведении мышкой


  • Вы не можете ответить в тему
Сообщений в теме: 9

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 October 2013 - 08:32 PM

Дополнение меняет штатное "в категории при клике на фотке товара переходим на страницу товара" на
"при наведении мышки на фотку фотка увеличивается, а при клике переходим на..."

1. копируем файлы

hand16.png -> data/[шаблон]/
highslide.js -> data/[шаблон]/

highslide.js это последняя на момент написания дополнения версия библиотеки, неупакованный вариант.
Штатно используемая в ShopCMS библиотека highslide.packed.js довольно старенькая и не имеет нужных функций, но если Вы давным-давно заменили ее на более новую highslide.packed.js, то, конечно, правильнее ее и использовать отредактировав пункт (2).


2. в файлах category.tpl.html, category_search_result.tpl.html, search_simple.tpl.html в начало вставляем


{* BEGIN HighSlide-category-expand-picture *}
<script type="text/javascript" src="data/{$smarty.const.TPL}/highslide.js"></script>
<script type="text/javascript">
hs.graphicsDir = 'data/{$smarty.const.TPL}/';
hs.outlineType = 'rounded';
hs.showCredits = false;
hs.loadingOpacity = 1;
hs.headingEval = 'this.thumb.alt';
hs.wrapperClassName = 'draggable-header';
hs.restoreCursor = 'hand16.png';

hs.lang.restoreTitle = 'Подробнее..';
hs.lang.loadingText = '{$smarty.const.STRING_HS_LOADINGTEXT}';
hs.lang.loadingTitle = '{$smarty.const.STRING_HS_LOADINGTITLE}';
hs.lang.focusTitle = '{$smarty.const.STRING_HS_FOCUSTITLE}';
hs.lang.fullExpandTitle = '{$smarty.const.STRING_HS_FULLEXPANDTITLE}';

{literal}
hs.Expander.prototype.onMouseOut = function (sender) {sender.close()};
hs.Expander.prototype.onAfterExpand = function (sender) {if (!sender.mouseIsOver) sender.close()}
hs.Expander.prototype.onImageClick = function() {window.location.href = this.custom.url};
{/literal}
</script>
{* BEGIN HighSlide-category-expand-picture *}



3. в файле product_brief.tpl.html вместо


<td class="imboxr"><a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_info.productID}.html{else}index.php?productID={$product_info.productID}{/if}"><img src="data/small/{$product_info.picture}" alt="{$product_info.name}" class="tTip" title="{$product_info.title}"></a></td>


вставляем


{* BEGIN HighSlide-category-expand-picture *}
{*<td class="imboxr"><a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_info.productID}.html{else}index.php?productID={$product_info.productID}{/if}"><img src="data/small/{$product_info.picture}" alt="{$product_info.name}" class="tTip" title="{$product_info.title}"></a></td>*}
<td class="imboxr">
<a href="data/medium/{$product_info.thumbnail}" alt="{$product_info.name}" class="highslide" onmouseover="return hs.expand(this, null, {literal}{{/literal}url: '{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_info.productID}.html{else}index.php?productID={$product_info.productID}{/if}'{literal}}{/literal})">
<img src="data/small/{$product_info.picture}" alt="{$product_info.name}">
</a>
</td>
{* END HighSlide-category-expand-picture *}


Это для картинки справа от описания. Для картинки слева аналогичные действия надо сделать для аналогичной строки,
но с class="imboxl"

Если хочется увеличивать small-картинку в категории не до medium-картинки, а до big-картинки, то замените data/medium/{$product_info.thumbnail} на data/big/{$product_info.big_picture}

PS. а, да, чуть не забыл. Как оно работает можно живьем посмотреть в почти любой категории тестового сайта cpu.badisoft.ru, который в подписи.

Прикрепленные файлы

  • Прикрепленный файл  hand16.png   626байт   27 Количество загрузок:
  • Прикрепленный файл  highslide.zip   25.35К   16 Количество загрузок:

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#2 Robby

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 162 сообщений
Репутация: 75
Продвинутый

Отправлено 30 October 2013 - 09:05 PM

Еще хорошо бы добавить отображение картинок в полном описании в виде галлереи с кнопочками следующее предыдущее, чтобы в одном всплывающем окне можно было просмотреть все увеличенные изображения, а не кликать на каждое для его увелечинеия.
  • 0

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 October 2013 - 09:10 PM

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

Несомненно, хорошо. Это ведь всего лишь вопрос оплаты :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 golftuning

    Пользователь

  • Пользователи
  • PipPip
  • 18 сообщений
Репутация: 0
Начинающий

Отправлено 30 October 2013 - 09:11 PM

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

Несомненно, хорошо. Это ведь всего лишь вопрос оплаты :).

Так в чем проблема-то ?
  • 0

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 October 2013 - 09:31 PM

Так в чем проблема-то ?

В Вашем случае я уже ответил на этот вопрос - моей квалификации не хватает, чтобы сделать желаемое не испортив того, что уже сделано. Не надо искать какого-то скрытого смысла в том, что я пишу. Мне действительно не хватает квалификации по ЯваСкрипту. Им я занялся позже всего и знаю хуже всего. Оплатив это дополнение Вы, по сути, частично оплатили мое обучение :).
Я бы с удовольствием заработал денег, сделав Вам желаемое, но, увы, не готов пока.

А у задавшего вопрос врядли стоит такой же шаблон, как у Вас с отдельной самописной библиотекой, связывающей библиотеки gallerific и highslide в одно целое, править которую я пока боюсь.

PS. Да, мне стыдно, что я занимаюсь за деньги тем, что до сих пор не знаю "до последних корней". Всю жизнь было наоборот - сначала я владею вопросом, а только потом его продаю. Но я стараюсь. Честное слово.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#6 golftuning

    Пользователь

  • Пользователи
  • PipPip
  • 18 сообщений
Репутация: 0
Начинающий

Отправлено 31 October 2013 - 08:43 PM

Понял ) Ничего страшного, переживем )
  • 0

#7 Kyborg

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 31 сообщений
Репутация: 1
Начинающий

Отправлено 07 April 2014 - 01:49 PM

Не получается поставить данное дополнение, картинка при наведении прыгает, вроде поставил все как надо.

<table cellspacing="0" cellpadding="0" width="100%">
	    <tr>{if $smarty.const.CONF_DISPLAY_FOTO eq 1}
		  {if $product_info.picture} 
		  <td class="imboxl" width="130"><a href="data/big/{$product_info.big_picture}" alt="{$product_info.name}" class="highslide" onmouseover="return hs.expand(this, null, {literal}{{/literal}url:"{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_info.productID}.html{else}index.php?productID={$product_info.productID}{/if}"{literal}}{/literal})"><img src="data/small/{$product_info.picture}" alt="{$product_info.name}"></a>
    <br/></br>
    <a href="#" onclick="doLoadcpr('do=compare&amp;cpradd={$product_info.productID}'); return false"><a href="#" onclick="doLoadcpr('do=compare&amp;cpradd={$product_info.productID}'); return false"/>{$smarty.const.STRING_SELECT_TO_COMPARISON}</a>
		  <br/></br>
		  <div align="center"><span class="bitrate"><a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_info.productID}.html{else}index.php?productID={$product_info.productID}{/if}">{$smarty.const.STRING_MOREPR}</a></span></div>
		  </td>
		  {else}
		  {if $smarty.const.CONF_DISPLAY_NOPHOTO eq 1}
		  <td class="imboxl" width="130"><a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$product_info.productID}.html{else}index.php?productID={$product_info.productID}{/if}"><img src="data/empty.gif" alt="no photo"/></a></td>
		  {/if}
		  {/if}
		  {/if}
		  <td valign="top" align="left"> {if $product_info.customer_votes > 0 && $smarty.const.CONF_USE_RATING eq 1}
		    <table cellspacing="0" cellpadding="0" width="100%" class="print">
			  <tr>
			    <td valign="middle" align="left"><table cellspacing="0" cellpadding="0">
				    <tr>
					  <td valign="middle" align="left"></td>
					   </tr>
			 </table></td>
		  </tr>
	 </table>

  • 0

#8 yura

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 82 сообщений
Репутация: 0
Начинающий

Отправлено 23 April 2014 - 01:21 PM

badisoft, а возможно, чтобы на увеличенной фотографии правая кнопка мыши работала также, как до установки модуля на маленькой фото. Т.е. чтобы можно было открыть ссылку в новой вкладке или добавить в закладки.
  • 0

#9 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 23 April 2014 - 02:23 PM

Не знаю. Не ставилось такой задачи.
По идее, для этого надо в hs.expand (который срабатывает по mouseonover=) передавать не картинку и урл, по которому надо перейти, а HTML-код, содержащий картинку как ссылку на урл (т.е. что-то типа <a href=...). Ну и еще какие-то приседания, наверняка, понадобятся.

PS. На сайте библиотеки довольно большое количество разнообразных примеров "как сделать этакое". И в форуме тоже (в родном).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#10 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 16 October 2015 - 12:13 AM

а кто-то реализовал при увеличении картинки в полном описании присутствовали ссылки на следующую-предыдущую картинку, чтобы в одном всплывающем окне можно было просмотреть все увеличенные изображения, а не кликать на каждое для его увеличения?
  • 0