Семинар Андрея Шульгина для установщиков ГБО — скрипт CSS
30-31 октября 2018 в г. Киев Андрей Шульгин провёл семинар по диагностике автомобилей перед и после установки газобалонного оборудования с помощью его методик и USB Autoscope.
В данном видео рассмотрен такой инструмент как скрипта CSS, который позволяет:
— оценить статическую и динамическую компрессию для каждого из цилиндров двигателя;
— выявить неисправности в системе зажигания;
— оценить состояние топливных форсунок;
— получить характеристику подсистемы опережения зажигания;
— выявить биение задающего зубчатого диска;
— выявить пропущенные и согнутые зубья задающего зубчатого диска.
Комментарии отсутствуют
Как написать скрипт css андрея шульгина
Скрипт CSS для USB Autoscope III
©Алексей Пахомов, (aka Is_18) Ижевск

Помимо классических общепризнанных методик диагностики автомобилей, предусматривающих использование широко известных приспособлений и приборов, существуют так называемые альтернативные методики. Они не подменяют собой классические, а скорее дополняют их. Использование альтернативных методик можно сравнить с применением инструмента: вывернуть шуруп можно отверткой, можно шуруповертом, а можно и обычной дрелью. Применение шуруповерта не подменяет собой использование отвертки, и наоборот. Другое дело, что шуруповерт ускоряет и облегчает процесс, но не всегда и не везде он применим.
То же самое можно сказать и об альтернативных методиках диагностики двигателя. Они в большинстве случаев ускоряют и упрощают работу, но чтобы ими пользоваться, необходимо понять их и научиться применять. Далее речь пойдет о методиках, широко известных как тесты Андрея Шульгина, названные так по имени их автора, диагноста из украинского города Черновцы. Изначально они были созданы как дополнительные модули (скрипты) для мотортестера USB Autoscope, но позже были реализованы и в мотортестере MotoDoc.
Классическая методика диагностики в числе прочего предусматривает:
• проверку компрессии в каждом цилиндре;
• проверку свечей и катушек зажигания;
• тестирование топливных форсунок на стенде;
• контроль правильности установки распределительного вала;
• при необходимости установку УОЗ на холостом ходу и на повышенной частоте вращения;
• измерение противодавление катализатора.
Все эти операции методика Андрея Шульгина позволяет выполнить в течение нескольких минут. При этом можно убедиться, что степень сжатия данного двигателя отвечает заводским параметрам и выяснить, что зубчатый венец не имеет значительного биения, не скручен на шпонке и все зубья диска на месте и не погнуты.
Говоря о тестах Андрея Шульгина, можно выделить две группы измерений: анализ информации, получаемой от датчика положения коленчатого вала и анализ информации, получаемой от датчика давления в цилиндре.
Соответственно, существует два скрипта:
• CSS (CrankShaft Sensor)
• Рх.
Для выполнения теста необходимо снять осциллограмму датчика и запустить соответствующий скрипт. Он автоматически произведет все расчеты и выдаст результат в графическом виде. Рассмотрим принцип функционирования скриптов.
Скрипт CSS
Идея работы этого скрипта проста, как и все гениальное и заключается в следующем. После прохождения ВМТ сжатия в результате воспламенения смеси поршень и соответственно, коленчатый вал получают ускорение. Это ускорение однозначно характеризует эффективность, с которой отработал цилиндр. Соответственно, мы можем ввести некое условное понятие эффективности и отобразить его графически в виде точки:

Еще раз обратим внимание на то, что речь идет об условной эффективности, оценить ее в процентах, киловаттах, лошадиных силах и т.п. нельзя. Она измеряется по ускорению коленчатого вала после воспламенения смеси, с использованием сигнала ДПКВ или какого-либо другого датчика вращения, но об этом поговорим позже.
Итак, составляется график эффективности работы каждого цилиндра, на котором каждая точка – это мгновенная эффективность, то есть характеристика того, как отработал данный цилиндр в данный момент. График представляет собой некую ломаную линию. Если цилиндр в момент измерения отработал нормально, то соответствующая точка графика будет располагаться выше уровня нуля, в противном случае график окажется ниже этого уровня. Количество графиков соответствует числу цилиндров, и это дает возможность оценить работу двигателя визуально и сделать важные выводы. Серым цветом отображается график частоты вращения двигателя, он нужен для удобства анализа.
А теперь самое главное: имеющиеся дефекты того или иного рода проявляются на графике по-разному. Чтобы понять, как и какие именно выводы можно сделать из графиков, рассмотрим несколько тезисов.
1. Предположим, что с двигателем все в порядке. В этом случае все построенные графики должны быть достаточно близкими друг к другу на всех этапах тестирования.
2. Проблемы в системе зажигания при работе мотора проявляются в виде спорадических пропусков воспламенения и в виде пропусков воспламенения в момент резкого открытия дроссельной заслонки. При открытии дроссельной заслонки увеличивается наполнение цилиндров воздухом, повышается напряжение пробоя, и, как следствие, проявляются дефекты системы зажигания. Поэтому график работы цилиндра, имеющего проблемы в системе зажигания, будет иметь периодические провалы ниже уровня нуля при работе на холостом ходу либо явные провалы эффективности при резком наборе оборотов. Иначе говоря, при наличии проблем в системе зажигания эффективность цилиндра не может снизиться равномерно: цилиндр либо отработал, либо нет. Поэтому точки графика располагаются либо выше нуля, либо ниже нуля, причем эти перескоки происходят резко.
3. Предположим наличие проблем в системе топливоподачи. Например, различна производительность форсунок вследствие их засорения. В этом случае график проблемного цилиндра (или цилиндров) окажется ниже остальных, вследствие более низкой эффективности работы из-за неоптимального состава смеси. Графики оставшихся цилиндров, наоборот, поднимутся в результате возросшей нагрузки на эти цилиндры. Следует заметить, что график работы дефектного цилиндра будет стабильным, без провалов ниже нуля (если нет одновременно проблем с системой зажигания). Именно так проявляют себя дефекты топливной системы в отличие от дефектов зажигания, возникающих спорадически либо под нагрузкой:

4. Наконец, тест дает возможность оценить состояние механической части двигателя. Для этого нужно при работающем двигателе нажать на педаль акселератора до упора и, когда частота вращения вырастет до 3000 – 4000 rpm, выключить зажигание, не отпуская педаль акселератора. Сразу после выключения зажигания частота вращения коленчатого вала начнет снижаться, но ещё какое-то время двигатель вращается по инерции, продолжая засасывать в цилиндры воздух и сжимать его. Искрообразования и подачи топлива при этом не происходит. В результате сжатый в цилиндре воздух после прохождения поршнем ВМТ работает подобно пружине, подталкивая коленчатый вал. Чем большее количество воздуха находится в цилиндре в этот момент, тем более сильный возникает толчок. Таким образом, рассчитанная эффективность в этом случае зависит только от состояния механической части двигателя и не зависит ни от состояния системы зажигания, ни от состояния системы подачи топлива. В результате график проблемного цилиндра на конечном участке замедления будет расположен ниже остальных. Почему именно на конечном участке? Потому, что при достаточно высоких оборотах утечки воздуха из цилиндра сказываются меньше, чем при низких оборотах, когда вследствие медленного движения поршня возрастает время для возможных утечек:

