Андрей П

Андрей П

С нами с 05 ноября 2015; Место в рейтинге пользователей: #291
Володя
30 марта 2017, 19:00
6
+3
пример вывода всех тегов
<!-- tags -->
{set $tags = $_modx->runSnippet('pdoResources',[
'class' => 'msProductOption',
'sortby' => 'value',
'sortdir' => 'ASC',
'where' => json_encode([
'key' => 'tags',
'value:!='=> 'undefined'
]),
'select' => 'DISTINCT(msProductOption.value) as id, "tag" as class_key',
'limit' => 0,
'return' => 'json'
])}
{set $tags = $tags | fromJSON}
{if count($tags)}
	<ul class="uk-float-right uk-navbar-nav tm-header-tags">
		<li data-uk-dropdown="" aria-haspopup="true" aria-expanded="false">
			<a>{'msfbshop_tags' | lexicon}</a>
			<div aria-hidden="true" class="uk-dropdown uk-dropdown-navbar uk-dropdown-bottom">
				<ul class="uk-nav uk-nav-navbar">
				{foreach $tags as $row}
					<a href="{$row.link}">{$row.id}</a>
				{/foreach}
				</ul>
			</div>
		</li>
	</ul>
{/if}
Володя
13 марта 2017, 10:38
2
+1
решение на скорую руку


s6200.h3.modhost.pro/katalog/11991.html
$(document).on('msoptionsprice_product_action', function (e, action, form, r) {

	if (action == 'modification/get' && r.success && r.data) {
        var m = r.data.modification || {};
    	var o = r.data.options || {};
    	
    	if (m.id) {
    	    return;
    	}
    	
    	var set = false;
    	
    	$('.msoptionsprice-modifications').find('.ms2_product').each(function () {
    	
    	    var hidden = true;
    	    var w = $(this);
    	    var f = w.find('form');
    	    
    	    for (key in o) {
				if (f.find('input[name="options['+key+']"][value="' + o[key] + '"]').length) {
    	            hidden = false;
    	        }
			}
			
			if (hidden) {
			    w.hide(); 
			}
			else {
			    w.show(); 
			}
			
			w.removeClass('active');
			
		}).each(function () {
		    var w = $(this);
    	    var f = w.find('form');
    	     
			if (!set && w.is(":visible")) {
		        set = true;
		        
		        w.addClass('active');
		        msOptionsPrice.Product.action('modification/get', f[0]);
		    }
		   
		});
	
    }
});

$(document).on('click', '.msoptionsprice-modifications div.ms2_product', function () {
  
    var w = $(this);
    var f = w.find('form');
    	    
    w.parent().find('.ms2_product.active').removeClass('active');
   
    w.addClass('active'); 
    msOptionsPrice.Product.action('modification/get', f[0]);
    
});

</script>

<style>
.msoptionsprice-modifications .ms2_product {
    cursor: pointer;
}

.msoptionsprice-modifications .ms2_product.active {
    border: 3px solid #559ed1;
}
</style>
Alexander V
10 марта 2017, 00:04
1
0
В новом Minishop2 я так сделал

<img src="{$files.0.url}" alt="" class="uk-thumbnail uk-margin-small-bottom">
<div data-uk-slideset="{ animation: 'scale', medium: 3 }">
    <div class="uk-slidenav-position">
        <ul class="uk-grid uk-grid-small uk-slideset uk-margin-bottom">
			{foreach $files as $file}
			<li>
			    <a href="{$file['url']}" target="_blank" data-uk-lightbox="{ group:'my-group' }">
			        <img src="{$file['small']}" alt="" title="" class="uk-thumbnail">
			    </a>		
			</li>

			{/foreach}
        </ul>
    </div>
    <ul class="uk-slideset-nav uk-dotnav uk-flex-center">...</ul>
</div>
.
Василий Наумкин
05 марта 2017, 16:27
1
+1
{$array[$type]['page_id']}
Viktor
05 марта 2017, 13:05
1
0
читал уже, нашел бы решение — не спрашивал бы

может вы подскажите?

получаю с тв строку, допустим «wedding», как вывести значения из массива?

{var $type = $_pls['tv.article_type'] | strip : true}
            {set $array = [
                $wedding = [
                    "title_text" => "Свадьба",
                    "link_text" => "Свадьбы",
                    "page_id" => "108",
                ],
                $birthday = [
                    "title_text" => "День рождения",
                    "link_text" => "Дни рождения",
                    "page_id" => "109",
                ]
            ]}

{$array.$type.page_id}
Виталий Серый
03 марта 2017, 22:43
3
+1
Все тоже самое, только тв запрашивать у требуемого ресурса.
{set $rows = json_decode(15 | resource : 'migx_tv', true)}
{foreach $rows as $row}
    {$row.image}
{/foreach}
Виталий Серый
28 февраля 2017, 14:03
4
+4
Самое простое через ключ массива.
{*Первые два*}
{foreach $rows as $idx => $row}
	{if $idx < 2}
		<div>{$idx} - {$row.title}</div>
	{/if}
{/foreach}

{*С пятой строки*}
{foreach $rows as $idx => $row}
	{if $idx > 4}
		<div>{$idx} - {$row.title}</div>
	{/if}
{/foreach}

{*Чересстрочная вакханалия*}
{foreach $rows as $idx => $row}
	<div{$idx is odd ? ' class="odd"' : ''>{$idx} - {$row.title} и два тикета туДаблин</div>
{/foreach}
И т.п.
Документация Fenom.
Володя
18 февраля 2017, 16:29
2
+1
использолвать синтаксис феном?
{set $weight = 'weight'}
{('ms2_'~'product_'~$weight) | lexicon}
Іван Клімчук
17 февраля 2017, 10:18
3
+1
Довольно просто, если в целом.
Вот пример моей формы с фильтрами и кнопкой.
<form action="" method="post" id="mse2_filters">
    {if $filters != 'Нечего фильтровать'}
        {$filters}
        <div class="filter">
            <main>
                <div class="txt-center">
                    <button type="reset" class="button-outline">Сбросить фильтры</button>
                    <button type="submit" class="hidden">[[%mse2_submit]]</button>
                </div>
            </main>
        </div>
    {else}
        <div class="centered">
            <p>
                
                {$filters}
            </p>
        </div>
    {/if}
</form>
Василий Столейков
15 февраля 2017, 08:50
4
+4
Используй один из вариантов:
&where=`{ "class_key" : "msProduct" }`          // Выбрать только товары miniShop2
&where=`{ "class_key:!=" : "modWebLink" }`     // Выбрать всё кроме ссылок