0 Пользователей и 1 Гость просматривают эту тему.
  • 375 Ответов
  • 60725 Просмотров
*

alpha-helix

  • Захожу иногда
  • 75
  • 1 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #90 : 09.01.2011, 13:36:51 »
Прикрутил галку для фильтра товаров в наличии.
в шаблоне default.php модуля добавил галку
Код
<label><input type="checkbox" name="show_in_stock" value="1" />Показывать товары в наличии</label>

В хелпере к запросу добавил:
Код
if ($show_in_stock == 1) 
$q .= "AND #__{vm}_product.product_in_stock>0 ";

В vm_ext_search_pro.php код, отлавливающий состояние галки:
Код
$show_in_stock = vmGet($_REQUEST, 'show_in_stock', 0);

А как сделать, чтобы компонент учитывал галку динамически и "Подходящих товаров:  " тоже менялось в зависимости от галки?
*

tom1501

  • Новичок
  • 22
  • 1 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #91 : 10.01.2011, 22:19:45 »
файл vm_ext_search_helper.php. строка 247. чтобы результат открывался в новой вкладке:

Код
        if (@$conf['show_product'] == "ajax")
            $product_link = "onclick=\" var link ='" . $product_link . "';  ".$prefix."product( link )";
        elseif (@$conf['show_product'] == "fancybox")
            $product_link = 'class="fancybox" href="' . $product_link;
        else
            $product_link = 'target="_blank" href="' . $product_link;
*

mystique

  • Захожу иногда
  • 169
  • 4 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #92 : 17.01.2011, 00:36:49 »
А можно как-нибудь результаты выборки по данному компоненту выводить в несколько столбцов?
*

Wharfadale

  • Захожу иногда
  • 193
  • 24 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #93 : 17.01.2011, 06:36:38 »

Код: css
.result {float:left;width:49%}
в style.css модуля
« Последнее редактирование: 29.01.2013, 14:54:40 от ELLE »
*

SolopoV

  • Давно я тут
  • 503
  • 14 / 0
  • зеленею...
Re: Фильтр для VirtueMart (must have)
« Ответ #94 : 21.01.2011, 20:01:55 »
Решил вопрос по выводу обычной цены и цены со скидкой. Коряво правда, поскольку не программист:

в файле result.php после
Код
<!--product price-->
добавил
Код
<?php if ( $product_price_before > $final_price ) : ?>
<span class="product-Old-Price">Цена: <?php echo $product_price_before; ?></span>
<?php endif; ?>
и в файле vm_ext_search_helper.php добавил строку:
Код
$fields .= "(#__{vm}_product_price.product_price) AS product_price_before,";

Поскольку у меня ps_product.php очень сильно "поправленный" и цены для всех групп показываются одинаковые, то код в файле vm_ext_search_helper.php для нормального ps_product.php, наверное, будет следующий:

Код
$fields .= "(#__{vm}_product_price.product_price+((SELECT #__{vm}_tax_rate.tax_rate FROM #__{vm}_tax_rate WHERE #__{vm}_tax_rate.tax_rate_id=#__{vm}_product.product_tax_id)*#__{vm}_product_price.product_price)) AS product_price_before,";

В общем колдовал с бубном и чего то родилось. Ну я к тому это все выложил, что б знающие люди доделали по человечески.
*

silverbeam

  • Новичок
  • 14
  • 0 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #95 : 14.03.2011, 10:43:54 »
а как сделать, чтобы изображения не растягивались?  (выводились того размера, что в магазине)
*

Arkadiy

  • Гуру
  • 5247
  • 457 / 1
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #96 : 14.03.2011, 11:02:20 »
\components\com_vm_ext_search_pro\files\vm_ext_search_helper.php строку
Код
$img = '<img align="left" src="' . $product_thumb_image . '" ' . $t_width . ' ' . $t_height . ' />';
поменять на
Код
$img = '<img align="left" src="' . $product_thumb_image . '"  />';
*

werewolfGSM

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #97 : 21.03.2011, 17:22:15 »
Здравствуйте!  !
Подскажите пожалуйста, какую ссылку нужно вставить, чтобы при кликании на фото товара, оно просто увеличивалось до оригинального размера, без отображения информации о товаре.
Я так понял править нужно в файле result.php здесь:
<?php if ($show_image == 1): ?>
           <div class="s_img">
            <a title="<?php echo $db->f("product_name"). '" ' . $product_link; ?>" > (какую ссылку вставить сюда, чтобы показывало оригинал фото)
            <?php print $img; ?>
        </a>
           </div>
        <?php endif; ?>