Исходя из описанной модели теста, определим, какая информация нужна программе для работы и соответственно, какие необходимы подключения.
1. Для считывания информации о скорости вращения двигателя необходимо подключить мотортестер к датчику вращения. Им может служить датчик положения коленчатого вала двигателя. Следует отметить, что точность измерения зависит от количества зубьев задающего диска: чем их больше, тем точнее измерение. По этой же причине датчиком вращения не может служить датчик на эффекте Холла, так как число импульсов на оборот коленчатого вала в подавляющем большинстве систем с такими датчиками будет недостаточным. В случае, когда необходимый датчик вращения отсутствует, в качестве такового можно использовать любой индуктивный датчик, поднесенный к венцу маховика, с которым при запуске двигателя контактирует стартер. Количество зубьев венца при этом не имеет значения: программа вычислит его сама. То же самое относится и к задающему диску двигателя: и количество зубьев, и пропуск зубьев будут определены автоматически. Очень важный момент заключается в том, что маховик, с которого считывается скорость вращения, должен быть жестко установлен на коленчатом валу. Ни распределительный, ни промежуточный валы в качестве источника информации не годятся, так как не имеют жесткой связи с коленчатым валом и соответственно, в осциллограмму будут внесены искажения.
2. Для корректного отображения номеров цилиндров программе необходима привязка к первому цилиндру, а также информация об угле импульса привязки относительно ВМТ. Ее можно осуществить разными способами: используя высоковольтный датчик первого цилиндра, в случае системы COP – подключившись к первичной цепи катушки зажигания либо к управляющему импульсу, даже импульс форсунки или датчика положения распределительного вала можно использовать как источник информации о номере цилиндра. Но в этом случае нужно точно ввести угол опережения положительного фронта импульса по отношению к ВМТ первого цилиндра. Поэтому программа запросит угол опережения синхроимпульса относительно ВМТ. В том случае, если синхронизация осуществляется по импульсу высокого напряжения, необходимо задать первоначальный УОЗ, который чаще всего находится в пределах 0..15 градусов. Здесь не требуется высокая точность, +-10 градусов вполне достаточно.
3. Совершенно очевидно, что программе необходима информация о количестве и порядке работы цилиндров. Она вводится диагностом вручную.

Для выполнения теста необходимо подключить датчик положения коленчатого вала к первому каналу мотортестера, затем установить адаптер зажигания и датчик синхронизации по первому цилиндру. В списке пользовательских настроек выбрать CSS и включить запись данных. Запустить двигатель, плавно поднять частоту вращения примерно до 3000 об/мин и отпустить заслонку. Затем резко открыть дроссельную заслонку и, когда частота вращения достигнет 3000 – 4000 об/мин, выключить зажигание, удерживая заслонку открытой. В случае электронного дросселя можно воспользоваться другим способом, например, отключить форсунки.
После проведения теста остановить запись данных и выполнить скрипт нажатием на соответствующую кнопку панели инструментов.
Первая вкладка, которая возникнет в результате расчетов скрипта, это вкладка Report.

Она отображает рассчитанную скриптом формулу задающего диска и зуб ВМТ первого цилиндра.
Следующая вкладка – Эффективность. Она представляет собой те самые графики эффективности, о которых шла речь выше.

Вкладка Сжатие служит для оценки состояния дизельных двигателей.
Вкладка Опережение относительно ВМТ характеризует угол опережения зажигания относительно ВМТ. В большинстве современных систем управления двигателем зависимость УОЗ от частоты вращения носит очень сложный характер, и сделать какие-либо серьезные выводы можно лишь на двигателях, оснащенных механическим распределителем зажигания (трамблером).
Вкладка Зубчатый диск позволяет оценить состояние задающего зубчатого венца двигателя. Зеленый график отражает размах сигнала ДПКВ, зависящий в основном от зазора между датчиком и венцом. Красный график – форма зубчатого венца. Венец тоже может иметь дефекты, к которым можно отнести:
• погнутые либо выбитые зубья;
• радиальное биение диска;
• слишком большой зазор между венцом и ДПКВ.

Если красный график укладывается в обозначенный двумя розовыми окружностями допуск, то задающий диск считается годным. При выходе за пределы допуска возможны сбои в синхронизации.
Фактически скрипт, получив осциллограмму датчика положения коленчатого вала, автоматически рассчитывает форму зубчатого венца и определяет его формулу. Чаще всего это формула 60 – 2, но может быть и 36 – 1, и 60 – 2‑2 и любая другая, даже без пропуска зубьев. Рассчитав форму венца, скрипт в дальнейшем начинает с ним работать.
Несмотря на все преимущества описанного метода диагностики, он имеет и недостатки. Первый из них состоит в том, что не все зубчатые венцы обрабатываются программой достаточно корректно. Для наилучшего отображения необходимо, чтобы зубчатый венец имел как можно больше зубьев. Идеальный вариант – венец маховика, с которым работает стартер. Но иногда формула зубчатого венца (например, Subaru) не позволяет построить графики с высокой точностью.
Второй недостаток – невозможность работы с двигателями, имеющими длинный коленчатый вал. В этом случае за счет упругих деформаций коленвала возникает несоответствие толчка от цилиндра скорости зубчатого венца ДПКВ. Это вносит в измерения значительную погрешность: эффективность цилиндра, находящегося ближе всех к венцу, отображается корректно, а самого дальнего от венца – отображается так, как будто она ниже, чем есть на самом деле.
Вот таким образом в общих чертах выглядит альтернативная методика диагностики Андрея Шульгина, называемая скриптом CSS. В следующей статье цикла речь пойдет о скрипте Px, обрабатывающем сигнал датчика давления в цилиндре.
Как написать скрипт css андрея шульгина
Альтернативные методики диагностики А. Шульгина. Часть 1
Они не подменяют собой классические, а скорее дополняют их. Использование альтернативных методик можно сравнить с применением инструмента: вывернуть шуруп можно отверткой, можно шуруповертом, а можно и обычной дрелью. Применение шуруповерта не подменяет собой использование отвертки, и наоборот. Другое дело, что шуруповерт ускоряет и облегчает процесс, но не всегда и не везде он применим.
То же самое можно сказать и об альтернативных методиках диагностики двигателя. Они в большинстве случаев ускоряют и упрощают работу, но чтобы ими пользоваться, необходимо понять их и научиться применять.
Тесты Андрея Шульгина
Далее речь пойдет о методиках, широко известных как тесты Андрея Шульгина, названные так по имени их автора, диагноста из украинского города Черновцы. Изначально они были созданы как дополнительные модули (скрипты) для мотортестера USB Autoscope, но позже были реализованы и в мотортестере MotoDoc.
Классическая методика диагностики в числе прочего предусматривает:
- проверку компрессии в каждом цилиндре;
- проверку свечей и катушек зажигания;
- тестирование топливных форсунок на стенде;
- контроль правильности установки распределительного вала;
- при необходимости установку УОЗ на холостом ходу и на повышенной частоте вращения;
- измерение противодавление катализатора.
Все эти операции методика Андрея Шульгина позволяет выполнить в течение нескольких минут. При этом можно убедиться, что степень сжатия данного двигателя отвечает заводским параметрам и выяснить, что зубчатый венец не имеет значительного биения, не скручен на шпонке и все зубья диска на месте и не погнуты.
Говоря о тестах Андрея Шульгина, можно выделить две группы измерений: анализ информации, получаемой от датчика положения коленчатого вала и анализ информации, получаемой от датчика давления в цилиндре. Соответственно, существует два скрипта: Css (CrankShaft Sensor) и Рх. Для выполнения теста необходимо снять осциллограмму датчика и запустить соответствующий скрипт. Он автоматически произведет все расчеты и выдаст результат в графическом виде.
Рассмотрим принцип функционирования скриптов.
Скрипт Css

