Aleksandr Huz

Aleksandr Huz

С нами с 02 августа 2014; Место в рейтинге пользователей: #20
Aleksandr Huz
30 марта 2018, 10:38
+1
для этих целей есть сниппет getImageList
Aleksandr Huz
29 марта 2018, 16:56
0
Попробуйте вот так:
[[#5.tvname]]
или Fenom:
{5 | resource: 'tvname'}

где 5 — идентификатор ресурса
Aleksandr Huz
24 марта 2018, 20:26
0
Попробуйте тогда через дополнительное поле (tv).
Aleksandr Huz
24 марта 2018, 18:49
0
В статье написано:

Если цена товара меняется после прохождения через плагин-модификатор, то оригинальное значение помещается в old_price, а его значение уже больше никого не интересует.
и
Свойства old_price заменяется и его нигде не видно, кроме админки — напоминаю еще раз.
Может можно добраться до старой цены через $data
$data['old_price']
Aleksandr Huz
22 марта 2018, 18:48
0
да. Прочитайте статью
Aleksandr Huz
22 марта 2018, 18:16
0
Как-то все сложно.

Разве не можно, поменять цену через сниппет?
Примерно так:
if( $input == 0 ) return 0;
$input = floatval(str_replace(array(' ',','), array('','.'), $input));

// глобальный курс
$curs_global = $modx->getOption('ms2_curs_global');

// узнаем есть ли курс для данного товара
$product = $modx->getObject('msProduct', $id);
$curs = $product->get('curs') ?:  $curs_global;

// устанавливаем новую цену
$new_price = $input * $curs;

// форматируем цену и возвращаем ее
return number_format($new_price ,(floor($new_price) == $new_price ? 0 : 2),'.',' ');

и создаем плагин:
if($modx->event->name != 'msOnGetProductPrice') return;
$values = & $modx->event->returnedValues;
$resource = $modx->getObject('msProduct', $product->id);
$values['price'] = preg_replace('/\s/', '', $_REQUEST['price']);
Aleksandr Huz
18 марта 2018, 15:36
-1
Попробуйте после сохранения сбросить кеш:
$modx->cacheManager->refresh(array('system_settings' => array()));
Aleksandr Huz
14 марта 2018, 13:31
0
Попробуйте этот компонент — RefreshCache
Aleksandr Huz
24 января 2018, 18:55
0
пробовали вызвать AjaxForm некэшированным?
Aleksandr Huz
24 января 2018, 18:26
0
я имел ввиду, что если страница загружена по протоколу http а вы хотите получить файл по https то может быть 404 ошибка
Aleksandr Huz
24 января 2018, 17:02
1
+2
1. Вариант:
{foreach $orders as $order}
	{if order@last}
		{$order.cost}
	{/if}
{/foreach}
2. Вариант:
{var $total = count($orders) - 1}
{foreach $orders as $idx => $order}
	{if $idx == $total}
		{$order.cost}
	{/if}
{/foreach}
Aleksandr Huz
24 января 2018, 13:15
-2
Ну так может файл лежит в
http://example.com/assets/components/ajaxform/action.php
Aleksandr Huz
19 января 2018, 12:23
1
0
Написать сниппет или модификатор, если используется fenom.
Самый простой:
<?php
$arr= explode(',',input);
$result = [];
foreach($arr as $val){
    swicth ($val) {
        case: 'Лучшие': $result[] = 'best'; break;
        case: 'Аеро': $result[] = 'aero'; break;
        case: 'Все': $result[] = 'all'; break;
        default: $result[] = $val; 
    }
}
$output = implode(",", $result);
return $output;
Вызов:
[[!snippet? &input=`[[+tv.name]]`]]
Aleksandr Huz
19 января 2018, 12:01
0
Тогда я тоже поделюсь своим вариантом. Мне тоже нравится MinifyX, но сторонние библиотеки я подключаю отдельно. Надоело подключать их вручную, поэтому переместил все в MinifyX.

Добавил параметр
'modules' => 'jquery,lazysizes,magnific,sweetalert,slick'
а в сниппете:
$modules = $modx->getOption('modules', $scriptProperties, '', true);

$arr_modules = explode(',',$modules);
foreach ($arr_modules as $value){
    
    $moduleCss = $value . 'Css';
    $pathCss = $modx->getOption($moduleCss, $scriptProperties, '', true);
    if( $pathCss != '' ){
        $link = '<link rel="preload" href="'.$pathCss.'" as="style" '.'onload="this.rel='."'".stylesheet ."'".'"'.' >';
        $modx->regClientStartupHTMLBlock($link);
    }

    $moduleJs = $value . 'Js';
    $pathJs = $modx->getOption($moduleJs, $scriptProperties, '', true);
    if( $pathJs != '' ){
        $link = '<link rel="preload" href="'.$pathJs.'" as="script">';
        $script = '<script src="'.$pathJs.'" '.$attrJs.'></script>';
        $modx->regClientStartupHTMLBlock($link.$script);
    }
        	
    
}
Пути к файлам определяются в параметрах сниппета.
Aleksandr Huz
16 января 2018, 13:17
0
Можно сделать так:
Лучшие||Аеро||Все
А при выводе можно создать модификатор, который будет менять значение.
Aleksandr Huz
16 декабря 2017, 18:38
0
Илья, все подробно расписал про siteExtra
Aleksandr Huz
06 декабря 2017, 20:33
2
+2
Попробуйте так:
{$_modx->runSnippet('!pdoResources',[
	'parent'	=> 0,
	'limit'  	=>  $limit ?: 6
])}
Aleksandr Huz
22 ноября 2017, 11:03
0
Паша, а как выводить прозрачные картинки через phpThumbOn?
pthumb по умолчанию выводит.
Aleksandr Huz
20 ноября 2017, 21:21
0
Это чанк для авторизованных пользователей, по умолчанию там ссылка для выхода, но в этот чанк можно поместить любую информацию, например ссылку на личный кабинет.

В статье Михаила расписано как можно еще узнать гость это или нет и использовать где угодно.

Человек написал:
И проблема в том, что в дополнении нет такого сниппета, который это может отслеживать.
я хотел донести до него, что такой сниппет есть.

Aleksandr Huz
20 ноября 2017, 12:54
+1
Вы ошибаетесь.
вот документация — docs.modx.com/extras/revo/login/login.login
Вот запуск сниппета:
[[!Login? &loginTpl=`lgnLoginTpl` &logoutTpl=`lgnLogoutTpl`]]
в чанке lgnLoginTpl вставляете ссылки на вход и регистрацию, а в lgnLogoutTpl на личный кабинет.