Здоров Александр

Здоров Александр

С нами с 31 октября 2015; Место в рейтинге пользователей: #76
Волков Николай
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 и т.д. но знаний нужно прилично уже.
Александр
10 сентября 2017, 17:11
2
+2
{if $_modx->resource.class_key == 'msProduct'}
   {$_modx->runSnippet('ms2Gallery')}
{else}
  {$_modx->resource.content}	
{/if}
Василий Наумкин
13 июля 2017, 11:46
6
+5
Гораздо проще и лучше просто вызвать свой скрипт после default.js от ms2 и перезаписать там объект miniShop2.Message:
miniShop2.Message = {
	success: function() {},
	error: function() {},
	info: function() {},
};

В modstore.pro, например, сделано вообще вот так:
miniShop2.Message = App.utils.Message;
Поэтому все уведомления от ms2 работают через общую систему уведомлений сайта.
Сергей Водолагин
19 июня 2017, 18:43
8
+1
Вот друзья помогли (так как глубина от родителей до нужных ресурсов от 1 до 5 вот решение)
[[pdoResources?
    &parents=`4`
    &limit=`100`
    &sortby=`{ "pm5":"ASC","pm4":"ASC", "pm3":"ASC", "pm2":"ASC", "pm1":"ASC" }`
    &where=`{ "template": 10 }`
    &tpl=`tplSklad`
    &leftJoin=`{
        "p1": {
            "class": "modResource",
            "on": "p1.id = modResource.id"
        },
        "p2": {
            "class": "modResource",
            "on": "p2.id = p1.parent"
        },
        "p3": {
            "class": "modResource",
            "on": "p3.id = p2.parent"
        },
        "p4": {
            "class": "modResource",
            "on": "p4.id = p3.parent"
        },
        "p5": {
            "class": "modResource",
            "on": "p5.id = p4.parent"
        }
    }`
    &select=`{
        "modResource": "*",
        "p1": "COALESCE(p1.menuindex, 999999999) as pm1",
        "p2": "COALESCE(p2.menuindex, 999999999) as pm2",
        "p3": "COALESCE(p3.menuindex, 999999999) as pm3",
        "p4": "COALESCE(p4.menuindex, 999999999) as pm4",
        "p5": "COALESCE(p5.menuindex, 999999999) as pm5"
    }`
]]
Сергей Шлоков
18 апреля 2017, 11:07
2
+2
Вообще для ориентации удобней хлебные крошки. Кто-то вроде делал пакет с ними.
Для выделения добавьте в файл assets\components\admintools\css\mgr\themes\dark.css
.dark-theme #modx-leftbar-tabpanel .x-tree-node .x-tree-selected,
.dark-theme #modx-leftbar-tabpanel .x-tree-node .x-tree-selected span,
.dark-theme #modx-leftbar-tabpanel .x-tree-node .x-tree-selected .icon {
	background-color: #343b4c;
}
Максим Кузнецов
25 марта 2017, 19:58
1
+1
[[+address.receiver]] — Покупатель
[[+address.phone]] — Телефон
[[+user.email]] — Почта
[[+address.index]] — Индекс
[[+address.region]] — Область
[[+address.city]] — Город
[[+address.street]] — Улица
[[+address.building]] — Дом
[[+address.room]] — Квартира
[[+delivery.name]] — Способ доставки
[[+payment.name]] — Тип оплаты
[[+address.comment]] — Комментрарий
Владимир
05 марта 2017, 18:36
1
0
… id главной 1
{if $_modx->resource.id ==1}
{set $mycustom= 'class1'}
{else}
{set $mycustom= 'class2'}
{/if}

<div class="{$mycustom}" > *** </div>
Василий Наумкин
13 января 2017, 08:39
1
+2
github.com/klkvsk/fenom-phpstorm-plugin

Далеко не всё верно подсвечивает, но лучше, чем ничего.
charset
21 декабря 2016, 22:29
2
+1
уже не нужно. Нашел в коде, если кому интересно:

Телефон покупателя: {$address.phone}
Email покупателя: {$user.email}
Способ доставки: {$delivery.name}
Тип оплаты: {$payment.name}
Комментарий к заказу: {$address.comment}