Идея работы этого скрипта проста, как и все гениальное и заключается в следующем. После прохождения ВМТ сжатия в результате воспламенения смеси поршень и соответственно, коленчатый вал получают ускорение. Это ускорение однозначно характеризует эффективность, с которой отработал цилиндр. Соответственно, мы можем ввести некое условное понятие эффективности и отобразить его графически в виде точки:
Еще раз обратим внимание на то, что речь идет об условной эффективности, оценить ее в процентах, киловаттах, лошадиных силах и т.п. нельзя. Она измеряется по ускорению коленчатого вала после воспламенения смеси, с использованием сигнала ДПКВ или какого-либо другого датчика вращения, но об этом поговорим позже.
Итак, составляется график эффективности работы каждого цилиндра, на котором каждая точка – это мгновенная эффективность, то есть характеристика того, как отработал данный цилиндр в данный момент. График представляет собой некую ломаную линию.
Если цилиндр в момент измерения отработал нормально, то соответствующая точка графика будет располагаться выше уровня нуля, в противном случае график окажется ниже этого уровня. Количество графиков соответствует числу цилиндров, и это дает возможность оценить работу двигателя визуально и сделать важные выводы. Серым цветом отображается график частоты вращения двигателя, он нужен для удобства анализа.
А теперь самое главное: имеющиеся дефекты того или иного рода проявляются на графике по-разному. Чтобы понять, как и какие именно выводы можно сделать из графиков, рассмотрим несколько тезисов.
1. Предположим, что с двигателем все в порядке. В этом случае все построенные графики должны быть достаточно близкими друг к другу на всех этапах тестирования.
2. Проблемы в системе зажигания при работе мотора проявляются в виде спорадических пропусков воспламенения и в виде пропусков воспламенения в момент резкого открытия дроссельной заслонки.
При открытии дроссельной заслонки увеличивается наполнение цилиндров воздухом, повышается напряжение пробоя, и, как следствие, проявляются дефекты системы зажигания. Поэтому график работы цилиндра, имеющего проблемы в системе зажигания, будет иметь периодические провалы ниже уровня нуля при работе на холостом ходу либо явные провалы эффективности при резком наборе оборотов.
Попросту говоря, при наличии проблем в системе зажигания эффективность цилиндра не может снизиться равномерно: цилиндр либо отработал, либо нет. Поэтому точки графика располагаются либо выше нуля, либо ниже нуля, причем эти перескоки происходят резко.
3. Предположим наличие проблем в системе топливоподачи. Например, различна производительность форсунок вследствие их засорения. В этом случае график проблемного цилиндра (или цилиндров) окажется ниже остальных, вследствие более низкой эффективности работы из-за неоптимального состава смеси.

Графики оставшихся цилиндров, наоборот, поднимутся в результате возросшей нагрузки на эти цилиндры. Следует заметить, что график работы дефектного цилиндра будет стабильным, без провалов ниже нуля (если нет одновременно проблем с системой зажигания). Именно так проявляют себя дефекты топливной системы в отличие от дефектов зажигания, возникающих спорадически либо под нагрузкой:
4. Наконец, тест дает возможность оценить состояние механической части двигателя. Для этого нужно при работающем двигателе нажать на педаль акселератора до упора и, когда частота вращения вырастет до 3000-4000 rpm, выключить зажигание, не отпуская педаль акселератора.
Сразу после выключения зажигания частота вращения коленчатого вала начнет снижаться, но ещё какое-то время двигатель вращается по инерции, продолжая засасывать в цилиндры воздух и сжимать его. Искрообразования и подачи топлива при этом не происходит. В результате сжатый в цилиндре воздух после прохождения поршнем ВМТ работает подобно пружине, подталкивая коленчатый вал.
Чем большее количество воздуха находится в цилиндре в этот момент, тем более сильный возникает толчок. Таким образом, рассчитанная эффективность в этом случае зависит только от состояния механической части двигателя и не зависит ни от состояния системы зажигания, ни от состояния системы подачи топлива.

В результате график проблемного цилиндра на конечном участке замедления будет расположен ниже остальных. Почему именно на конечном участке? Потому, что при достаточно высоких оборотах утечки воздуха из цилиндра сказываются меньше, чем при низких оборотах, когда вследствие медленного движения поршня возрастает время для возможных утечек:
Исходя из описанной модели теста, определим, какая информация нужна программе для работы и соответственно, какие необходимы подключения.
1. Для считывания информации о скорости вращения двигателя необходимо подключить мотортестер к датчику вращения. Им может служить датчик положения коленчатого вала двигателя.
Точность измерения зависит от количества зубьев задающего диска: чем их больше, тем точнее измерение. По этой же причине датчиком вращения не может служить датчик на эффекте Холла, так как число импульсов на оборот коленчатого вала в подавляющем большинстве систем с такими датчиками будет недостаточным.
В случае, когда необходимый датчик вращения отсутствует, в качестве такового можно использовать любой индуктивный датчик, поднесенный к венцу маховика, с которым при запуске двигателя контактирует стартер. Количество зубьев венца при этом не имеет значения: программа вычислит его сама.
То же самое относится и к задающему диску двигателя: и количество зубьев, и пропуск зубьев будут определены автоматически. Очень важный момент заключается в том, что маховик, с которого считывается скорость вращения, должен быть жестко установлен на коленчатом валу. Ни распределительный, ни промежуточный валы в качестве источника информации не годятся, так как не имеют жесткой связи с коленчатым валом и соответственно, в осциллограмму будут внесены искажения.
2. Для корректного отображения номеров цилиндров программе необходима привязка к первому цилиндру, а также информация об угле импульса привязки относительно ВМТ.
Ее можно осуществить разными способами: используя высоковольтный датчик первого цилиндра, в случае системы COP — подключившись к первичной цепи катушки зажигания либо к управляющему импульсу, даже импульс форсунки или датчика положения распределительного вала можно использовать как источник информации о номере цилиндра.
В этом случае нужно точно ввести угол опережения положительного фронта импульса по отношению к ВМТ первого цилиндра. Поэтому программа запросит угол опережения синхроимпульса относительно ВМТ. В том случае, если синхронизация осуществляется по импульсу высокого напряжения, необходимо задать первоначальный УОЗ, который чаще всего находится в пределах 0..15 градусов. Здесь не требуется высокая точность, +-10 градусов вполне достаточно.

