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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№802608-10-2014 14:05:07

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 32.0

Re: Custom Buttons

Mishania
Только жест свой подставте

Выделить код

Код:

'RL':{name:'Восстановить закрытую вкладку',cmd:function(){document.getElementById('History:UndoCloseTab').doCommand();}},

Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№802708-10-2014 14:26:34

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 31.0

Re: Custom Buttons

voqabuhe пишет

понял, что остальное можно не читать :sick: :D

ИМХО, напрасно. Первое - не руководство к подражанию, а красноречивая иллюстрация возможностей, а второе - красноречивое выражение эмоций в адрес Australis...

Отсутствует

 

№802808-10-2014 15:11:52

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 35.0

Re: Custom Buttons

Александр Колесников пишет

Первое - не руководство к подражанию, а красноречивая иллюстрация возможностей, а второе - красноречивое выражение эмоций в адрес Australis...

Совершенно верно, вот эта "красноречивая иллюстрация возможностей" и "красноречивое выражение эмоций" и остановили от дальнейшего прочтения. :)

Отсутствует

 

№802908-10-2014 15:47:34

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 32.0

Re: Custom Buttons

bunda1
А можно на жест Mouse Gestures+ посадить открытие PanelUI.


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№803008-10-2014 15:52:21

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 35.0

Re: Custom Buttons

А как бы в этой кнопке сделать, чтобы после очистки истории исчезала с панели кнопка загрузок, а то сейчас чтобы она скрылась приходится на неё нажимать?

Отсутствует

 

№803108-10-2014 18:52:41

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 20.0

Re: Custom Buttons

Ну что же, г-да, можно надеяться, что кнопка Открывать всё в новых вкладках, от 07.12.2013 будет доработана, или уже всё...?

Отсутствует

 

№803208-10-2014 19:24:21

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

Re: Custom Buttons

rbfyec пишет

Ну что же, г-да, можно надеяться, что кнопка Открывать всё в новых вкладках, от 07.12.2013 будет доработана, или уже всё...?

Я уже пробовал но не пошло, завтра опять попробую.

Отсутствует

 

№803308-10-2014 19:29:08

rbfyec
Участник
 
Группа: Members
Зарегистрирован: 07-07-2012
Сообщений: 365
UA: Firefox 20.0

Re: Custom Buttons

bunda1
tnx буду ждать :)

Отсутствует

 

№803408-10-2014 22:49:31

stluka
Участник
 
Группа: Members
Зарегистрирован: 27-09-2014
Сообщений: 15
UA: Seamonkey 2.29

Re: Custom Buttons

Помогите с кнопкой - Bookmarks | Manager | Add (Firefox)  https://forum.mozilla-russia.org/viewto … 92#p521492. Я пытался прикрутить ее к [seamonkey] 2.29.1. Все работает, кроме вызова менеджера закладок. Менял в коде Инициализации

скрытый текст

Выделить код

Код:

try {PlacesCommandHook.showPlacesOrganizer('AllBookmarks'); }
 catch(e) {toOpenWindowByType('bookmarks:manager', 'chrome://browser/content/bookmarks/bookmarksManager.xul'); }

на

Выделить код

Код:

PlacesCommandHook.showPlacesOrganizer('BookmarksMenu');

и на

Выделить код

Код:

PlacesCommandHook.showPlacesOrganizer('AllBookmarks');

.


Но вызвать менеджер закладок, не получается.:whiteflag:

Отредактировано stluka (08-10-2014 22:52:06)

Отсутствует

 

№803508-10-2014 23:20:57

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

Re: Custom Buttons

stluka пишет

Все работает, кроме вызова менеджера закладок. Менял в коде Инициализации

Выделить код

Код:

document.getElementById("menu_bookmarkManager").click();

Отсутствует

 

№803609-10-2014 08:12:29

stluka
Участник
 
Группа: Members
Зарегистрирован: 27-09-2014
Сообщений: 15
UA: Seamonkey 2.29

Re: Custom Buttons

bunda1 пишет
Выделить код

Код:

document.getElementById("menu_bookmarkManager").click();

Работает. Спасибо.:beer:
P.S. А как сделать, чтобы менеджер закладок открывался не в новом окне, а в новой вкладке текущего окна.

