Спасибо большое за модуль, очень полезный.
ставил вручную с правкой кода на Joomla 1.5.15 и VM 1.1.4. качал по ссылке из первого сообщения: comparison.j15(1.03.10).zip(74.34 Кб)
но не получается заставить его работать корректно. возникла куча вопросов
1. во время добавления товар в сравнении срабатывает перетекание цвета. так вот срабатывает оно как-то странно. т.е. перетекание останавливается каждый раз на произвольном цвете. иногда на цвете фона и смотрится хорошо, иногда темном цвете шаблона и смотрится более-менее, а если быстро добавить 2-3 элемента для сравнения, то останавливается на светлом цвете шаблона. в ie8 перетекание цвета не работает, а в Firefox 3.6.3 - работает.
1.1 можно это пофиксить?
1.2 что и где в коде прописать, чтобы ускорить это перетикание цвета и чтобы оно останавливалось на цвете стандартного фона шаблона?
Решение:чтобы ускорить процесс перетекания цвета надо в файле vm_comparison.js в строчках
200 строка
var fxc = new Fx.Style(carts[i], 'color', {duration: 1000});
201 строка
var fxbgc = new Fx.Style(carts[i], 'background-color', {duration: 1000});
206 строка
setTimeout( "carts[" + i + "].setStyle( 'background-color', 'transparent' )", 1000 );
заменить "1000" на "500" или "100".
1.3 как вообще убрать это перетикание?
Решение:чтобы вообще убрать перетекание цвета надо в файле vm_comparison.js закоментировать( поставить "//" в начале строки) следующие строчки
189 строка
bgcolor = carts[i].getStyle( 'background-color' );
196 строка
bgcolor = parent.getStyle( 'background-color' );
2. у меня модуль расположен на позиции left. если перетекание фона в модуле остановилось на любом другом цвете, кроме стандартного цвета фона, то нижние края кнопок "сравнить" и "очистить" выглядят вылезшими за края фона.
2.1 как увеличить размер фона, в котором перетекает цвет?
3. если добавлять в сравнение с карточки элемента(товара), т.е. с flypage, то вместо кнопок "сравнить" и "очистить" появляются надписи "сравнить выбранные товары" и "очистить список", а вместо кнопки с красным крестом буква "Х". похоже что картинки в модуле не отображаются. а если добавлять из browse, то всё нормально. получается так: добавляем из browse пару элементов для сравниния, картинки в модуле видны, переходим на flypage третьего товара, картинки все еще видны, добавляем тритий товар из flypage и картинки исчезают. далее нажимаем кнопку сравнить, появляется таблица сравнения и картинки на кнопках в модуле снова видны. ситуация такая и в IE8 и в Firefox 3.6.3, причем в IE8 просто знаки не подгрузившихся картинок, вместо текста описания кнопок. изредка картинки кнопок не видно и в browse, пока не понял закономерности. как фиксить? что править?
проблема возникает при работе с sh404sef
Решение: при клике на магазин/каталог смотрим что написано в адресной строке. Например:
http://mysite.com/myshop.html.
создаем в корне папку myshop, в ней папку images. а в папку images добавить папку compare с картиками(идет в архиве из первого поста) в папку.
узнать адрес где должны лежать картинки можно кликнув в Firefox правой кнопкой на место, где должна быть картинка и выбрать "копировать ссылку на изображение". затем вставляем эту ссылку в текстовый редактор и видим где еще должны лежать картинки модуля.
5. если очистить кэш браузера и перезагрузить browse страничку или flypage страничку, то чекбокс "сравнить" не появляется. еще еще раз перезагрузить страничку, то появляется. делаю так: очищаю кэш браузера, закрываю браузер(ff 3.6.3 или IE8), открываю браузер, открываю свой сайт, открываю страничку browse и не вижу чекбоксов. далее если перезагрузить страчку browse, то увижу чекбоксы; если перейду на flypage, то вижу чекбокс и если после flypage перейти на browse, то тоже вижу чекбоксы. таким образом при первом заходе пользователь не видит функционала модуля сравнения. совет
wildweasel не помог. бага модуля или у меня что-то крутить надо? как исправить?
Решение: в файле administrator/components/com_virtuemart/html/shop.browse.php
Код(примерно 464 строка):
//-------------------------сравнение-----------------------------------------
$session =&JFactory::getSession();
$vmCompareParam = $session->get('vmCompareParam');
if (isset($vmCompareParam) && isset($vmCompareParam['show_checkboxes'])&& $vmCompareParam['show_checkboxes'] && $allow_compare == "Y"){
$dbt = new ps_DB;
$q = "SELECT product_type_id FROM #__{vm}_product_product_type_xref WHERE product_id = '".$db_browse->f("product_id")."'";
$dbt->SetQuery($q);
$product_type_id = $dbt->loadResult();
if( !empty($product_type_id) ) {
$tpl->set('product_type_id',$product_type_id);
$tpl->set( 'product_id', $db_browse->f('product_id') );
$products[$i]['form_addtocomparison'] = $tpl->fetch( 'browse/includes/addtocomparison_form.tpl.php' );
}
else {
$products[$i]['form_addtocomparison'] = '';
}
}
else $products[$i]['form_addtocomparison'] = '';
//----------------- конец сравнения
Заменить на:
//-------------------------сравнение-----------------------------------------
$session =&JFactory::getSession();
$vmCompareParam = $session->get('vmCompareParam');
// if (isset($vmCompareParam) && isset($vmCompareParam['show_checkboxes'])&& $vmCompareParam['show_checkboxes'] && $allow_compare == "Y"){
$dbt = new ps_DB;
$q = "SELECT product_type_id FROM #__{vm}_product_product_type_xref WHERE product_id = '".$db_browse->f("product_id")."'";
$dbt->SetQuery($q);
$product_type_id = $dbt->loadResult();
if( !empty($product_type_id) ) {
$tpl->set('product_type_id',$product_type_id);
$tpl->set( 'product_id', $db_browse->f('product_id') );
$products[$i]['form_addtocomparison'] = $tpl->fetch( 'browse/includes/addtocomparison_form.tpl.php' );
}
else {
$products[$i]['form_addtocomparison'] = '';
}
// }
// else $products[$i]['form_addtocomparison'] = '';
//----------------- конец сравнения
Таким образом сравнение будет происходить всегда, независимо от того поставлена галка в админке или нет.
6. в свойствах категории нижнее свойство все равно "? ?".
Решение: в файле modules/mod_virtuemart_comparison/vm_comparison/vm_comparison.js
надо сменить кодировку на UTF8
7. у меня стоит sh404SEF. в таблице сравнения ссылка на товар в виде SEF, а в модуле сравнения(если отметить галку "выводить ссылку на флаер") ссылка не SEF. можно ли сделать так, чтобы SEF ссылка была еще и в самом модуле?
Решение: обновил конфиг до J 1.5.20 + VM 1.1.5 + sh404SEF 2.0.3.545 и ссылки на товары в самом модуле стали в нормальном SEF виде
8. на вопрос "Есть возможность чтобы Модуль сравнения появлялся только тогда когда происходит сравнение товаров? Тоесть не оставался в качестве полоски ?" Вы писали "ЕСТЬ. отключи в настройках модуля стандартное отображение заголовка, которое идёт во всех модулях. и подбери метод отображения заголовка в моих настройках модуля". Я все так и сделал, убрал "Show Title (отображение заголовка)" в настройках модуля, перепробовал все возможные опции "Стиль выводимого заголовка", но полоска все равно осталась.
9. Опция "Расположение товаров" никак не влияет на отображаемый результат в таблице сравнения.
10. Опция "Товары в auto scroll диве" никак не влияет на отображаемый результат в таблице сравнения. что и при каких условиях должно произойти при установке в "да"?
11. поясните пожалуйста значение опции "Стандартный Snapshot". что имеется ввиду под словом snapshot?
12. можно ли сделать опцию "выводить сравнение в отдельном окне"? дело в том, что для шаблона с фиксированной шириной больше двух товаров сравнить не получается. как вариант - сделать горизонтальную прокрутку таблицы сравнения? а в идеале иметь обе эти опции.
13. "сайт с примером работы сравнения. bear.fartis.com.ua" - не фурычит.
14. как выглядит кусок кода на php следующего содержания? если артикул начинается на С(третья буква англ алфавита), то в окне сравнения не выводить цену и "добавить в корзину"? и куда этот кусок кода вставить?
Решение:чтобы для товаров, чей артикул начинается на "C", не выводить цену и кнопку "купить(добавить в корзину)" надо в файле shop.compare.php строки кода(начинаются примерно на 118 строке)
$html .= '<th class="comparison" style="width:'.$column_width.'%"><center>
<a href="'.$url.'" title="Перейти на карточку товара."><div>'.$product['product_name'].'</div><div>'.ps_product::image_tag( $product['product_thumb_image'], "alt=\"".$product['product_name']."\"").'</div></a>
<div>'.$ps_product->show_price( $product['product_id'] ).'</div><div>'.$addtocart.'</div>
</center></th>
заменить на
// для товаров начинающихся на "С" не выводить цену и кнопку "добавить в карзину"
if (substr($product['product_sku'],0,1)=="C") {
$html .= '<th class="comparison" style="width:'.$column_width.'%"><center>
<a href="'.$url.'" title="Перейти на карточку товара."><div>'.$product['product_name'].'</div><div>'.ps_product::image_tag( $product['product_thumb_image'], "alt=\"".$product['product_name']."\"").'</div></a>
</center></th>';
}
else {
$html .= '<th class="comparison" style="width:'.$column_width.'%"><center>
<a href="'.$url.'" title="Перейти на карточку товара."><div>'.$product['product_name'].'</div><div>'.ps_product::image_tag( $product['product_thumb_image'], "alt=\"".$product['product_name']."\"").'</div></a>
<div>'.$ps_product->show_price( $product['product_id'] ).'</div><div>'.$addtocart.'</div>
</center></th>';
};
можно, конечно покороче написать, но так читабельней.
такая модификация может пригодится, если VirtueMart используется как каталог.
15. в модуле сравнения пишется
<заголовок>
<категория товара>
какой стиль используется для <категория товара>? где он назначается? и как его поменять?
Решение:чтобы изменить цвет фона для строки <тип товара> в самом модуле надо править 89 строчку в файле shop.comparison_short.php, которая выглядит так:
echo '<div style="margin: 2px; padding: 1px; background: #cfcfcf; border: 1px #a9a9a9 solid;"><strong><center> «'.$type['product_type_name'].'»</strong></center></div>';
чтобы фон был стандартным заменить вышеуказанную строчку на
echo '<div style="margin: 2px; padding: 1px; "><strong><center> «'.$type['product_type_name'].'»</strong></center></div>';
16. какой стиль используется для вывода таблицы сравнения? где он назначается? и как его поменять?
Решение: в файле shop.compare.php в 76 строке описывается таблица, цвет фона таблицы можно поменять в этой строке.
17. в самой таблице сравнения параметры выглядят как ссылки. для чего? логичнее сделать просто жирный подчеркнутый шрифт, но это не суть. когда наводишь курсор на этот параметр, то всплывает надпись(tooltip) c "артефактами" и выглядит так: "Описание параметра «Wi-Fi»::Возможность подключение беспроводной сети". двойное двоеточие заменить на одинарное и убрать « ».
18. после появления окна сравнения товаров кнопки “сравнить”, “в каталог” и [X] не работают.
Решение: в файле components/com_virtuemart/virtuemart.php
Код(примерно 151 строка):
// IE6 PNG transparency fix
$vm_mainframe->addScript( "$mosConfig_live_site/components/$option/js/sleight.js" );
Заменить на:
// IE6 PNG transparency fix
// $vm_mainframe->addScript( "$mosConfig_live_site/components/$option/js/sleight.js" );
$vm_mainframe->addScript( $mosConfig_live_site .'/components/com_virtuemart/fetchscript.php?gzip=0&subdir[0]=/themes/default&file[0]=theme.js&subdir[1]=/js&file[1]=sleight.js&subdir[2]=/js/mootools&file[2]=mootools-release-1.11.js&subdir[3]=/js/mootools&file[3]=mooPrompt.js' );
заранее спасибо за ответы.
ЗЫ: готов бетатестить Ваш модуль до победного