Совершенно очевидно, что программе необходима информация о количестве и порядке работы цилиндров. Она вводится диагностом вручную:
Для выполнения теста необходимо подключить датчик положения коленчатого вала к первому каналу мотортестера, затем установить адаптер зажигания и датчик синхронизации по первому цилиндру.
В списке пользовательских настроек выбрать Css и включить запись данных. Запустить двигатель, плавно поднять частоту вращения примерно до 3000 об/мин и отпустить заслонку. Затем резко открыть дроссельную заслонку и, когда частота вращения достигнет 3000-4000 об/мин, выключить зажигание, удерживая заслонку открытой. В случае электронного дросселя можно воспользоваться другим способом, например, отключить форсунки.
После проведения теста остановить запись данных и выполнить скрипт нажатием на соответствующую кнопку панели инструментов.

Первая вкладка, которая возникнет в результате расчетов скрипта, это вкладка Report.
Она отображает рассчитанную скриптом формулу задающего диска и зуб ВМТ первого цилиндра.

Следующая вкладка – Эффективность. Она представляет собой те самые графики эффективности, о которых шла речь выше.
Вкладка Сжатие служит для оценки состояния дизельных двигателей.
Вкладка Опережение относительно ВМТ характеризует угол опережения зажигания относительно ВМТ. В большинстве современных систем управления двигателем зависимость УОЗ от частоты вращения носит очень сложный характер, и сделать какие-либо серьезные выводы можно лишь на двигателях, оснащенных механическим распределителем зажигания (трамблером).
Вкладка Зубчатый диск позволяет оценить состояние задающего зубчатого венца двигателя. Зеленый график отражает размах сигнала ДПКВ, зависящий в основном от зазора между датчиком и венцом. Красный график – форма зубчатого венца.
Венец тоже может иметь дефекты, к которым можно отнести:
- погнутые либо выбитые зубья;
- радиальное биение диска;
- слишком большой зазор между венцом и ДПКВ.


Если красный график укладывается в обозначенный двумя розовыми окружностями допуск, то задающий диск считается годным. При выходе за пределы допуска возможны сбои в синхронизации:
Фактически скрипт, получив осциллограмму датчика положения коленчатого вала, автоматически рассчитывает форму зубчатого венца и определяет его формулу. Чаще всего это формула 60-2, но может быть и 36-1, и 60-2-2 и любая другая, даже без пропуска зубьев. Рассчитав форму венца, скрипт в дальнейшем начинает с ним работать.
Несмотря на все преимущества описанного метода диагностики, он имеет и недостатки.
Первый недостаток состоит в том, что не все зубчатые венцы обрабатываются программой достаточно корректно.
Для наилучшего отображения необходимо, чтобы зубчатый венец имел как можно больше зубьев. Идеальный вариант – венец маховика, с которым работает стартер. Но иногда формула зубчатого венца (например, Subaru) не позволяет построить графики с высокой точностью.
Второй недостаток – невозможность работы с двигателями, имеющими длинный коленчатый вал. В этом случае за счет упругих деформаций коленвала возникает несоответствие толчка от цилиндра скорости зубчатого венца ДПКВ. Это вносит в измерения значительную погрешность: эффективность цилиндра, находящегося ближе всех к венцу, отображается корректно, а самого дальнего от венца – отображается так, как будто она ниже, чем есть на самом деле.
Вот таким образом в общих чертах выглядит альтернативная методика диагностики Андрея Шульгина, называемая скриптом Css.
Скрипт CSS Андрея Шульгина
Вам не понравилось видео. Спасибо за то что поделились своим мнением!
Диагностика двигателя при помощи USB Autoscope и скрипта CSS Андрея Шульгина
Подробнее — http://injectorservice.com.ua/script_css.php#more_info
Позволяет:
— оценить статическую и динамическую компрессию для каждого из цилиндров двигателя;
— выявить неисправности в системе зажигания;
— оценить состояние топливных форсунок;
— получить характеристику подсистемы опережения зажигания;
— выявить биение задающего зубчатого диска;
— выявить пропущенные и согнутые зубья задающего зубчатого диска.
Делаю скрипт Андрея Шульгина CSS на дизеле 1983 года!
Здравствуйте.А у вас мотортестер Мтпро4.1?Ч то Вы можете сказать о нем?
Здравствуйте, у меня МТ-про 2.0 ,но сути не меняет — мне его хватает с головой для работы. Он своих денег стоит 150% !
Подскажите а как делаете перегазовки 3000 потом ,резко 3000 и глушите ?Класс ,снимите ещё по дизелям !очень мало кто снимает !
@palsw_garage спасибо .а другие в видео обычную делали как на бензине ,думаю не правильно
нужно делать после перегазовки удушение — перекрывать воздух и тогда скрипт правильно посчитает дизель. Это Шульгина нужно пересмотреть семинары ,уже точно не помню
Здравствуйте, датчик вибрации самодельный?
Надо попробывать два зуба с боку алюминевой фольгой закрыть
Очень равномерная работа дизеля по сравнению с бензиновым.
на бензинках всегда цилиндры скачут,на дизелях очень точный впрыск и тнвд ))
Супер красавчик. Я сам думал как же сделать если нет ни одного датчика я хотел шкив от жигулей нацепить
А что за распечатки я честно говоря не знаю что за распечатки
@Gocha Gamsahurdiya есть готовые распечатки для принтера
palsw_garage вообще да я этот вариант уже приготовил только вот канцелярским корректором не очень будет мне кажется а вот что лучше наносить на вал в качестве отражателя
Скрипт Px Андрея Шульгина

Самое милое видео за сегодня. Даже не хочется выключать. Очень приятные люди и очень приятно на них смотреть! У девочки очень хорошо поставлена речь, очень мило улыбается. У девочки с папою очень хорошие, теплые и дружеские отношения, что, к со.
Не нашел тут уровня 190, увы.
Ой, а я ожидала ужи вправду расскажут какой-то действенный рецепт из травок, например.) Все обыденно. Никуда не спешить- это способ жизни. Возможно, на острове такое сойдет, но не с нашим сумасшедшим ритмом жизни, когда боишься потерять ка.
Похожие публикации:
- Как изменить цвет выделения текста css
- Как изменить цвет текста в кнопке css
- Как установить градиент в css
- Как установить цвет фона в css
Как делать скрипт css посталовским 4
Диагностика двигателя при помощи скрипта CSS Андрея Шульгина

Принцип примерно такой — подключаемся к датчику коленвала и заводим машину, чтобы немного газануть, потом газануть мощно и заглушить двигатель не снимая ноги с педали газа… Все это записывается в специальный график для анализа. По тому наблюдению программой, как каждый цилиндр толкает коленвал и выстраивается картина маслом)

если коротко пояснить суть графика, то участок отмеченный 1 это работа на холостом ходу и немного разбежавшиеся цилиндры могут так себя вести из-за форсунок (посоветовал мне прочистить форсунки для профилактики). Даллее участок 2 немного газа и видно что все работают ровно и без сбоев. На участке 3 мощный газ и опять же равномерность работы цилиндров не вызывает опасений. 4 участок это уже когда нажали кнопку выключения и двигатель ещё остаточно работает — тоже все ОК. Не считая первого участка, работу двигателя оценили как отличную. Это радует)
Но ХХ то все равно трясет кузов… Далее интересная диагностика катушек показала один прикол, о котором в жизни не задумаешься — 3 из 4 катушек как бы в одной полярности, а одна (к слову может ещё родная) работает в обратной. Это и не плохо, но желательно все катушки иметь в одной полярности, точнее одинаковые. Хорошо что после замены 3-х катушек я не выбрасывал те и оказалась ещё одна такая же Beru. Установили и проверили снова — все в одной полярности и выдают примерно такую диаграмму