Заранее благодарю!

Вот мой код. Единственное не помню, $product_full_image был изначально в компоненте или я его вытягивал из БД дополнительно.
Код
<div class="browseProductImageContainer">
    <a href="<?php echo $product_full_image ?>" rel='lightbox[product<?echo $product_id ?>]' title="Купить <?php echo $product_name ?>">
            <?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="Купить '.$product_name.'" alt="Купить '.$product_name .'"' )?>
            </a>
        </div>
*

Mishani

  • Захожу иногда
  • 79
  • 1 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #98 : 22.03.2011, 12:03:42 »
Вот мой код. Единственное не помню, $product_full_image был изначально в компоненте или я его вытягивал из БД дополнительно.
Код
<div class="browseProductImageContainer">
    <a href="<?php echo $product_full_image ?>" rel='lightbox[product<?echo $product_id ?>]' title="Купить <?php echo $product_name ?>">
            <?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="Купить '.$product_name.'" alt="Купить '.$product_name .'"' )?>
            </a>
         </div>

Спасибо за подсказку, наверное все таки $product_full_image нет в компоненте, подскажи как ты его вытянул из БД? При кликании на фото происходит переход на главную страницу.
*

werewolfGSM

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #99 : 22.03.2011, 12:24:42 »
Спасибо за подсказку, наверное все таки $product_full_image нет в компоненте, подскажи как ты его вытянул из БД? При кликании на фото происходит переход на главную страницу.

Да, действительно дописывал код. Правим файл vm_ext_search_helper.php в папке с компонентом.
Ищем
Код
$fields .= "#__{vm}_product.product_thumb_image, #__{vm}_product.product_name, ";
и правим ее так:
Код
$fields .= "#__{vm}_product.product_thumb_image, #__{vm}_product.product_full_image, #__{vm}_product.product_name, ";

