Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

№125-10-2012 20:26:31

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

[CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

Добавыть в контекстное меню раширений пункт "Открыть папку расширения"(Firefox 10 +)
Автор: bunda1
Описание: Добавляет в контекстное меню расширений на странице расширений about:addons или chrome://mozapps/content/extensions/extensions.xul новый пункт "Открыть папку расширения" который дает возможность открыть папку расширения.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

// Добавыть в контекстное меню раширений пункт "Открыть папку расширения" ....
gBrowser.addEventListener("popupshowing", function(event) { 
    
     var addonPopup = gBrowser.contentWindow.document.getElementById("addonitem-popup");
     var openAddonFolder = gBrowser.contentWindow.document.getElementById("openAddonFolder");
     
     if ( addonPopup && openAddonFolder ) {
          var type = addonPopup.getAttribute("addontype");
          openAddonFolder.hidden = (type !== 'extension');
          };
    
     if ( addonPopup && !addonPopup.hasAttribute('stopRepeat') ) {
          if (addonPopup.getAttribute("addontype") !== 'extension') return;
          addonPopup.setAttribute('stopRepeat', 'true');
          var menuitem = document.createElement("menuitem");
          menuitem.setAttribute("id", "openAddonFolder");
          menuitem.setAttribute("label", "Открыть папку расширения");
          addonPopup.appendChild(menuitem);
         
             gBrowser.contentWindow.document.getElementById("openAddonFolder").addEventListener("click", function(event) { 
       
                  var addons = gBrowser.contentWindow.document.getElementById('addon-list').childNodes;
                  for( var i=0; i < addons.length; i++ ) {
                       if ( addons[i].getAttribute('current') == 'true' ) {
                            var value = addons[i].getAttribute('value');
                            
                            var dir = Components.classes['@mozilla.org/file/directory_service;1']
                                     .getService(Components.interfaces.nsIProperties)
                                    .get('ProfD', Components.interfaces.nsILocalFile);
                        dir.append('extensions');
                            dir.append( value );
                            if ( dir.exists() ) dir.launch();
 
                            var file = Components.classes['@mozilla.org/file/directory_service;1']
                                      .getService(Components.interfaces.nsIProperties)
                                     .get('ProfD', Components.interfaces.nsILocalFile);       
                            file.append('extensions');
                            file.append( value + '.xpi' )             
                            if ( file.exists() ) file.launch(); 
                            return;
                            }
                       }
             }, false);
          };
          
}, false);

Отредактировано bunda1 (22-11-2012 19:24:16)

Отсутствует

 

№222-11-2012 18:06:08

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 17.0

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

А можно ли заранее определять, имеет расширение свою папку или нет?
Если не имеет, то открывать общую папку extensions.

Отсутствует

 

№322-11-2012 18:25:14

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

Конечно можно, но нужен пример.

Отсутствует

 

№422-11-2012 18:38:13

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 17.0

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

пример чего?
такого расширения?
Например, Adblock Plus не имеет своей папки.

Отсутствует

 

№522-11-2012 18:50:19

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

Но у Adblock Plus есть {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}.xpi в папке Profile\extensions.

Отсутствует

 

№622-11-2012 19:08:27

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 17.0

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

Да, есть. Я ж про такие расширения и говорю - у тех у кого папки нет, но есть вот такие xpi-файлы.
Сейчас же, при попытке попасть в папку такого расширения, у меня выскакивает программа Universal Extractor для разархивации файла.
Наверное, было бы правильней для таких расширений просто открывать папку \Profile\extensions, а дальше самостоятельно находить нужный файл.
Можно еще дополнительно алертом выводить название таких файлов.

Отредактировано Inko7 (22-11-2012 19:09:29)

Отсутствует

 

№722-11-2012 19:22:57

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

И в чем проблема :(
У меня по умолчанию стоит архиватор 7-Zip и если скажем нажать "Открыть папку расширения" в контекстном меню Adblock Plus он автоматически отроет .xpi файл:

скриншот
thumbxut.jpg

Это же удобней чем искать в папке extensions файл расширения с не известным названием типа {46551EC9-40F0-4e47-8E18-8E5CF550CFB8}

Добавлено 22-11-2012 19:25:18
Исправил мелкий баг: 25-10-2012 19:26:31

Отредактировано bunda1 (22-11-2012 19:32:23)

Отсутствует

 

№822-11-2012 19:36:58

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1005
UA: Firefox 17.0

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

bunda1
Разобрался. Оказывается, у меня расширение xpi не было зарегистрировано ни на одну программу.
Установил ассоциацию на winrar и теперь открывается как у тебя.
Тогда вопрос снят. Извини.

Отсутствует

 

№922-11-2012 19:39:27

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

Ну тогда хорошо :)

Отсутствует

 

№1023-04-2013 18:47:25

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 476
UA: Firefox 20.0

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

bunda1 подскажи пожалуйста, что нужно изменить в коде, чтобы пункт меню "Открыть папку расширения" добавлялся не только на странице расширений about:addons, но и в меню в боковой панели (использую All-in-One Sidebar). Побывал разные варианты, что-то не получается.

Отсутствует

 

№1123-04-2013 21:06:54

LBra
Участник
 
Группа: Members
Зарегистрирован: 20-10-2011
Сообщений: 40

Re: [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

Inko7 пишет

Да, есть. Я ж про такие расширения и говорю - у тех у кого папки нет, но есть вот такие xpi-файлы.
Сейчас же, при попытке попасть в папку такого расширения, у меня выскакивает программа Universal Extractor для разархивации файла.
Наверное, было бы правильней для таких расширений просто открывать папку \Profile\extensions, а дальше самостоятельно находить нужный файл.
Можно еще дополнительно алертом выводить название таких файлов.

Кнопка Fire Explorer делает все это и даже больше. :)

Отсутствует

 
  • Форумы
  •  » Сustom Buttons
  •  » [CB]Добавыть в контекстное меню раширений "Открыть папку расширения"

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]