С трудом можно поверить, что это может как-то оказывать влияние на колотун авто, НО первое впечатление после поездки и работы на хх — вибрация если не пропала 100% то на 2/3 ослабла точно. Уже интересно) Посмотрим что покажет более длительное наблюдение…
_______________________________________________
Проверили заодно и Клипом — после севшего аккума было несколько ошибок, но ничего особенного… и по показаниям вроде не работает лямбда за катализатором… хз почему — катализатор на месте и ошибки нет. И опять же обратило внимание на себя давление в коллекторе — 492 мбар… уже давно говорили мне что оно завышенное, но у этого парня такой же движок в машине и он обещал проверить у себя тоже для сравнения…
К слову он собирается сделать себе чип-тюнинг — может и я потом попробую, услышав отзыв о работе чипованного двигателя…
Трюки CSS, которые сделают из вас ниндзя верстки

Сегодня я хочу рассказать вам о нескольких CSS-свойствах и значениях, которые редко упоминаются в специальной литературе, но, на мой вгляд, представляют определенный интерес с точки зрения скорости и качества разработки веб-интерфейсов.
Многие свойства, о которых пойдет речь, являются экспериментальными. Большинство из них поддерживаются всеми современными браузерами, однако, если вы решите использовать какое-либо из названных свойств в продакшне, не поленитесь зайти на Can I use и уточнить поддержку (недавно сильно расстроился, обнаружив, что Safari не поддерживает атрибут loading=»lazy» ).
Там, где можно обойтись сниппетом, я ограничусь кодом. Там, где потребуется визуализация, будет приведена ссылка на песочницу.
Я не стал делать примеры слишком красивыми, чтобы не затенять рассматриваемые свойства другими стилями.
Итак, вы готовы к нашему небольшому путешествию в удивительный и почти безграничный мир CSS? Тогда вперед.
grid + place-items
Здесь вы найдете полное визуальное руководство по Grid и Flexbox .
Данная техника позволяет выравнивать элементы по горизонтали и вертикали при помощи всего лишь двух строк кода.
place-items является сокращением для justify-items и align-items .
Это свойство может использоваться как в отношении одной, так и в отношении сразу нескольких (дочерних) ячеек.
flex + margin
Другой современный способ выравнивания элементов по горизонтали и вертикали заключается в сочетании display: flex и margin: auto .
Справедливости ради следует отметить, что тоже самое можно реализовать с помощью такого сниппета:
flex + gap
Раз уж мы заговорили о Flexbox , нельзя не упомянуть, что не так давно у нас появилась возможность добавлять отступ между flex-элементами с помощью свойства gap (этой возможности чертовски не хватало):
inline-flex
Данное свойство позволяет создавать строчные элементы, обладающие функциональностью Flexbox . Лучше один раз увидеть:
columns
Данная техника позволяет разделять текст на колонки. Свойство column-count определяет количество колонок, column-gap — отступ между колонками, column-rule — стили для вертикальной линии, разделяющей колонки.
Свойство columns является сокращением для column-count и column-width .
background-repeat
Свойство background-repeat определяет порядок заполнения фона указанным изображением. Значение round позволяет равномерно распределять изображения по всей ширине контейнера, а значение space добавляет между изображениями небольшой отступ:
background-blend-mode
Свойство background-blend-mode определяет порядок наложения фонового изображения и цвета (или нескольких фоновых изображений/цветов) друг на друга.
- color
- color-burn
- color-dodge
- darken
- difference
- exclusion
- hard-light
- hue
- lighten
- luminosity
- multiply
- overlay
- saturation
- screen
- soft-light
Когда-нибудь работали с Photoshop ? Тогда, думаю, вы понимаете, о чем идет речь.
Представим, что у нас есть черно-белое изображение, которое мы хотим использовать в качестве фона. Но при этом мы хотим, чтобы оно было цветным. Как нам этого добиться?
background-clip
Свойство background-clip определяет, как цвет фона или фоновое изображение выводятся под границами блока. На мой взгляд, самым интересным значением данного свойства является text :
filter
Свойство filter позволяет применять к элементам некоторые художественные эффекты.
- url() — svg-фильтр
- blur() — размытие
- brightness() — яркость
- contrast() — контрастность
- drop-shadow() — об этой функции поговорим отдельно
- grayscale() — обесцвечивание
- hue-rotate() — оттенок
- invert() — инверсия
- opacity() — прозрачность
- saturate() — насыщенность
- sepia() — сепия
Изменение цветовой темы (или схемы) сайта для ленивых:
Здесь вы найдете пример использования filter для реализации фильтров Instagram .
drop-shadow
Свойство filter со значением drop-shadow() , в отличие от похожего с точки зрения применяемого эффекта свойства box-shadow , позволяет добавлять тень к самому изображению (в формате PNG ), а не к блоку, в котором оно размещается.
object-fit
Свойство object-fit управляет соотношением сторон заменяемых элементов, таких как img и video , когда у них задана ширина или высота, а также способом масштабирования.
Значение scale-down , например, позволяет сохранять пропорции изображения независимо от размеров блока:
Свойство object-position определяет выравнивание контента выбранного замещаемого элемента внутри блока.
cursor
Знаете ли вы о том, что кроме иконок для курсора, предоставляемых браузером (например, cursor: pointer ), мы имеем возможность определять собственные изображения и svg?
scroll-behavior
Свойство scroll-behavior со значением smooth позволяет легко реализовать плавную прокрутку между секциями (разделами) страницы:
text-overflow
Свойство text-overflow со значением ellipsis позволяет добавлять . в конец текста при его выходе за пределы контейнера.
caret-color
Свойство caret-color позволяет определять цвет каретки — видимого маркера ( | ), указывающего на место вставки следующего символа.
scroll-snap
Группа свойств scroll-snap ( scroll-span-type , scroll-snap-align и scroll-snap-stop ) позволяет управлять поведением прокрутки. Данная группа свойств заслуживает отдельной статьи, но если кратко, то суть заключается в том, что в стилях определяются контрольные точки, при приближении к которым выполняется автопрокрутка:
Среди других возможностей scroll-snap можно назвать легкое создание слайдеров с помощью одного CSS .
supports
Правило @supports позволяет проверять поддержку браузером определенного свойства или свойств (или сочетания свойство/значение) перед их использованием.
Функция var() позволяет использовать значения пользовательских переменных в качестве значений свойств. Вторым опциональным параметром данной функции является резервное значение.
Функция calc() используется для указания вычисляемого значения свойств, которые в качестве значений используют размер, угол, время или число. Это позволяет задавать значения, основанные на сложении или вычитании разных единиц измерений.
Обычно, абсолютно позиционируемый элемент выравнивается по горизонтали и вертикали следующим образом:
Если нам известны размеры такого элемента, мы можем сделать следующее:
С помощью функции attr() можно извлекать значение атрибута выбранного элемента и использовать его в стилях.
Реализация всплывающей подсказки средствами CSS :
:target
Псевдокласс :target позволяет создавать модальные окна, работающие без JavaScript :
::marker
Раньше мы удаляли маркер списка с помощью list-style: none и добавляли свой с помощью псевдоэлементов ::before или ::after . Сейчас существует более простой способ — псевдоэлемент ::marker .
::selection
Псевдоэлемент ::selection позволяет стилизовать выделение текста.
Напоследок, вот вам парочка полезных ссылок на ресурсы, которые сделают вас настоящим CSS-ниндзя:
Благодарю за внимание и хорошего дня!
Облачные серверы от Маклауд на NVMe-дисках запускаются за 1 минуту.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
Как делать скрипт css посталовским 4