Далее ищем
Код
if ($db->f("product_thumb_image")) {

и выше него вставляем
Код
if ($db->f("product_full_image")) {
            $product_full_image = $db->f("product_full_image");
        } else {
        $product_full_image = 0;
        }
       
    if ($product_full_image) {
            if (substr($product_full_image, 0, 4)!= "http") {               
               if (file_exists(IMAGEPATH . "product/" . $product_full_image)) {
                 $product_full_image = IMAGEURL . "product/" . $product_full_image;
               } else {
                 $product_full_image = VM_THEMEURL . 'images/' . NO_IMAGE;
               }               
            }
        }
        else {
            $product_full_image = VM_THEMEURL . 'images/' . NO_IMAGE;
        }
И незабываем подключить лайтбокс

P.S. не забываем предварительно делать бекап изменяемых файлов.
« Последнее редактирование: 22.03.2011, 12:30:08 от werewolfGSM »
*

Lann

  • Захожу иногда
  • 117
  • 5 / 1
  • Палисандровый генерал
Re: Фильтр для VirtueMart (must have)
« Ответ #100 : 24.03.2011, 16:51:12 »
Разобрался. Кому интересно:

Код
При выводе чекбоксами выводится текущая категория и ее дочерние первого уровня. Иначе чекбоксов будет слишком много.

тут unisearch.php

Убрать строки
я закоментил
$q .= "WHERE (#__{vm}_category_xref.category_parent_id='$cid[0]' OR #__{vm}_category_xref.category_child_id='$cid[0]') ";
$q .= "AND #__{vm}_category.category_id=#__{vm}_category_xref.category_child_id ";

и добавить
$q .= "WHERE #__{vm}_category.category_id=#__{vm}_category_xref.category_child_id ";


Arkadiy, как заставить работать JHTML::_('behavior.modal'); в результатах сортировки?

Я показываю большую картинку в browse при помощи этого, то же самое (т.е. через <a class="modal">) делаю в рез-татах сортировки но там скрипт не срабатывает. Картинка открывается просто в новом окне.

Спасибо!
*

OLDBOY

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #101 : 29.03.2011, 01:48:00 »
Кстати если при включенном AJAX добавлении товара в корзину, в result.php, код

Код
<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart<?php echo $db->f("product_id")?>" id="addtocart<?php echo $db->f("product_id")?>" class="addtocart_form" onsubmit="<?php echo $prefix; ?>AddToCart( this.id );return false;">

заменить на

Код
<form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart<?php echo $db->f("product_id")?>" id="addtocart<?php echo $db->f("product_id")?>" class="addtocart_form" <?php echo 'onsubmit="handleAddToCart( this.id );return false;"'; ?>>

то корзина коректно обновляется


после этого в корзину добовляеться,но почемуто сама корзина не обновляеться,приходиться страницу обновлять что увидеть что добавилось
*

streamnet

  • Новичок
  • 1
  • 0 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #102 : 01.06.2011, 19:13:27 »
А в режиме каталога (без цен и корзины) модуль будет корректно работать или надо допиливать?
*

Arkadiy

  • Гуру
  • 5247
  • 457 / 1
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #103 : 01.06.2011, 19:21:58 »
Без цен не будет, но можно обойти, выставив цену 0.





« Последнее редактирование: 29.01.2013, 20:50:22 от ELLE »
*

Wharfadale

  • Захожу иногда
  • 193
  • 24 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #104 : 03.06.2011, 14:45:09 »
Фильтр работает и пишет "ничего не найдено", а это может быть из-за:
-неприсвоенных цен
-неприсвоенных типов/параметров/значений
-производителя также лучше присвоить (хотя тут я не помню точно, обязательно или нет)

зы: речь о том, который на второстепенных страницах
*

mavsan

  • Новичок
  • 4
  • 0 / 1
Re: Фильтр для VirtueMart (must have)
« Ответ #105 : 21.06.2011, 16:59:25 »
Если кому надо, чтобы всплывающая подсказка к типу товара отображалась с нормальным форматированием, то надо проделать следующие манипуляции:
в файл mod_vm_universal_search_pro.php где-нибудь после
Код
global $mainframe, $mosConfig_live_site;
добавить
Код
$header = "<script src=\"/components/com_virtuemart/fetchscript.php?gzip=0&amp;subdir[0]=/js&amp;file[0]=wz_tooltip.js\" type=\"text/javascript\"></script>";
$mainframe->addCustomHeadTag($header);
затем в файле unisearch.php проделать следующее:
в конце файла найти функцию
Код
public static function tooltip($tooltip = '', $title = '', $image = 'tooltip.png', $text = '')
и заменить в теле функции
Код
$tooltip = !empty($tooltip)? addslashes(htmlspecialchars(strip_tags($tooltip), ENT_QUOTES, 'UTF-8')) : '';
на
Код
$tooltip = !empty($tooltip)? htmlspecialchars($tooltip) : '';
$tooltip=ereg_replace("(\r\n|\n|\r)", "<br/>", $tooltip);
и
Код
$tip = '<span class="editlinktip hasTip" title="' . $title . $tooltip . '" ' . $style . '>' . $text . '</span>';
на
Код
$tip = "<span onmouseover=\"Tip('$tooltip', WIDTH, -450, TITLE, '$title')\" onmouseout=\"UnTip()\">$text</span>";
естественно, предварительно сделайте резервную копию этого файла на всякий случай :)
*

Garry

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #106 : 13.07.2011, 14:43:50 »
Добрый день , я похоже в двух соснах заблудился, но все же спрошу:

1) Как мне сделать, чтобы пагинация выводилась ниже результатов поиска (как сейчас), а также выше (дублировать нужно для удобства)

2)  Я нашел
Код
$txt .= '<span class="pagenavf">';
в Pagenavigation.php , но у меня он применился  только к "<<Первая Предедущая 1"  ,а " 23456 Следующая Последняя" у меня как обычные ссылки без спан класса. content.a мне менять никак нельзя

 
Код
$txt .= '<a  onclick="mod_loadProduct('.$page.')" title="'. JText::_('VES_PN_NEXT').'">'. JText::_('VES_PN_NEXT')  . $pnSpace . _PN_RT .'</a> ';
            $txt .= '<a  onclick="mod_loadProduct('.$end_page.')" title="'. JText::_('VES_PN_END').'">'. JText::_('VES_PN_END'). $pnSpace . _PN_RT . _PN_RT .'</a>'

Как применить спан класс к этому участку пагинации правильно?
*

vtx

  • Захожу иногда
  • 221
  • 19 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #107 : 13.07.2011, 15:59:45 »
