Роман Воропаев (Volk)

Роман Воропаев (Volk)

С нами с 03 декабря 2015; Место в рейтинге пользователей: #80
shtyrman
12 декабря 2018, 09:45
1
0
Это все понятно, я про бэк.
Николай пилите лучше дальше статьи по фронту и бэку. Я читал их у вас. А сейчас не понятно, что у вас на ресурсе. Получается типа доска объявлений.
И касательно фронта.
Имея продолжительный опыт с реактом, думали уйти от этого кривого конструктора в сторону angular или vue?
Владимир
05 июня 2018, 12:01
1
0
спасибо, все работает замечательно

Единственный момент, если у вас есть вариант оплаты Наличными при получении, нужно вот здесь

elseif ($payment = $this->modx->getObject('msPayment',
	array('id' => $order->get('payment'), 'active' => 1))
)
заменить на

elseif ($payment = $this->modx->getObject('msPayment',
	array('id' => $order->get('payment'), 'active' => 1) && $order->get('payment') != 1)
			)
где 1 — ID оплаты Наличными при получении
Evgeny
21 мая 2018, 09:12
2
+1
я так вывожу:

Бонусов: [[!GetUserBonuses]]

Снипет GetUserBonuses
<?php
$msCustomerProfile = $modx->getObject('msCustomerProfile', $modx->user->id);
return $msCustomerProfile->account;
Константин Ильин
20 апреля 2018, 12:32
2
+1
Васлий, сниппет устраивает и много раз выручал, но wrapper не поддерживает @INLINE
{$_modx->runSnippet("AjaxSnippet",[
                'snippet' => 'pdoResources',
		'parents' => 47,
                'level' => 1,
                'limit' => 15,
                'includeTVs' => 'preview_img',
                'tpl' => 'tag_doors',
                'prepareSnippet' => 'pdoShopFront',
                'wrapper' => '@INLINE <div id="[[+key]] "class="owlCarousel ajax-snippet"></div>'
            ])}
joxi.ru/ZrJO5LJI9X0K7m

14, 15 строки, подключил парсер pdoTools
$pdo = $modx->getService('pdoTools');
if (!empty($wrapper)) {$wrapper = $pdo->parseChunk($wrapper);}
Волков Николай
07 апреля 2018, 18:56
1
0
А и я ещё забыл про service-worker и возможности его для работы сайтов из оффлайна и кэширование на стороне клиента. В случае раздела документации благодаря ему можно получить в итоге некий аналог приложения из iStore или Google Play. В прямом смысле добавляется в меню с приложениями отдельная иконка и запускается все без интернета из кэша. Очень серьёзная технология, но нужны знания.
Волков Николай
07 апреля 2018, 18:48
3
+5
Из наиболее простых:
1) PostCSS и autoprefixer => в опциях указывается для каких браузеров и их версий необходима поддержка и в результате для них автоматически добавляются все необходимые версии правил с префиксами/хуки. Вот пример для bootstrap4

Всего нескольких строк добавить нужно.
2) BrowserSync и LiveReload => запускается простой локальный сервер с разрабатываемым сайтом и можно в отдельной вкладке смотреть текущие результаты работы. Более того, когда вносятся какие-либо изменения происходит автоматическое обновление. То есть поменял значение переменной в SCSS, а в браузере уже сразу видишь, что будет в результате. Про постоянные CTRL/CMD + F5 можно забыть. Очень удобно.
3) PurifyCSS => анализ страниц и удаление неиспользуемых правил из CSS. Тут все очевидно надеюсь.
4) Polyfill => Добавление поддержки возможностей новых стандартов в старые версии браузеров. Как пример, shim добавляющий в IE поддержку HTML5. На серьезных сайтах это важно, т.к. в них используются fetch, Promise, стрелочные функции и т.д.
5) генераторы favicon и manifest. Тупо указывается файл с иконкой (хотя в SVG) + описываются название и т.п характеристики сайта и автоматически в html добавляется все нужные метатеги и строки. К примеру, как на картинке ниже:

6) автоматическая обработка картинок + добавление Retina и т.п. версий, как в плане файлов, так и атрибутов в HTML
7) генерация шрифтов из какого-либо формата во все используемые в web, к примеру woff, woff2, eot и т.д. Возможно, что тут и не надо, но в тех случаях, когда сталкиваешься — очень удобно.

Ну и много-премного другого. Выше просто несколько пунктов, которые реализуются добавлением нескольких строк и установкой из репозитория соответствующих пакетов. По большей степени они для автоматизации, но тем не менее результат в итоге очень приятный. Ну и это детский сад конечно все, т.к. я для Gulp перечислил, что помню. Если перейти на WebPack и начать пользоваться модульностью… Вот тут уже весело ибо модульный CSS благодаря PostCSS, автоматическая генерация чанков, React, Асинхронная загрузка абсолютно всего и в том числе стилей, Polymer с кастомным html вроде iron-icon и т.д. но знаний нужно прилично уже.
Илья Уткин
20 марта 2018, 16:07
2
0
Создать свой приватный репозиторий и разместить пакет в нём.

Владимир
28 февраля 2018, 11:00
2
0
вот еще вариант sweetalert2.github.io/ приятных и функциональных (дизайн сразу вписывается в часто решаемые задачи), если вдруг выбор уведомлений далее будет реализован
Михаил
20 декабря 2017, 06:34
2
0
<?php

switch($modx->event->name){
    case 'msOnBeforeAddToCart':
        $tmp = $cart->get();
    
        
        if(!empty($tmp)){
            $modx->event->output('Больше одного товара нельзя');
        }
        
        break;
        
    case 'msOnChangeInCart':
        
        $tmp = $cart->get();
        $tmp[$key]['count'] = 1;
        $cart->set($tmp);
        
        $modx->event->output('Количество только 1');
        
        break;
}