Создаем текстовый документ и называем его > autoexec.cfg — вот в этот документ добавляются строчки скрипта. После того как строчки скрипта добавлены и докумеент сохранен кидаем этот документ autoxec.cfg в Steam\SteamApps\ваш никнейм в стиме\counter-strike source\cstrike\cfg:
Скрипт на прыжок
Действует так: во время обычного прыжка игрок поднимает ноги, т.е. не стоит нажимать
клавишу ctrl, чтобы подпрыгнуть и присесть, очень удобно при мгновенном прыжке на ящик.
Скрипт:
Code
alias +cjump «+jump; wait; +duck;»
alias -cjump «-jump; wait; -duck»
bind «space» «+cjump» (Место Space можно выбрать другую клавишу для прыжка)
Скрипт распрыжки
Скрипт на прыжки и соответственно увеличение скорости.
Действует так: крутишь колесико мыши вверх, вниз и ты прыгаешь.
Правда надо привыкать, так как иногда подлагивает. Пробуем!
Скрипт:
Code
alias «jumper» «+jump; wait; -jump; wait»
alias «hop» «jumper; jumper; jumper; jumper; jumper»
alias +duckjump «+jump;+duck»
alias -duckjump «-jump;-duck»
Скрипт быстрого AWP
Действует так: многие знают что можно быстро перезарядить авп нажав q или быстро сменив оружие с помощью колесика мыши.С этим скриптом получится Быстрая стрельюа авп, так как он автоматически её перезаряжает! Очень помогает!
alias «+FAS» «+attack;W5;use weapon_knife;W5;use weapon_awp;W1;-attack;W1»
bind «mouse1» «+FAS»
bind f12 «bind mouse1 +FAS»
bind f11 «bind mouse1 +attack» (F11 и F12 можно поменять)
Если кто не понял: f11 и f12 соответсвенно выключают и включают скрипт.
Скрипт на стрельбу очередями по 2-3 патрона из Ак-47 и m4a1
Скрипт:
Code
alias «w» «wait»
alias «w5» «w; w; w; w; w»
alias «w8» «w; w; w; w; w; w; w; w»
alias «2shot» «+attack; w5; -attack; +attack; w8; -attack»
alias «2shoton» «bind MOUSE1 2shot»
alias «2shotoff» «bind MOUSE1 +attack»
bind «o» «2shoton; echo Str4ight’s Burst Script toggled to on»
bind «p» «2shotoff; echo Str4ight’s Burst Script toggled to off»
Существует ряд весьма интересных (и популярных) скриптов, которые мы можем использовать для нашего конфига.
Скрипты эти не влияют на общий геймплей, но делают игру более «user’s friendly”.
Вводить их мы можем как через консоль,так в конфиг.
———————————————————————————————————
Напрмер «Супер-прыжок”, это прыжок при котором вы будете не только прыгать, но и поджимать одновременно с этим ноги.
Полезно при прыжках на высокие ящики,вам не надо тыкать на три кнопки за раз, достаточно одной.
alias +sjump «+jump;+duck»
alias -sjump «-jump;-duck»
bind «TAB» «+sjump»
Теперь при нажатии «ТАВа” мы будем «суперпрыгать”.
———————————————————————————————————
Неменьшей популярностью пользуется скриптик по закладке с4 и мессаг тиммэйтам.
alias «+pb» » +duck ; w; w ; w ; weapon_c4 ; say_team Cover me! I am planting the bomb. ;w;w;w;w;+attack »
alias «-pb» » -duck ; -attack ; lastinv ; say_team Bomb has been planted !! »
bind » ENTER » «+pb»
При нажатии ENTERа мы заложим бомбу и крикним об этом сотерроровцам.

