abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:33 | IT novinky

    Apple oznámil, že iPhone a iPad jako první a jediná zařízení pro koncové uživatele splňují požadavky členských států NATO na zabezpečení informací. Díky tomu je možné je používat pro práci s utajovanými informacemi až do stupně „NATO Restricted“, a to bez nutnosti instalovat speciální software nebo měnit nastavení. Žádné jiné běžně dostupné mobilní zařízení tak vysokou úroveň státní certifikace dosud nezískalo.

    Ladislav Hagara | Komentářů: 11
    včera 13:00 | IT novinky

    Americký provozovatel streamovací platformy Netflix odmítl zvýšit nabídku na převzetí filmových studií a streamovací divize konglomerátu Warner Bros. Discovery (WBD). Netflix to ve čtvrtek oznámil v tiskové zprávě. Jeho krok po několikaměsíčním boji o převzetí otevírá dveře k akvizici WBD mediální skupině Paramount Skydance, a to zhruba za 111 miliard dolarů (2,28 bilionu Kč).

    Ladislav Hagara | Komentářů: 5
    včera 12:44 | IT novinky

    Americká společnosti Apple přesune část výroby svého malého stolního počítače Mac mini z Asie do Spojených států. Výroba v závodě v Houstonu by měla začít ještě v letošním roce, uvedla firma na svém webu. Apple také plánuje rozšířit svůj závod v Houstonu o nové školicí centrum pro pokročilou výrobu. V Houstonu by měly vzniknout tisíce nových pracovních míst.

    Ladislav Hagara | Komentářů: 20
    včera 12:11 | Zajímavý článek

    Vědci Biotechnologické společnosti Cortical Labs vytvořili biopočítač nazvaný CL1, který využívá živé lidské mozkové buňky vypěstované z kmenových buněk na čipu. Po úspěchu se hrou PONG se ho nyní snaží naučit hrát DOOM. Neurony přijímají signály podle toho, co se ve hře děje, a jejich reakce jsou převáděny na akce jako pohyb nebo střelba. V tuto chvíli systém hraje velmi špatně, ale dokáže reagovat, trochu se učit a v reálném čase se hrou

    … více »
    karkar | Komentářů: 8
    včera 01:55 | Nová verze Ladislav Hagara | Komentářů: 0
    26.2. 21:33 | Nová verze

    Ben Sturmfels oznámil vydání MediaGoblinu 0.15.0. Přehled novinek v poznámkách k vydání. MediaGoblin (Wikipedie) je svobodná multimediální publikační platforma a decentralizovaná alternativa ke službám jako Flickr, YouTube, SoundCloud atd. Ukázka například na LibrePlanet.

    Ladislav Hagara | Komentářů: 0
    26.2. 15:44 | Zajímavý software

    TerminalPhone (png) je skript v Bashi pro push-to-talk hlasovou a textovou komunikaci přes Tor využívající .onion adresy.

    Ladislav Hagara | Komentářů: 6
    26.2. 12:22 | IT novinky

    Před dvěma lety zavedli operátoři ochranu proti podvrženým hovorům, kdy volající falšuje čísla anebo se vydává za někoho jiného. Nyní v roce 2026 blokují operátoři díky nasazeným technologiím v průměru 3 miliony pokusů o podvodný hovor měsíčně (tzn., že k propojení na zákazníka vůbec nedojde). Ochrana před tzv. spoofingem je pro zákazníky a zákaznice všech tří operátorů zdarma, ať už jde o mobilní čísla nebo pevné linky.

    Ladislav Hagara | Komentářů: 10
    26.2. 03:44 | Komunita

    Společnost Meta (Facebook) předává React, React Native a související projekty jako JSX nadaci React Foundation patřící pod Linux Foundation. Zakládajícími členy React Foundation jsou Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion a Vercel.

    Ladislav Hagara | Komentářů: 3
    26.2. 01:22 | IT novinky

    Samsung na akci Galaxy Unpacked February 2026 (YouTube) představil své nové telefony Galaxy S26, S26+ a S26 Ultra a sluchátka Galaxy Buds4 a Buds4 Pro. Telefon Galaxy S26 Ultra má nový typ displeje (Privacy Display) chránící obsah na obrazovce před zvědavými pohledy (YouTube).

    Ladislav Hagara | Komentářů: 13
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (6%)
     (0%)
     (11%)
     (27%)
     (2%)
     (5%)
     (2%)
     (13%)
     (26%)
    Celkem 972 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Rozšírte si Firefox a Thunderbird - sami! - 5 (Nastavenia)

    29. 8. 2005 | Matej Gagyi | Programování | 7135×

    Téma článku je konfigurácia rozšírení. Vysvetlíme si, ako sa vytvára konfiguračný dialóg, a ako pristupovať k nastaveniam aplikácie cez správcu nastavenia.

    Definovanie nastavenia

    Žiadna aplikácia nie je ideálna tak, ako ju distribuuje výrobca. To platí aj pre rozšírenia pre Firefox. Aby si užívateľ mohol doladiť vlastnosti rozšírenia a programátor nemal veľké starosti s obsluhou nastavení, ponúka Mozilla kompletný systém správy nastavení.

    O existencii nastavení musíme Firefox informovať na dvoch miestach: v súbore install.rdf a v súbore content.rdf v obsahu rozšírenia. Do oboch stačí pridať jeden riadok, ktorý obsahuje adresu dialógu s nastaveniami.

    Informáciu o nastaveniach dodáme Firefoxu v súbore install.rdf tagom <em:optionsURL> a v súbopre content.rdf tagom <chrome:settingsURL>. Tieto tagy sa vkladajú do tagu <RDF:Description> a môžu byť použité ako atribúty tohto tagu tak, ako to povoľuje špecifikácia RDF.

    Všimnite si, že som do tagov zapísal aj ich XML menný priestor. Menné priestory sú "em:", "chrome:" a "RDF:" v uvedených tagoch. Tieto slovíčka v tagoch treba samozrejme prispôsobiť XML súboru, do ktorého ich vkladáme.

    V prípade nášho rozšírenia z tretieho dielu seriálu pridáme do súboru install.rdf vysvietený riadok:

    <em:description>Tutorial AbcLinuxu.cz</em:description>
    <em:optionsURL>chrome://abc5/content/abc5settings.xul</em:optionsURL>
     
    <em:file>
    <Description about="urn:mozilla:extension:file:abc5.jar">

    Menný priestor RDF tagov v našich RDF súboroch sme spravili predvoleným priestorom (to sa robí atribútom xmlns). Preto tag <RDF:Description> zapisujeme ako <Description>. Do súboru chrome/contents/content.rdf vložíme nasledovný riedok

    <Description about="urn:mozilla:package:abc5"
      chrome:displayName="Abc Tutorial 5"
      chrome:name="abc5"
      chrome:description="Multi-functions for tabbed browsing."
      chrome:extension="true"
      chrome:settingsURL="chrome://abc5/content/abc5settings.xul" />

    Dialóg nastavení

    Mozilla 1.8 má špeciálny typ dialógu pre nastavenia, ale na starších verziách Mozilly by jeho použitie spôsobovalo problémy. My preto použijeme obyčajný dialóg, naučíme sa s ním pracovať a rozšírenie sprístupníme väčšiemu počtu užívateľov.

    Dialóg nastavení je obyčajný XUL súbor. Vkladáme do neho bežné GUI prvky, ako do iných XUL okien. Výborná referenčná príručka k XUL elementom sa nachádza na stránkach XUL Planet. Pri tvorbe XUL aplikácií sa na XUL Planet môžete vždy spoľahnúť.

    Ovládacie prvky dialógu môžeme z programátorského hľadiska rozdeliť na tri druhy: rozloženie, vysvetlivky a nastavenia. Rozloženie sú XUL tagy, ktoré určujú pozíciu ostatných tagov na dialógu.

    Vysvetlivky sú nápisy (tag <label>) a rôzne bublinkové nápovedy, ktoré užívateľovi hovoria niečo o nastaveniach.

    Nastavenia sú zaškrtávacie políčka, prepínacie tlačidlá, textové polia a podobne, ktoré určujú samotné nastavenia. Mozilla 1.8 pridáva tomuto druhu ovládacích prvkov schopnosti nastavovať aplikáciu bez použitia JavaScriptu, ale znova sa objavuje problém so spätnou kompatibilitou.

    Ovládacie prvky nastavení musíme prepojiť s JavaScriptom, aby boli funkčné na čo najväčšom počte aplikácií. Zväčša je dobré si najprv vytvoriť štruktúru dialógu a až potom pridávať k nastavenia funkcie.

    Pri jednoduchých nastaveniach je táto úloha triviálna. Stačí celému dialógu pri jeho otvorení nastaviť ovládacie prvky do stavu, ktorý zodpovedá nastaveniam aplikácie, a pri potvrdení dialógu hodnoty nastavení nastaviť v aplikácii.

    V ukážke vytvárame dialóg, ktorý umožní vybrať si spôsob zoraďovania odkazov z bočnom paneli a vypnúť zobrazovanie adresy odkazov:

    <?xml version="1.0"?>
    <?xml-stylesheet href="chrome://browser/skin/"?>
     
    <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
      xmlns:html="http://www.w3.org/1999/xhtml"
      title="Tutorial AbcLinuxu 5 - Nastavenia"
      centerWindowOnScreen="true"
      ondialogaccept="accept_settings();"
      onload="init_settings();">
     
     <script src="chrome://abc5/content/abc5settings.js" type="application/x-javascript"/>
     
     <dialogheader id="abc5header" title="Tutorial AbcLinuxu.cz" description="abc5"/>
     
     <groupbox>
     <caption label="Zobrazovanie odkazov"/>
     <checkbox id="abc5-show_url" label="Zobraz URL odkazov"/>
     <radiogroup id="abc5-sort_rule">
      <grid>
        <columns><column/><column/></columns>
        <rows>
         <row>
          <label value="Zoradovat odkazy:"/>
          <radio id="abc5-sort_rule.none" value="0" label="Nijak"/>
         </row>
         <row>
          <spacer flex="1"/>
          <radio id="abc5-sort_rule.alpha" value="1" label="Abecedne"/>
         </row>
         <row>
          <spacer flex="1"/>
          <radio id="abc5-sort_rule.length" value="2" label="Podla dlzky"/>
         </row>
        </rows>
       </grid>
      </radiogroup>
     </groupbox>

    </dialog>

    V balíku s tutoriálom nájdete bohaté komentáre k XUL kódu v súbore abc5settings.xul.

    Ovládanie dialógu

    Ako sme si povedali, pri jednoduchých nastaveniach stačí naplniť dialóg pri jeho otvorení a uložiť nastavenia pri jeho potvrdení. Na to nám stačia dve funkcie JavaScriptu: init_settings() a accept_settings().

    Firefox udržiava svoje nastavenia a nastavenia všetkých rozšírení pomocou JavaScriptu v súbore prefs.js, ktorý sa nachádza v adresári s profilom Firefoxu. Všetky nastavenia spravuje komponent preferences-service (správca nastavení), ktorý je prístupný pre JavaScript cez XPConnect.

    XPConnect je systém, ktorým sú komponenty XPCOM spájané s JavaScriptom. Je to zložitý systém a pre tento článok je podstatný len spôsob, ktorým sa dostaneme ku správcovi nastavení. Správca je objekt, ktorý môžeme vložiť do premennej (1 riadok):

    var gPref = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch);

    Správca má metódy, ktoré slúžia na prístup priamo k nastaveniam. Popis týchto metód nájdete na stránkach XUL Planet a popis tých najdôležitejších v balíku s dnešným tutoriálom v súbore abc5settings.js.

    Tak a teraz musíme napísať funkciu init_settings(), ktorá pri otvorení dialógu nastaví jeho ovládacie prvky do požadovaného stavu:

    function init_settings() {
      var show_url = gPref.getBoolPref("abc5tutorial.appearance.show_url");
      document.getElementById("abc5-show_url").checked = show_url;
      
      var sort_rule = gPref.getIntPref("abc5tutorial.appearance.sort_rule");
      var sortrb = "none";
      if(sort_rule == 1) sortrb = "alpha";
      if(sort_rule == 2) sortrb = "length";
      document.getElementById("abc5-sort_rule." + sortrb).setAttribute("selected", "true");
    }

    Rozhodli sme sa nastavenie pre zobrazovanie adresy odkazu nazvať "abc5tutorial.appearance.show_url" a nastavenie zoraďovania odkazov podobne, len s príponou "sort_rule" namiesto "show_url".

    Kód tejto funkcie je pomerne jednoduchý, až na spôsob, akým nastavujeme triedenie odkazov. Všetky prepínacie tlačidlá som v dialógu nazval rovnako, až na ich príponu, a podľa čísla v konfiguračnom súbore zostavím meno toho tlačidla, ktoré chcem zapnúť.

    Po potvrdení dialógu musíme nastavenia uložiť. Na to potrebujeme funkciu accept_settings.js:

    function save_settings() {
      var show_url = document.getElementById("abc5-show_url").checked
      var sort_rule = document.getElementById("abc5-sort_rule").value;
      
      gPref.setBoolPref("abc5tutorial.appearance.show_url", show_url);
      gPref.setIntPref("abc5tutorial.appearance.sort_rule", sort_rule);
    }

    Táto funkcia je ešte jednoduchšia! Objekt document je náš dialóg a môžeme s ním pracovať ako so stránkou. Vyberieme hodnoty nastavení a odovzdáme ich správcovi nastavení.

    Správanie podľa nastavenia

    Teraz je potrebné použiť nastavenia v správaní rozšírenia. Nebudem ale uvádzať časti kódu z tutoriálu, ktoré nie sú všeobecne použiteľné. Všetky vyššie uvedené príklady sú použiteľné aj v iných rozšíreniach bez väčších úprav.

    Táto úloha je už aj tak veľmi jednoduchá. V JavaScripte, ktorý ovláda rozšírenie, stačí použiť rovnaké techniky na prístup k hodnotám nastavení, ako v JavaScripte, ktorý ovláda dialóg nastavenia. Tieto hodnoty použite v podmienkach alebo algoritmoch, ktoré vaše rozšírenie ovládajú, a nastavovanie je hotové.

    Predvolené nastavenia

    Rozšírenie by malo definovať predvolené nastavenia, ktoré Firefox vytvorí pri inštalácii rozšírenia. Ak by sme tieto nastavenia nepridali k rozšíreniu, museli by sme vždy v JavaScripte kontrolovať, či existujú.

    Predvolené nastavenia sa umiestňujú do súboru defaults/preferences/subor.js v balíku rozšírenia. Je to normálny JavaScript, ktorý môže obsahovať aj logiku.

    Predvolené nastavenia nastavuje funkcia pref(nastavenie, hodnota). Parameter nastavenie určuje názov nastavenia a jeho hodnotu.

    V prípade našich nastavení vyzerá súbor defaults/preferences/abc5.js nasledovne:

    pref("abc5tutorial.appearance.show_url", false);
    pref("abc5tutorial.appearance.sort_rule", 1);

    Tutoriál

    Stiahnite si balík Tutoriál Abclinuxu 5 - rozšírenie pre Firefox, v ktorom nájdete doplňujúce informácie a konkrétnu ukážku použitia nastavení v ozajstnom rozšírení.

    Hlavné zmeny sa udiali v súbore abc5sidebar.js, ktorý generuje obsah bočného panelu. V logike som zohľadnil nastavenia, ktoré pridali súbory abc5settings.xul a abc5settings.js.

    Pribudol súbor abc5.js v adresári default/preferences/, v ktorom sú definované predvolené nastavenia. Ostatné zmeny sa udiali v súbore install.rdf a v súbore content.rdf v adresári chrome/content/.

    Zmenené boli aj komentáre, ktoré poskytujú informácie užitočné pri písaní odlišných rozšírení.

    Záver

    Dnes sme si vysvetlili ako pridať dialóg nastavenia do rozšírenia a ako k týmto nastaveniam pristupovať pomocou štandardných postupov. Dodali sme tým nášmu rozšíreniu modulárnosť, ktorú používateľ ocení.

    Témou ďalšieho dielu bude lokalizácia rozšírení. Ukážeme si, ako umožňuje Mozilla lokalizovať texty pomocou štandardu DTD. Bočný panel nášho rozšírenia prerobíme a HTML súbor, ktorého obsah generuje JavaScript, nahradí XUL súbor.

    Nasledujúci článok bude posledný teoretický článok. Po ňom budú nasledovať články s referenčnými príručkami k témam prebratým v predchádzajúcich článkoch. Referenčné príručky budú sprevádzané ukážkami použitia.

    Verím, že dnešný diel série sa vám páčil a bude rovnako užitočný ako všetky predchádzajúce.

    Nejčtenější články posledního měsíce

    Týden na ITBiz: Českým inovátorkám se daří. Účastnice Women in Tech bodují v soutěžích i zahraničí
    Týden na ITBiz: AI již před rokem psala téměř třetinu nového kódu
    Týden na ScienceMag.cz: Za hranicemi altermagnetismu

    Nejkomentovanější články posledního měsíce

      všechny statistiky »

    Seriál Rozšírte si Firefox a Thunderbird - sami! (dílů: 8)

    Rozšírte si Firefox a Thunderbird - sami! (první díl)
    <—« Rozšírte si Firefox a Thunderbird - sami! - 4 (JavaScript)
    »—> Rozšírte si Firefox a Thunderbird - sami! - 6 (Lokalizácia)
    Rozšírte si Firefox a Thunderbird - sami! - 8 (Záver) (poslední díl)

    Související články

    Rozšírte si Firefox a Thunderbird - sami!
    Rozšírte si Firefox a Thunderbird - sami! - II
    Rozšírte si Firefox a Thunderbird - sami! - 3
    Rozšírte si Firefox a Thunderbird - sami! - 4 (JavaScript)
    Rozšírte si Firefox a Thunderbird - sami! - 6 (Lokalizácia)
    Rozšírte si Firefox a Thunderbird - sami! - 7 (XHTML)
    Rozšírte si Firefox a Thunderbird - sami! - 8 (Záver)
    Rozšiřte si Firefox!
    Rozšiřte si Thunderbird!
    Rozhovor s Pavlem Cvrčkem z týmu CZilla
    Sunbird
    Thunderbird I
    Thunderbird II
    Firefox
    Liber Mozillae aneb tajemná Kniha Mozilly
    Kde známé projekty ke svým jménům přišly...

    Další články z této rubriky

    LLVM a Clang – více než dobrá náhrada za GCC
    Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
    Reverzujeme ovladače pro USB HID zařízení
    Linux: systémové volání splice()
    Programování v jazyce Vala - základní prvky jazyka
           

    Hodnocení: 58 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    29.8.2005 08:10 Mazarik
    Rozbalit Rozbalit vše nefunguje odkaz
    Mohli by ste prosim opravit odkaz na ten balicek. nefungujuci tento odkaz Diik
    29.8.2005 08:20 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: nefunguje odkaz
    Omlouvám se. Opraveno.
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.