Отредактировано stluka (09-10-2014 08:16:30)

Отсутствует

 

№803709-10-2014 08:44:15

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

Re: Custom Buttons

stluka пишет

P.S. А как сделать, чтобы менеджер закладок открывался не в новом окне, а в новой вкладке текущего окна.

Выделить код

Код:

gBrowser.loadOneTab("chrome://browser/content/places/places.xul", null, null, null, false, false);

Отсутствует

 

№803809-10-2014 08:58:08

stluka
Участник
 
Группа: Members
Зарегистрирован: 27-09-2014
Сообщений: 15
UA: Seamonkey 2.29

Re: Custom Buttons

bunda1 пишет
stluka пишет

P.S. А как сделать, чтобы менеджер закладок открывался не в новом окне, а в новой вкладке текущего окна.

Выделить код

Код:

gBrowser.loadOneTab("chrome://browser/content/places/places.xul", null, null, null, false, false);

Не работает. Открывается новая пустая вкладка. В адресной строке вкладки -> chrome://browser/content/places/places.xul

Отсутствует

 

№803909-10-2014 10:09:40

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

Re: Custom Buttons

stluka
Похоже что на [seamonkey] у менеджера закладок другой адрес. Не знаю какой. Спроси в теме SeaMonkey.

Отредактировано bunda1 (09-10-2014 11:13:33)

Отсутствует

 

№804009-10-2014 11:09:12

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 32.0

Re: Custom Buttons

voqabuhe пишет

А как бы в этой кнопке сделать, чтобы после очистки истории исчезала с панели кнопка загрузок, а то сейчас чтобы она скрылась приходится на неё нажимать?

Эээ... оригинальная кнопка загрузок сама по себе никуда не исчезает. Что и каким образом ее скрывает?

Отредактировано Infocatcher (09-10-2014 11:09:36)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№804109-10-2014 13:32:41

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 35.0

Re: Custom Buttons

Infocatcher пишет

Эээ... оригинальная кнопка загрузок сама по себе никуда не исчезает. Что и каким образом ее скрывает?

А, действительно, это стиль №11748 так делает, про который я уж и забыл что ставил. :dumb:

Отсутствует

 

№804209-10-2014 16:50:11

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 32.0

Re: Custom Buttons

voqabuhe пишет

А, действительно, это стиль №11748 так делает, про который я уж и забыл что ставил. :dumb:

Можно попробовать добавить вот такое после кода очистки загрузок:

Выделить код

Код:

var dlData = DownloadsCommon.getIndicatorData(window);
dlData.attentionSuppressed = true; // See DownloadsPanel.onPopupShown()
dlData.attentionSuppressed = false; // See DownloadsPanel.onPopupHidden()

Добавлено 09-10-2014 16:55:33
Применительно ко второму коду лучше, наверное, вот так:

Выделить код

Код:

// resource:///modules/DownloadsCommon.jsm, see DownloadsCommon.getData()
var global = Components.utils.getGlobalForObject(DownloadsCommon);
global.DownloadsData.removeFinished();
global.PrivateDownloadsData.removeFinished();

Cc["@mozilla.org/browser/download-history;1"]
    .getService(Ci.nsIDownloadHistory)
    .removeAllDownloads();

// See DownloadsPanel.onPopupShown()/.onPopupHidden()
global.DownloadsIndicatorData.attentionSuppressed = global.PrivateDownloadsIndicatorData.attentionSuppressed = true;
global.DownloadsIndicatorData.attentionSuppressed = global.PrivateDownloadsIndicatorData.attentionSuppressed = false;

Отредактировано Infocatcher (09-10-2014 16:55:33)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№804310-10-2014 10:10:47

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 31.0

Re: Custom Buttons

Dumby
Возможно ли Вашей кнопке (я приписал там указание авторства и ссылку на пост с кнопкой),

скрытый текст
инициализация:

Выделить код

Код:

//Автор Dumby
//https://forum.mozilla-russia.org/viewtopic.php?pid=663270#p663270
const iconSize = 16;
const buttonWidth = 500;
const defaultFavicon = "";