———————————————————————————————————
Очень удобно использовать и следующий скриптик:
При нажатии на «V» в руках оказывается нож и начинает размахивать им, при отпускании в руках оказывается предыдущее оружие.
alias «+knf» «slot3;w;+attack»
alias «-knf» «-attack;w;lastinv»
bind «v» «+knf»
———————————————————————————————————
На картах где выгодно держать оборону рядом с точкой закупки, можно использовать следующий скрипт по закупке и использованию гранат:
bind «I» «say_team Close your eyes!!;+attack;w;-attack;b;8;3;0»
bind «O» «say_team FOG;+attack;w;-attack;b;8;5;0»
bind «P» «say_team Eat that!!;+attack;w;-attack;b;8;4;0»
При нажатии «I» Вы кидаете Флэш,кричите об этом и покупаете еще одну,при нажатии «О» Вы кидаете Фогу,сообщаете об этом, покупаете еще одну,при нажатии «Р» Вы кидаете Грену,кричите об этом, покупаете еще одну.
———————————————————————————————————
Для любителей поперескакивать из одной команды в другую, такой скриптик:
alias «teamterror» «chooseteam; ms1; w; w; w; w; w; w; ms5; clearmenu»
alias «teamcounter» «chooseteam; ms2; w; w; w; w; w; w; ms5; clearmenu»
bind «,» » teamterror »
bind «.» » teamcounter »
Нажав на «,» вы перейдете за терроров, а если хотите перейти за контров смело жмите на «.».
———————————————————————————————————
Иногда бывает полезно сделать так, что бы о Вашей перезарядке знала Ваша команда.
Для этого надо:
alias «relod» «msg; +reload; w; w; -reload»
alias «msg» «say_team I must reload.Cover me, plz»
bind «r» » relod»
Теперь нажав на «r» вы будите перезаряжаться и орать одновременно.
———————————————————————————————————
Для стрельбы из слона или мухи на вскидку(без зума,но если враг рядом) очень удобно использовать:
alias «+sniper» «+attack2; w; w; +attack;w;w»
alias «-sniper» «-attack2; w; w; -attack»
bind «SPACE» «+sniper »
Теперь стрелять в упор с оптики будет намного удобней.
———————————————————————————————————
Ну и конечно же большим спросом пользуются бинды-закупки.
Например я хочу купить «полный набор” M-16, включая грены, броню, дезерт,патроны.
alias M16 «buy;menuselect 4;menuselect 2;buyammo1;buyammo1;buyammo1; buyammo1;buyammo1;clmenu;»
alias Armor «buy;menuselect 8;menuselect 2;w;buy;menuselect 8; menuselect 1;clmenu;»
alias HE «buy;menuselect 8;menuselect 4;clmenu;»
alias Flash «buy;menuselect 8;menuselect 3;clmenu;»
alias Smoke «buy;menuselect 8;menuselect 5;clmenu;»
alias Dkit «buy;menuselect 8;menuselect 6;»
alias ammo «buyammo1;buyammo1;buyammo1;buyammo1;buyammo1;buyammo2; buyammo2;buyammo2;buyammo2;buyammo2;»
alias DE «buy;menuselect 1;menuselect 3;buyammo2;buyammo2; buyammo2;buyammo2;buyammo2;clmenu;»
bind F1 «M16;Armor;HE;Flash;Smoke;Dkit;ammo;DE»
Это полный, раскрытый срипт покупки М-16 со всеми дополнительными фичами.
Есди нужно его можно упростить до:
alias M16 «b;4;2;b;1;b;1;b;1;b;1;b;1;b;8;2;w; b;8;1;b;8;4;b;8;3;b;8;5;b;8;6;b;6;b;6;b;6;b;1;3;b;5;b;5;b;5;clmenu;»
bind F1 «M16»
Как правильно подключать JavaScript и CSS в Joomla 4
В мире фронтенда многие ресурсы (ассеты) связаны между собой. В Joomla никогда не было простого способа указать эту связь, но Joomla 4 изменила эту ситуацию, введя концепцию Web Assets. Управление JavaScript и CSS в Joomla значительно упростилось, благодаря классу WebAssetManager .
Оглавление
- Определение скриптов JS и стилей CSS в Joomla
- Стадия ресурса (ассета)
- Регистрация в Joomla JavaScript и CSS
- Переопределение подключаемых стилей CSS и JS скриптов в Joomla
- Работа с CSS в Joomla 4
- Методы для работы со стилями CSS
- Добавление инлайн-стиля
- Методы для работы со скриптами JS
- Добавление инлайн-скрипта JS
- Методы для работы с пресетами
- Определение пользовательского класса WebAssetItem в joomla.asset.json
Joomla 4 значительно улучшила свою кодовую базу, выкинув Mootools и по умолчанию отказавшись от jQuery. Вы можете подключать сторонние стили, скрипты и JavaScript библиотеки по своему усмотрению, и это одновременно как плюс, так и минус Joomla 4. Плюс в том, что вы получаете возможность выбора и гибкость в управлении этими ресурсами. Минус же заключается в том, что требуется знать, как правильно подключать стиль или скрипт в Joomla. Как раз о правильном подключении JavaScript и CSS мы расскажем ниже.
Определение скриптов JS и стилей CSS в Joomla
Связанные JavaScript и CSS ресурсы в Joomla определяются в файле JSON, например system/joomla.asset.json . Структура этого файла состоит из определения схемы (schema), имени (name), версии (version), лицензии (license) и затем одного или нескольких определений. Они состоят из списка JavaScript и CSS файлов, связанных с ресурсами, и любых зависимостей (dependencies). Раздел зависимостей — это просто список имён ассетов, который необходим для функционирования данного ассета. Пример:
Атрибут $schema — это файл определения схемы, который позволяет вам проверить ваш файл ресурсов с помощью JSON Schema. Подробнее о работе валидации JSON Schema читайте на официальном сайте.
Наличие joomla.asset.json рекомендуется для вашего расширения или шаблона, но не обязательно для работы WebAsset.
Не рекомендуется добавлять инлайны (куски кода как CSS, так и JS) в json-файл, для этого лучше использовать отдельный файл.
Стадия ресурса (ассета)
У каждого ресурса есть две стадии: зарегистрированный (registered) и используемый (used).
Зарегистрированный — это стадия, при которой ресурс только загружен в реестр WebAssetRegistry . Это означает, что WebAssetManager знает о существовании этих ресурсов, но не будет подключать их к документу во время рендеринга. Все ресурсы, загруженные из joomla.asset.json , находятся в стадии «зарегистрированный».
Используемый — это стадия, при которой ресурс включен через ->useAsset() ( ->useScript() , ->useStyle() , ->registerAndUseX() и т.д.). Это означает, что WebAssetManager подключит эти ресурсы и их зависимости к документу во время рендеринга.
Ресурс не может быть использован, если ранее он не был зарегистрирован, это вызовет исключение неизвестного ресурса ( UnknownAssetException ).
Регистрация в Joomla JavaScript и CSS
Все известные JavaScript и CSS ассеты в Joomla загружаются и затем сохраняются в реестр ресурсов WebAssetRegistry (для включения/выключения элемента вы должны использовать WebAssetManager ).
Joomla будет искать определение ассетов автоматически во время выполнения в следующем порядке:
И загрузит их в реестр известных JavaScript и CSS файлов.
Каждое следующее определение будет переопределять элементы ресурсов из предыдущего определения, по имени (name) элемента.
В Joomla вы можете зарегистрировать свои собственные определения ресурсов (ассетов) через WebAssetRegistry :
Чтобы добавить пользовательский элемент во время выполнения:
Или более просто, используя WebAssetManager :
Новый элемент foobar будет добавлен в реестр известных ресурсов, но не будет подключен к документу, пока ваш код (макет, шаблон и т.д.) не запросит его.
Методы registerScript (регистрация JavaScript) и registerStyle (регистрация CSS) являются прокси-методами для метода registerAsset класса WebAssetManager , который принимает следующие аргументы:
Параметр Тип По умолчанию Описание $type string Тип ресурса: script или style . Определяется автоматически при использовании registerScript и registerStyle . $asset WebAssetItem|string Имя ресурса или объёкт класса WebAssetItem . $uri string » URI адрес ресурса. Поддерживаются также относительные пути типа ‘com_foobar/file.js’ . $options array [] Параметры ресурса , например [‘version’ => ‘auto’, ‘conditional’ => ‘lt IE 9’] . $attributes array [] Атрибуты ресурса, например [‘defer’ => true, ‘data-foo’ => ‘some attribute’] . $dependencies array [] Имена ассетов от которых зависит регистрируемый ассет, например [‘core’, ‘keepalive’] . Чтобы проверить существование ассета в реестре, используйте метод assetExists :
Включение ресурса (ассета с JS и/или CSS)
Все управление JavaScript и CSS ресурсами в текущем документе осуществляется с помощью WebAssetManager , который доступен с помощью $doc->getWebAssetManager() . Используя WebAssetManager , вы можете легко включить или отключить нужный ресурс в Joomla с помощью стандартных методов.
Чтобы включить ассет на странице, используйте методы useScript (для JavaScript) или useStyle (для CSS), которые являются прокси-методами для useAsset , например:
WebAssetManager посмотрит в WebAssetRegistry , существует ли запрашиваемый ресурс, и включит его для текущего экземпляра документа. В противном случае будет выброшено исключение UnknownAssetException .
Для отключения ненужных ассетов (JS, CSS файлов) — используйте метод disableAsset . Приведенный ниже пример отключит загрузку ресурса jquery-noconflict .
Если есть какие-либо зависимости от отключаемого ресурса, то независимо ни от чего этот ресурс будет снова автоматически включен.
Чтобы проверить, включен ли ассет, и узнать его состояние:
Переопределение подключаемых стилей CSS и JS скриптов в Joomla
Переопределение может быть полезно, когда вам нужно переопределить URI элемента ресурса или его зависимостей. Как было отмечено выше, каждое следующее определение будет переопределять элементы из предыдущего определения, по имени элемента. Это означает, что если вы предоставите свой joomla.asset.json , содержащий уже загруженные элементы ресурсов с указанными файлами JavaScript и CSS, то они будут заменены на ваши элементы.
Другой способ переопределения в коде — зарегистрировать элемент с тем же именем. Например, у нас есть скрипт foobar , который загружает библиотеку com_example/foobar.js , и мы хотим использовать CDN именно для этой библиотеки. Изначально ресурс определён в системе следующим образом:
Чтобы переопределить URI, мы определяем элемент ресурса с именем foobar в нашем joomla.asset.json :
Или зарегистрируйте новый элемент ресурса через WebAssetManager :
Работа с CSS в Joomla 4
В Joomla WebAssetManager позволяет управлять файлами стилей (CSS). Такой элемент обозначается как «style». Пример json определения элемента CSS в joomla.asset.json :
Методы для работы со стилями CSS
В Joomla WebAssetManager предлагает следующие методы работы с файлами стилей CSS:
Добавление инлайн-стиля
Дополнительно к файлам стилей CSS, WebAssetManager позволяет добавлять инлайн-стили (inline style), и поддерживать их отношение к файлу ресурса. Инлайн-стили могут быть размещены непосредственно перед зависимостью, после зависимости, или как обычно после всех стилей CSS.
Инлайн-ресурс может иметь имя, как и другие ресурсы (но не обязательно). Имя может быть использовано для получения элемента ресурса из реестра или как зависимость от другого встроенного ресурса. Если имя не указано, то будет использовано сгенерированное имя, основанное на хэше содержимого.
В примере выше «foobar» должен существовать в реестре ресурсов, иначе вы получите исключение неполной зависимости.
Пример выше выведет:
Если инлайн-ресур CSS имеет несколько зависимостей, то для позиционирования будет использоваться последняя. Пример:
Именованные инлайн-ресурсы CSS могут быть зависимы от другого инлайна, однако не рекомендуется использовать такие конструкции в качестве зависимости от неинлайн-ресурса. Это будет работать, но такое поведение может измениться в будущем. Вместо этого лучше использовать «позицию».
Работа с JavaScript в Joomla 4
В Joomla WebAssetManager позволяет управлять файлами скриптов (JavaScript). Такой элемент обозначается как «script». Пример json определения элемента в joomla.asset.json :
Пример json-определения скрипта модуля ES6 с откатом к legacy:
Методы для работы со скриптами JS
В Joomla WebAssetManager предлагает следующие методы работы с файлами JS скриптов:
Добавление инлайн-скрипта JS
Дополнительно к файлам скриптов JS, WebAssetManager позволяет добавлять инлайн-скрипты (inline script), и поддерживать их отношение к файлу ресурса. Инлайн-скрипты JS могут быть размещены непосредственно перед зависимостью, после зависимости, или как обычно после всех JS скриптов.
Инлайн-ресурс JS может иметь имя, как и другие ресурсы (но не обязательно). Имя может быть использовано для получения элемента ресурса из реестра или как зависимость от другого встроенного ресурса. Если имя не указано, то будет использовано сгенерированное имя, основанное на хэше содержимого.
В примере выше «foobar» должен существовать в реестре ресурсов, иначе вы получите исключение неполной зависимости.
Пример выше выведет:
Если инлайн-скрипт JS имеет несколько зависимостей, то для позиционирования будет использоваться последняя. Пример:
Именованные JS инлайны могут быть зависимы от другого JS инлайнов, однако не рекомендуется использовать инлайн в качестве зависимости от неинлайн-ресурса. Это будет работать, но такое поведение может измениться в будущем. Вместо этого лучше использовать «позицию».
Работа с веб-компонентами
Joomla позволяет вам использовать веб-компоненты. В Joomla веб-компоненты загружаются не как обычный скрипт, а асинхронно через загрузчик веб-компонентов. Поэтому элемент ресурса (ассета) веб-компонента должен иметь флаг webcomponent , установленный в булево значение true . Во всех остальных аспектах работа с веб-компонентами в WebAssetManager аналогична работе с элементом типа «script».
Пример json определения некоторых веб-компонентов в joomla.asset.json (как модуль ES6):
Пример с откатом, для браузеров, не поддерживающих функцию ES6 «module». Обратите внимание, что унаследованный скрипт должен иметь зависимость wcpolyfill , а скрипт модуля должен иметь зависимость от унаследованного скрипта:
В качестве альтернативы вы можете зарегистрировать их в PHP (как модуль ES6):
Предпочтительно для имени использовать префикс «webcomponent», чтобы его можно было легко обнаружить и отличить от обычных скриптов в макете.
Работа с пресетами
«Пресет» (preset) — это особый вид элемента asset в Joomla, который содержит список элементов, которые должны быть включены, так же, как и прямой вызов useAsset() для каждого элемента в списке. Пресет может содержать смешанные типы ассетов (скрипт, стиль, другой пресет и т.д.). Тип должен указываться после символа # и следовать после имени ресурса, например: foo#style , bar#script .
Пример json определения элемента в joomla.asset.json :
Методы для работы с пресетами
В Joomla WebAssetManager предлагает следующие методы работы с пресетами:
Пользовательский класс WebAssetItem
В Joomla классом по умолчанию для всех элементов WebAsset является Joomla\CMS\WebAsset\WebAssetItem .
Вы также можете использовать пользовательский класс, который должен реализовывать интерфейс Joomla\CMS\WebAsset\WebAssetItemInterface или расширять Joomla\CMS\WebAsset\WebAssetItem .
Пользовательский класс может позволить вам выполнять дополнительные действия, например, включать файл ассета в зависимости от активного языка:
Кроме того, реализация Joomla\CMS\WebAsset\WebAssetAttachBehaviorInterface позволяет вам добавить опции сценария (которые могут зависеть от окружения), когда ваш ресурс включен и подключен к документу:
Элемент ресурса, реализующий WebAssetAttachBehaviorInterface , должен быть включен до события onBeforeCompileHead , иначе ‘onAttachCallback’ будет проигнорировано.
Определение пользовательского класса WebAssetItem в joomla.asset.json
В joomla.asset.json вы можете определить, какой класс должен использоваться с конкретным WebAsset . Для этого вы можете использовать два свойства namespace и class . namespace может быть определено на уровне Root (тогда оно будет использоваться как пространство имен по умолчанию для всех элементов Asset в joomla.asset.json ) или на уровне элемента. Например:
Здесь ассет foo будет связан с классом Joomla\Component\Example\WebAsset\FooAssetItem , а bar с классом MyFooBar\Library\Example\WebAsset\BarAssetItem .
Если пространство имен не определено, то по умолчанию будет использоваться Joomla\CMS\WebAsset . Если пространство имен определено, но пустое, то не будет использоваться никакое пространство имен, только класс. Пример:
Здесь foo будет связан с классом Joomla\CMS\WebAsset\FooAssetItem , а bar с классом BarAssetItem (без пространства имен).
Похожие публикации:
- Как выставить блоки в одну строку css
- Как для кнопки добавить галочку css
- Как убрать отступы у блока в css
- Как убрать рамку в css
