Олег Захаров

Олег Захаров

С нами с 14 октября 2017; Место в рейтинге пользователей: #64
Володя
01 сентября 2017, 15:45
1
0
есть метод SubscriptionAppend
$payandsee = $modx->getService('payandsee');
$payandsee->SubscriptionAppend($resource_id, $user_id, $period = 30, 1)
Сергей
Сергей
01 сентября 2017, 00:14
9
0
Тщательно пережевав это modx.pro/help/7693/#comment-53831, решил свой вопрос — Как вывести два фото к каждому товару на странице категории:
в шаблоне категории вызываю список товаров так:
[[!pdoPage?
	&element=`msProducts`
	&loadModels=`gallery`
	&leftJoin=`{
		"360x270": {"class":"msProductFile","alias":"360x270", "on": "360x270.product_id = msProduct.id AND 360x270.path LIKE '%/360x270/' AND 360x270.rank=0"}
		,"360x270x1": {"class":"msProductFile","alias":"360x270x1", "on": "360x270x1.product_id = msProduct.id AND 360x270x1.path LIKE '%/360x270/' AND 360x270x1.rank=1"}
	}`
	&select=`{
		"msProduct":"*"
		,"360x270":"360x270.url as 360x270"
		,"360x270x1":"360x270x1.url as 360x270x1"
	}`
]]
и в чанке tpl.msProducts.row.php вывожу ДВА фото товара так:
<img src="[[+360x270:default=`[[++assets_url]]components/minishop2/img/web/ms2_small.png`]]">
<img src="[[+360x270x1:default=`[[++assets_url]]components/minishop2/img/web/ms2_small.png`]]">
Количество запросов снизилось вдвое, время загрузки страницы упало в полтора раза.
Извините, если кому наступил на мозоль, разжевав досконально, я знаю, что тут это не приветствуется...)))
Азамат
17 августа 2017, 08:15
1
0
Извините за некропостинг, но может добавить в документацию по pdoCrumbs параметр scheme?

[[pdoCrumbs?
	&scheme=`abs`
]]

Сегодня тоже столкнулся с этой странной проблемой, но в доках данного параметра нет, пришлось гуглить до этого топика :)

docs.modx.pro/components/pdotools/snippets/pdocrumbs
Дмитрий Храмов
12 июня 2017, 19:18
1
0
webstool.ru/kursyi-valyut-s-cbr.ru-na-php.html
вот с этим сниппетом проблем не возникло
Сниппет для MODX — getCurRate
if(empty($_SESSION['cbr_eur']) || empty($_SESSION['cbr_usd'])) {
    $xml = simplexml_load_string(file_get_contents("http://www.cbr.ru/scripts/XML_daily.asp"));
    $json = json_encode($xml);
    $array = json_decode($json);
    if(empty($input)){
        $input = 0;
    }
    $input = $input;
    $eur = 0;
    $usd = 0;
    foreach($array->Valute as $v){
        if(strtolower($v->CharCode) == "eur"){
            $eur = $v->Value;
        }
        if(strtolower($v->CharCode) == "usd"){
            $usd = $v->Value;
        }
    }
    $_SESSION['cbr_eur'] = $eur;
    $_SESSION['cbr_usd'] = $usd;
}else{
    $eur = $_SESSION['cbr_eur'];
    $usd = $_SESSION['cbr_usd'];
}
if(strtolower($cur_input) == "rub"){
    if(strtolower($cur_output) == "eur"){
        return $input/$eur;
    }
    if(strtolower($cur_output) == "usd"){
        return $input/$usd;
    }
}
if(strtolower($cur_input) == "eur"){
    if(strtolower($cur_output) == "rub"){
        return $input*$eur;
    }
    if(strtolower($cur_output) == "usd"){
        return $input*($eur/$usd);
    }
}
if(strtolower($cur_input) == "usd"){
    if(strtolower($cur_output) == "rub"){
        return $input*$usd;
    }
    if(strtolower($cur_output) == "eur"){
        return $input/($eur/$usd);
    }
}
if(strtolower($cur_output) == "rubinusd"){
    return $usd;
}
if(strtolower($cur_output) == "rubineur"){
    return $eur;
}
return "getCurRate"; //Если что-то пошло не так
Использование сниппета getCurRate

