Обсуждение Cherry Picker - фильтр товаров для virtuemart/FastSeller - работа с фильтрами

Ломаю голову уже вторую неделю и не могу понять как сделать так , чтобы при фильтрации товаров(когда напротив полей ставлю галочки) оставались ВСЕ поля результатов, а те которые не подходят то чтобы НЕ ИСЧЕЗАЛИ, а оставались, а рядом в этой же строчке в скобочках был "0" (ну мол нету такого результата).Я писал производителю на почту, как так сделать, чтобы ненужные поля не исчезали а оставались и тд. Но они мне лишь посоветовали поковыряться вот в этой части кода, а я в php не силен. Помогите.
Искал на других форумах - пусто. а програмист из меня....
 
Все эти ошибки возникают, из за того, что сменилась версия CherryPicker ( CherryPicker Product Type version 3.0 ) и product.php делается тока для него... так что ждем, когда он появится в открытом доступе!!! А пока мой файл product.php для Virtuemart 2.0.16 и CherryPicker 2.0.5. У мня лично все работает... router.php взят c galt.md.
С вашим файлом product.php все заработало. Странно, но у меня тоже product.php для Virtuemart 2.0.16 и CherryPicker 2.0.5, взятый с galt.md. Если не секрет, вы сами переделали файл или скачали откуда?
 
Ломаю голову уже вторую неделю и не могу понять как сделать так , чтобы при фильтрации товаров(когда напротив полей ставлю галочки) оставались ВСЕ поля результатов, а те которые не подходят то чтобы НЕ ИСЧЕЗАЛИ, а оставались, а рядом в этой же строчке в скобочках был "0" (ну мол нету такого результата).Я писал производителю на почту, как так сделать, чтобы ненужные поля не исчезали а оставались и тд. Но они мне лишь посоветовали поковыряться вот в этой части кода, а я в php не силен. Помогите.
Искал на других форумах - пусто. а програмист из меня....
Походу собака гдето зарыта в фале writer.php в директории <сайт>\modules\mod_vm_cherry_picker вот в этой части кода
PHP:
// writes filters alone to html
    static function writeFilter($filter,$count,$filter_selected,$filters_shown,$url=''){
        $mode=(isset(self::$parameters[self::$curr_param_index]['mode']))? self::$parameters[self::$curr_param_index]['mode']:null;
        if($mode==3) return self::filter_to_html_color($filter,$count,$filter_selected,$filters_shown,$url);
        if(chpconf::option('type')==0) return self::filter_to_html_list($filter,$count,$filter_selected,$filters_shown,$url);
        if(chpconf::option('type')==1) return self::filter_to_html_table($filter,$count,$filter_selected,$filters_shown,$url);
        if(chpconf::option('type')==2) return self::filter_to_html_list2($filter,$count,$filter_selected,$filters_shown,$url);
    }
   
    static function filter_to_html_list($filter,$count,$filter_selected,$filters_shown,$url){
        $s='';
        if(chpconf::option('useseemore') && $filters_shown==chpconf::option('b4seemore')){
            //$s.='</ol>';
            //if(chpconf::option('smanchor')==0){$s.=self::see_more();}else{self::$add_seemore=true;}
            //$s.='<ol class="chp-ll hid">';
            $s=self::appendSeeMore();
        }
        if (chpconf::option('translate')) $filter=JText::_($filter);
        $unit=self::$parameters[self::$curr_param_index]['parameter_unit'];
        if(chpconf::option('mode')==0){
            $s.='<li><a href="'.$url.'" class="chp-la" title="Select '.$filter.$unit.'"><span class="chp-lf">'.$filter.$unit.'</span>';
            if(chpconf::option('showfiltercount') == NUM_PROD_SHOW){
                $s.=' <span class="narrowValue">('.$count.')</span>';
            }
            $s.='</a></li>';
        }else{
            if($count){
                if($filter_selected){
                    $s.='<li><a href="'.$url.'" class="chp-la" title="Remove '.$filter.$unit.'"><span class="chp-ltick ticksel"> </span> <span class="refinementSelected">'
                    .$filter.$unit.'</span></a></li>';
                }else{
                    $s.='<li><a href="'.$url.'" class="chp-la" title="Select '.$filter.$unit.'"><span class="chp-ltick"> </span> <span class="chp-lf">'
                    .$filter.$unit.'</span>';
                    if(chpconf::option('showfiltercount') == NUM_PROD_SHOW){
                        $s.=' <span class="narrowValue">('.$count.')</span>';
                    }
                    $s.='</a></li>';
                }
            }else if($filter_selected){
                $s.='<li><span class="chp-ltick tickunavail"> </span> <span class="chp-lunav">'
                .$filter.$unit.'</span></li>';
            }
        }
        return $s;
    }
