Перейти к содержимому

addPluginMenuIcon

await crafttechApi.addPluginMenuIcon(callback, buttonLabel, customSvgIcon);

Добавляет кнопку в меню “Плагины”

‼️Данный метод работает через интерфейс‼️

  • callback (Function) — функция, которую вызовет кнопка при нажатии;
  • buttonLabel (string) — надпись под кнопкой;
  • customSvgIcon (string?) — (необязательный) строка в формате svg, заменяет стандартную иконку на кастомую (в формате svg);

Для переноса названия кнопки нужно использовать <br> в имени:

await Api.addPluginMenuIcon(() => console.log('Вызвана функция'),'Новая<br>кнопка')

Для кастомной иконки желательно предусмотреть тёмная тема или светлая у пользователя, вот как это реализавано в методе:

// Цвета
const lightColor = '#F5F5F5';
const darkColor = '#444444';
// Определение темы
const isDarkTheme =
$('body').hasClass('theme-dark') ||
$('body').hasClass('theme-contrast-dark');
// Стандартная иконка
const defaultSvgIcon = `
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="28" height="28"
viewBox="0 0 64 64" xml:space="preserve">
<path fill="${
isDarkTheme ? lightColor : darkColor
}" d="M32.001,2.484c0.279,0,0.463,0.509,0.463,0.509l8.806,18.759l20.729,3.167L47,40.299L50.541,62
l-18.54-10.254L13.461,62l3.541-21.701L2.003,24.919l20.729-3.167L31.53,3.009C31.53,3.009,31.722,2.484,32.001,2.484
M32.001,0.007c-0.775,0-1.48,0.448-1.811,1.15l-8.815,18.778L1.701,22.941c-0.741,0.113-1.356,0.632-1.595,1.343
c-0.238,0.71-0.059,1.494,0.465,2.031l14.294,14.657l-3.378,20.704c-0.124,0.756,0.195,1.517,0.822,1.957
C12.653,63.877,13.057,64,13.461,64c0.332,0,0.666-0.084,0.968-0.25l17.572-9.719l17.572,9.719c0.302,0.166,0.636,0.25,0.968,0.25
c0.404,0,0.808-0.123,1.151-0.366c0.627-0.44,0.946-1.201,0.822-1.957l-3.378-20.704l14.294-14.657
c0.523-0.537,0.703-1.321,0.465-2.031c-0.238-0.711-0.854-1.229-1.595-1.343l-19.674-3.006L33.812,1.157
C33.481,0.455,32.776,0.007,32.001,0.007L32.001,0.007z"/>
</svg>`;
  • true | false (boolean) — логическая истина true в случае успешного добавления кнопки
(async () => {
console.log(
'Кнопка Добавлена:',
await Api.addPluginMenuIcon(() => console.log('Вызвана функция'),'Функция')
);
})();