[[!getCurRate?&cur_output=`rubinusd`]] — Курс USD
[[!getCurRate?&cur_output=`rubineur`]] — Курс EUR
[[!getCurRate?&input=`2700`&cur_input=`rub`&cur_output=`usd`]] — Переводо RUB в USD
[[!getCurRate?&input=`132`&cur_input=`usd`&cur_output=`rub`]] — Переводо USD в RUB
Использование инструмента вне MODX

Тот же самый код, лишь оборачиваем его в функцию(). Показать
<?php echo getCurRate(0, '', 'rubinusd'); ?> — Курс USD
<?php echo getCurRate(0, '', 'rubineur'); ?> — Курс EUR
<?php echo getCurRate(2700, 'rub', 'usd'); ?> — Переводо RUB в USD
<?php echo getCurRate(132, 'usd', 'rub'); ?> — Переводо USD в RUB

Допилить под собственные нужна не проблема
Максим
18 апреля 2017, 10:00
1
0
data-src="[[~1342]]?from=[[*id]]", 

{if $.get.from}
<input type="hidden" name="pageLink" value="{$_modx->config.site_url}{$.get.from | resource : 'uri'}">
{/if}
Данным способом можете цеплять любые параметры страницы.
Максим
16 апреля 2017, 17:06
1
0
<a class="btn btn-shadow" data-fancybox="ajax" data-type="ajax" data-src="[[~1342]]" href="javascript:;">Напишите нам</a>
Володя
11 апреля 2017, 07:26
5
+2
примерно так можно
s6200.h3.modhost.pro/katalog/11999.html
joxi.ru/E2pMqLGS9YgaRA
{foreach $options as $name => $values}
    <div class="form-group">
        <label class="col-md-2 control-label" for="option_{$name}">{('ms2_product_' ~ $name) | lexicon}:</label>
        <div class="col-md-10">
            <select name="options[{$name}]" class="input-sm form-control" id="option_{$name}">
                {foreach $values as $value}
                    <option value="{$value}">{$value}</option>
                {/foreach}
            </select>
        </div>
    </div>    
        
        
    <div class="form-group form-inline embroidery_parent" style="display:none;">    
        <label class="col-md-2 control-label" for="option_{$name}"></label>
        <div class="col-md-10">
			<input type="text" name="options[embroidery_text]" placeholder="Текст вышивки" class="input-sm form-control" value="">
		</div>
    </div>
    
{/foreach}

<script>
$(document).on('change', '.ms2_form', function (e) {   
    
    var embroidery = $(this).find('select[name="options[embroidery]"]');
    var embroidery_text = $(this).find('input[name="options[embroidery_text]"]');
    if (embroidery.val() == 'да') {
        embroidery_text.closest('.embroidery_parent').show();
    }
    else {
        embroidery_text.closest('.embroidery_parent').hide();
        embroidery_text.val('');
    }
});
</script>
Nikita
10 апреля 2017, 22:30
1
0
По идее — обычный текст. Логика такая: человек жмет галку «добавить вышивку» открывается текстовое поле и он туда вписывает, например, свои инициалы: «И.В. Пупкин» или любой другой текст, который он хочет вышить на рубашке/футболке.
Дмитрий
19 марта 2017, 21:16
1
0
Ну, вообще, если почитать документацию, то можно увидеть сниппет CRCalc, который как раз этим и занимается.
Ну или можно написать свой сниппет, который будет принимать значение цены, валюту, в которую нужно пересчитать и выдавать уже готовую стоимость.
Типа такого:
<?php
/** @var array $scriptProperties */
/** @var currencyrate $currencyrate */
if (!$currencyrate = $modx->getService('currencyrate', 'currencyrate', $modx->getOption('currencyrate_core_path', null, $modx->getOption('core_path') . 'components/currencyrate/') . 'model/currencyrate/', $scriptProperties)) {
	return 'Could not load currencyrate class!';
}
if(empty($input)) {return '';}
$list = $currencyrate->getList();
//тут можно по-нормальному отформатировать данные
$input = (trim(str_replace(' ','',$input)));
if(!empty($divider)) {
	$divider = $list[$divider];
	$output = $currencyrate->formatPrice(($input / $divider), $format, $noZeros);
}
return $output;
Виталий Серый
03 марта 2017, 22:43
4
+1
Все тоже самое, только тв запрашивать у требуемого ресурса.
{set $rows = json_decode(15 | resource : 'migx_tv', true)}
{foreach $rows as $row}
    {$row.image}
{/foreach}