| SLasH 
 Advanced Member
 | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Недавно гуглил, как найти вызов функции настроек какого-либо расширения, чтобы сделать свою кнопку CustomButons с вызовом настроек требуемого расширения. Ничего не нагуглил.
 Выкладываю методику поиска такой функции, может кому пригодится:
 
 Цитата:
 | Поиск функции вызова настроек =============================
 
 1. Входим в расширение XPI, как в ZIP-архив или распаковываем его
 2. Открываем папку "locale" или "chrome\locale" и заходим в подпапку понравившейся локали (к примеру русскую: ru)
 3. Ищем в папке с выбранной локалью файл, в котором будет локализация строки с текстом типа "Настройки":
 
 Пример 1 (FF: Mozilla Archive Format [maf]): искомый файл "mafCommandsOverlay.dtd" и в нём есть строка:
 <!ENTITY menuitem.options.label "Настройки MAF…">
 3.1.1. Ищем поиском XUL-файл, в котором применяется найденный label "menuitem.options.label": им оказывается "chrome\content\integration\mafCommandsOverlay.xul"
 3.1.2. Ищем подстроку "menuitem.options.label" поиском по файлу "mafCommandsOverlay.xul" и находим описание:
 <menuitem id="mafMenuPreferences_appMenu"
 label="&menuitem.options.label;"
 command="mafCmdPreferences"
 />
 здесь нас интересует обработчик "command", в нём либо сразу идёт код функции вызова настроек (как в примере 2), либо id-обработчика, в котором будет вызов функции. В этом примере нужно дальше искать подстроку "mafCmdPreferences" по файлу "mafCommandsOverlay.xul".
 3.1.3. Ищем дальше по файлу "mafCommandsOverlay.xul" подстроку "mafCmdPreferences" и находим описание команды:
 <command id="mafCmdPreferences"
 oncommand="MafCommandsOverlay.preferences();"
 />
 здесь, в атрибуте oncommand и находится вызов функции настроек: MafCommandsOverlay.preferences();
 3.1.4. Создаём новую кнопку CustomButtons и вписываем в поле "Код" текст:
 MafCommandsOverlay.preferences();
 
 Пример 2 (TB: SmartTemplate4): искомый файл "smartTemplate-overlay.dtd" и в нём есть строки:
 <!ENTITY smartTemplate4.settings.label "SmartTemplate4">
 <!ENTITY smartTemplate4.settings.tooltip "Настройки SmartTemplate4">
 3.2.1. Ищем поиском XUL-файл, в котором применяется найденный label "smartTemplate4.settings.label": им оказывается "content\messengerOverlay.xul"
 3.2.2. Ищем подстроку "smartTemplate4.settings.label" поиском по файлу "messengerOverlay.xul" и находим описание:
 <statusbarpanel id="SmartTemplate4Messenger"
 label="&smartTemplate4.settings.label;"
 tooltiptext="&smartTemplate4.settings.tooltip;"
 class="statusbarpanel-iconic-text"
 oncommand="openDialog('chrome://SmartTemplate4/content/settings.xul', 'Preferences', 'chrome,titlebar,toolbar,dependent,centerscreen,resizable');"
 />
 здесь нас интересут обработчик "oncommand", в нём сразу идёт код функции вызова настроек
 3.2.3. Создаём новую кнопку CustomButtons и вписываем в поле "Код" текст:
 openDialog('chrome://SmartTemplate4/content/settings.xul', 'Preferences', 'chrome,titlebar,toolbar,dependent,centerscreen,resizable');
 | 
 |