Константин

Константин

С нами с 24 апреля 2017; Место в рейтинге пользователей: #1041
Константин
18 августа 2022, 15:51
0
Или лучше использовать для него tpl default?
Константин
18 августа 2022, 15:51
0
Не получается tpl присвоить этому полю.
Пробую так:

'tplFilter.outer.vendor|msvendor:description' => 'filterCheckboxOuter',
	        'tplFilter.row.vendor|msvendor:description' => 'filterCheckboxRow',
,
'tplFilter.outer.msvendor|description' => 'filterCheckboxOuter',
	        'tplFilter.row.msvendor|description' => 'filterCheckboxRow',
,
'tplFilter.outer.msvendor' => 'filterCheckboxOuter',
	        'tplFilter.row.msvendor' => 'filterCheckboxRow',
,
'tplFilter.outer.msvendor' => 'filterCheckboxOuter',
	        'tplFilter.row.msvendor' => 'filterCheckboxRow',
Константин
18 августа 2022, 15:43
0
Извиняюсь, мой косяк, не в тот шаблон указал! Спасибо большое)
Константин
18 августа 2022, 15:40
0
Странно, выводит все равно наименование производителя

'filters' => 'msoption|marka,
		          msoption|model,
            	msvendor|description,
            	parent:parents',
            	
	'aliases' => 'msvendor|description==vendor-status,
Константин
18 августа 2022, 14:22
0
Спасибо, статус производителя оригинал/неоригинал вывел в {$_pls['vendor.description']}

А существует ли возможность настроить фильтр mfilter2?

Пробую так, не работает
'filters' => 'msoption|marka,
		          msoption|model,
            	ms|vendor.description:vendors,
            	parent:parents',
            	
	'aliases' => 'ms|vendor==vendor,
			     msoption|marka==marka,
				 msoption|model==model',
Константин
12 августа 2022, 15:48
0
Допустим я звожу отдельную опцию и называю ее vendor_status. И если ее значение оригинал, то показываю одну картинку, если нет — другую. А как проверить значение опции, не используя кириллицу? И вывести ее значение в title картине?
Константин
12 августа 2022, 09:31
0
Именно от опции vendor задача отказаться. Еду опцию использовать не под статус производителя (оригинал/неоригинал), а под реального производителя бренд Bosch, Samsung и проч.
Константин
11 августа 2022, 15:58
0
На моем сайте установлен slick slider, я просто перед закрывающим тегом body вызываю 2 раза так:

/* Несколько slick слайдеров на одной странице */
$('.led-grid').each(function(){
    /* Основной слайдер */
    $(this).find('.slider-for').slick({
      slidesToShow: 1,
    slidesToScroll: 1,
    arrows: false,
    fade: true,
      autoplay: true,
      autoplaySpeed: 8000,
      asNavFor: $(this).find('.slider-nav'),
      dots: false
    });

    /* Связанный слайдер */
    $(this).find('.slider-nav').slick({
     slidesToShow: 3,
    slidesToScroll: 1,
      asNavFor: $(this).find('.slider-for'),
       dots: false,
    centerMode: true,
    focusOnSelect: true,
    arrows : false
    });
  });
</script>
  
<script>
  /* Несколько slick слайдеров на одной странице совместно с фильтрами и пагинацией*/
$(document).on('mse2_load', function(e, data) {
  $('.led-grid').each(function(){
    /* Основной слайдер */
    $(this).find('.slider-for').slick({
      slidesToShow: 1,
    slidesToScroll: 1,
    arrows: false,
    fade: true,
      autoplay: true,
      autoplaySpeed: 8000,
      asNavFor: $(this).find('.slider-nav'),
      dots: false
    });

    /* Связанный слайдер */
    $(this).find('.slider-nav').slick({
     slidesToShow: 3,
    slidesToScroll: 1,
      asNavFor: $(this).find('.slider-for'),
       dots: false,
    centerMode: true,
    focusOnSelect: true,
    arrows : false
    });
  });
});
</script>
Константин
11 августа 2022, 08:47
0
Спасибо!!! Разобрался) Но почему-то стали дублироваться в фильтре марки и модели: disk.yandex.ru/i/W-3JcFircMkXsg