Garry: в самом конце хелпера компонента есть
Код
//выводим результат отбора
       
      require(JPATH_COMPONENT . DS . 'files' . DS . 'result.php');
   
   
    }
   
    if ($col_res >= $limit2 || $limitstart2 != 0) {
        if ($task == 'ajax_mod')$prefix = 'mod_';
        else $prefix = '';
        echo $pageNav->writePagesLinks($prefix);
    }
} else {
    echo JText::_('VES_SR');
}
вроди бы это то что ищешь.
если вывод присвоить функции, то ее можно вывести ниже блока иф, а перед ней скопирывать пагинацию.
зы. сам не пробывал
*

Wharfadale

  • Захожу иногда
  • 193
  • 24 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #108 : 14.07.2011, 14:55:39 »
Владимир (Solopov) как вариант, решение интегрирования рейтинга в ajax-результатах:
-ставим extravotes
-добавляем следующий код
Код
  <?php 
   $product_rating = JHTML::_('content.prepare', '{extravote '.$db->f("product_id").'}');
   echo $product_rating;
  ?>

Решение одного покупателя)
« Последнее редактирование: 14.07.2011, 15:48:27 от Wharfadale »
*

Arkadiy

  • Гуру
  • 5247
  • 457 / 1
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #109 : 15.07.2011, 13:34:05 »
и еще, количество отфильтрованного товара отображается неверно (выбирите Leuchtmittel -> CDR-M количество 17, а когда мы открываем flypage - 15, переходим назад, опять 17)
Такое наблюдалось при некорректном удалении товаров виртом - в таблице характеристик оставались значения от удаленных товаров.




START
« Последнее редактирование: 29.01.2013, 21:05:17 от ELLE »
*

Arkadiy

  • Гуру
  • 5247
  • 457 / 1
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #110 : 30.07.2011, 18:46:17 »
Arkadiy, подскажите пожалуйста, как вытащить ссылку на большое изображение товара в результатах подбора.
Заранее благодарен.
vm_ext_search_helper.php
Код
$fields .= "#__{vm}_product.product_thumb_image, #__{vm}_product.product_name, \n";
заменить на
Код
$fields .= "#__{vm}_product.product_thumb_image, #__{vm}_product.product_full_image, #__{vm}_product.product_name, \n";
Далее возле строчки
Код
$product_link = $sess->url($url);
вставить
Код
$product_full_image = $db->f("product_full_image");
Далее использовать в шаблоне $product_full_image
*

beagler

  • Moderator
  • 3267
  • 390 / 4
  • https://alorisman.ru/
Re: Фильтр для VirtueMart (must have)
« Ответ #111 : 03.08.2011, 11:38:37 »
на самом деле товары без цены не показывались из-за
Код
$q .= "AND #__{vm}_product_price.shopper_group_id=$default_group ";
Так как у меня одна группа покупателей - убрал это условие
*

Arkadiy

  • Гуру
  • 5247
  • 457 / 1
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #112 : 23.08.2011, 10:34:40 »
подскажите пожалуйста где конкретно? ато я не понимаю где это?
В shop.browse.php есть строчка
Код
$templatefile = (!empty($category_id))? $db_browse->f("category_browsepage") : CATEGORY_TEMPLATE;
В ней можно заменить CATEGORY_TEMPLATE на нужный тебе шаблон или найти где она задается (скорее всего в конфиге) и поменять там. Расширение файла писать не нужно.
*

SolopoV

  • Давно я тут
  • 503
  • 14 / 0
  • зеленею...
Re: Фильтр для VirtueMart (must have)
« Ответ #113 : 25.08.2011, 09:51:50 »
Думаю, что многим пригодится решение, которое, возможно, подскажет Аркадий.

Ссуть:

У товара достаточно много характеристик (параметров в типе), при выводе товаров в browse_X.php (в категории), параметры занимают очень много места на странице. Решение для нормальной обрезки параметров в категории я нашел:
Код
<?php 

$product_type = strip_tags($product_type);
$product_type = mb_substr($product_type, 0, 220);
$product_type .= '... ';

?>
<?php echo $product_type ?>

Вопрос: Как сделать тоже самое в результатах подбора при выводе результатов данным компонентом?


Насколько я понял, нужно копать в result.php строку:

Код
<?php echo $ps_product_type->list_product_type($db->f("product_id")); ?>

Подскажите пожалуйста, кто знает!
*

Arkadiy

  • Гуру
  • 5247
  • 457 / 1
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #114 : 25.08.2011, 09:56:28 »
Вместо
Код
echo $ps_product_type->list_product_type($db->f("product_id"));
Код: php
$product_type = $ps_product_type->list_product_type($db->f("product_id"));
$product_type = strip_tags($product_type);
$product_type = mb_substr($product_type, 0, 220);
$product_type .= '... ';
echo $product_type;
*