if (gBrowser.currentURI.spec == "about:customizing") return;
var [img, lab] = document.getAnonymousNodes(this);
this.style.cssText = imp('\
    -moz-box-orient: horizontal;\
    min-width: ' + buttonWidth + 'px;\
    max-width: ' + buttonWidth + 'px;\
');
lab.style.cssText = imp('\
    display: -moz-box;\
    text-align: start;\
    margin-left: 7px;\
');
img.style.cssText = imp('\
    display: -moz-box;\
    width: ' + iconSize + 'px;\
    height: ' + iconSize + 'px;\
');
function imp(str) str.replace(/;/g, " !important;");

var mo = new MutationObserver(() => lab.value = document.documentElement.getAttribute("title"));
mo.observe(document.documentElement, {attributes: true, attributeFilter: ["title"]});
mo.mutationCallback(addDestructor(() => mo.disconnect()));

var pl = {}, df = defaultFavicon || PlacesUtils.favicons.defaultFavicon.spec;
pl.onLinkIconAvailable = pl.onLocationChange = () => {
    var icon = gBrowser.selectedBrowser.mIconURL || df
    if (icon.startsWith("http")) icon = "moz-anno:favicon:" + icon;
    img.src = icon;
}
gBrowser.addProgressListener(pl);
pl.onLinkIconAvailable(addDestructor(() => gBrowser.removeProgressListener(pl)));


"отображающей заголовок текущей веб-странички и её favicon", добавить такую возможность: при зажатии с последующим перетаскиванием перемещалось бы всё окно [firefox], как будто бы мы тащили за настоящий виндовый тайтлбар?

Имеется неработающая уже кнопка, "добавляющая перетаскиваемость окна за любую из стандартных панелей кроме таббара". Вот её код/инициализация/справка в удобной для восприятия форме:

скрытый текст

Выделить код

Код:

var mainWindow = document.getElementById("main-window");
var chromeattrib=mainWindow.getAttribute('hidechrome')


this.togglechrome = function() {
  if(chromeattrib=='true') {
  document.getElementById("main-window").setAttribute('hidechrome','false');
window.restore();
window.maximize();
window.restore();
      this.checked=true;
 this.image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUVJREFUeNqkUz1PwzAQPUedmBCDw8pEg1IJdiREV/4H8Bf4GcnGxsKEQGKDlXYrIgtF7Bk8gQqUJG6wD9tJ81UhIL3Ivvh09+75WUcQEZaxju/7h8qftqw/As/zsGpCLSklpl9qCYHJLMXjE6/wD49j49nLO+raPwHo9RZxnHwm+DqNkU0+CoDOnMvF5fW/uO/2+5kGelNdYWVtFQ7294qE0X0AO9u9WhFRn7abwbAUsYnMGAP9Ms3XIYTUzjwVxlt6qybTdQq2bQNKUem8aELKCkAeNEAqHoYhjJ+ei2QkPzPJriDzRCEMMqUUoiguC3QHK/MIuAgw5TNziDmHIAigyb1oaumQVQPINcgoCBTgui44TreGgPM/dZemuIZBkis6GJXdN7Y24fZu+PssGAkkQtfptRsmPRBX52eth4ksO87fAgwAwhDaXBPgKF4AAAAASUVORK5CYII="; 
  }
  else {  
   document.getElementById("main-window").setAttribute('hidechrome','true');
  
window.restore();
window.maximize();
window.restore();
     this.image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR5JREFUeNpi/P//PwMlgImBQsCyc+/eGiDdTIbes0C8mYWDg6PZztqafBeAiDffsUuGxkeBaWnvcAy5CWH+EAM+fvpE0BYpfWMU/rOLZzED8dyxvWCMDYA0dBvIgDGyZrALPgFd8P/fPwZ3Z2ewwMuv/xkYgfR/BvzR++8fRJ7l569fDH///mPYuXc/WEDP1B6ighFVQ0xVI4ShbgCm/v/9iwjEf38QLnj67hfYdjT9DP+hGmHgD8iA/4wQA/4COcD0AJbQ0LdiYCQicf7985eBkRHqApBpVmZGYIk3X//CFcmoqEMYNy9ghoG7MyigIAaA/PPqEyxC/oI9wAgkG7ILoAHKiBYs/xn+AcMNJqY0Z9Giu+QmZcYBz40AAQYAXyBzO2qih9QAAAAASUVORK5CYII=";
    this.checked=false;
  }
}
this.togglechrome();
Выделить код