но пока еще ничего не получается(
 
но пока еще ничего не получается(
В если прописать ID нужного типа и выбрать в настройках "не считать товар" (Show number of products for each filter? - Do not calculate) - неужто пропадают поля???
Параметры подсчитывается только если в настройках стоит либо "ShowCalculate" или"but do not show"...
Если сделать как указал вначале то по умолчанию будут выводиться все параметры и ничего кодить не надо ;)
 
С вашим файлом product.php все заработало. Странно, но у меня тоже product.php для Virtuemart 2.0.16 и CherryPicker 2.0.5, взятый с galt.md. Если не секрет, вы сами переделали файл или скачали откуда?

Взят с galt.md. Пришлось не много переделать, так как теперь как я уже писал product.php делается только для версии 3, а не 2.0.5
 
В если прописать ID нужного типа и выбрать в настройках "не считать товар" (Show number of products for each filter? - Do not calculate) - неужто пропадают поля???
Параметры подсчитывается только если в настройках стоит либо "ShowCalculate" или"but do not show"...
Если сделать как указал вначале то по умолчанию будут выводиться все параметры и ничего кодить не надо ;)
Не получается.
для понятности я изовразил на КартинкЕ как у меня сейчас , и как хотелось бы... в php немного разбираюсь, но вот где именно надо подделать код еще не разобрался...
0000000000000.JPG
 
А Вы пробовали создать типы товаров и задать значения параметров для этих типов? Потому что если Вы этого не сделали, то фильтр так никогда и не увидете.
Да. Пришлось перерыть кучу инфы, что бы только включить этот модуль.
У кого не будет получаться. Порядок действий:
1)Устанавливаем J2.5_mod_vm_cherry_picker
2)Устанавливаем J2.5_com_fastseller
3)Включаем модуль Cherry Picker, назначаем позицию, устанавливаем на каких страницах показывать (после это все равно не видно модуля)
4)Заходим в Компоненты - fastseller и настраиваем его:
Заходим в Option и 6. Override Virtuemart's lang value: - надо установить название таблицы #__virtuemart_products_. Оно может оканчиваться на en_gb, ru-ru и другие (надо посмотреть в бае данных с помощью phpmyadmin) - после этого должны появиться товары в закладке Asign Filters
Заходим в Creat Filters, смотрим обучающее Для просмотра ссылки Войди или Зарегистрируйся и Для просмотра ссылки Войди или Зарегистрируйся и настраиваем все там.
После этого появиться модуль на сайте.

Ваще жесть. С нуля потратил день, что бы увидеть только модуль :)
 
Не получается.
для понятности я изовразил на КартинкЕ как у меня сейчас , и как хотелось бы... в php немного разбираюсь, но вот где именно надо подделать код еще не разобрался...
Посмотреть вложение 45474

Задал этот вопрос "создателям" ответ пришел быстро, собственно вот он:
Смотрите в controller.php есть такой участок, где отбрасываются все фильтры с нулями
PHP:
if ($count) { $url = $this->getFilterUrl($filter, $filter_selected);
$s .= chpWriter::writeFilter($filter, $count, $filter_selected, $filters_shown, $url);
$filters_shown++; }
else if ($filter_selected) {
$s .= chpWriter::writeFilter($filter, 0, true, $filters_shown);
$filters_shown++; }
Убирайте проверку на $count.
Но я всяко пробовал, чтото всеравно не получается. Может хоть ктото сможет разобраться в этом ужасе...?
 
Попробу
Но я всяко пробовал, чтото всеравно не получается. Может хоть ктото сможет разобраться в этом ужасе...?
Попробуйте данный код заменить на:
Код:
$s .= chpWriter::writeFilter($filter, 0, true, $filters_shown);}
или на:
Код:
$s .= chpWriter::writeFilter($filter, $count, $filter_selected, $filters_shown, $url); }
Т.е. оставить без проверки, посмотреть оба варианта, что происходит
З.Ы: поиграться с подсчетом, учитывая рост запросов к БД: Show number of products for each filter? - Do not calculate
 
Ребят выбрал тип Drop-down list как упорядочить по левой стороне мне фильтры ? И как переименовать слово Select ? Где копать ?

l3BfMhTsuUaa4vIOQ24t7g.jpg
 
Назад
Сверху