Вывожу так же, только объект другой:
<script>
var carsModelsObject = {
    "KIA": {
        "Rio 3 QBR (11-17)": [],
        "Rio 4 FB (2017- )": [],
        "Soul 3 SK3 (2019- )": [],
        "Creta 1 GSR (2016-21)":[]
    },

    "Hyundai": {
        "Solaris 1 RBR (10-17)": [],
        "Solaris 2 HCR (2017- )": []
    }
}
</script>
<script>
      window.onload = function() {
        var carSel = document.getElementById("msoption|marka_0"); // мои названия опций
        var modelSel = document.getElementById("msoption|model_0"); // мои названия опций
    
        for (var x in carsModelsObject) {
            carSel.options[carSel.options.length] = new Option(x, x);
        }
        carSel.onchange = function() {
    
            modelSel.length = 1;
          //display correct values
          for (var y in carsModelsObject[this.value]) {
            modelSel.options[modelSel.options.length] = new Option(y, y);
          }
        }
      }
    </script>
И сам фильтр не работает, так как залетает в строку параметром опция marka как бы дублем:

Корректная строка:
https://rioek.ru/zapchasti/?marka=KIA&model=Soul%203%20SK3%20(2019-%20)
Строка с дублем марки:
https://rioek.ru/zapchasti/?marka=KIA&model=KIA%20Soul%203%20SK3%20(2019-%20)
Константин
11 августа 2022, 07:54
0
Дак это понятно, так у меня к примеру наличие выводится:
{if $available==1?}
	<div class="stock"><span></span> <span class="status-stock">В наличии</span></div>
{/if}
{if $available==2?}
	<div class="stock"><span></span> <span class="status-stock">Нет в наличии</span></div>
{/if}
{if $available==3?}
	<div class="stock"><span></span> <span class="status-stock">Под заказ</span></div>
{/if}
{if $available==4?}
	<div class="stock"><span></span> <span class="status-stock">Ожидается (в дороге)</span></div>
{/if}
Вопрос в другом. Как выводить 2 в 1 или даже 3 в 1, как на примере опции производитель. Ведь у этой опции есть еще поля, такие как наименование, логотип, страна производителя и проч.
Это можно сделать через MIGX, но использовать TV нет желания, по этому и вопрос, как это сделать средствами minishop2 м возможно ли?
Константин
10 августа 2022, 17:00
0
Дмитрий добрый вечер, можете подсказать что есть объект для начинающего? Это внешний xml файл, с таким содержимым?
var carsModelsObject = {
    "Alfa Romeo": {
        "146": [],
        "147": [],
        "156": []    
    },

    "Audi": {
        "80": [],
        "90": [],
        "100": [],
        "A2": [],
        "A3": [],
        "A4": [],
        "A5": [],
        "A6": [],
        "A6 Allroad": [],
        "A8": [],
        "Q2": [],
        "Q3": [],
        "Q5": [],
        "Q7": [],
        "TT": [],
        "V8": [],

    },
// и так далее по всем маркам...
}
Если да, то как его использовать, обращаться к нему?
Со скриптом понятно, а что с объектом делать не пойму…
Заранее спасибо, буду очень благодарен.
Константин
08 августа 2022, 14:18
0
А что значит «функционал расширения свойств товара»?
Константин
05 августа 2022, 13:35
0
Вообще галерея слетает при пагинации. Сейчас поменял стандартную fotorama на slick slider. Изображения просто вряд встают при ajax запросе. Причем в консоле ошибок нет. Скриншот: disk.yandex.ru/i/tNGVYZ4m3S4_Iw
Константин
02 августа 2022, 14:10
0
Спасибо!
Константин
01 августа 2022, 11:53
0
Убрал 'includeThumbs' => 'medium' — дубли пропали. Как так?
Константин
01 августа 2022, 11:47
0
Спасибо, помогло. А в чем была проблема? На других сайтах такого не наблюдается.
Константин
01 августа 2022, 11:32
0
0.0000961: pdoTools loaded.
0.0001519: Conditions prepared
0.0000250: xPDO query object created
0.0003450: Included list of tvs: available
0.0001450: leftJoined msProductData as Data
0.0000710: leftJoined msVendor as Vendor
0.0000811: leftJoined msProductFile as medium
0.0000720: leftJoined modTemplateVarResource as TVavailable
0.0000021: Grouped by msProduct.id, `medium`.url
0.0001230: Added selection of msProduct: SQL_CALC_FOUND_ROWS `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `alias_visible`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`, `seotabs_searchable`
0.0000441: Added selection of msProductData: `article`, `price`, `old_price`, `weight`, `image`, `thumb`, `vendor`, `made_in`, `new`, `popular`, `favorite`, `tags`, `color`, `size`, `source`
0.0000432: Added selection of msVendor: `name` AS `vendor.name`, `resource` AS `vendor.resource`, `country` AS `vendor.country`, `logo` AS `vendor.logo`, `address` AS `vendor.address`, `phone` AS `vendor.phone`, `fax` AS `vendor.fax`, `email` AS `vendor.email`, `description` AS `vendor.description`, `properties` AS `vendor.properties`
0.0000269: Added selection of msProductFile: url as `medium`
0.0000069: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `available`
0.0000100: Replaced TV conditions
0.0000260: Processed additional conditions
0.0001669: Added where condition: class_key=msProduct, msProduct.id:IN(4,4,4,4,4,27,28), msProduct.published=1, msProduct.deleted=0
0.0000062: Replaced TV conditions
0.0000670: Sorted by msProduct.parent, ASC
0.0000851: Sorted by msProduct.menuindex, ASC
0.0000029: Limited to 12, offset 0
0.0002210: SQL prepared «SELECT SQL_CALC_FOUND_ROWS `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`alias_visible`, `msProduct`.`link_attributes`, `msProduct`.`published`, `msProduct`.`pub_date`, `msProduct`.`unpub_date`, `msProduct`.`parent`, `msProduct`.`isfolder`, `msProduct`.`introtext`, `msProduct`.`richtext`, `msProduct`.`template`, `msProduct`.`menuindex`, `msProduct`.`searchable`, `msProduct`.`cacheable`, `msProduct`.`createdby`, `msProduct`.`createdon`, `msProduct`.`editedby`, `msProduct`.`editedon`, `msProduct`.`deleted`, `msProduct`.`deletedon`, `msProduct`.`deletedby`, `msProduct`.`publishedon`, `msProduct`.`publishedby`, `msProduct`.`menutitle`, `msProduct`.`donthit`, `msProduct`.`privateweb`, `msProduct`.`privatemgr`, `msProduct`.`content_dispo`, `msProduct`.`hidemenu`, `msProduct`.`class_key`, `msProduct`.`context_key`, `msProduct`.`content_type`, `msProduct`.`uri`, `msProduct`.`uri_override`, `msProduct`.`hide_children_in_tree`, `msProduct`.`show_in_tree`, `msProduct`.`properties`, `msProduct`.`seotabs_searchable`, `Data`.`article`, `Data`.`price`, `Data`.`old_price`, `Data`.`weight`, `Data`.`image`, `Data`.`thumb`, `Data`.`vendor`, `Data`.`made_in`, `Data`.`new`, `Data`.`popular`, `Data`.`favorite`, `Data`.`tags`, `Data`.`color`, `Data`.`size`, `Data`.`source`, `Vendor`.`name` AS `vendor.name`, `Vendor`.`resource` AS `vendor.resource`, `Vendor`.`country` AS `vendor.country`, `Vendor`.`logo` AS `vendor.logo`, `Vendor`.`address` AS `vendor.address`, `Vendor`.`phone` AS `vendor.phone`, `Vendor`.`fax` AS `vendor.fax`, `Vendor`.`email` AS `vendor.email`, `Vendor`.`description` AS `vendor.description`, `Vendor`.`properties` AS `vendor.properties`, `medium`.url as `medium`, IFNULL(`TVavailable`.`value`, '') AS `available` FROM `modx_site_content` AS `msProduct` LEFT JOIN `modx_ms2_products` `Data` ON `msProduct`.`id` = `Data`.`id` LEFT JOIN `modx_ms2_vendors` `Vendor` ON Data.vendor=Vendor.id LEFT JOIN `modx_ms2_product_files` `medium` ON `medium`.product_id = msProduct.id AND `medium`.`rank` = 0 AND `medium`.path LIKE '%/medium/%' LEFT JOIN `modx_site_tmplvar_contentvalues` `TVavailable` ON `TVavailable`.`contentid` = `msProduct`.`id` AND `TVavailable`.`tmplvarid` = 3 WHERE ( `msProduct`.`class_key` = 'msProduct' AND `msProduct`.`id` IN (4,4,4,4,4,27,28) AND `msProduct`.`published` = 1 AND `msProduct`.`deleted` = 0 ) GROUP BY msProduct.id, `medium`.url ORDER BY msProduct.parent ASC, msProduct.menuindex ASC LIMIT 12 „
0.0016711: SQL executed
0.0001159: Total rows: 7
0.0000899: Rows fetched
0.0001149: Returning raw data
0.0008242: Checked the active modifiers
0.0021989: Loaded “modChunk» with name «gridProductTpl»
0.0020950: Compiled Fenom chunk with name «modchunk/54»
0.0014119: Loaded «modSnippet» with name «msGallery»
0.0044742: Time to load products options
0.1365609: Total time
6 291 456: Memory usage
Константин
01 августа 2022, 11:30
0
Вывод:

{$_modx->runSnippet('!mFilter2', [
	'element' => 'msProducts',
	'class' => 'msProduct',
	'limit' => 12,
	'tplOuter' => 'mFilter2OuterTpl',
	'tpl' => 'gridProductTpl',
	'includeTVs' => 'available',
	'includeThumbs' => 'medium',
	'sortby' => '{ "parent":"ASC","menuindex":"ASC" }',
	'tplPagePrev' => '@INLINE <li><a class="" href="{$href}"><i class="fa fa-angle-left" aria-hidden="true"></i></a></li>',
	'tplPageNext' => '@INLINE <li><a class="" href="{$href}"><i class="fa fa-angle-right" aria-hidden="true"></i></a></li>',
	'tplPagePrevEmpty' => '@INLINE <li><a class="" href="{$href}"><i class="fa fa-angle-left" aria-hidden="true"></i></a></li>',
	'tplPageNextEmpty' => '@INLINE <li><a class="" href="{$href}"><i class="fa fa-angle-right" aria-hidden="true"></i></a></li>',
	'tplPageFirst' => '',
	'tplPageLast' => '',
	'tplPageFirstEmpty' => '',
	'groupby' => 'id',
	'tplPageLastEmpty' => '',
	'suggestionsRadio' => 'resource|parent',
	'filters' => 'msoption|marka,
		          msoption|model,
            	ms|vendor:vendors,
            	parent:parents',
            	
	'aliases' => 'ms|vendor==vendor,
			     msoption|marka==marka,
				 msoption|model==model',
			'tplFilter.outer.default' => 'filterSelectOuter',
	        'tplFilter.row.default' => 'filterSelectRow',
	        
			'tplFilter.outer.vendor' => 'filterCheckboxOuter',
	        'tplFilter.row.vendor' => 'filterCheckboxRow',
	        
	        'tplFilter.outer.marka' => 'filterSelectOuter',
	        'tplFilter.row.marka' => 'filterSelectRow',
	        
	        'tplFilter.outer.model' => 'filterSelectOuter',
	        'tplFilter.row.model' => 'filterSelectRow',
	        
	        'tplFilter.outer.resource|parent:parents' => 'filterSelectOuter',
	        'tplFilter.row.resource|parent:parents' => 'filterSelectRow',
	
])}