Код:

document.getElementById("main-window").setAttribute('hidechrome','true');
 
window.restore();
window.maximize();
window.restore();

this.drag= function() {
  if(window["bDragW"] )
    return;
var Ctrls = ['PersonalToolbar', 'toolbar-menubar','nav-bar', 'status-bar', 'FindToolbar'];
  try {
     Components.utils.import('resource://gre/modules/WindowDraggingUtils.jsm');

     for(i=0; i<Ctrls.length; i++) {
       ctrlW = document.getElementById(Ctrls[i]);
       if (!ctrlW) continue;
       try {
           var bDragW = new WindowDraggingElement(ctrlW, window);
           DragW.mouseDownCheck=function(e) {
             return  WinState==0
           }
      }catch(e){}
      }
   }catch(e){}
window["bDragW"]=true
}
this.drag()
Выделить код

Код:

********************************************************************        

 Toggles window chrome for your browser.         
 Makes the window almost chromeless meaning no titlebar         
 but taskbar should still be accessible.         

 Convenient for going fullscreen without losing all         
 those useful toolbars and the windows taskbar.        

 By default this button makes the browser startup chromeless         
 you can change this by commenting out the appropriately marked         
 line of code in the button's initialization tab.         

********************************************************************        

 Directly Clicking on the Button does the following:        

     L = Toggles Chrome         
     Any Other Click = Custom Buttons Context Menu        

********************************************************************

Отредактировано Александр Колесников (10-10-2014 10:16:31)

Отсутствует

 

№804410-10-2014 10:22:41

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 32.0

Re: Custom Buttons

Александр Колесников
Есть еще вот такое – с перетаскиванием, но без иконки.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№804510-10-2014 11:13:07

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 35.0

Re: Custom Buttons

Infocatcher пишет

Применительно ко второму коду лучше, наверное, вот так:

Спасибо большое, теперь просто великолепно и без лишних телодвижений.

Отсутствует

 

№804610-10-2014 14:21:29

villa7
Участник
 
Группа: Members
Зарегистрирован: 21-07-2012
Сообщений: 2235
UA: Firefox 32.0

Re: Custom Buttons

Подскажите кто знает. Хочу посадить на жест CB Mouse Gestures+ открытие PanelUI. Вроде открывает, но дополнительно вылазят ещё панели. Что с этим кодом не так?

Выделить код

Код:

cmd:function(){document.getElementById("PanelUI-popup").openPopup(null,"",350,150,false,false);}}

858019ffbc9f687952bb27c3e5594788.jpeg


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

№804710-10-2014 17:17:12

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 31.0

Re: Custom Buttons

InfocatcherСпасибо, работает... Вам бы описание своих кнопок сюда запостить: Готовые кнопки для Custom Buttons | Форум Mozilla Россия... Искал такую, но не нашёл, потому попросил здесь - Dumby сделал наново...
1)Она работает, но то, что она делает то, что мне надо - это, получается, лишь побочный эффект? Ведь заявленный функционал - "Show window title (if original title was hidden by some reasons)". А виндовый тайтлбар у меня всегда спрятан стандартными настройками [firefox], и мне не надо его показывать...
2)Если я прав, то обилие кода - именно поэтому?
3)Если я до сих пор прав :-) , то нельзя ли к коду кнопки от Dumby приделать что-то типа этого:

Выделить код

Код:

this.drag= function() {
  if(window["bDragW"] )
    return;
var Ctrls = ['PersonalToolbar', 'toolbar-menubar','nav-bar', 'status-bar', 'FindToolbar'];
  try {
     Components.utils.import('resource://gre/modules/WindowDraggingUtils.jsm');

     for(i=0; i<Ctrls.length; i++) {
       ctrlW = document.getElementById(Ctrls[i]);
       if (!ctrlW) continue;
       try {
           var bDragW = new WindowDraggingElement(ctrlW, window);
           DragW.mouseDownCheck=function(e) {
             return  WinState==0
           }
      }catch(e){}
      }
   }catch(e){}
window["bDragW"]=true
}
this.drag()