Arkadiy

  • Гуру
  • 5247
  • 457 / 1
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #115 : 06.09.2011, 12:32:27 »
Два модуля на обной странице не получится. Работа идет через AJAX по идам контейнеров, а ты их задвоишь.
*

vtx

  • Захожу иногда
  • 221
  • 19 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #116 : 10.10.2011, 15:55:28 »
да, спасибо. я такой вариант рассматривал в крайнем случае, так как ссылка будет открываться всегда в новой вкладке. Может знаете какой-нибудь еще вариант, чтобы можно было выбрать: в текущем окне или в новой вкладеке??

кстати, только что попробовал добавить таргет в ссылку - ничего не изменилось   :(

для себя решил так:
(узаю первый релиз компонента)
включил "стандартую ссылку"
+
result.php
Код
<!--product name-->
<div style="height:55px;">
    <h1 class="product_name2" style="font-size: 12px; width:100%;">
        <a onclick="return !window.open(this.href)" title="<?php echo $db->f("product_name")?>" href="<? echo $product_link?>" >
            <?php echo $db->f("product_name")?>
        </a>
    </h1>
</div>

vm_ext_search_helper.php

Код
//подготавливаем ссылку на товар из результатов поиска
        if (@$conf['show_product'] == "ajax")
            $product_link = "onclick=\" var link ='" . $product_link . "';  ".$prefix."product( link )";
        elseif (@$conf['show_product'] == "fancybox")
            $product_link = 'class="fancybox" href="' . $product_link;
        else
      
 $product_link = $product_link;
            //$product_link = "href=\"javascript:void window.open('".$product_link."', 'win2', 'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=800,height=640,directories=no,location=no');\"";
          
« Последнее редактирование: 12.10.2011, 11:35:56 от vtx »
*

SolopoV

  • Давно я тут
  • 503
  • 14 / 0
  • зеленею...
Re: Фильтр для VirtueMart (must have)
« Ответ #117 : 22.11.2011, 11:03:51 »
Господа, как вывести в результатах подбора сначала товары, которые есть в наличии, потом отсутствующие?
Заранее благодарен за ответ.
*

SolopoV

  • Давно я тут
  • 503
  • 14 / 0
  • зеленею...
Re: Фильтр для VirtueMart (must have)
« Ответ #118 : 22.11.2011, 21:03:26 »
\components\com_vm_ext_search_pro\files\vm_ext_search_helper.php
Спасибо за наводку. Получилось. В файле unisearch добавил
Код
echo '<div class="mod_order_list_radio"><input type="radio" name="order_by" value="product_in_stock" checked="checked" '.$load_prod.'/>&nbsp;<label>' . JText::_('VES_XXXXXXX'). '</label></div>';
Может кому понадобиться. Если неправильно - поправьте. Только вот дочерние товары таким образом не учитываются... Правильнее было бы с учетом последних.
« Последнее редактирование: 22.11.2011, 22:10:34 от SolopoV »
*

den_caruk

  • Захожу иногда
  • 64
  • 2 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #119 : 05.12.2011, 18:11:13 »
Arkadiy, подскажите пожалуйста, как выглядит функция вывода характеристик в шаблоне модуля....
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин отправки SMS при заказе в VirtueMart 2

Автор Arkantos

Ответов: 11
Просмотров: 1716
Последний ответ 16.07.2018, 09:50:15
от anet1984
[Импорт/экспорт] Excel2VM - для VirtueMart 2-3. Excel и Яндекс.Маркет. (xls, XLSX, CSV, xml)

Автор katrey

Ответов: 92
Просмотров: 13147
Последний ответ 31.05.2018, 10:19:55
от katrey
Поиск по настраиваемым полям (фильтр VirtueMart 2): плагин поля мультивыбора + модуль

Автор pharaoh

Ответов: 693
Просмотров: 36532
Последний ответ 05.05.2018, 01:50:20
от SLAVJAN
Плагин оплаты картами Visa/MasterCard VirtueMart 2.x-3.x Цена 5.00 $

Автор gartes

Ответов: 27
Просмотров: 3785
Последний ответ 01.05.2018, 18:35:10
от fat32man
Интеграция VirtueMart 3 и 1C: Управление торговлей 11.1

Автор pavel1c

Ответов: 5
Просмотров: 4554
Последний ответ 21.03.2018, 19:16:29
от Mehanick