Отсутствует

 

№804810-10-2014 17:33:51

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 32.0

Re: Custom Buttons

Александр Колесников пишет

Вам бы описание своих кнопок сюда запостить: Готовые кнопки для Custom Buttons | Форум Mozilla Россия...

Время на это все нужно... Надо бы как-нибудь, да.

Александр Колесников пишет

1)Она работает, но то, что она делает то, что мне надо - это, получается, лишь побочный эффект? Ведь заявленный функционал - "Show window title (if original title was hidden by some reasons)". А виндовый тайтлбар у меня всегда спрятан стандартными настройками [firefox], и мне не надо его показывать...

Кнопка растягивается в ширину и в ней выводится текст заголовка.

Александр Колесников пишет

2)Если я прав, то обилие кода - именно поэтому?

Там еще стили для заголовкообразного внешнего вида.

Александр Колесников пишет

приделать что-то типа этого: [...]

За таскаемость отвечает

Выделить код

Код:

var dragHandler = {
    ...
};
...
this.ondblclick = function(e) {
    ...
};

Отредактировано Infocatcher (10-10-2014 17:34:57)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№804910-10-2014 20:02:01

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2253
UA: Firefox 17.0

Re: Custom Buttons

Александр Колесников пишет

при зажатии с последующим перетаскиванием перемещалось бы всё окно

Странное дело, но у меня, для того места, где ты держишь кнопку,
вроде получилось её уменьшить до размера image,
а её label как-бы вылезает справа, но таскать окно не мешает.
Попробуй, вдруг подойдёт.

скрытый текст

Выделить код

Код:

const iconSize = 16;
const buttonWidth = 500;
const defaultFavicon = "";


if (gBrowser.currentURI.spec == "about:customizing") return;

const labMarginLeft = 7;
var btnWidth = iconSize + 2*3;
var labWidth = buttonWidth - iconSize - labMarginLeft;
var btnMarginRight = labWidth + labMarginLeft;

var [img, lab] = document.getAnonymousNodes(this);
this.style.cssText = imp('\
    -moz-box-orient: horizontal;\
    -moz-box-pack: start;\
    min-width: ' + btnWidth + 'px;\
    max-width: ' + btnWidth + 'px;\
    margin-right: ' + btnMarginRight + 'px;\
');
lab.style.cssText = imp('\
    display: -moz-box;\
    text-align: start;\
    margin-left: ' + labMarginLeft + 'px;\
    min-width: ' + labWidth + 'px;\
    max-width: ' + labWidth + 'px;\
');
img.style.cssText = imp('\
    display: -moz-box;\
    width: ' + iconSize + 'px;\
    height: ' + iconSize + 'px;\
');
function imp(str) str.replace(/;/g, " !important;");

var mo = new MutationObserver(() => lab.value = self.tooltipText = document.documentElement.getAttribute("title"));
mo.observe(document.documentElement, {attributes: true, attributeFilter: ["title"]});
mo.mutationCallback(addDestructor(() => mo.disconnect()));

var pl = {}, df = defaultFavicon || PlacesUtils.favicons.defaultFavicon.spec;
pl.onLinkIconAvailable = pl.onLocationChange = () => {
    var icon = gBrowser.selectedBrowser.mIconURL || df
    if (icon.startsWith("http")) icon = "moz-anno:favicon:" + icon;
    img.src = icon;
}
gBrowser.addProgressListener(pl);
pl.onLinkIconAvailable(addDestructor(() => gBrowser.removeProgressListener(pl)));

//addDestructor(() => { for(var node of [self, img, lab]) node.removeAttribute("style") });

Отсутствует

 

№805010-10-2014 23:09:21

Александр Колесников
Участник
 
Группа: Members
Зарегистрирован: 30-12-2005
Сообщений: 171
UA: Firefox 31.0

Re: Custom Buttons

Infocatcher  Спасибо за объяснение!
Dumby Спасибо! +натуральнозаголовкообразность +таскаемость без побочных эффектов у меня

Отсутствует

 

Board footer

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