Univerza v Ljubljani Fakulteta za računalništvo in informatiko Aleš Papler Vtičnik za pomnjenje nastavitev sprejemanja piškotkov na spletu DIPLOMSKO D

Velikost: px
Začni prikazovanje s strani:

Download "Univerza v Ljubljani Fakulteta za računalništvo in informatiko Aleš Papler Vtičnik za pomnjenje nastavitev sprejemanja piškotkov na spletu DIPLOMSKO D"

Transkripcija

1 Univerza v Ljubljani Fakulteta za računalništvo in informatiko Aleš Papler Vtičnik za pomnjenje nastavitev sprejemanja piškotkov na spletu DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor: izr. prof. dr. Zoran Bosnić Ljubljana, 2014

2

3 Rezultati diplomskega dela so intelektualna lastnina avtorja. Za objavljanje ali izkoriščanje rezultatov diplomskega dela je potrebno pisno soglasje avtorja, Fakultete za računalništvo in informatiko ter mentorja. Besedilo je oblikovano z urejevalnikom besedil L A TEX.

4

5 Fakulteta za računalništvo in informatiko izdaja naslednjo nalogo: Tematika naloge: Kandidat naj v diplomski nalogi opiše problematiko nove zakonodaje, ki zahteva seznanitev uporabnikov z uporabo spletnih piškotkov, in posledic, ki jih zakonodaja ima na uporabniško izkušnjo. Razvije naj vtičnika za brskalnika Chrome in Firefox, ki omogočata shranjevanje uporabnikovih odločitev o sprejemanju piškotkov. Preuči naj možnosti objave razvite programske opreme v javne zbirke vtičnikov in metodološko naj primerja razlike v razvoju za oba brskalnika.

6

7 Izjava o avtorstvu diplomskega dela Spodaj podpisani Aleš Papler, z vpisno številko , sem avtor diplomskega dela z naslovom: Vtičnik za pomnjenje nastavitev sprejemanja piškotkov na spletu S svojim podpisom zagotavljam, da: sem diplomsko delo izdelal samostojno pod mentorstvom izr. prof. dr. Zorana Bosnića, so elektronska oblika diplomskega dela, naslov (slov., angl.), povzetek (slov., angl.) ter ključne besede (slov., angl.) identični s tiskano obliko diplomskega dela, soglašam z javno objavo elektronske oblike diplomskega dela na svetovnem spletu preko univerzitetnega spletnega arhiva. V Ljubljani, dne 15. septembra 2014 Podpis avtorja:

8

9 Zahvalil bi se svojemu mentorju izr. prof. dr. Zoranu Bosniću za vse nasvete in korekten odnos pri izdelavi diplomske naloge. Hvaležen sem tudi staršem, ki so mi omogočili študij in me spodbujali v času študija.

10

11 Kazalo 1 Uvod 1 2 Zakonodaja in piškotki Ozadje problema Piškotki Zgradba piškotkov Vrste piškotkov Zakonodaja Privolitev Izjeme Piškotki, za katere je potrebna privolitev Opis rešitve Razvoj vtičnika za brskalnik Chrome Uporabljena orodja in tehnologije Zgradba in sestava vtičnika Uporabljene tehnike in pristopi Programska struktura vtičnika Browser action, page action Sinhroni in asinhroni način Programski vmesniki Chrome Komunikacija preko sporočil Ikona orodne vrstice in značka Lokalizacija Lokalno nameščanje vtičnika

12 KAZALO 3.6 Razhroščevanje Spletna trgovina Chrome Objava vtičnika v spletni trgovini Razvoj vtičnika za brskalnik Firefox Uporabljena orodja in tehnologije Komodo Edit SQLite SQLite Database Browser XUL Zgradba in sestava vtičnika Uporabljene tehnike in pristopi Prekrivanje Stranska vrstica in pogovorno okno z možnostmi Opazovalec tema Hramba podatkov SQLite Lokalizacija Lokalno nameščanje vtičnika Razhroščevanje Spletna trgovina Mozilla Add-ons Objava vtičnika v spletni trgovini Prikaz delovanja in medsebojna primerjava razvojev vtičnikov Google Chrome Mozilla Firefox Medsebojna primerjava razvoja vtičnikov Sklepne ugotovitve 53

13 Slike 3.1 Struktura korenske mape vtičnika za brskalnik Chrome Diagram komponent vtičnika za brskalnik Chrome Nadzorna plošča za razvijalce v spletni trgovini Chrome Objava vtičnika v spletni trgovini Chrome Struktura korenske mape vtičnika za brskalnik Firefox Objava vtičnika v spletni trgovini Mozilla Add-ons Videz vtičnika, nameščenega iz spletne trgovine Chrome Dodajanje novega elementa, vtičnik za brskalnik Chrome Stran možnosti vtičnika za brskalnik Chrome Dodajanje novega elementa, vtičnik za brskalnik Firefox Stranska vrstica in pogovorno okno z možnostmi vtičnika za brskalnik Firefox

14

15 Primeri 3.1 Vsebina datoteke chrome.manifest Klic funkcije strani v ozadju iz drugih skript Primer sinhronega izvajanja Primer asinhronega izvajanja Branje vsebine hrambe podatkov Shranjevanje objekta v hrambo podatkov Uporaba vmesnika za izdelavo obvestila Izdelava novega elementa za meni desnega klika Komunikacija preko sporočil med dvema skriptama Dodajanje ikone vtičnika v orodno vrstico brskalnika Dodajanje značke ikoni v orodni vrstici brskalnika Del vsebine datoteke messages.json za angleški jezik Del vsebine datoteke messages.json za slovenski jezik Uporaba lokaliziranih vrednosti znotraj programske kode Vsebina datoteke install.rdf Vsebina datoteke chrome.manifest Vsebina prekrivne datoteke browseroverlay.xul Vključitev stranske vrstice v glavno prekrivno datoteko Odpiranje pogovornega okna z možnostmi in prenos podatkov Uporaba koncepta opazovalec-tema Branje iz hrambe podatkov SQLite Pisanje v hrambo podatkov SQLite Del vsebine datoteke browseroverlay.dtd Lokalizacija znotraj prekrivne datoteke

16

17 Seznam kratic in simbolov ACID (angl. Atomicity, Consistency, Isolation, Durability) sistem za upravljanje s podatkovnimi bazami mora zagotoviti lastnosti ACID (atomarnost, konsistentnost, izolacija in trajnost) za vsako transakcijo AJAX (angl. Asynchronous JavaScript and XML) skupina povezanih spletnih razvojnih tehnik, ki se uporabljajo za izdelavo interaktivnih spletnih strani in aplikacij. Spletne strani si s pomočjo AJAX-a v ozadju asinhrono izmenjujejo podatke s strežnikom API (angl. Application Programming Interface) aplikacijski programski vmesnik, ki določa, kako morajo posamezne komponente programske opreme sodelovati med seboj DTD (angl. Document Type Definition) označevalni jezik, ki določa pravila za strukturiranje dokumenta XML HTTP (angl. HyperText Transfer Protocol) aplikacijski protokol, ki služi za izmenjavo podatkov na spletu RDF (angl. Resource Description Framework) ogrodje za opisovanje virov in izmenjavo podatkov na spletu SQL (angl. Structured Query Language) strukturiran povpraševalni jezik za delo s podatkovnimi bazami XML (angl. Extensible Markup Language) označevalni jezik, ki določa format za zapis strukturiranih podatkov, ali arhitektura za prenos podatkov po omrežju

18

19 Povzetek V okviru diplomskega dela sta bila razvita dva vtičnika za spletna brskalnika, ki preprečujeta pojavljanje obvestil o piškotkih na spletnih straneh. Osnova za razvoj vtičnikov je nova evropska zakonodaja, ki od upravljavcev spletnih strani zahteva, da na svoje strani postavijo vidno obvestilo o piškotkih. Vtičnika imata možnost pomnjenja uporabnikovih odločitev o sprejemanju ali zavrnitvi piškotkov na spletnih straneh. Ob ponovnem obisku strani in ob prisotnem obvestilu o piškotkih vtičnika samodejno izvedeta dejanje, ki ga je uporabnik pred tem izbral. V diplomskem delu je predstavljen postopek razvoja vtičnikov za spletna brskalnika Google Chrome in Mozilla Firefox ter opis različnih razvijalskih tehnik in pristopov. Delo vsebuje tudi prikaz postopka objave obeh vtičnikov v uradnih spletnih trgovinah brskalnikov. Ključne besede: piškotki, vtičnik, brskalnik, Google Chrome, Mozilla Firefox

20

21 Abstract Two web browser extensions that prevent cookie notifications on websites have been developed within this thesis. The motivation for developing the extensions is the new European legislation that requires website administrators to equip their sites with visible notifications that cookies are used within the website. The user s preferences of accepting or rejecting website cookies can be recalled by the developed extensions. On any subsequent visit to a website last user s action about accepting website notices is automatically carried out. The process of developing extensions for Google Chrome and Mozilla Firefox web browsers, as well as a description of different development techniques and approaches are presented in the thesis. A demonstration of publishing both extensions in the official web browsers web stores is also shown in the thesis. Keywords: cookies, extension, browser, Google Chrome, Mozilla Firefox

22

23 Poglavje 1 Uvod Nova evropska direktiva 2009/136/ES, ki govori o zasebnosti in elektronskih komunikacijah, je z uveljavitvijo prinesla številne spremembe tudi na svetovnem spletu. Ena izmed vidnejših sprememb je obvezna uporaba obvestila o uporabi piškotkov na spletnih straneh. Upravljalci spletnih strani so po novem dolžni obvestiti obiskovalca, katere piškotke stran uporablja za delovanje in kakšen je njihov namen. Ravno ta obvestila pa so postala moteča pri vsakodnevnem brskanju po spletu. Direktiva predvideva tudi možnost, da uporabnik piškotke sprejme oziroma zavrne. Z vpeljavo te možnosti se pojavi nova težava v primeru, ko obiskovalec zavrne nameščanje piškotkov, vendar mu stran ob ponovnem obisku vseeno pokaže isto obvestilo. Vse omenjene težave so bile motivacija za izdelavo mehanizma, ki bi uporabniku omogočal enostavnejše brskanje po spletu. Rešitev, ki smo si jo zamislili in razvili, je vtičnik za spletni brskalnik. Vtičnik na preprost način brskalniku doda nove funkcionalnosti, pri tem pa ne poslabša uporabniške izkušnje. To je bil po našem mnenju najprimernejši mehanizem za premostitev opisanih težav, zato smo ga razvili za brskalnika Google Chrome in Mozilla Firefox. V drugem poglavju diplome bomo opisali spletne piškotke in nato na kratko povzeli novo evropsko ter slovensko zakonodajo s področja spleta in uporabe spletnih piškotkov. Tretje poglavje je v celotni namenjeno opisu razvoja vtičnika za brskalnik Google Chrome. V tem poglavju najprej opisujemo orodja in tehnologije, ki smo jih uporabili, na koncu pa tudi postopek objave vtičnika v uradni spletni trgovini. Sledi poglavje, namenjeno opisu razvoja vtičnika za brskalnik Mozilla 1

24 2 POGLAVJE 1. UVOD Firefox, njegova zgradba pa je podobna drugemu poglavju. V petem poglavju je opisano delovanje obeh vtičnikov in narejena medsebojna primerjava obeh razvojev. Zadnje poglavje povzema sklepne ugotovitve, do katerih smo prišli med razvojem obeh vtičnikov, in podaja predloge za izboljšave.

25 Poglavje 2 Zakonodaja in piškotki 2.1 Ozadje problema Upravljalci spletnih strani so morali, kot že uvodoma omenjeno, ob uveljavitvi nove zakonodaje na svoje strani vključiti vse spremembe, ki jih zakonodaja predvideva. Ena izmed vidnejših sprememb je prikaz obvestila uporabnikom spletnih strani o piškotkih, ki se nahajajo na strani. Več o spremembah zakonodaje smo napisali v poglavju 2.3. Težav pri opisani zahtevi je več. Prva težava, ki se ob tem pojavi, je v primeru, ko uporabnik ob prvem obisku strani jasno pove, da ne želi nameščanja piškotkov na njegovo strojno opremo (računalnik, pametni telefon ali tablični računalnik), ob vnovičnem obisku pa bo stran uporabniku ponovno prikazala isto obvestilo in še enkrat bo moral izraziti svojo odločitev glede nameščanja piškotkov. Druga težava je, da je obvestilo prikazano čez večino ali kar čez celotno stran v kombinaciji z domnevno privolitvijo uporabnika. Ob vsakem ponovnem obisku strani bo uporabnik naletel na to obvestilo in ga nato moral ročno zapreti. Tretja težava pa se pojavi, ko uporabnik v brskalniku izbriše celotno zgodovino brskanja. Ker si spletne strani odločitve uporabnika shranijo kot piškotke, se ob brisanju zgodovine brskanja vse te odločitve izgubijo. Strani bodo ob ponovnem obisku od uporabnika znova želele njegovo privolitev o nameščanju piškotkov. Vse te težave so bile motivacija k razmišljanju, kako bi to omilili, če že ne povsem odpravili. Rešitev, ki smo se je domislili, je podrobnejše opisana v po- 3

26 4 POGLAVJE 2. ZAKONODAJA IN PIŠKOTKI glavju Piškotki Piškotek (angl. cookie) je preprosta tekstovna datoteka, ki je sestavljena iz enega ali več parov ključ-vrednost (angl. key-value) [15]. Ob obisku spletne strani strežnik naloži enega ali več piškotkov na uporabnikovo strojno opremo. Piškotek običajno vsebuje osnovne informacije o strežniku, času veljavnosti in enoličnem identifikatorju uporabnika. Piškotek sam po sebi ni škodljiv, saj ne more vsebovati nič drugega kot samo alfanumerične znake. Glavni nameni piškotkov so identifikacija uporabnikov, personalizacija videza spletnih strani in spletnih oglasov. Vendar pa lahko vsebuje tudi osebne podatke uporabnika. To se zgodi v primeru, ko uporabnik sam vnese osebne podatke v spletni obrazec in jih nato strežnik po prejemu obrazca shrani v piškotek in ga namesti na uporabnikov računalnik. Piškotek, ki vsebuje osebne podatke, pa predstavlja možno grožnjo za vdor v zasebnost. Slaba stran piškotkov je, da lahko preko njih sledimo uporabniku preko različnih spletnih strani in si tako ustvarimo profil uporabnika katere strani je obiskal, kaj mu je všeč in kakšne članke prebira. Ker pa se tako sledenje brez dovoljenja uporabnika šteje za vdor v uporabnikovo zasebnost, želi nova evropska zakonodaja to početje omejiti Zgradba piškotkov Piškotek je zgrajen iz sedmih atributov [4]: ime piškotka, vrednost piškotka, čas veljavnosti, pot, za katero je namenjen piškotek, domena, za katero je namenjen piškotek, zastavica, če je potrebna varna povezava za dostop in uporabo piškotka,

27 2.2. PIŠKOTKI 5 zastavica, če je dostop do piškotka možen le preko protokola HTTP ali pa je do njega možno dostopati tudi preko drugih protokolov (npr. preko AJAXa). Prva dva atributa piškotka sta obvezna in morata biti definirana, sicer piškotek ni veljaven Vrste piškotkov Sejni piškoti (angl. session cookies) so piškotki, ki jih strežnik izdela ob začetku seje in nimajo predpisanega časa veljavnosti, saj jih brskalnik izbriše po preteku seje ali ko uporabnik zapre brskalnik [7]. Običajno se v njih hrani podatek, katere podstrani je uporabnik na strani obiskal, katere izdelke je uporabnik dodal v košarico in podobno. Nahajajo se le v bralno-pisalnem pomnilniku uporabnikove strojne opreme in niso shranjeni na obstojnem mediju (npr. na trdem disku). Trajni piškotki (angl. persistent cookies) so piškotki, ki imajo čas veljavnosti daljši, kot je trajanje ene seje. To je lahko nekaj dni, mesecev ali celo več let. Shranjeni so na obstojnem mediju uporabnikove strojne opreme. V njih se hrani informacija o strani, ki jo je uporabnik obiskal, preden je prišel na trenutno stran, kolikokrat je stran že obiskal in kakšna je njegova jezikovna nastavitev strani. Brskalnik strežniku ob vsaki poslani zahtevi pošlje tudi trajni piškotek, če ta že obstaja za domeno in pot strani, ki si jo uporabnik trenutno ogleduje. Na ta način lahko strežnik analizira promet in gradi profile uporabnikov. Lastni piškotki (angl. first-party cookies) so piškotki izdelani s strani strežnika, ki gostuje spletno stran in imajo v domeni vpisano enako domeno, kot je domena spletne strani, ki si jo uporabnik trenutno ogleduje. Primer: če uporabnik obišče stran in se na njegov računalnik namestita dva piškotka; prvi z domeno primer.si, drugi pa z domeno spletna.analitika.si, prvi ustreza definiciji lastnega piškotka, drugi pa tujega piškotka. Lastni piškotek je lahko sejni ali trajni. Tuji piškotki (angl. third-party cookies) so piškotki, ki imajo v domeni vpi-

28 6 POGLAVJE 2. ZAKONODAJA IN PIŠKOTKI sano drugo domeno, kot je domena spletne strani, ki si jo uporabnik trenutno ogleduje. To so običajno spletne oglaševalske agencije in agencije za analitiko spletnega prometa. Ker se preko tujih piškotkov lahko sledi uporabnikovemu brskanju po spletu, se uporaba teh piškotkov brez dovoljenja uporabnika šteje kot vdor v uporabnikovo zasebnost. 2.3 Zakonodaja V začetku leta 2013 je v veljavo stopila sprememba Zakona o elektronskih komunikacijah (Uradni list št. 109/2012), ki govori o novih pravilih in smernicah glede uporabe piškotkov in podobnih spletnih tehnologij za shranjevanje in pridobivanje podatkov, shranjenih na uporabnikovi strojni opremi. S to spremembo zakona se je v pravni red Republike Slovenije prenesla tudi Direktiva 2002/58/ES Evropskega parlamenta in Sveta z dne 12. julija 2002 o obdelavi osebnih podatkov in varstvu zasebnosti na področju elektronskih komunikacij (Direktiva o zasebnosti in elektronskih komunikacijah) [8], zadnjič spremenjena z Direktivo 2009/136/ES. Pomembna novost, ki jo Direktiva vnaša v evropski in posledično tudi v slovenski spletni prostor je, da je shranjevanje podatkov ali pridobivanje dostopa do podatkov, shranjenih v terminalski opremi naročnika ali uporabnika, dovoljeno samo pod pogojem, da je zadevni naročnik ali uporabnik v to privolil po tem, ko je bil jasno in izčrpno obveščen v skladu z Direktivo 95/46/ES, med drugim o namenih obdelave. [6] Kar pomeni, da je uporaba piškotkov po novem mogoča le, če spletna stran poda uporabniku zadostne informacije o vrsti, času veljavnosti in namenu piškotkov, ter ob privoliti uporabnika. Glavni nameni omenjene direktive so torej: uporabniku zagotoviti pravico do zasebnosti in zaupnosti na spletu, predstaviti uporabniku splošne in podrobnejše informacije glede piškotkov, ki se bodo ob obisku določene spletne strani namestili na njegovo strojno opremo, in omogočiti uporabniku izbiro, da za določeno spletno stran sprejme oziroma zavrne nameščanje piškotkov na njegovo strojno opremo.

29 2.3. ZAKONODAJA Privolitev Spletna stran mora pred namestitvijo piškotkov, ki ne spadajo pod izjeme (opisane so v poglavju 2.3.2), dobiti od uporabnika privolitev. Pred tem naj bi uporabnik od spletne strani dobil vse zadostne informacije o piškotkih (o vrsti, času veljavnosti in namenu piškotkov). Poznamo dve vrsti soglasja: Pri domnevni privolitvi spletna stran na svoji začetni strani uporabniku prikaže obvestilo o piškotkih. V obvestilu je običajno zapisano le, da se z uporabo njihovih storitev ali z brskanjem po podstraneh sklepa, da je uporabnik podal privolitev o uporabi piškotkov. Za izrecno privolitev štejemo zavestno uporabnikovo odločitev o uporabi piškotkov po tem, ko je bil seznanjen z zadostnimi informacijami o uporabi in namenu piškotkov. To je običajno klik na gumb ali povezavo za strinjanje s pogoji uporabe. Spletna stran uporabniku tudi ponudi možnost, da se premisli o svoji odločitvi o uporabi piškotkov tudi po tem, ko je enkrat že izrazil svojo odločitev Izjeme Zakon o elektronskih komunikacijah pa v drugem odstavku 157. člena predvideva tudi dve izjemi. Prva izjema govori o tem, da je dovoljena uporaba piškotkov oz. podobnih tehnologij izključno zaradi prenosa sporočila po omrežju. To pomeni, da prenos sporočila tehnično ne bi bil mogoč brez uporabe piškotkov. Druga izjema pa dovoljuje piškotke v primeru, da brez njih ne bi bilo mogoče zagotoviti uporabe storitve, ki jo je uporabnik izrecno zahteval. Dodaten kriterij, ki mu morajo piškotki zadostiti, pa je njihovo trajanje. Namreč, da nek piškotek lahko spada pod izjeme, mora njegov čas veljavnosti trajati le toliko časa, kot je potrebno za dosego namena (npr. prenos sporočila do strežnika). Nekaj splošnih izjem je Delovna skupina iz člena 29 (angl. Article 29 Working Party) 1 opredelila v svojem mnenju 04/2012, ki govori o izjemah za potrditev soglasja piškotkov [5]: 1 Dostopno na spletnem naslovu article-29/index en.htm.

30 8 POGLAVJE 2. ZAKONODAJA IN PIŠKOTKI Lastni sejni piškotki, ki so namenjeni le shranjevanju enoličnega identifikatorja uporabnikove seje. Taki piškotki si lahko zapomnijo tudi uporabnikove vnose v spletne obrazce ali vsebino spletne košarice. Piškotki za avtentifikacijo uporabnika, ki so namenjeni temu, da neka spletna stran prepozna, ali je nek uporabnik že prijavljen ali ne. Na ta način se prijavljenemu uporabniku ni treba ponovno prijaviti na vsaki podstrani. Piškotki za avtentifikacijo uporabnika spadajo pod izjeme le v primeru, če so piškotki sejni in ne trajni (definicija je opisana v poglavju 2.2.2). V nasprotnem primeru pa ne spadajo več pod izjemo in je za njihovo uporabo treba pridobiti privolitev uporabnika. Piškotki, namenjeni za zagotavljanje uporabnikove varnosti. Namenjeni so preprečevanju napačnih vnosov in prijav na spletnih straneh. Njihov čas veljavnosti je prav zaradi njihovega namena običajno daljši. Sejni piškotki multimedijskih predvajalnikov, ki so namenjeni shranjevanju tehničnih podatkov o predvajani vsebini za potrebe predvajalnika (npr. Adobe Flash Player). Sejni piškotki, s katerimi se uravnava obremenitev strežnikov (angl. server load balancing). Taki piškotki hranijo podatke o končnem strežniku, ki je dodeljen uporabniku za potrebe prenosa sporočil. Piškotki za personalizacijo videza strani. Namenjeni so shranjevanju uporabnikovih nastavitev strani, kot so na primer jezik strani, razvrščanje ali filtriranje rezultatov na strani. Taki piškotki spadajo pod izjeme, če njihov čas veljavnosti traja le do konca seje. Piškotki, namenjeni vtičnikom družabnih omrežij. Ta omrežja omogočajo spletnim stranem, da vključijo njihovo vsebino na svojo stran (t.i. vtičniki). Njihov glavni namen je uporabnikom, ki so prijavljeni v družabno omrežje, omogočiti, da ob obisku različnih spletnih strani lažje delijo vsebino, jo priporočijo prijateljem in podobno. Vendar ti piškotki spadajo pod izjemo le v primeru, ko je uporabnik član nekega družabnega omrežja in je aktivno prijavljen. V primeru, da uporabnik ni član družabnega omrežja ali pa da

31 2.3. ZAKONODAJA 9 se uporabnik odjavi oziroma izbriše iz družabnega omrežja, se taki piškotki brez dovoljenja ne smejo naložiti na uporabnikovo strojno opremo Piškotki, za katere je potrebna privolitev Vrste piškotkov, za katere je potrebno pridobiti privolitev uporabnika: Piškotki, namenjeni vtičnikom družabnih omrežij, ki sledijo uporabnikom. Upravljalci spletnih strani pogosto na svojo stran vključijo vtičnike družabnih omrežij, kar v osnovi ne predstavlja nobene grožnje za uporabnikovo zasebnost. Težava pa nastane takrat, ko se ti piškotki uporabijo tudi za sledenje vseh uporabnikov (prijavljenih, neprijavljenih, članov in nečlanov družabnih omrežij) po spletu in so pogosto povezani s tujimi piškotki za namene oglaševanja, analitike in raziskave trga. Za uporabo piškotkov, namenjenih vtičnikom družabnih omrežij, ki sledijo uporabniku, je potrebna privolitev uporabnika. Tuji piškotki, namenjeni oglaševanju in trženju. Sem spada tudi spletno vedenjsko oglaševanje (angl. online behavioural advertising), ki je posebna oblika personaliziranega oglaševanja. Oglaševalske agencije sledijo uporabniku po spletu in ob tem vodijo statistiko, kakšne strani uporabnik obiskuje, kakšni izdelki so mu všeč in na katerih straneh preživi največ časa. Iz statistik nato izdelajo uporabnikov profil in uporabniku prikazujejo le zanj najbolj relevantne oglase. Lastni piškotki za analitiko. Z uporabo teh piškotkov upravljalci spletnih strani štejejo promet na strani, ugotovijo, s katere strani je uporabnik prišel, in opazijo morebitne težave z navigacijo na strani. Ker taki piškotki niso nujno potrebni za delovanje, je njihova uporaba pogojena s privolitvijo uporabnika. Rok za implementacijo sprememb je bil 15. junij Za nadzor nad izvajanjem novi odločb o piškotkih je pristojen informacijski pooblaščenec člen Zakona o elektronskih komunikacijah predvideva tudi denarne kazni za kršitelje 157. člena. Višina kazni je opredeljena v 235. členu istega zakona.

32 10 POGLAVJE 2. ZAKONODAJA IN PIŠKOTKI 2.4 Opis rešitve Rešitev, ki smo se je domislili, je vtičnik za brskalnik, ki omogoča uporabniku, da ob obisku spletne strani samodejno skrije obvestilo o piškotkih ali samodejno izvrši neko dejanje uporabnika (npr. klik na gumb ali zapiranje pojavnega okna). Glede na to, da sta v Evropi in v Sloveniji najbolj priljubljena brskalnika Google Chrome in Mozilla Firefox [22], smo se odločili, da razvijemo vtičnik za omenjena brskalnika. Cilji, ki smo si jih pri tem zadali, so naslednji: razviti vtičnik za brskalnika Google Chrome in Mozilla Firefox, uporabniku omogočiti čim bolj transparentno in preprostejše delo pri brskanju na spletu in sočasnem delovanju vtičnika, trajno shraniti odločitve uporabnika z namenom, da uporabniku po brisanju zgodovine brskanja ne bo treba ponovno privoliti ali zavrniti nameščanja piškotkov na njegovo opremo, uporabniku ponuditi možnost urejanja shranjenih odločitev. narediti medsebojno primerjavo razvoja obeh vtičnikov, in objaviti vtičnika v brskalnikovih spletnih trgovinah (Chrome Web Store za brskalnik Google Chrome in Mozilla Add-ons za brskalnik Mozilla Firefox).

33 Poglavje 3 Razvoj vtičnika za brskalnik Chrome Brskalnik Google Chrome (v nadaljevanju brskalnik Chrome) je brezplačen spletni brskalnik, ki ga je razvilo podjetje Google [14]. Prva beta različica je bila za operacijski sistem Windows na voljo 2. septembra leta 2008 v 43 jezikih, prva stabilna različica pa 11. decembra istega leta. Prva uradna različica za operacijska sistema OS X in Linux je bila na voljo 25. maja Najnovejša različica brskalnika Chrome je 36.0 (na dan 31. julija 2014) in je na voljo v 53 svetovnih jezikih. Razvijalci so pri brskalniku Chrome ubrali povsem nov pristop. Razvoja so se namreč lotili z mislijo, da brskalnik ne bo omogočal le brskanja po preprostih spletnih straneh, temveč bo omogočal tudi preprosto pošiljanje e-pošte, spletno nakupovanje, plačevanje računov in izvajanje spletnih aplikacij. Razvili so zmogljiv brskalnik s preprosto oblikovanim uporabniškim vmesnikom. Razvijanje vtičnika za brskalnik Chrome smo izvedli v programskem jeziku JavaScript. Za prikaz strani opcij in pojavnih oken pa potrebujemo še označevalni jezik HTML in slogovni jezik CSS. 11

34 12 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME 3.1 Uporabljena orodja in tehnologije Visual Studio Za izdelavo vtičnika za brskalnik Chrome smo uporabili integrirano razvojno okolje (angl. integrated development environment) Visual Studio 2013, ki ga je razvilo podjetje Microsoft [26]. Visual Studio je orodje, namenjeno razvijalcem programske opreme, in se uporablja za razvoj namiznih aplikacij, spletnih aplikacij in spletnih storitev. Nudi podporo programskim jezikom C, C++, Visual Basic, Visual C#, F#, HTML, XML, CSS in JavaScript. Urejevalnik kode ima podporo za IntelliSense to je orodje, ki pohitri proces pisanje kode. Ena izmed lastnosti orodja IntelliSense je tudi samodokončevanje kode (angl. code completion). Prav zaradi te lastnosti in zaradi dobre podpore JavaScriptu smo za razvoj vtičnika odločili za Visual Studio JavaScript JavaScript je skriptni programski jezik, ki se ga najpogosteje uporablja na spletnih straneh in pri spletnih aplikacijah. Omogoča spreminjanje in interakcijo programa s spletnimi stranmi, ne da bi bilo pri tem potrebno strani ponovno osvežiti oziroma naložiti. CSS CSS (angl. Cascading Style Sheets) je slogovni jezik, namenjen opisovanju videza spletnih dokumentov, napisanih v označevalnem jeziku (npr. HTML). JSON JSON (angl. JavaScript Object Notation) je tekstovna datoteka, ki vsebuje podatkovne objekte ter njihove lastnosti in vrednosti, sestavljene iz parov ključ-vrednost. Uporablja se pri prenosu podatkov po omrežju, najpogosteje v smeri od strežnika do spletne aplikacije.

35 3.2. ZGRADBA IN SESTAVA VTIČNIKA 13 HTML DOM HTML DOM (angl. Document Object Model) je objektni model za predstavitve dokumentov HTML in XML, zgrajen v obliki drevesne strukture. Spletna stran je v brskalniku predstavljena v obliki drevesne strukture, z začetnim vozliščem imenovanim Document object. 3.2 Zgradba in sestava vtičnika Razvoj vtičnika smo začeli tako, da smo najprej izdelali namensko mapo, v kateri se nahajajo vse potrebne podmape in datoteke. Da bo vtičnik pravilno deloval, je pomembna pravilna hierarhija podmap in datotek, znotraj glavne mape vtičnika. Obvezna je datoteka manifest.json in ena ali več datotek HTML. Opcijsko vtičnik lahko vsebuje tudi eno ali več datotek JavaScript in datoteke ostalih vrst (npr. slikovne datoteke, datoteke CSS, datoteke JSON za lokalizacijo vtičnika). Pri razvoju našega vtičnika smo uporabili več datotek HTML in JavaScript ter datoteki JSON, namenjeni lokalizaciji vtičnika. Na sliki 3.1 je prikazana struktura korenske mape našega vtičnika z vsemi datotekami, ki smo jih med razvojem potrebovali. manifest.json Vsak vtičnik ali aplikacija za brskalnik Chrome mora imeti eno datoteko JSON poimenovano manifest.json, ki vsebuje več pomembnih informacij za brskalnik [19]. Na primeru 3.1 je prikazana vsebina datoteke manifest.json iz našega vtičnika. Prvi trije atributi (manifest version, name in version) so obvezni, ostali so izbirni. Podrobnejši opis atributov: Atribut manifest version mora imeti vrednost 2 v primeru, da razvijamo vtičnik za brskalnik Chrome različice 18 ali višje. V nasprotnem primeru pa ima atribut vrednost 1. Z atributom name poimenujemo vtičnik, z atributom description pa podamo kratek opis vtičnika. V primeru, da bi želeli lokalizirati ime in opis vtičnika, pa pravo vrednost nadomestimo z vrednostma MSG extname in MSG extdesc. Lokalizirane vrednosti hranimo v ločeni datoteki poimenovani messages.json, za vsak jezik posebej. Več o lokalizaciji smo napisali v poglavju 3.4.

36 14 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME Vtičnik Chrome manifest.json contentscript.js eventpage.js options.html options.js popup.html popup.js style.css _locales en messages.json sl messages.json images 16x16 icons16x16.png 48x48 icons48x48.png 128x128 icons128x128.png Slika 3.1: Struktura korenske mape vtičnika za brskalnik Chrome Primer 3.1: Vsebina datoteke chrome.manifest { m a n i f e s t v e r s i o n : 2, name : MSG extname, v e r s i o n : 1. 0, d e f a u l t l o c a l e : en, d e s c r i p t i o n : MSG extdesc, i c o n s : { 1 6 : images /16 x16 / i c o n. png, 4 8 : images /48 x48 / i c o n. png, 1 28 : images /128 x128 / i c o n. png },

37 3.2. ZGRADBA IN SESTAVA VTIČNIKA 15 } b r o w s e r a c t i o n : { d e f a u l t i c o n : images /16 x16 / i c o n. png, d e f a u l t p o p u p : popup. html }, background : { s c r i p t s : [ background. j s ], p e r s i s t e n t : f a l s e }, c o n t e n t s c r i p t s : [ { matches : [ : / / / ], j s : [ c o n t e n t S c r i p t. j s ] } ], o p t i o n s p a g e : o p t i o n s. html, p e r m i s s i o n s : [ s t o r a g e, n o t i f i c a t i o n s, contextmenus, tabs, :// / ] Z atributom version določimo različico vtičnika. Ta atribut je pomemben pri samodejnemu posodabljanju vtičnika. default locale pove, katera lokalizacija je privzeta. Atribut je obvezen v primeru, če vtičnik vsebuje mapo locales. V primeru, da vtičnik nima lokalizacije, ta atribut ne sme biti definiran. Atribut icons pove brskalniku, kje se nahajajo ikone različnih velikosti, ki jih vtičnik uporablja. Z atributom browser action določimo vrsto vtičnika, v našem primeru gre za vtičnik, ki bo na voljo na vseh spletnih straneh. Več o vrstah vtičnika smo napisali v poglavju Atribut background pove brskalniku, da vtičnik vsebuje tudi skripto, ki se bo odzivala na dogodke in se izvajala v ozadju med uporabnikovim brskanjem. Naša skripta eventpage.js vsebuje poslušalce dogodkov, ki se odzivajo na dogodke uporabnika in na dogodke, ki jih prožijo druge skripte. Z atributom content scripts brskalniku povemo, da vtičnik vsebuje skripto, ki se bo izvedla ob prikazu neke spletne strani. Z dodatnim atributom matches povemo brskalniku, na katere spletne strani naj se ta skripta odziva. Zaradi var-

38 16 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME nostnih razlogov je to edina skripta znotraj vtičnika, ki ima omogočen dostop do spletnih strani DOM-a. Z atributom options page določimo stran, na kateri bo lahko uporabnik spreminjal nastavitve in videz vtičnika. Atribut permissions vtičniku omogoči dostop do aplikacijskega programskega vmesnika brskalnika. Za naš vtičnik smo potrebovali dostop do brskalnikove hrambe podatkov (angl. browser storage), obvestil, menija desnega klika (angl. context menu) in brskalnikovega sistema za upravljanje z zavihki in okni. Več o programskih vmesnikih smo zapisali v poglavju eventpage.js Vtičnik lahko vsebuje tako imenovano stran v ozadju (angl. background page), s pomočjo katere se vtičnik odziva na dogodke, doda nove funkcionalnosti brskalniku in podobno. Ločimo dve vrsti strani v ozadju stran je lahko obstojna (angl. persistent) in je vedno aktivna, kar pomeni, da ne glede na to, ali uporabnik uporablja vtičnik ali ne, bodo stran in njene skripte vedno naložene v pomnilniku računalnika. Taka stran se imenuje background page in se pri izdelavi vtičnikov ne priporoča, saj tudi ob neaktivnosti zavzema vire računalnika. Veliko boljša rešitev je stran, ki je aktivna le takrat, ko se jo zares potrebuje. Taki strani pravimo event page. Stran običajno vsebuje poslušalce dogodkov (angl. event listeners), na katere se potem tudi ustrezno odzove z rokovalniki dogodkov (angl. event handlers). Za potrebe našega vtičnika smo izbrali tip strani event page. Ta stran oziroma bolj natančno skripta JavaScript vsebuje poslušalce dogodkov. Eden izmed dogodkov je namestitev vtičnika, ko brskalniku dodamo dva nova elementa menija desnega klika. Ali pa dogodek, ko se spletna stran v celoti naloži in nato krmilnik tega dogodka preveri, če je uporabnik dodal vnos, da se izvede kakšno dejanje na tej spletni strani (samodejni klik ali samodejno skrivanje nekega spletnega elementa). Več o samem delovanju vtičnika smo opisali v poglavju 5.1. Ostale skripte imajo možnost dostopati do funkcij strani v ozadju. To je možno preko funkcije getbackgroundpage vmesnika chrome.runtime. Primer 3.2 vsebuje klic funkcije strani v ozadju, ki ga izvedemo iz druge skripte. V funkciji povratnega klica uporabimo objekt JavaScript strani v ozadju (objekt eventpage) in nato preko tega objekta kličemo funkcijo.

39 3.2. ZGRADBA IN SESTAVA VTIČNIKA 17 Primer 3.2: Klic funkcije strani v ozadju iz drugih skript chrome. runtime. getbackgroundpage ( f u n c t i o n ( eventpage ) { eventpage. addentrytostorage ( s e t t i n g, { name : g e n e r a l S w i t c h, value : d i s a b l e d }) ; }) ; Primer 3.2 je izsek kode iz našega vtičnika, ko želimo v skripti options.js spremeniti vrednost glavnega stikala v brskalnikovi hrambi podatkov preko funkcije strani v ozadju. Prvi parameter v funkciji addentrytostorage vsebuje niz, s katerim povemo, da gre za nastavitev, drugi parameter pa je objekt JSON, ki vsebuje nove vrednosti glavnega stikala. contentscript.js Content script je datoteka JavaScript, ki deluje v obsegu spletnih strani. Z uporabo HTML DOM-a lahko content script bere vsebino in tudi spreminja videz spletnih strani. Zaradi varnostnih razlogov pa je to tudi edina datoteka znotraj vtičnika, ki ima neposreden dostop do spletnih strani in njihove vsebine. Ima pa tudi nekaj omejitev, na katere je potrebno paziti pri razvoju vtičnika. Namreč, content script ne more uporabljati vseh funkcij programskega vmesnika chrome, razen nekaterih izjem 1, in ne more uporabljati spremenljivk in funkcij spletnih strani ali vtičnika. V content scriptu našega vtičnika se nahaja le funkcija za pridobivanje lastnosti spletnih elementov (ID, ime in razred elementa) in za samodejno izvršitev dejanja. Več o samem delovanju vtičnika smo napisali v poglavju 5.1. style.css Za oblikovanje videza opcijske strani vtičnika (options.html) in pojavnega okna (popup.html) smo uporabil slogovni jezik CSS. Pri tem smo uporabili le nekaj preprostih slogovnih pravil, kot so na primer barva besedila, pozicioniranje elementov HTML in oblikovanje tabele HTML. 1 Programski vmesniki, ki jih skripta content script lahko uporablja, so chrome.i18n, chrome.storage, chrome.runtime in chrome.extension.

40 18 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME 3.3 Uporabljene tehnike in pristopi Programska struktura vtičnika Na sliki 3.2 je prikazan diagram programskih komponent za naš vtičnik in odnosi med posameznimi komponentami. Bralno-pisalni dostop do brskalnikove hrambe podatkov imata skripti options.js in eventpage.js preko funkcij aplikacijskega vmesnika chrome.storage. Skripte lahko med seboj tudi komunicirajo. Njihova komunikacija poteka preko sporočil, kar bomo podrobneje opisali v poglavju V našem primeru med seboj komunicirata skripti options.js in eventpage.js ter skripti eventpage.js in contentscript.js. Kot že omenjeno, ima le skripta content- Script neposreden (bralno-pisalni) dostop do spletne strani HTML DOM-a. brskalnikova hramba podatkov options.js eventpage.js contentscript.js HTML DOM bralno-pisalni dostop komunikacija preko sporočil Slika 3.2: Diagram komponent vtičnika za brskalnik Chrome

41 3.3. UPORABLJENE TEHNIKE IN PRISTOPI Browser action, page action Pri razvoju vtičnika za brskalnik Chrome imamo na izbiro dve možnosti. Prva možnost je, da za vrsto vtičnika izberemo browser action. Tak vtičnik se bo odzival na akcije brskalnika in bo na voljo na vseh spletnih straneh. Ikona vtičnika bo prikazana v desnem delu brskalnikove orodne vrstice. Vtičniku lahko dodamo še stran z možnostmi (angl. options page), na kateri bo lahko uporabnik spreminjal nastavitve in videz vtičnika. Druga možnost je, da za vrsto vtičnika izberemo page action. To pomeni, da bo vtičnik na voljo le, ko se naložijo določene spletne strani. Seznam spletnih strani, pri katerih bo vtičnik na voljo, določimo v datoteki manifest.json. Za potrebe našega vtičnika smo izbrali browser action, ker smo želeli, da bo vtičnik na voljo pri vseh spletnih straneh Sinhroni in asinhroni način V JavaScriptu in tudi v nekaterih drugih programskih jezikih obstajata dve vrsti načina izvajanja programa sinhroni in asinhroni način [1]. Pri sinhronem načinu se program in klici funkcij izvajajo zaporedno, torej eden za drugim. Naslednji klic se ne bo pričel izvajati, dokler prejšnji klic ni v celoti dokončan. Uporaba sinhronega načina zadošča, če je program preprost in nima nobenega povezovanja preko mreže, bodisi s strežnikom ali z drugimi klienti. Asinhroni način je priporočljiv v primeru, da želimo v programu izvesti poizvedbo SQL in nato prikazati rezultate te poizvedbe. Ali pa v primeru, ko na strežnik pošljemo nek zahtevek in glede na odgovor nato nadaljujemo izvajanje našega programa. V asinhronem načinu čakanje na rezultate poizvedbe ali na odgovor strežnika ne bo blokiralo oziroma ustavilo izvajanja primarnega programa. Vendar to velja le v primeru, da je nadaljnje izvajanje programa neodvisno od rezultatov poizvedbe ali od odgovora strežnika. Prikaz rezultatov poizvedbe oziroma nadaljnje izvajanje programa glede na odgovor strežnika izvedemo v tako imenovani funkciji povratnega klica (angl. callback function). Ta funkcija se bo pričela izvajati, ko se bo asinhron klic zaključil in vrnil rezultate. Preprost primer sinhronega izvajanja je prikazan na primeru 3.3, ko najprej

42 20 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME pridobimo zahtevo in jo nato sinhrono pošljemo na strežnik. Izvajanje celotnega programa se bo začasno zaustavilo, vse dokler program ne bo prejel odgovora strežnika in ga nato izpisal v konzolo. Izvajanje programa se bo nadaljevalo šele po uspešno prejetem odgovoru. Primer 3.3: Primer sinhronega izvajanja var zahteva = p r i p r a v i z a h t e v o ( ) ; var odgovor = p o s l j i z a h t e v o s i n h r o n o ( zahteva ) ; c o n s o l e. l o g ( odgovor ) ; Primer 3.4 pa namesto sinhronega pošiljanja zahteve na strežnik vsebuje asinhrono pošiljanje. V tem primeru se bo izvajanje glavnega programa nadaljevalo, ko pa bo program prejel odgovor strežnika, ga bo izpisal v konzolo. Primer 3.4: Primer asinhronega izvajanja var zahteva = p r i p r a v i z a h t e v o ( ) ; p o s l j i z a h t e v o a s i n h r o n o ( zahteva, f u n c t i o n ( odgovor ) { c o n s o l e. l o g ( odgovor ) ; }) ; Klice vmesnikov Chrome moramo izvesti asinhrono, razen če ni v dokumentaciji posameznega vmesnika predvideno drugače. Običajno le najbolj preproste klice vmesnikov izvedemo sinhrono. Ena takšnih izjem je klic vmesnika za pridobivanje lokalizirane vrednosti chrome.i18n.getmessage(imevrednosti, opcijskiparametri) Programski vmesniki Chrome Pri razvoju vtičnika smo uporabili več aplikacijskih programskih vmesnikov Chrome (angl. Chrome APIs). Celoten nabor vmesnikov je mogoče zaslediti na uradni strani za podporo razvoju vtičnika [17]. Vsi vmesniki so na omenjeni strani dobro dokumentirani in vsebujejo tudi preproste primere uporabe. Kot že omenjeno v poglavju 3.3.3, pa moramo večino klicev programskih vmesnikov izvajati asinhrono. Nekaj programskih vmesnikov, ki smo jih uporabili:

43 3.3. UPORABLJENE TEHNIKE IN PRISTOPI 21 chrome.storage Ta vmesnik je namenjen shranjevanju, branju in sledenju uporabniških podatkov [23]. Ponuja povsem enake možnosti kot brskalnikova lokalna hramba podatkov (angl. local storage), ki jo uporabljajo spletne strani in aplikacije. Razlog, zaradi katerega smo se odločili za uporabo vmesnika chrome.storage namesto lokalne hrambe podatkov, je predvsem v ta, da so podatki uporabnika dostopni tudi po tem, ko uporabnik izbriše zgodovino brskanja. Drugi razlog pa je ta, da ima lokalna hramba podatkov doseg le za eno spletno domeno. Kar pomeni, da lahko beremo in urejamo vsebino hrambe podatkov le za tisto stran in njene podstrani, ki jih ima uporabnik trenutno odprte. To pa predstavlja težavo, saj ne moremo dobiti in prikazati celotne vsebine lokalne hrambe podatkov, ne da bi pri tem uporabili slabe rešitve. Dobri lastnosti hrambe podatkov chrome.storage v primerjavi z lokalno hrambo podatkov sta tudi ti, da bralno-pisalne operacije potekajo asinhrono (pri lokalni hrambi zaporedno oziroma sinhrono) in da so lahko podatki shranjeni kot objekti, kar pa za lokalno hrambo ne velja, saj podatke lahko hrani le v obliki nizov (angl. strings). Celotno vsebino hrambe podatkov dobimo tako, da podamo funkciji sync.get vmesnika chrome.storage kot prvi parameter vrednost null. V primeru, da želimo prebrati le en objekt iz hrambe podatkov, pa funkciji podamo kot prvi parameter vrednost ključa želenega objekta. Primer 3.5 kaže, kako v funkciji povratnega klica izpišemo celotno vsebino hrambe podatkov in kako izpišemo le vsebino enega objekta. Primer 3.5: Branje vsebine hrambe podatkov // I z p i s c e l o t n e v s e b i n e hrambe podatkov chrome. s t o r a g e. sync. get ( n u l l, f u n c t i o n ( items ) { c o n s o l e. l o g ( items ) ; }) ; // I z p i s v s e b i n e o b j e k t a CNP chrome. s t o r a g e. sync. get ( CNP, f u n c t i o n ( items ) { c o n s o l e. l o g ( items ) }) ; Za shranjevanje v hrambo podatkov je namenjena funkcija sync.set vmesnika

44 22 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME chrome.storage. Kot prvi parameter funkciji podamo objekt, ki ga želimo shraniti. Drugi parameter, ki ni obvezen, je funkcija povratnega klica, znotraj katere obravnavamo uspešno ali neuspešno izvršitev shranjevanja. Objekt mora biti sestavljen iz parov ključ-vrednost. Za večjo urejenost znotraj hrambe podatkov in za lažje iskanje naj prvi ključ predstavlja ključ objekta, ki ga shranjujemo, vrednost tega ključa pa naj bo vsebina objekta, urejena po parih ključ-vrednost. V primeru 3.6 smo v hrambo podatkov shranili objekt, ki vsebuje primitivne tipe, polje in objekt. Primer 3.6: Shranjevanje objekta v hrambo podatkov chrome. s t o r a g e. sync. s e t ({ t e s t n i O b j e k t : { k l j u c 1 : [ abc, true, ], k l j u c 2 : 456, k l j u c 3 : { k l j u c 3 1: vrednost3 1, k l j u c 3 2: vrednost3 2 } } }) ; Pri tem smo opazili, da če želimo posodobiti le vrednost nekega ključa, npr. kljuc2 v primeru 3.6 znotraj že shranjenega objekta, moramo v hrambo podatkov ponovno shraniti celoten objekt (testniobjekt), drugače se bodo ostale vrednosti znotraj objekta izgubile. To smo rešili na način, da smo objekt iz hrambe podatkov, preden smo želeli neko vrednost posodobiti, v celoti prebrali, ga posodobili in nato shranili nazaj. chrome.notifications Ta vmesnik je namenjen prikazu brskalnikovih obvestil uporabniku. Za potrebe našega vtičnika smo ta vmesnik potrebovali za obveščanje uporabnika o pomembnih dogodkih, ki so se zgodili. S klicem chrome.notifications.create izdelamo obvestilo, ki se bo uporabniku prikazalo v spodnjem desnem kotu zaslona. Primer klica vmesnika chrome.notifications: Primer 3.7: Uporaba vmesnika za izdelavo obvestila chrome. n o t i f i c a t i o n s. c r e a t e ( i d O b v e s t i l a, { type : b a s i c, t i t l e : Naslov o b v e s t i l a, message : Vsebina o b v e s t i l a.

45 3.3. UPORABLJENE TEHNIKE IN PRISTOPI 23 }, f u n c t i o n ( ) { }) ; chrome.contextmenus Vmesnik chrome.contextmenus je namenjen dodajanju novih elementov za meni desnega klika (angl. context menu) znotraj brskalnika. Pri našem vtičniku smo dodali dva elementa, kot je prikazano na sliki 5.2. Za izdelavo novega elementa podamo funkciji chrome.contextmenus.create kot prvi parameter objekt, v katerem so definirane lastnosti elementa, ki se bo pojavil v meniju desnega klika. Za primer 3.8 smo definirali napis, enolični identifikator in pogoje, pri katerih bo na voljo ta element. Primer 3.8: Izdelava novega elementa za meni desnega klika chrome. contextmenus. c r e a t e ({ t i t l e : Nov element desnega k l i k a, i d : context newelement, c o n t e x t s : [ page, frame, s e l e c t i o n, l i n k, e d i t a b l e, image ] }) ; chrome.i18n Vmesnik chrome.i18n je namenjen lokalizaciji vtičnika. Pri tem mora vtičnik vsebovati mapo locales s toliko podmapami in datotekami messages.json, koliko različnih jezikov želimo. Na sliki 3.1 je prikazana hierarhija datotek in map znotraj glavne mape vtičnika. Več o sami lokalizaciji smo povedali v poglavju Komunikacija preko sporočil Komunikacija med stranjo v ozadju (eventpage.js) in skripto contentscript ali med ostalimi skriptami lahko poteka preko sporočil [20]. Na eni strani je pošiljatelj sporočila, ki ob dogodkih ali dejanjih uporabnika pošlje sporočilo točno določene

46 24 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME vrste vsem poslušalcem. Na drugi strani je prisoten en ali več poslušalcev sporočil. V primeru, da je sporočilo prave vrste za nekega poslušalca, se ta poslušalec nanj odzove in opcijsko pošlje pošiljatelju tudi odgovor. Sporočilo in odgovor sta v obliki objekta JSON, torej lahko vsebujeta primitivne tipe, polje ali objekt. Ker ima samo skripta contentscript dostop do modela HTML DOM, mi pa smo želeli dostopati do elementov DOM-a tudi v skripti eventpage, smo to težavo rešili ravno s komunikacijo preko sporočil. Na primeru 3.9 je prikazana komunikacija preko sporočil med skriptama event- Page.js in contentscript.js v našem vtičniku. Primer 3.9: Komunikacija preko sporočil med dvema skriptama // I z s e k programske kode i z s k r i p t e eventpage. j s var currenttab = getcurrenttab ( ) ; chrome. tabs. sendmessage ( currenttab. id, { a c t i o n : g e t E l e m e n t P r o p e r t i e s }, f u n c t i o n ( r e s p o n s e ) { var elementid = r e s p o n s e. i d ; var elementname = r e s p o n s e. name ; var elementclass = r e s p o n s e. c l a s s ; }) ; // I z s e k programske kode i z s k r i p t e c o n t e n t S c r i p t. j s chrome. runtime. onmessage. a d d L i s t e n e r ( f u n c t i o n ( r equest, sender, sendresponse ) { i f ( r e q u e s t. a c t i o n == g e t E l e m e n t P r o p e r t i e s ) { var element = getclickedelement ( ) ; sendresponse ({ i d : element. g e t A t t r i b u t e ( i d ), name : element. g e t A t t r i b u t e ( name ), e l C l a s s : element. g e t A t t r i b u t e ( c l a s s ) }) ; } }) ; Za komunikacijo preko sporočil smo uporabili funkcijo sendmessage vmesnika chrome.tabs. Funkcija sprejme kot prvi parameter identifikator trenutno odprtega zavihka, drugi parameter je sporočilo v obliki JSON, tretji parameter pa je funkcija povratnega klica, v kateri obravnavamo odgovor na sporočilo. Na poslušalčevi strani se nahaja poslušalec dogodkov, ki ob prejetju sporočila najprej preveri, če je sporočilo pravega tipa, nato pa preko funkcije sendresponse pošlje pošiljatelju odgovor v našem primeru pošlje ID, ime in razred spletnega elementa, na katerega

47 3.4. LOKALIZACIJA 25 je uporabnik kliknil Ikona orodne vrstice in značka Vtičnik ima lahko v orodni vrstici brskalnika svojo ikono. Ob kliku nanjo se uporabniku prikaže pojavno okno (angl. popup), v katerem lahko prikažemo informacije o stanju vtičnika, brskalnika ali o trenutno prikazani spletni strani. Za demonstracijske potrebe smo v pojavnem oknu našega vtičnika prikazali povezavo, ki ob kliku odpre stran z možnostjo vtičnika. V datoteki manifest.json smo ikono v orodni vrstici in pojavno okno definirali tako: Primer 3.10: Dodajanje ikone vtičnika v orodno vrstico brskalnika b r o w s e r a c t i o n : { d e f a u l t i c o n : images /16 x16 / i c o n. png, d e f a u l t p o p u p : popup. html } Ikoni v orodni vrstici pa lahko dodamo tudi tako imenovano značko (angl. badge), ki prekrije spodnji del ikone s poljubnim besedilom. To storimo preko funkcije set- BadgeText vmesnika chrome.browseraction. Za potrebe našega vtičnika smo ikoni dodali značko z besedilom ON oziroma OFF, ki se prikaže glede na stanje glavnega stikala vtičnika. Primer uporabe značke za ikono vtičnika: Primer 3.11: Dodajanje značke ikoni v orodni vrstici brskalnika chrome. browseraction. setbadgetext ({ t e x t : ON }) ; 3.4 Lokalizacija Vtičnik lahko razvijemo na način, da so izrazi, elementi in obvestila vtičnika v istem jeziku, kot je jezik brskalnika. Da je vsebina vtičnika lokalizirana glede na jezik brskalnika, mora glavna mapa vtičnika vsebovati mapo locales, znotraj katere je potem toliko podmap, v koliko jezikov želimo lokalizirati vtičnik. Podmape pa morajo biti poimenovane po veljavnih kraticah za jezike [16]. Za naš vtičnik smo naredili podporo za dva jezika angleščino in slovenščino. Organizacija datotek in map znotraj vtičnika je prikazana na sliki 3.1. Na primeru 3.12 je prikazan tudi

48 26 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME del vsebine datoteke messages.json za angleški jezik, na primeru 3.13 pa enak del vsebine za slovenski jezik. Primer 3.12: Del vsebine datoteke messages.json za angleški jezik { } extname : { message : Cookie N o t i f i c a t i o n Preventer }, t a b l e b u t t o n e d i t : { message : Edit entry }, c o n f i r m d e l e t i n g e n t r y : { message : Would you r e a l l y l i k e to d e l e t e the entry with Row ID : $rowid$?, p l a c e h o l d e r s : { rowid : { content : $1, example : 1 } } },... Primer 3.13: Del vsebine datoteke messages.json za slovenski jezik { extname : { message : Prepre č e v a l e c o b v e s t i l p i š kotkov }, t a b l e b u t t o n e d i t : { message : Uredi z a p i s }, c o n f i r m d e l e t i n g e n t r y : { message : A l i r e s ž e l i t e i z b r i s a t i z a p i s z ID v r s t i c e : $rowid$?, p l a c e h o l d e r s : { rowid : { content : $1, example : 1 } } },...

49 3.5. LOKALNO NAMEŠČANJE VTIČNIKA 27 } Če želimo uporabiti lokalizirane vrednosti znotraj datoteke manifest ali datoteke CSS, to storimo tako, da imenu spremenljivke spredaj dodamo MSG. Primer uporabe lokalizirane vrednosti znotraj datoteke manifest.json je prikazan na primeru 3.1. Za pridobivanje lokaliziranih vrednosti znotraj skript to storimo preko funkcije getmessaage vmesnika chrome.i18n. Primer uporabe lokaliziranih vrednosti v datoteki options.js: Primer 3.14: Uporaba lokaliziranih vrednosti znotraj programske kode var tableeditbuttontext = chrome. i18n. getmessage ( t a b l e e d i t b u t t o n ) ; // Primer s parametrom var rowid = 5 ; var deletingentrymsg = chrome. i18n. getmessage ( c o n f i r m d e l e t i n g e n t r y, [ rowid ] ) ; 3.5 Lokalno nameščanje vtičnika Vtičnik lahko namestimo lokalno, kar pomeni, da ga namestimo iz datotečnega sistema v naš brskalnik. Pri tem mora biti mapa vtičnika v podobni organizaciji kot na sliki 3.1. Vtičnik namestimo tako, da v meniju brskalnika poiščemo Orodja in izberemo Razširitve ali pa v naslovno vrstico brskalnika vpišemo chrome://extensions. Na strani razširitev najprej omogočimo način za razvijalce (angl. developer mode) in kliknemo na gumb Naloži odpakirano razširitev (angl. Load unpacked extension). V pojavnem oknu izberemo mapo vtičnika in v primeru, da vtičnik ne vsebuje nobene sintaktične napake, je namestitev končana. Vtičnik pa lahko objavimo tudi v spletni trgovini Chrome Web Store. Nameščanje vtičnika preko trgovine je preprostejše, saj nam ni potrebno omogočiti načina za razvijalce, prav tako pa si lahko drugi uporabniki brskalnika Chrome na ta način namestijo naš vtičnik. Postopek nalaganja in objave v spletni trgovini bomo opisali v poglavju

50 28 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME 3.6 Razhroščevanje Razhroščevanje (angl. debugging) je proces odkrivanja in zmanjševanja napak pri razvoju programske ali strojne opreme [10]. Pri tem procesu razvijalec opazuje, če se del programa oziroma celoten program ali strojna oprema odziva in deluje v skladu s pričakovanji. Pri tem je razvijalcu na voljo množica orodij za razhroščevanje. Brskalnik Chrome že v osnovi vsebuje Orodja za razvijalce (angl. Developer tools), ki povsem zadostujejo razhroščevanju vtičnika. Orodja za razvijalce so dostopna preko menija brskalnika (Orodja, Orodja za razvijalce) ali preko kombinacije tipk Ctrl +Shift+I. Omogočajo pregled DOM-a, slogovnih pol CSS in skript JavaScript za spletne strani in vtičnike. Prav tako si lahko nastavimo prekinitveno točko (angl. breakpoint) za začasno prekinitev izvajanja skript JavaScript, si ogledamo vrednosti spremenljivk in v konzoli izvajamo kodo JavaScript. Pri razhroščevanju vtičnika pa je potrebno paziti na eno izjemo. Namreč, vtičnik je lahko sestavljen iz štirih delov iz strani v ozadju, strani uporabniškega vmesnika (sem spada pojavno okno, ki se pojavi ob kliku na ikono vtičnika v orodni vrstici brskalnika), strani možnosti in skripte content script. Vsi ti deli pa imajo ločena orodja za razvijalce, kar pomeni, da je ob morebitni napaki vtičnika le-to treba iskati na štirih različnih mestih. 3.7 Spletna trgovina Chrome Spletna trgovina Chrome (angl. Chrome Web Store) je spletno mesto, ki je namenjeno za objavo in prenos spletnih aplikacij za brskalnik Chrome ali za Googlove aplikacije (angl. Google Apps) [9]. Trgovina je bila ustanovljena 6. decembra 2010 in je dostopna na spletnem naslovu V trgovini je na voljo veliko brezplačnih in plačljivih aplikacij, razširitev (vtičnikov) in tem za brskalnik Chrome. Vsak izdelek v trgovini ima svojo stran, na kateri lahko najdemo dodatne informacije o njem ter preberemo ocene in mnenja uporabnikov.

51 3.7. SPLETNA TRGOVINA CHROME Objava vtičnika v spletni trgovini V tem poglavju smo opisali, kako smo objavili naš vtičnik v spletni trgovini Chrome. Postopek za objavo aplikacije ali teme za brskalnik Chrome je zelo podoben. Za objavo vtičnika v spletni trgovini Chrome smo najprej potrebovali Googlov uporabniški račun. Nato smo odprli nadzorno ploščo za razvijalce (angl. developer dashboard) [11] in preko nje dodali nov element korensko mapo vtičnika, ki je morala biti stisnjena v formatu ZIP. Na sliki 3.3 je prikazana nadzorna plošča za razvijalce, po tem, ko smo naložili osnutek našega vtičnika. Slika 3.3: Nadzorna plošča za razvijalce v spletni trgovini Chrome Osnutku vtičnika smo nato dodali podrobnejši opis v angleščini in slovenščini, ikono, zaslonske posnetke delovanja vtičnika, ga umestili v eno izmed kategorij vtičnikov in mu nastavili vse ostale dodatne nastavitve (v katerih državah je vtičnik na voljo, ga nastavili tako, da je javno viden vsem in da je brezplačen). Pred končno objavo izdelka v trgovini je bilo treba Googlu plačati tudi enkratni prispevek za razvijalce v višini 5 dolarjev. Končni videz vtičnika, objavljenega v spletni trgovini Chrome, prikazuje slika 3.4.

52 30 POGLAVJE 3. RAZVOJ VTIČNIKA ZA BRSKALNIK CHROME Vtičnik je dostopen na spletnem naslovu detail/cookie-notification-preve/nibhfnfgknipgjgipdoapppjpeakljek. Slika 3.4: Objava vtičnika v spletni trgovini Chrome

53 Poglavje 4 Razvoj vtičnika za brskalnik Firefox Brskalnik Mozilla Firefox (v nadaljevanju brskalnik Firefox) je odprtokodni in brezplačen spletni brskalnik [13]. Na voljo je za različne operacijske sisteme in platforme, kot so Windows, OS X, Linux in Android. Prva verzija brskalnika je bila na voljo že leta 2002 pod imenom Phoenix. Kasneje se je brskalnik zaradi sporov glede poimenovanja še dvakrat preimenoval, najprej v Firebird in na koncu še v Firefox. Trenutna verzija brskalnika je 32.0 (na dan 4. septembra 2014), na voljo pa je v več kot 80 jezikih. Brskalnik Firefox je po priljubljenosti v Evropi na drugem mestu (avgust 2014), večjo priljubljenost med uporabniki ima le brskalnik Chrome [22]. Za izdelavo vtičnika za brskalnik Firefox smo uporabili tako imenovani tradicionalni pristop. Pri tem pristopu razvijalec uporabi eno ali več prekrivnih datotek XUL, ki razširijo obstoječi uporabniški vmesnik brskalnika ter mu dodajo nove funkcionalnosti. Več o prekrivnih datotekah in pristopu bomo omenili v poglavju Vtičnik smo razvili v programskem jeziku JavaScript, potrebovali pa smo še označevalni jezik HTML, slogovni jezik CSS in strukturiran povpraševalni jezik SQL. 31

54 32 POGLAVJE 4. RAZVOJ VTIČNIKA ZA BRSKALNIK FIREFOX 4.1 Uporabljena orodja in tehnologije Komodo Edit Komodo Edit je brezplačno in odprtokodno integrirano razvojno okolje, ki ga je razvilo kanadsko podjetje ActiveState [18]. Je del naprednejšega in plačljivega razvojnega okolja Komodo IDE. Komodo Edit je namenjen pisanju in urejanju programske kode, napisane v enem izmed dinamičnih programskih jezikov (Python, PHP, Ruby, JavaScript) ter nudi podporo označevalnim jezikom (HTML, CSS, XML). Ker Komodo Edit temelji na platformi Mozilla XULRunner, nudi dobro podporo tudi pri razvoju vtičnikov za Firefox (npr. samodejno zaključevanje značk XUL). Pri razvoju vtičnika smo uporabili različico SQLite Je relacijski sistem za upravljanje s podatkovno bazo (angl. relational database management system), ki za delovanje ne potrebuje namenskega strežnika [3]. Podatkovna baza in njen sistem za upravljanje sta preko ene same knjižnice direktno integrirana v aplikacijo, ki uporablja SQLIte. Vse transakcije SQLite so združljive z načeli ACID. V večini primerov se uporablja za lokalno hrambo podatkov. Celotna podatkovna baza, njene tabele in indeksi so združeni v eno datoteko. Pri shranjevanju podatkov vtičnika smo se odločili za uporabo SQLita, saj naj bi bil po mnenju organizacije Mozzila to najprimernejši mehanizem za hrambo podatkov znotraj brskalnika. Brskalnik Firefox že uporablja SQLite za hrambo zaznamkov, piškotkov in zgodovine brskanja. Več o uporabi hrambe podatkov na primeru našega vtičnika smo napisali v poglavju SQLite Database Browser Za delo z datotekami SQLite smo uporabili odprtokodno in brezplačno orodje SQLite Database Browser, 1 ki omogoča izdelavo, pregled in urejanje datotek SQLite. Orodje smo potrebovali predvsem pri razhroščevanju in testiranju poizvedb SQL, ki jih uporablja vtičnik pri hrambi podatkov. 1 Od verzije naprej se orodje imenuje Database Browser for SQLite.

55 4.2. ZGRADBA IN SESTAVA VTIČNIKA XUL XUL (angl. XML User Interface Language) je označevalni jezik s podobno sintakso, kot jo ima XML, in je namenjen izdelavi uporabniških vmesnikov [2]. Uporabniški vmesnik brskalnika Firefox je sestavljen iz skupine elementov XUL (kot so gumbi, okna in meniji), ki so definirani z enim ali več dokumenti XUL. Za dodajanje novih funkcionalnosti uporabniškega vmesnika brskalnika Firefox uporabimo t.i. prekrivno datoteko XUL (angl. XUL overlay file). Ta lahko vsebuje tudi skripte JavaScript, ki dodajo dinamično interakcijo novim elementom. Za razvoj vtičnika za brskalnik Firefox smo uporabili prav ta način. Več o prekrivnih datotekah bomo povedali v poglavju Zgradba in sestava vtičnika Namenska mapa vtičnika za brskalnik Firefox mora vsebovati datoteki chrome.manifest in instal.rdf ter tri podmape, poimenovane content, locale in skin [24]. Da vtičnik lahko namestimo v brskalnik, mora biti celotna mapa zapakirana v datoteko XPI. XPI je arhivski format, ki je povsem identičen formatu ZIP in ga najlažje dobimo tako, da mapo zapakiramo v formatu ZIP, nato pa dobljeni datoteki spremenimo končnico iz.zip v.xpi. Zgradba našega vtičnika za brskalnik Firefox je prikazana na sliki 4.1. Podrobnejši opis posameznih datotek sledi v nadaljevanju. install.rdf Install.rdf je datoteka v formatu RDF, ki vsebuje vse potrebne informacije o vtičniku za njegovo uspešno namestitev v brskalnik. Vsi elementi morajo biti znotraj korenskega elementa Description. Na primeru 4.1 je prikazana celotna vsebina datoteke install.rdf iz našega vtičnika. Vtičniku smo z elementom id najprej določili enolični identifikator (firefoxcnp@mozilla.org), ki je običajno oblikovan v obliki e-poštnega naslova, četudi izbran naslov ne obstaja. Preko elementa version in name smo določili številko različice vtičnika in njegov naziv. Z elementom type smo določili vrsto dodatka 2 pomeni vtičnik, 4 temo za brskalnik, 8 jezikovni paket itd. Ime in opis vtičnika ter avtorja smo želeli tudi lokalizirati, zato smo jih

56 34 POGLAVJE 4. RAZVOJ VTIČNIKA ZA BRSKALNIK FIREFOX Vtičnik Firefox chrome.manifest install.rdf content browseroverlay.xul browseroverlay.js optiondialog.xul optiondialog.js sidebar.xul sidebar.js helpers.js locale en-us browseroverlay.dtd strings.properties sl-sl browseroverlay.dtd strings.properties skin icons16x16.png icons24x24.png icons48x48.png style.css Slika 4.1: Struktura korenske mape vtičnika za brskalnik Firefox postavili znotraj elementa localized. Poleg smo dodali še element locale, ki vtičniku pove, kateremu jeziku je lokalizacija namenjena. Lokalizacijo bomo podrobnejše predstavili v poglavju 4.4. V datoteki install.rdf je obvezen tudi poseben element, poimenovan targetapplication, s katerim določimo ciljno aplikacijo vtičnika [25]. S predpisanim nizom znakov za element id smo določili, da bo vtičnik namenjen brskalniku Firefox, z elementoma minversion in maxversion pa smo določili najnižjo in najvišjo verzijo brskalnika, ki ju vtičnik podpira.

57 4.2. ZGRADBA IN SESTAVA VTIČNIKA 35 Primer 4.1: Vsebina datoteke install.rdf <?xml v e r s i o n = 1.0?> <RDF xmlns= http : / /www. w3. org /1999/02/22 rdf syntax ns# xmlns : em= http : / /www. m o z i l l a. org /2004/em r d f# > <D e s c r i p t i o n about= urn : m o z i l l a : i n s t a l l m a n i f e s t > <em : id>firefoxcnp@ mozilla. org </em : id> <em : v e r s i o n >1.0.0 </em : v e r s i o n > <em : type >2</em : type> <em : name>cookie N o t i f i c a t i o n Preventer </em : name> <em : iconurl>chrome : / / firefoxcnp / s k i n / i c o n. png</em : iconurl> <em : homepageurl>h t t p s : / / addons. m o z i l l a. org /en US/ f i r e f o x /addon/ cookie n o t i f i c a t i o n preventer </em : homepageurl> <em : l o c a l i z e d > <D e s c r i p t i o n > <em : l o c a l e >en US</em : l o c a l e > <em : name>cookie N o t i f i c a t i o n Preventer </em : name> <em : d e s c r i p t i o n >Simple e x t e n s i o n f o r p r e v e n t i n g web s i t e s c o o k i e s n o t i f i c a t i o n s.</em : d e s c r i p t i o n > <em : c r e a t o r >Ale š Papler </em : c r e a t o r > </D e s c r i p t i o n > </em : l o c a l i z e d > <em : l o c a l i z e d > <D e s c r i p t i o n > <em : l o c a l e >s l SL</em : l o c a l e > <em : name>prepre č e v a l e c o b v e s t i l p i š kotkov </em : name> <em : d e s c r i p t i o n >P r eprost v t i č nik, k i prepre č i p r i k a z o v a n j e o b v e s t i l za p i š kotke na s p l e t n i h s t r a n e h.</em : d e s c r i p t i o n > <em : c r e a t o r >Ale š Papler </em : c r e a t o r > </D e s c r i p t i o n > </em : l o c a l i z e d > <em : t a r g e t A p p l i c a t i o n > <D e s c r i p t i o n > <em : id >{ec8030f7 c20a 464 f 9b0e 13a3a9e97384}</em : id > <em : minversion >4.0</em : minversion> <em : maxversion >32. </em : maxversion> </D e s c r i p t i o n > </em : t a r g e t A p p l i c a t i o n > </D e s c r i p t i o n > </RDF>

58 36 POGLAVJE 4. RAZVOJ VTIČNIKA ZA BRSKALNIK FIREFOX chrome.manifest V datoteki chrome.manifest registriramo nove komponente vtičnika in definiramo strukturo. Znotraj datoteke povemo, kako se imenujejo obvezne mape (content, locale in skin) in določimo njihovo pot. Definiramo še, da gre za prekrivni način naša datoteka browseroverlay.xul bo prekrila brskalnikovo datoteko browser.xul. Registriramo še datoteko CSS, da lahko uporabimo stilske predloge za elemente brskalnikove orodne vrstice (ikona vtičnika). Na primeru 4.2 je prikazana vsebina datoteke chrome.manifest, kjer smo ji določili relativne poti ključnih map vtičnika (content, skin in locale), glavne prekrivne datoteke (browseroverlay.xul) in datoteke CSS. Primer 4.2: Vsebina datoteke chrome.manifest content firefoxcnp content / s k i n firefoxcnp c l a s s i c / 1. 0 s k i n / l o c a l e firefoxcnp en US l o c a l e /en US/ l o c a l e firefoxcnp s l SL l o c a l e / s l SL/ o v e r l a y chrome : / / browser / content / browser. xul chrome : / / firefoxcnp / content / browseroverlay. xul s t y l e chrome : / / g l o b a l / content / customizetoolbar. xul chrome : / / firefoxcnp / s k i n / t o o l b a r. c s s 4.3 Uporabljene tehnike in pristopi Prekrivanje Prekrivanje (angl. overlaying) je način, ko razvijalec za podlago novih komponent uporabi obstoječe programske komponente. Ta način se uporablja tudi pri tradicionalni izdelavi vtičnikov za brskalnik Firefox, ko se s tem pristopom doda dodatne komponente na obstoječi uporabniški vmesnik brskalnika. Videz novih komponent definiramo z datotekami XUL. S skriptami JavaScript pa komponentam dodamo dinamičnost in interaktivnost z uporabnikom. Prekrivna datoteka XUL mora imeti korenski element poimenovan <overlay>, nato pa znotraj tega elementa dodajamo nove komponente. Na primeru 4.3 je prikazano, kako smo

59 4.3. UPORABLJENE TEHNIKE IN PRISTOPI 37 preko prekrivne datoteke XUL dodali dva nova elementa v meni desnega klika brskalnika. Primer 4.3: Vsebina prekrivne datoteke browseroverlay.xul <?xml v e r s i o n = 1.0?> <?xml s t y l e s h e e t type= t e x t / c s s h r e f= chrome : / / g l o b a l / s k i n /?> <?xml s t y l e s h e e t type= t e x t / c s s h r e f= chrome : / / firefoxcnp / s k i n / s t y l e. c s s?> <!DOCTYPE o v e r l a y SYSTEM chrome : / / firefoxcnp / l o c a l e / browseroverlay. dtd > <o v e r l a y i d= CNP o v e r l a y xmlns= http : / /www. m o z i l l a. org / keymaster / g a t e k e e p e r / t h e r e. i s. only. xul > <s c r i p t type= a p p l i c a t i o n /x j a v a s c r i p t s r c= chrome : / / firefoxcnp / content / browseroverlay. j s /> <s t r i n g b u n d l e s e t i d= f i r e f o x C N P s t r i n g B u n d l e S e t > <s t r i n g b u n d l e i d= l o c a l S t r i n g s s r c = chrome : / / firefoxcnp / l o c a l e / s t r i n g s. p r o p e r t i e s /> </s t r i n g b u n d l e s e t > <! Nova elementa v meniju desnega k l i k a > <menupopup i d= contentareacontextmenu > <menuitem l a b e l= &contextmenu. addentry. labelc ; i d= contextmenuclick c l a s s = menuitem i c o n i c oncommand= BrowserOverlay. savetosqlite ( gcontextmenu. t a r g e t, c l i c k ) ; /> <menuitem l a b e l= &contextmenu. addentry. labelh ; i d= contextmenuhide c l a s s = menuitem i c o n i c oncommand= BrowserOverlay. savetosqlite ( gcontextmenu. t a r g e t, hide ) ; /> </menupopup> </overlay > Nova elementa menija desnega klika smo določili z elementom XUL <menuitem> in ju nato postavili znotraj elementa <menupopup>. Določili smo jima še lokaliziran napis, enolični identifikator, stil in funkcijo, ki se kliče, ko je izbran eden izmed elementov Stranska vrstica in pogovorno okno z možnostmi Znotraj našega vtičnika smo implementirali tudi stransko vrstico (angl. sidebar), kjer uporabnik lahko spreminja splošne nastavitve vtičnika in si ogleda ali uredi

60 38 POGLAVJE 4. RAZVOJ VTIČNIKA ZA BRSKALNIK FIREFOX shranjene zapise. Za primer lahko podamo dve obstoječi stranski vrstici, ki ju ima brskalnik Firefox že v osnovi. To sta stranska vrstica za pregled in urejanje zgodovine brskanja ter vrstica za zaznamke. Odločili smo se, da bomo na podoben način tudi mi izdelali stransko vrstico za potrebe našega vtičnika. Za izdelavo stranske vrstice smo najprej potrebovali ločeno datoteko XUL (poimenovali smo jo sidebar.xul), ki smo jo v vtičnik vključili preko elementa <menupopup> znotraj glavne prekrivne datoteke browseroverlay.xul. Z atributom label smo določili napis, ki se pojavi v meniju Pogled, Stranska vrstica. Preko tega menija lahko odpremo oziroma zapremo stransko vrstico. Atribut sidebarurl pove brskalniku, kje se nahaja datoteka XUL s celotno vsebino stranske vrstice, atribut oncommand pa pove, katero stransko vrstico naj brskalnik odpre oziroma zapre. Želeli smo tudi, da se stranska vrstica vtičnika odpre preko kombinacije tipk. Izbrali smo si kombinacijo Alt + F5 in se s tem izognili morebitnemu konfliktu, saj je nobena druga komponenta v brskalniku še ne uporablja. Kombinacijo tipk smo nastavili v elementu <key>, nato pa smo ID tega elementa priredili atributu key znotraj elementa stranske vrstice. Vključitev stranske vrstice v prekrivni datoteki in registracija bližnjičnih tipk je prikazana na delu programske kode v primeru 4.4. Primer 4.4: Vključitev stranske vrstice v glavno prekrivno datoteko <menupopup i d= viewsidebarmenu > <menuitem i d= CNPsidebar l a b e l= &s i d e b a r. t i t l e ; autocheck= f a l s e type= checkbox group= s i d e b a r s i d e b a r u r l = chrome : / / firefoxcnp / content / s i d e b a r. xul s i d e b a r t i t l e= &s i d e b a r. t i t l e ; key= s i d e b a r key oncommand= t o g g l e S i d e b a r ( CNPsidebar ) ; /> </menupopup> <keyset > <key i d= s i d e b a r key m o d i f i e r s= a l t keycode= VK F5 oncommand= t o g g l e S i d e b a r ( CNPsidebar ) ; /> </keyset > V glavni prekrivni datoteki smo vključili stransko vrstico preko elementa XUL <menuitem>, ki je moral biti vsebovan znotraj elementa <menupopup>. Elementu menuitem smo določili še enolični identifikator, napis, relativni naslov, kjer je prekrivna datoteka za stransko vrstico, in funkcijo, ki se kliče, ko je stranska

61 4.3. UPORABLJENE TEHNIKE IN PRISTOPI 39 vrstica izbrana. Stranski vrstici smo dodali tudi dva zavihka. Prvi zavihek, ki smo ga poimenovali Splošno, vsebuje glavno stikalo vtičnika in gumb za izbris vseh uporabniških podatkov. Drugi zavihek smo poimenovali Shranjeni podatki, vsebuje pa tabelo s shranjenimi spletnimi elementi, ki jih je uporabnik dodal preko menija desnega klika. Vrstica v tabeli predstavlja en shranjen element. Za potrebe urejanja in brisanja posameznih elementov smo izdelali pogovorno okno z možnostmi (angl. option dialog), katerega vsebina je določena z novo prekrivno datoteko XUL. Pogovorno okno se odpre, ko uporabnik izbere eno izmed vrstic tabele, v kateri se nahajajo shranjeni elementi. V oknu smo za potrebe urejanja potrebovali tudi vsebino izbrane vrstice. To smo rešili programsko, saj smo funkciji za odpiranje okna preko parametra prenesli želene podatke. Preko parametrov funkcije window.opendialog definiramo tudi, kje se prekrivna datoteka nahaja ter kakšen bo videz in položaj okna. Na primeru 4.5 je prikazano, kako programsko odpremo pogovorno okno in kako mu prenesemo podatke, ki jih želimo urediti. Primer 4.5: Odpiranje pogovornega okna z možnostmi in prenos podatkov // p o l j e selectedrowvalues ima format : // [ rowid, u r l, elementid, elementname, elementclass, a c t i o n ] var selectedrowvalues ; // programsko odpremo pogovorno okno, // p r v i parameter j e r e l a t i v n a pot p r e k r i v n e datoteke p r i v z e t e g a okna, // z o s t a l i m i parametri oknu nastavimo l a s t n o s t i var o p t i o n D i a l o g = window. opendialog ( chrome : / / firefoxcnp / content / o p t i o n D i a l o g. xul,, chrome, d i a l o g, c e n t e r s c r e e n, modal, selectedrowvalues ) ; // ko ž elimo v s k r i p t i o p t i o n D i a l o g. j s d o s t o p a t i do url j a v r s t i c e // to storimo preko argumentov okna ( o b j e k t window ) var elementurl = window. arguments [ 0 ] [ 1 ] ; Opazovalec tema Ob nekaterih dogodkih med delovanjem vtičnika smo želeli, da skripte med seboj komunicirajo. Tak primer je, ko uporabnik preko menija desnega klika doda nov element, pri tem pa ima odprto stransko vrstico vtičnika. Opazili smo namreč, da

62 40 POGLAVJE 4. RAZVOJ VTIČNIKA ZA BRSKALNIK FIREFOX se tabela shranjenih elementov v stranski vrstici ne posodobi samodejno. Stransko vrstico je bilo potrebno ročno zapreti in ponovno odpreti, da se je tabela s podatki osvežila. To težavo smo rešili z uvedbo tako imenovanega opazovalca in teme (angl. observer-topic). Osnovna ideja je bila, da skripta browseroverlay.js, ki zazna uporabnikovo dodajanje novega elementa, obvesti skripto sidebar.js, odgovorno za stransko vrstico, naj ponovno osveži tabelo s shranjenimi elementi. Na eni strani je bilo potrebno implementirati poslušalca na točno določeno temo, na drugi strani pa kreirati temo enake vrste in jo nato poslati vsem poslušalcem. V skripti browseroverlay.js smo tik po shranjevanju novega elementa izdelali novo temo vrste newentryadded-topic in jo nato poslali vsem poslušalcem. Poleg bi lahko dodali še kakšen dodaten parameter, vendar to v našem primeru ni bilo potrebno. V skripti sidebar.js pa smo izdelali poslušalca na temo vrste newentryadded-topic, ki ob prejemu sporočila kliče funkcijo za osveževanje tabele v stranski vrstici. Primer 4.6 je izsek programske kode iz omenjenih skript, ki uporabljata koncept opazovalca in teme. Na strani opazovalca je skripta sidebar.js, na strani pošiljatelja teme pa skripta browseroverlay.js. Primer 4.6: Uporaba koncepta opazovalec-tema // i z s e k programske kode i z browseroverlay. j s var o b s e r v e r S e r v i c e = Components. c l a s s e s org / observer s e r v i c e ; 1 ]. g e t S e r v i c e ( Components. i n t e r f a c e s. n s I O b s e r v e r S e r v i c e ) ; o b s e r v e r S e r v i c e. n o t i f y O b s e r v e r s ( n u l l, newentryadded t o p i c, n u l l ) ; // i z s e k programske kode i z s i d e b a r. j s var o b s e r v e r S e r v i c e = Components. c l a s s e s org / observer s e r v i c e ; 1 ]. g e t S e r v i c e ( Components. i n t e r f a c e s. n s I O b s e r v e r S e r v i c e ) ; o b s e r v e r S e r v i c e. addobserver ( observer, newentryadded t o p i c, f a l s e ) ; var o b s e r v e r = { o b s e r v e : f u n c t i o n ( asubject, atopic, adata ) { i f ( atopic == newentryadded t o p i c ) { r e f r e s h S i d e b a r T a b l e ( ) ; } } }

63 4.3. UPORABLJENE TEHNIKE IN PRISTOPI Hramba podatkov SQLite Kot že omenjeno, smo se pri hrambi podatkov vtičnika odločili za uporabo SQLita. Branje, urejanje in brisanje zapisov v SQLiteu poteka preko klicev funkcij programskega vmesnika mozistorageconnection. Klici teh funkcij so namenjeni le vtičnikom in komponentam brskalnika Firefox. Osnovni postopek za delo s hrambo podatkov SQLite znotraj vtičnika poteka po naslednjih korakih: v skripto uvozimo knjižnici Services.jsm in FileUtils.jsm za delo z s podatkovno bazo in z datotekami, pridobimo referenco na datoteko SQLite, ki se običajno nahaja v mapi profila brskalnika, odpremo povezavo s podatkovno bazo preko reference, dobljene v prejšnjem koraku, preko povezave ustvarimo poizvedbo, ki se bo izvedla nad hrambo podatkov, povežemo morebitne parametre (angl. parameters binding) s poizvedbo, izvršimo poizvedbo sinhrono (za preproste poizvedbe) oziroma asinhrono, preverimo morebitne napake, in ponastavimo poizvedbo in zapremo povezavo s podatkovno bazo. Zaporedno izvajanje vseh teh korakov je prikazano na primeru 4.7, ki je izsek programske kode našega vtičnika. Preko funkcije createstatement vmesnika mozistorageconnection smo naredili poizvedbo, nanjo povezali parameter in nato asinhrono izvedli izvrševanje poizvedbe. Rezultate poizvedbe smo nato brali znotraj zanke for. Primer 4.7: Branje iz hrambe podatkov SQLite Components. u t i l s. import ( r e s o u r c e : / / gre / modules / S e r v i c e s. jsm ) ; Components. u t i l s. import ( r e s o u r c e : / / gre / modules / F i l e U t i l s. jsm )... var f i l e = F i l e U t i l s. g e t F i l e ( ProfD, [ FirefoxCNP. s q l i t e ] ) ; var dbconn = S e r v i c e s. s t o r a g e. opendatabase ( f i l e ) ;

64 42 POGLAVJE 4. RAZVOJ VTIČNIKA ZA BRSKALNIK FIREFOX var statement = dbconn. cr eat es tat em ent ( SELECT FROM StoredData WHERE Url = : u ) ; statement. params. u = www. f r i. uni l j. s i ; statement. executeasync ({ handleresult : f u n c t i o n ( a R e s u l t S e t ) { f o r ( var row = a R e s u l t S e t. getnextrow ( ) ; row ; row = a R e s u l t S e t. getnextrow ( ) ) { var s i t e U r l = row. getresultbyname ( Url ) ;... } }, handleerror : f u n c t i o n ( aerror ) { c o n s o l e. l o g ( Error o c c u r r e d w h i l e e x e c u t i n g query. ) ; } }) ; statement. r e s e t ( ) ; dbconn. asyncclose ( ) ; Za izvrševanje poizvedb, ki ne vračajo rezultatov, pa uporabimo funkcijo execute- SimpleSQL. Primer take poizvedbe iz našega vtičnika je prikazan na primeru 4.8, ko v podatkovni bazi kreiramo tabelo Settings, v primeru, da le-ta še ne obstaja. Primer 4.8: Pisanje v hrambo podatkov SQLite var f i l e = F i l e U t i l s. g e t F i l e ( ProfD, [ FirefoxCNP. s q l i t e ] ) ; var dbconn = S e r v i c e s. s t o r a g e. opendatabase ( f i l e ) ; i f (! dbconn. t a b l e E x i s t s ( S e t t i n g s ) ) { dbconn. executesimplesql ( CREATE TABLE S e t t i n g s ( Id INTEGER PRIMARY KEY AUTOINCREMENT, SettingName TEXT, Value TEXT) ) ; } dbconn. c l o s e ( ) ; 4.4 Lokalizacija Uporabniški vmesnik vtičnika in njegova obvestila je tudi možno lokalizirati glede na jezik brskalnika (podobno kot smo to že storili pri vtičniku za brskalnik Chrome). V našem vtičniku smo lokalizacijo podprli za angleščino in slovenščino. Znotraj mape vtičnika smo najprej ustvarili novo mapo, poimenovano locale, in znotraj nje še dve podmapi, en-us za angleščino in sl-sl za slovenščino. Nato je bilo treba znotraj teh dveh podmap ustvariti še dve novi datoteki eno za lokalizacijo komponent v prekrivni datoteki XUL (poimenovano browseroverlay.dtd),

65 4.4. LOKALIZACIJA 43 drugo pa za lokalizacijo obvestil znotraj skript JavaScript (poimenovano strings.- properties). Datoteka browseroverlay.dtd je v formatu DTD, njeno vsebino pa brskalnik uporabi za prevode komponent vtičnika, kot so to na primer pojavno okno in njegova vsebina, napisi v stranski vrstici in elementi menija desnega klika. Na primeru 4.9 je prikazan del vsebine datotek browseroverlay.dtd za angleški in za slovenski jezik. Primer 4.9: Del vsebine datoteke browseroverlay.dtd <!ENTITY s i d e b a r. t i t l e Cookie N o t i f i c a t i o n Preventer > <!ENTITY s i d e b a r. tab. g e n e r a l. t i t l e General > <!ENTITY s i d e b a r. tab. storeddata. t i t l e Stored data > <!ENTITY o p t i o n D i a l o g. t i t l e Options Dialog >... <!ENTITY s i d e b a r. t i t l e Prepre č e v a l e c o b v e s t i l p i š kotkov > <!ENTITY s i d e b a r. tab. g e n e r a l. t i t l e Splo š no > <!ENTITY s i d e b a r. tab. storeddata. t i t l e S h r a n j e n i podatki > <!ENTITY o p t i o n D i a l o g. t i t l e Dialog o p c i j > Na primeru 4.10 je prikazano, kako smo uporabili lokalizacijo za napise zavihkov v stranski vrstici. Pri tem smo morali najprej v datoteki XUL vključiti datoteko DTD, ki vsebuje prevode, za uporabo napisa pa je pred imenom napisa potrebno dodati le znak &. Primer 4.10: Lokalizacija znotraj prekrivne datoteke <!DOCTYPE o v e r l a y SYSTEM chrome : / / firefoxcnp / l o c a l e / browseroverlay. dtd > <page i d= CNPSidebar xmlns= http : / /www. m o z i l l a. org / keymaster / g a t e k e e p e r / t h e r e. i s. only. xul >... <tabbox i d= CNPTabbox > <tabs> <tab l a b e l= &s i d e b a r. tab. g e n e r a l. t i t l e ; /> <tab l a b e l= &s i d e b a r. tab. storeddata. t i t l e ; /> </tabs> </tabbox>... </page> Preko atributa em:localized v datoteki install.rdf pa lahko lokaliziramo ime, opis in domačo stran vtičnika ter imena razvijalcev, prevajalcev in donatorjev. Za naš vtičnik smo naredili lokalizacijo za ime, opis in razvijalca vtičnika, kot je

66 44 POGLAVJE 4. RAZVOJ VTIČNIKA ZA BRSKALNIK FIREFOX prikazano že na primeru 4.1. Datoteka install.rdf pa mora biti v primeru uporabe šumnikov shranjena v formatu UTF Lokalno nameščanje vtičnika Vtičnik smo za potrebe testiranja in razhroščevanja namestili v brskalnik iz našega datotečnega sistema. Datoteko XPI, ki vsebuje vse datoteke vtičnika, primemo in potegnemo v odprto okno brskalnika Firefox. Ko je namestitev končana, se brskalnik ponovno zažene. Drugi način lokalne namestitve je preko Upravitelja dodatkov, ki je dostopen preko menija Orodja, Dodatki ali preko kombinacije tipk Ctrl + Shift + A. V Upravitelju dodatkov lahko začasno tudi onemogočimo vtičnik ali pa ga v celoti odstranimo iz brskalnika. Slabost lokalnega nameščanja vtičnika za brskalnik Firefox v primerjavi z lokalnim nameščanjem vtičnika za brskalnik Chrome je ravno v tem, da je treba za vsako programsko spremembo narediti novo datoteko XPI, jo prenesti v brskalnik in ga ponovno zagnati. 4.6 Razhroščevanje Razhroščevanje vtičnika za brskalnik Firefox je v osnovi podobno kot razhroščevanje spletnih strani ali vtičnika za brskalnik Chrome. Na voljo je veliko brezplačnih orodij za razhroščevanje, v osnovi pa zadoščajo že razvijalska orodja, ki so del brskalnika Firefox. Z dodatkom DOM Inspector [12] pa lahko pregledamo tudi celoten DOM brskalnika in vtičnikov, kar se je pri našem razvoju izkazalo za zelo uporabno. V primeru morebitne napake vtičnika se bo le-ta izpisala v brskalnikovi konzoli. Pri brskalniku Firefox nimamo štirih ločenih konzol kot pri brskalniku Chrome, temveč le eno enotno konzolo, kamor se izpisujejo vse morebitna sporočila in težave spletnih strani in vtičnikov.

67 4.7. SPLETNA TRGOVINA MOZILLA ADD-ONS Spletna trgovina Mozilla Add-ons Mozilla Add-ons 2 je Mozillina uradna spletna trgovina z dodatki za Mozilline izdelke (brskalnik Firefox in SeaMonkey ter poštni odjemalec Thunderbird) [21]. Dodatki, kot so na primer vtičniki, razširitve, dodatne teme, slovarji ali jezikovni paketi, dodajo nove funkcionalnosti brskalniku oziroma aplikaciji in tako olajšajo delo uporabniku. V spletni trgovini so dodatki v osnovi brezplačni za namestitev in uporabo, vendar pri nekaterih obstaja tudi možnost, da uporabniki prostovoljno prispevajo določeno denarno vsoto, kot znak podpore ustvarjalcem. Izkoristili smo možnost brezplačnega gostovanja in objave vtičnikov v Mozillini trgovini in to podrobneje opisali v poglavju Objava vtičnika v spletni trgovini Pred objavo vtičnika v trgovini je bilo potrebno ustvariti uporabniški račun in nato preko spletnega obrazca 3 naložiti datoteko vtičnika XPI. Sledili so samodejni validacijski testi, ki so zajemali področja varnosti, lokalizacije, združljivosti in integracije vtičnika v brskalnik. Po uspešno izvedenih testih smo dodali kratek povzetek in podrobnejši opis vtičnika ter ga uvrstili v eno izmed kategorij vtičnikov. V naslednjem koraku smo dodali še ikono vtičnika, ki je prikazana v spletni trgovini, in nekaj zaslonskih posnetkov, ki prikazujejo delovanje vtičnika. Izbrali smo še eno izmed licenc, po katerih je licencirana izvorna koda, nato pa poslali celotno vsebino v pregled. Na voljo smo imeli dve vrsti pregleda, popolni pregled in predhodni pregled. Pri popolnem pregledu Mozillini recenzenti pregledajo celotno programsko kodo, preverijo, če dodatek deluje v skladu s pričakovanji in če spoštuje varnostno politiko. Pregled lahko traja do deset dni in je bolj primeren za dodatke, ki so namenjeni širši množici. Predhodni pregled pa je namenjen eksperimentalnim dodatkom, saj recenzenti dodatka ne pregledajo povsem podrobno. Preverijo le, če izvorna koda dodatka ne krši pravil s stališča varnosti in veljavnega Mozillinega pravilnika. Rezultati pregleda so na voljo v treh dneh. Dodatek bo po predhodnem 2 Dostopno na spletnem naslovu 3 Dostopno na spletnem naslovu submit.

68 46 POGLAVJE 4. RAZVOJ VTIČNIKA ZA BRSKALNIK FIREFOX pregledu na voljo v galeriji spletne trgovine, le da bo imel opozorilo o opravljenem predhodnem pregledu in bo v galeriji uvrščen nižje kot dodatki, ki so prestali popolni pregled. Mi smo se odločili za predhodni pregled, saj je vtičnik mišljen le kot demonstracija razvoja in primarno ni namenjen širšim množicam. Predhodni pregled je naš vtičnik uspešno prestal v manj kot enem dnevu po objavi osnutka. Končna verzija vtičnika je na voljo v spletni trgovini, kar prikazuje tudi slika 4.2. Do vtičnika pa je možen tudi direkten dostop preko spletnega naslova https: //addons.mozilla.org/en-us/firefox/addon/cookie-notification-preventer. Slika 4.2: Objava vtičnika v spletni trgovini Mozilla Add-ons

69 Poglavje 5 Prikaz delovanja in medsebojna primerjava razvojev vtičnikov V tem poglavju smo opisali, kako prenesti in naložiti naš vtičnik iz spletne trgovine v brskalnik ter kako uporabljati vtičnik med brskanjem na spletu. V poglavju 5.3 pa smo napisali še nekaj besed o medsebojni primerjavi obeh vtičnikov in njunega razvoja. 5.1 Google Chrome Za namestitev vtičnika za brskalnik Chrome obiščemo spletno trgovino in odpremo stran vtičnika (prikazana je na sliki 3.4). S klikom na gumb + Brezplačno in po potrditvi se vtičnik samodejno namesti v brskalnik. Po namestitvi vtičnika nam ni potrebno ponovno zagnati brskalnika. V orodni vrstici brskalnika se nato pojavi ikona vtičnika, kot je prikazano v desnem zgornjem kotu slike 5.1. Ob kliku na ikono se nam pokaže pojavno okno, v katerem se nahaja povezava na stran z možnostjo vtičnika. Do te strani pa lahko dostopamo tudi preko brskalnikovega menija Orodja, Razširitve, nato pa kliknemo na povezavo Možnosti, ki je pod opisom vtičnika. Vtičnik doda tudi dva nova elementa v meni desnega klika brskalnika. Prvi element se imenuje Klikni na ta element, drugi pa Skrij ta element. Če želimo, da vtičnik ob vsakem obisku ali ob osvežitvi neke spletne strani samodejno klikne na 47

70 48 POGLAVJE 5. PRIKAZ DELOVANJA IN MEDSEBOJNA PRIMERJAVA RAZVOJEV VTIČNIKOV Slika 5.1: Videz vtičnika, nameščenega iz spletne trgovine Chrome element spletne strani (npr. na gumb, povezavo ali sliko), potem se z miško postavimo na ta element ter z desnim klikom izberemo možnost Klikni na ta element. Vtičnik bo nato dodal vnos z elementom v brskalnikovo hrambo podatkov in bo ob naslednji osvežitvi strani samodejno kliknil na ta element. Ob vsakem novem dodajanju elementa v hrambo podatkov se prikaže tudi obvestilo, ki se pojavi v desnem spodnjem kotu uporabnikovega zaslona. Podobno velja za drugo možnost Skrij ta element. To izberemo takrat, ko želimo, da vtičnik ob vsakem obisku ali ob osvežitvi neke spletne strani samodejno skrije njen element (npr. pojavno okno, napis ali sliko). Na sliki 5.2 je prikazano, kako preko menija desnega klika dodamo nov element v hrambo podatkov. Slika 5.2: Dodajanje novega elementa, vtičnik za brskalnik Chrome Na strani možnosti vtičnika lahko pregledamo, uredimo in izbrišemo shranjene elemente. Elementu lahko uredimo njegov ID, ime in razred ter mu določimo eno izmed dveh dejanj (samodejni klik ali samodejno skrivanje), ki jih bo vtičnik izvršil

71 5.1. GOOGLE CHROME 49 ob nalaganju spletne strani, kjer se element nahaja. Urejanje shranjenega elementa in videz strani z možnostmi sta prikazana na sliki 5.3. Slika 5.3: Stran možnosti vtičnika za brskalnik Chrome Na strani možnosti se nahaja tudi tako imenovano glavno stikalo, s katerim začasno zaustavimo samodejno izvrševanje dejanj vtičnika. Stanje stikala je prikazano z značko na ikoni vtičnika v orodni vrstici brskalnika. Uporabnik ima tudi možnost, da izbriše vse podatke, ki se nahajajo v hrambi podatkov. To stori preko gumba, ki se prav tako nahaja na strani možnosti. V primeru, da želimo v celoti odstraniti vtičnik iz brskalnika, to storimo preko ikone koša, ki se nahaja poleg opisa vtičnika na strani razširitev. Pri tem je treba opozoriti, da bodo vsi uporabniški podatki izbrisani.

72 50 POGLAVJE 5. PRIKAZ DELOVANJA IN MEDSEBOJNA PRIMERJAVA RAZVOJEV VTIČNIKOV 5.2 Mozilla Firefox Vtičnik za brskalnik Firefox namestimo preko Mozilline spletne trgovine z enim samim klikom. Na strani podrobnosti vtičnika le kliknemo na gumb + Add to Firefox in tako bo vtičnik ob ponovnem zagonu brskalnika na voljo za uporabo. Vtičnik bo ob prvem zagonu samodejno dodal svojo ikono v orodno vrstico brskalnika. Uporabnik lahko preko ikone odpira in zapira stransko vrstico. Do stranske vrstice pa lahko dostopamo tudi preko brskalnikovega menija Pogled, Stranska vrstica ali preko kombinacije tipk Alt + F5. Na podoben način kot vtičnik za brskalnik Chrome tudi vtičnik za brskalnik Firefox doda dva nova elementa v meni desnega klika brskalnika. Funkciji teh elementov sta popolnoma enaki kot pri brskalniku Chrome. Edina razlika je le v tem, da brskalnik Firefox ne združi dveh ali več elementov menija v en korenski element, kot to stori brskalnik Chrome. Dodajanje novega elementa preko menija desnega klika je prikazano na sliki 5.4. Slika 5.4: Dodajanje novega elementa, vtičnik za brskalnik Firefox Preko glavnega stikala v stranski vrstici ima uporabnik možnost začasno zaustaviti samodejno izvrševanje dejanj vtičnika. Stil ikone vtičnika v orodni vrstici odraža stanje glavnega stikala. V primeru, da je glavno stikalo izključeno, je ikona obarvana sivo (angl. grayed out), v nasprotnem primeru pa je ikona v barvah. Pod zavihkom Splošno v stranski vrstici se nahaja tudi gumb za izbris vseh podatkov uporabnika. Zavihek Shranjeni podatki vsebuje tabelo, ki prikazuje shranjene

73 5.3. MEDSEBOJNA PRIMERJAVA RAZVOJA VTIČNIKOV 51 spletne elemente. S klikom na eno izmed vrstic tabele se vrstica obarva rumeno in odpre se pogovorno okno z možnostmi. Preko okna ima uporabnik možnost urediti zapis shranjenega elementa. Spremeni lahko ID, ime in razred spletnega elementa ter določi dejanje, ki ga vtičnik samodejno izvrši ob nalaganju spletne strani, kjer se element nahaja. Znotraj okna se nahaja tudi gumb, preko katerega lahko uporabnik izbriše posamezen zapis. Na sliki 5.5 je prikazana stranska vrstica vtičnika in pogovorno okno z možnostmi, preko katerega lahko uporabnik ureja shranjene zapise. Slika 5.5: Stranska vrstica in pogovorno okno z možnostmi vtičnika za brskalnik Firefox 5.3 Medsebojna primerjava razvoja vtičnikov Razvoja vtičnikov za brskalnik Chrome in za brskalnik Firefox sta si v začetnih korakih podobna. Pri obeh smo naprej izdelali ogrodje, ki je bilo sestavljeno iz obveznih map in datotek. Pri tem so nam bili v pomoč primeri, ki se nahajajo na spletnih straneh za podporo razvijalcem. V ogrodje smo nato dodali želeno

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov Gospodarski subjekti Definicija: V skladu z 2. členom Izvedbene uredbe Komisije (EU) 2018/574

Prikaži več

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk 1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatkov in njihov prenos med spletnimi mesti. Obrazec v

Prikaži več

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: 17.07.2013 Ver. 2.9.1.2 Spletni portal članov uporabniška navodila

Prikaži več

Elektronska pošta

Elektronska pošta Elektronska pošta ZGODOVINA Prvo sporočilo je bilo poslano leta 1971. Besedilo, ki ga je vsebovalo, je bilo QWERTYUIOP. Pošiljatelj je bil Ray Tomlinson, računalnika med katerima je bilo sporočilo poslano

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev INTRANET - DETEKTIV Detektivska zbornica Republike Slovenije Pozdravljeni, v kratki predstaviti in navodilih za delo z intranet sistemom Detektiv. Intranet članom Detektivske zbornice RS omogoča, da: -

Prikaži več

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko UPORABLJENE TEHNOLOGIJE Za izdelavo predstavitvene spletne strani smo izbrali tehnologije, ki zagotavljajo: Hitro delovanje spletne

Prikaži več

Chapter 1

Chapter 1 - 1 - Poglavje 1 Uvod v podatkovne baze - 2 - Poglavje 1 Cilji (Teme).. Nekatere domene, kjer se uporabljajo podatkovne baze Značilnosti datotečnih sistemov Problemi vezani na datotečne sisteme Pomen izraza

Prikaži več

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski naslov: podpora@coks.si

Prikaži več

Nameščanje Adopt Open Java Development Kit 8

Nameščanje Adopt Open Java Development Kit 8 Nameščanje Adopt Open Java Development Kit 8 za Windows x64 IZUM, 2019 IZUM, COBISS, COMARC, COBIB, COLIB, CONOR, SICRIS, E-CRIS so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod...

Prikaži več

Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, m

Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, m Navodila za uporabo aplikacije mlist - neposredni mentorji za Zdravniško zbornico Slovenije pripravila Gooya, interaktivni mediji, d.o.o. Ljubljana, marec 2019 Vsebina 1 Dostop do aplikacije... 3 1.1 Android...

Prikaži več

Nameščanje Adopt Open Java Development Kit 8

Nameščanje Adopt Open Java Development Kit 8 Nameščanje Adopt Open Java Development Kit 8 za Windows x64 IZUM, 2019 IZUM, COBISS, COMARC, COBIB, COLIB, CONOR, SICRIS, E-CRIS so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod...

Prikaži več

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?

Prikaži več

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj novosti na področju SCADA sistemov (ifix Productivity

Prikaži več

SETCCE Uporabniška navodila za namestitev in upravljanje komponente SETCCE proxsign v2.0.5 za MAC OS X [Nova generacija komponent SETCCE proxsign ] Id

SETCCE Uporabniška navodila za namestitev in upravljanje komponente SETCCE proxsign v2.0.5 za MAC OS X [Nova generacija komponent SETCCE proxsign ] Id SETCCE Uporabniška navodila za namestitev in upravljanje komponente SETCCE proxsign v2.0.5 za MAC OS X [Nova generacija komponent SETCCE proxsign ] Identifikacijska oznaka dokumenta: n/a Različica dokumenta:

Prikaži več

NAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta

NAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta NAVODILA ZA IZPOLNJEVANJE ELEKTRONSKEGA OBRAZCA ZA PRIJAVO IN PREKLIC DIGITALNIH POTRDIL Verzija Datum Opis sprememb dokumenta dokumenta 1.0 22.11.2013 Prva verzija dokumenta 1.1 15.04.2015 Dodana možnost

Prikaži več

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika Gimnazija Bežigrad Peričeva 4 1000 Ljubljana OPERACIJSKI SISTEM Predmet: informatika KAZALO 1. Uvod...3 2. Predstavitev programa Windows 98...5 3. Raziskovanje računalnika...5 4. Raziskovanje Interneta...6

Prikaži več

PowerPoint Presentation

PowerPoint Presentation Uporaba storitve Office 365 v napravi iphone ali ipad Priročnik za hiter začetek dela Ogled e-pošte Nastavite napravo iphone ali ipad tako, da boste lahko pošiljali in prejemali e-pošto iz računa v storitvi

Prikaži več

Microsoft Word - NAVODILA ZA UPORABO.docx

Microsoft Word - NAVODILA ZA UPORABO.docx NAVODILA ZA UPORABO VODILO CCM-18A/N-E (K02-MODBUS) Hvala ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shranite za prihodnjo rabo. Vsebina

Prikaži več

Zadeva: Ponudba

Zadeva: Ponudba Navodila za urejanje Spletne strani CTEK.si 1. Dodajanje novega polnilnika Za dodajanje novega polnilnika nikoli ne prepisujte že objavljenih vsebin, ampak sledite tem navodilom. Ta so zagotovilo, da bodo

Prikaži več

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte Navodila za uporabo programske opreme OTRS verzija 2.2.3 Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski

Prikaži več

Microsoft Word - CN-BTU4 Quick Guide_SI

Microsoft Word - CN-BTU4 Quick Guide_SI Bluetooth Dongle Artikel: CN-BTU4 NAVODILA v1.0 Sistemske zahteve Zahteve za PC: - Proc.: Intel Pentium III 500MHz or above. - Ram: 256MB ali več. - Disk: vsaj 50MB. - OS: Windows 98SE/Me/2000/XP - Prost

Prikaži več

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA KATALOG ZNANJA 1. IME PREDMETA ZBIRKE PODATKOV I ZBIRKE PODATKOV II 2. SPLOŠNI CILJI Splošni cilji predmeta so: razvijanje sposobnosti za uporabo znanstvenih metod in sredstev, razvijanje odgovornosti

Prikaži več

Diapozitiv 1

Diapozitiv 1 Računalništvo in informatika Program: Mehatronika dr. Hubert Fröhlich, univ. dipl. el. Podatkovne baze 2 Podatkovne baze Podatki osnova za odločanje in izvajanje akcij tiskana oblika elektronska oblika

Prikaži več

PowerApps

PowerApps ko tehnologija postane brezmejna strast Microsoft PowerApps Uporabniška navodila Avtorji Brina Gomboc, Lucija Kos, Damjana Krampač Mentorici dr. Simona Sternad Zabukovšek Sara Cokan, mag. ekon. in posl.

Prikaži več

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0 TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, 12.11.2018 Verzija 1.0 KAZALO 1 REGISTRACIJA... 3 1.1 Katere podatke potrebujem za registracijo/kreiranje

Prikaži več

ČETRTA POT, d.o.o., KRANJ Planina Kranj Slovenija Telefon: Fax: Politika zasebnost

ČETRTA POT, d.o.o., KRANJ Planina Kranj Slovenija Telefon: Fax: Politika zasebnost Politika zasebnosti V tej politiki zasebnosti podjetje Četrta pot, avtomatska identifikacija, računalništvo in informatika, d.o.o., Planina 3, 4000 Kranj (v nadaljevanju»četrta pot«), naročnikom, uporabnikom

Prikaži več

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov

Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnov Navodila za pripravo oglasov na strani Med.Over.Net v 2.2 Statistično najboljši odziv uporabnikov je na oglase, ki hitro in neposredno prenesejo osnovno sporočilo. Izogibajte se daljših besedil in predolgih

Prikaži več

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C#

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C# Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C# Pomen posameznih oken uporabniškega vmesnika, urejevalnik

Prikaži več

Spoznajmo PowerPoint 2013

Spoznajmo PowerPoint 2013 Spoznajmo PowerPoint 2013 13 Nova predstavitev Besedilo v predstavitvi Besedilo, ki se pojavlja v predstavitvah lahko premaknemo kamorkoli v diapozitivu. Kadar izdelamo diapozitiv z že ustvarjenimi okvirji

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev TIK terminal nima povezave s strežnikom Ob vpisu v TIK Admin se pojavi napis ni povezave s strežnikom Na terminalu je ikona 1. preverimo ali je pravilno nastavljen IP strežnika 1. Preverimo datoteko TIKSAdmin.INI

Prikaži več

Microsoft Word - CNR-BTU3_Bluetooth_vmesnik

Microsoft Word - CNR-BTU3_Bluetooth_vmesnik CNR-BTU3 Bluetooth vmesnik A. Vsebina pakiranja Bluetooth USB Adapter Bluetooth programska oprema in CD z gonilniki Navodila za uporabo in CD 1. Namestitev Bluetooth programske opreme za Windowse 1. Vstavite

Prikaži več

CODEKS IP KAMERA

CODEKS IP KAMERA CODEKS IP KAMERA uporabniška navodila Vse pravice pridržane. Noben del uporabniških navodil se ne sme reproducirati v kakršnikoli obliki ali na kakršen koli način - grafični, elektronski ali mehanski,

Prikaži več

IZJAVA O ZASEBNOSTI Sistem ena d.o.o. se zavezuje, da bo varoval osebne podatke kupcev, na način, da zbira samo nujne, osnovne podatke o kupcih / upor

IZJAVA O ZASEBNOSTI Sistem ena d.o.o. se zavezuje, da bo varoval osebne podatke kupcev, na način, da zbira samo nujne, osnovne podatke o kupcih / upor IZJAVA O ZASEBNOSTI Sistem ena d.o.o. se zavezuje, da bo varoval osebne podatke kupcev, na način, da zbira samo nujne, osnovne podatke o kupcih / uporabnikih, ki so potrebni za izpolnitev pogodbe; redno

Prikaži več

Splošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadalj

Splošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadalj Splošni pogoji poslovanja 1. Uvodna določba 1) Splošni pogoji poslovanja so pravni dogovor med končnim uporabnikom (fizična ali pravna oseba, v nadaljevanju»naročnik«) in družbo VI NOVA d.o.o. (v nadaljevanje»ponudnik«).

Prikaži več

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij.

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli - uvod Protokol je pravilo ali zbirka pravil, ki določajo načine transporta sporočil po računalniškem omrežju

Prikaži več

COBISS3/Medknjižnična izposoja

COBISS3/Medknjižnična izposoja 3/Medknjižnična izposoja 2.2 KATALOG Katalog nam omogoča: iskanje gradiva prikaz izbranih bibliografskih zapisov ali pripadajočih podatkov o zalogi iz lokalne baze podatkov v formatu COMARC vpogled v stanje

Prikaži več

Varstvo podatkov Varstvo podatkov, ki nam jih dajete na razpolago, njihova varnost in zaupno ravnanje z njimi pri nas predstavljajo najvišja načela in

Varstvo podatkov Varstvo podatkov, ki nam jih dajete na razpolago, njihova varnost in zaupno ravnanje z njimi pri nas predstavljajo najvišja načela in Varstvo podatkov Varstvo podatkov, ki nam jih dajete na razpolago, njihova varnost in zaupno ravnanje z njimi pri nas predstavljajo najvišja načela in zahteve. Tukaj vam želimo pojasniti, v kakšnem obsegu

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali

Prikaži več

ZAHTEVA ZA UVELJAVLJANE PRAVIC POSAMEZNIKA V POVEZAVI Z NJEGOVIMI OSEBNIMI PODATKI Pošta Slovenije skladno z veljavno zakonodajo na področju varstva o

ZAHTEVA ZA UVELJAVLJANE PRAVIC POSAMEZNIKA V POVEZAVI Z NJEGOVIMI OSEBNIMI PODATKI Pošta Slovenije skladno z veljavno zakonodajo na področju varstva o ZAHTEVA ZA UVELJAVLJANE PRAVIC POSAMEZNIKA V POVEZAVI Z NJEGOVIMI OSEBNIMI PODATKI Pošta Slovenije skladno z veljavno zakonodajo na področju varstva osebnih podatkov posameznikom omogoča uveljavljanje

Prikaži več

Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje

Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX 3.5 1. Dodajanje uporabnikov vajexx v skupino Vaje 2. Kopiranje Win2003 strežnika in registracija na

Prikaži več

Diplomsko delo visokošolskega strokovnega študija Informatika v organizaciji in managementu SPLETNA REŠITEV ZA ISKANJE TERMINOV IN LOKACIJ PREDAVANJ M

Diplomsko delo visokošolskega strokovnega študija Informatika v organizaciji in managementu SPLETNA REŠITEV ZA ISKANJE TERMINOV IN LOKACIJ PREDAVANJ M Informatika v organizaciji in managementu SPLETNA REŠITEV ZA ISKANJE TERMINOV IN LOKACIJ PREDAVANJ Mentor: doc. dr. Borut Werber Kandidat: Boštjan Koželj Somentor: viš. pred. dr. Gregor Lenart Kranj, September

Prikaži več

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX 3.5 1. Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nastavitve strežnika ESX 3. Namestitev in nastavitve VM

Prikaži več

Microsoft Word - Navodila za uporabo 1.1.doc

Microsoft Word - Navodila za uporabo 1.1.doc PhotoOrder Navodila za uporabo 1 Kazalo 1 Kazalo... 2 2 Kazalo slik... 3 3 PhotoOrder... 4 4 Nameščanje programa... 5 4.1 Internet Explorer... 5 4.1.1 "Save" ("Shrani")... 5 4.1.2 "Run" ("Odpri")... 6

Prikaži več

David Zakelšek SPLETNA PODPORA UČENJU MATEMATIKE Diplomsko delo Maribor, september 2013

David Zakelšek SPLETNA PODPORA UČENJU MATEMATIKE Diplomsko delo Maribor, september 2013 David Zakelšek Diplomsko delo Maribor, september 2013 Diplomsko delo Študent: Študijski program: Smer: Mentor: Lektorica: David Zakelšek Univerzitetni študijski program Informatika in tehnologije komuniciranja

Prikaži več

Microsoft PowerPoint - seminar_ pptx

Microsoft PowerPoint - seminar_ pptx Leatalske informacije in ARO Slovenia Control Igor Čučnik, ARO Aleš Omahne, NOTAM Uroš Grošelj, AIP Brnik, 12.5.2018 Letalske informacije AIP AIP AMDT AIP SUP AIC NOTAM Serija A, B in C VFR karta Spletna

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev Dostopnost elektronskih virov za slepe, slabovidne in druge osebe z motnjami branja Kristina Janc ZSSML - 27. Seja TIFLO sekcije 22.3.2012 Možnost izkoriščanja elektronskih virov za slepe, slabovidne in

Prikaži več

PRAVILA IN POGOJI NAGRADNE IGRE NOGOMETNI UTRINEK SPLOŠNE DOLOČBE 1. člen Organizator nagradne igre je Nogometna zveza Slovenije, Predoslje 40 a, 4000

PRAVILA IN POGOJI NAGRADNE IGRE NOGOMETNI UTRINEK SPLOŠNE DOLOČBE 1. člen Organizator nagradne igre je Nogometna zveza Slovenije, Predoslje 40 a, 4000 PRAVILA IN POGOJI NAGRADNE IGRE NOGOMETNI UTRINEK SPLOŠNE DOLOČBE 1. člen Organizator nagradne igre je Nogometna zveza Slovenije, Predoslje 40 a, 4000 Kranj (v nadaljevanju organizator). POGOJI SODELOVANJA

Prikaži več

IJS EDS IJS Elektronski Dokumentni Sistem Osnovna uporaba sistema uporabniška navodila Institut "Jožef Stefan" Ljubljana

IJS EDS IJS Elektronski Dokumentni Sistem Osnovna uporaba sistema uporabniška navodila Institut Jožef Stefan Ljubljana IJS Elektronski Dokumentni Sistem Osnovna uporaba sistema uporabniška navodila Institut "Jožef Stefan" Ljubljana Projekt: (RD JN19 16) Naročnik projekta: Institut "Jožef Stefan" Izvajalec projekta: BuyITC

Prikaži več

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje

Prikaži več

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr

NAVODILA ZA UPORABO K01-WIFI Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shr NAVODILA ZA UPORABO Hvala, ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta in jih shranite za prihodnjo rabo Vsebina 1. Pregled 2. Sistem 3. Prednosti 4. Upravljanje

Prikaži več

Generic

Generic GD Finance 8. november 2016 E-JAVNA NAROČILA ECB ODDAJA ODGOVORA V POSTOPKU JAVNEGA NAROČANJA (»RFX«) Če v postopku javnega naročanja želite oddati odgovor (npr. (popravljeno) ponudbo/predlog, prijavo

Prikaži več

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Blaž Roženbergar Upravljanje trgovskega blaga z značkami RFID DIPLOMSKO DELO VISOKOŠOLS

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Blaž Roženbergar Upravljanje trgovskega blaga z značkami RFID DIPLOMSKO DELO VISOKOŠOLS Univerza v Ljubljani Fakulteta za računalništvo in informatiko Blaž Roženbergar Upravljanje trgovskega blaga z značkami RFID DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO

Prikaži več

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1,

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1, TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, 14. 03. 2019 KAZALO 1 Namen...3 2 Registracija...4 3 Vnos gesla in aktivacija računa...6 4 Prijava...7

Prikaži več

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc)

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc) 1. Pogoji uporabe programske opreme Pred uporabo programske opreme iz programa MSDNAA morate prebrati in se strinjati s pogoji in določili Licenčne pogodbe za končnega uporabnika programske opreme MSDN

Prikaži več

INFORMATOR BIROKRAT 1/2011

INFORMATOR BIROKRAT 1/2011 ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO

Prikaži več

Orodje za izvoz podatkov

Orodje za izvoz podatkov Pomoč uporabnikom -NA-SI-200, V6.13-00 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Predstavitev orodja za izvoz podatkov...

Prikaži več

Microsoft PowerPoint - Sequi_SecDAy.ppt

Microsoft PowerPoint - Sequi_SecDAy.ppt Sistem za zagotavljanje revizijske sledi zbirk podatkov Marko Hočevar Premisa d.o.o. Iztok Lasič Hic Salta d.o.o. O revizijski sledi Namen revizijske sledi Znane težave pri zajemanju revizijske sledi Zakaj

Prikaži več

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Rok Erjavec Aplikacija za upravljanje identifikatorjev in podatkov v sistemu z NFC nadz

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Rok Erjavec Aplikacija za upravljanje identifikatorjev in podatkov v sistemu z NFC nadz Univerza v Ljubljani Fakulteta za računalništvo in informatiko Rok Erjavec Aplikacija za upravljanje identifikatorjev in podatkov v sistemu z NFC nadzorom temperatur DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI

Prikaži več

Navodilo Telemach

Navodilo Telemach Nastavitve za: MOJ TELEMACH Registracija: Na spletni strani Moj Telemach (http://moj.telemach.si) se pomaknite na spodnji del strani in pritisnite gumb REGISTRIRAJ SE. 1. korak Odpre se novo okence, kamor

Prikaži več

Slide 1

Slide 1 Projektno vodenje PREDAVANJE 7 doc. dr. M. Zajc matej.zajc@fe.uni-lj.si Projektno vodenje z orodjem Excel Predstavitev Najbolj razširjeno orodje za delo s preglednicami Dva sklopa funkcij: Obdelava številk

Prikaži več

Miluma Trader Miluma Trader navodila: V nadaljevanju sledijo osnovna navodila, kako začeli uporabljati Miluma Trader. 1. Preverite spletno stran Ta po

Miluma Trader Miluma Trader navodila: V nadaljevanju sledijo osnovna navodila, kako začeli uporabljati Miluma Trader. 1. Preverite spletno stran Ta po navodila: V nadaljevanju sledijo osnovna navodila, kako začeli uporabljati. 1. Preverite spletno stran Ta posnetek zaslona vam prikazuje, da morate v levem vrhnjem kotu preveriti, če se nahajate na pravi

Prikaži več

Navodila za nastavitev mail odjemalca na ios in Android napravah TELEFONI iphone (ios 12) Predlagamo, da do svoje študentske e-pošte dostopate s pomoč

Navodila za nastavitev mail odjemalca na ios in Android napravah TELEFONI iphone (ios 12) Predlagamo, da do svoje študentske e-pošte dostopate s pomoč TELEFONI iphone (ios 12) Predlagamo, da do svoje študentske e-pošte dostopate s pomočjo aplikacije Outlook, katero lahko prenesete s pomočjo trgovine App Store. Ko aplikacijo zaženete se vam pojavi naslednje

Prikaži več

PRAVILA Naj božična pesem

PRAVILA Naj božična pesem PRAVILA ZA SODELOVANJE V NAGRADNI IGRI»IŠČEMO NAJ BOŽIČNO PESEM«1. člen (Splošne določbe) 1.1. Ta pravila določajo način izvedbe nagradne igre»iščemo NAJ BOŽIČNO PESEM«. 1.2. Izvajalec nagradne igre je

Prikaži več

Microsoft Word - Splosni pogoji za uporabnike storitve_ONA_ doc

Microsoft Word - Splosni pogoji za uporabnike storitve_ONA_ doc Splošni pogoji in navodila za uporabnike storitev ONA V veljavi od 25.08.2015 1. Splošne določbe Splošni pogoji in navodila določajo način uporabe storitev ONA, ki jih nudi tehnični izvajalec (v nadaljevanju

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev IZKUŠNJE PRI PRILAGODITVI E-STORITEV AJPES ZAHTEVAM EIDAS ZA ČEZMEJNO PRIZNAVANJE MARJAN BABIČ, AJPES Vsebina Razlogi za vključitev v projekt CEF Telecom Izvajalno okolje AJPES in način integracije s SI-PASS

Prikaži več

PowerPoint Presentation

PowerPoint Presentation SAFE.SI VODIČ Nastavitve zasebnosti in varnosti na Instagramu 2017/1 Nastavitev zasebnega računa Račun na Instagramu je privzeto nastavljen tako, da lahko objave vidi vsakdo. Zato moramo nastavitve zasebnosti

Prikaži več

SPLETNA PRIJAVA NA IZPITE ZA DIJAKE Dijaki se na izpite prijavite na novem portalu novi.lopolis.si z istim uporabniškim imenom in geslom, kot ga upora

SPLETNA PRIJAVA NA IZPITE ZA DIJAKE Dijaki se na izpite prijavite na novem portalu novi.lopolis.si z istim uporabniškim imenom in geslom, kot ga upora SPLETNA PRIJAVA NA IZPITE ZA DIJAKE Dijaki se na izpite prijavite na novem portalu novi.lopolis.si z istim uporabniškim imenom in geslom, kot ga uporabljate tudi za portal Lo.Polis (www.lopolis.si), kjer

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev Izkušnje pri prilagoditvi e-storitev AJPES zahtevam eidas za čezmejno priznavanje Marjan Babič, AJPES 11. 12. 2018 Vsebina Razlogi za vključitev v projekt CEF Telecom Izvajalno okolje AJPES in način integracije

Prikaži več

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1 TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, 14. 03.2019 Verzija 1.1 KAZALO 1 NAMEN...3 2 REGISTRACIJA...4 3 VNOS GESLA IN AKTIVACIJA RAČUNA...6

Prikaži več

Navodila Trgovina iCenter

Navodila Trgovina iCenter Napredovanja v plačne razrede javnih uslužbencev 2019 S pomočjo SAOP programa Kadrovska evidenca lahko ob dokupljeni kodi vodimo napredovanja javnih uslužbencev. Za napredovanja v letu 2019 je potrebno

Prikaži več

Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica nasl

Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica nasl Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica naslednji P RAVILNIK o izvajanju videonadzora I. SPLOŠNE

Prikaži več

Navodila za namestitev odjemalca ibsreport2 produkcijsko okolje (poročanje Banki Slovenije) Avgust 2017

Navodila za namestitev odjemalca ibsreport2 produkcijsko okolje (poročanje Banki Slovenije) Avgust 2017 Navodila za namestitev odjemalca ibsreport2 produkcijsko okolje (poročanje Banki Slovenije) Avgust 2017 1. Uvod Navodilo je namenjeno tehničnemu osebju pri pošiljateljih poročil oziroma poročevalcih, ki

Prikaži več

Vaja04_Ver02

Vaja04_Ver02 Vaja 04 Varnost: Zaščita aplikacije, omejitev dostopa 1. Uredite prijavo in odjavo uporabnika brez uporabe menuja Special/Security. Nadgradite aplikacijo iz vaje 2. Kreirajte okno tipa Replace Začetno

Prikaži več

Številka:

Številka: apple REPUBLIKA SLOVENIJA MINISTRSTVO ZA FINANCE FINANČNA UPRAVA REPUBLIKE SLOVENIJE Šmartinska cesta 55, p.p. 631, 1001 Ljubljana T: 01 478 38 00 F: 01 478 39 00 E: gfu.fu@gov.si www.fu.gov.si IZVRŠBA

Prikaži več

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) in za vsako napisati svojo kodo. Dve ikoni imata isto

Prikaži več

Cenik ES_spremembe_marec2013_ČISTOPIS_Sprememba_

Cenik ES_spremembe_marec2013_ČISTOPIS_Sprememba_ Cenik elektronskih storitev Na podlagi 332. člena Zakona o trgu finančnih instrumentov in 34. člena Statuta Ljubljanske borze vrednostnih papirjev, d. d., Ljubljana z dne 27.5.1997, z zadnjimi spremembami

Prikaži več

PowerPoint Presentation

PowerPoint Presentation Novosti Državnega centra za storitve zaupanja SI-TRUST Mag. Aleš Pelan, Ministrstvo za javno upravo 11.12.2018 ... 2000 2001 2015 2018 Overitelj na MJU Državni center za storitve zaupanja Novosti v letu

Prikaži več

Upravljanje sistema COBISS Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI

Upravljanje sistema COBISS Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI IZUM, 2015 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Uporaba tiskalnika...

Prikaži več

Microsoft Word - UN_Simona_Siljanovska_2017

Microsoft Word - UN_Simona_Siljanovska_2017 UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Simona Siljanovska IZDELAVA SPLETNE TRGOVINE V WORDPRESS Diplomsko delo Maribor, september 2017 UNIVERZA V MARIBORU FAKULTETA

Prikaži več

bob p. p Ljubljana Tel.: (cena klica na minuto je 1 z DDV) Posebni pogoji uporabe storitve moj bob

bob p. p Ljubljana Tel.: (cena klica na minuto je 1 z DDV)   Posebni pogoji uporabe storitve moj bob bob p. p. 415 1001 Ljubljana Tel.: 090 068 068 (cena klica na minuto je 1 z DDV) www.bob.si Posebni pogoji uporabe storitve moj bob Kazalo Uvod 5 Opredelitve 5 Registracija in uporaba Storitve moj bob

Prikaži več

(Microsoft Word - Nakupovalni vodi\350 po angle\232kih spletnih trgovinah - IzAnglije)

(Microsoft Word - Nakupovalni vodi\350 po angle\232kih spletnih trgovinah - IzAnglije) Nakupovalni vodič po angleških spletnih trgovinah Vedno več ljudi se odloča za nakupe preko spleta. Cene na spletu so pogosto ugodnejše, izbira bolj široka, nakupovanje pa je enostavno in udobno. Dandanes

Prikaži več

Microsoft Word - CNC obdelava kazalo vsebine.doc

Microsoft Word - CNC obdelava kazalo vsebine.doc ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo mesto, april 2008 Ime in priimek študenta ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo

Prikaži več

PowerPoint Presentation

PowerPoint Presentation INFORMACIJSKI SISTEM MFERAC - LETA 2022 mag. Andreja Sladoje Jemec, Sanja Štumberger Kovačič Ministrstvo za finance 10.12.2018 Vsebina predstavitve 1. Projekt MFERAC05 in izhodišča prenove 2. Izvajanje

Prikaži več

POMOČ PREDSTAVITEV EKOSKLADOVNICE UPORABLJENA TERMINOLOGIJA REGISTRACIJA V EKOSKLADOVNICO PRIJAVA V EKOSKLADOVNICO OBJAVA PRISPEVKA ISKANJE PRISPEVKOV

POMOČ PREDSTAVITEV EKOSKLADOVNICE UPORABLJENA TERMINOLOGIJA REGISTRACIJA V EKOSKLADOVNICO PRIJAVA V EKOSKLADOVNICO OBJAVA PRISPEVKA ISKANJE PRISPEVKOV POMOČ PREDSTAVITEV EKOSKLADOVNICE UPORABLJENA TERMINOLOGIJA REGISTRACIJA V EKOSKLADOVNICO PRIJAVA V EKOSKLADOVNICO OBJAVA PRISPEVKA ISKANJE PRISPEVKOV OCENJEVANJE PRISPEVKOV KOMENTIRANJE PRISPEVKOV KONTAKT

Prikaži več

NETGEAR R6100 WiFi Router Installation Guide

NETGEAR R6100 WiFi Router Installation Guide Blagovne znamke NETGEAR, logotip NETGEAR in Connect with Innovation so blagovne znamke in/ali registrirane blagovne znamke družbe NETGEAR, Inc. in/ali njenih povezanih družb v ZDA in/ali drugih državah.

Prikaži več

Oblikovanje in razvijanje spletnih strani

Oblikovanje in razvijanje spletnih strani Uporabniški vmesnik načrtovanje in izdelava Interaktivni mediji Doc. dr. Aleš Hladnik Načrtovanje uporabniškega vmesnika (UV) Načrtovanje oz. zasnova UV (User( interface design or engineering) je načrtovanje

Prikaži več

Microsoft Word - eDenar - navodila za uporabo osebnega portala clana doc

Microsoft Word - eDenar - navodila za uporabo osebnega portala clana doc Navodila za uporabo osebnega portala člana 13.11.08 Pozor: Ta navodila so le v pomoč uporabnikom. V kolikor so navodila v nasprotju s splošnimi pogoji poslovanja kluba, veljajo splošni pogoji poslovanja

Prikaži več

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Vito Resnik RAZVOJ APLIKACIJE ZA NAROČANJE IN SPREMLJANJE MERITEV IZDELK

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Vito Resnik RAZVOJ APLIKACIJE ZA NAROČANJE IN SPREMLJANJE MERITEV IZDELK UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Vito Resnik RAZVOJ APLIKACIJE ZA NAROČANJE IN SPREMLJANJE MERITEV IZDELKOV Diplomsko delo Maribor, november 2016 RAZVOJ APLIKACIJE

Prikaži več

Pogoji poslovanja Catena.si je spletna trgovina podjetja Catena d.o.o.. Pogoji poslovanja so sestavljeni upoštevajoč vse zakonske obveznosti in mednar

Pogoji poslovanja Catena.si je spletna trgovina podjetja Catena d.o.o.. Pogoji poslovanja so sestavljeni upoštevajoč vse zakonske obveznosti in mednar Pogoji poslovanja Catena.si je spletna trgovina podjetja Catena d.o.o.. Pogoji poslovanja so sestavljeni upoštevajoč vse zakonske obveznosti in mednarodne smernice za e-poslovanje, ki jih zastopa tudi

Prikaži več

Navodila in pravila za sodelovanje v nagradni igri "Marcus & Martinus" 1. člen (splošne določbe) Ta pravila določajo način izvedbe nagradne igre»marcu

Navodila in pravila za sodelovanje v nagradni igri Marcus & Martinus 1. člen (splošne določbe) Ta pravila določajo način izvedbe nagradne igre»marcu Navodila in pravila za sodelovanje v nagradni igri "Marcus & Martinus" 1. člen (splošne določbe) Ta pravila določajo način izvedbe nagradne igre»marcus & Martinus«(v nadaljevanju: nagradna igra). Organizator

Prikaži več

ZAČETNI VODNIK ZA POVEZAVO Izkusite prilagojeno nego perila z aplikacijo My AEG Care. Pralni stroj lahko povežete in upravljate od koder koli in preje

ZAČETNI VODNIK ZA POVEZAVO Izkusite prilagojeno nego perila z aplikacijo My AEG Care. Pralni stroj lahko povežete in upravljate od koder koli in preje ZAČETNI VODNIK ZA POVEZAVO Izkusite prilagojeno nego perila z aplikacijo My AEG Care. Pralni stroj lahko povežete in upravljate od koder koli in prejemate obvestila o tem, kdaj je perilo pripravljeno.

Prikaži več

Navodila za študente

Navodila za študente Moodle UM Verzija 3.5.1 Navodila za študente RCUM, Služba za IS Maribor, 2019 Kazalo 1 Prijava v Moodle UM... 3 2 Odjava iz Moodla UM... 3 3 Seznam učnih enot... 4 4 Navigacijski trak... 4 5 Bloki... 5

Prikaži več

Navodilo za urejanje zavarovanj po šifri podlage za zavarovanje 033 prek portala e-vem Ljubljana, oktober 2015

Navodilo za urejanje zavarovanj po šifri podlage za zavarovanje 033 prek portala e-vem Ljubljana, oktober 2015 Navodilo za urejanje zavarovanj po šifri podlage za zavarovanje 033 prek portala e-vem Ljubljana, oktober 2015 Kazalo vsebine 1. Pooblastilo za izvajanje postopkov prek portala e-vem... 4 2. Prijava v

Prikaži več

NAVODILA ZA IZPOLNJEVANJE OBRAZCA

NAVODILA ZA IZPOLNJEVANJE OBRAZCA NAVODILO ZA UPORABO PRIPOMOČKA ZA PRIPRAVO STROŠKOVNEGA NAČRTA PROJEKTA»Piano finanziario Stroskovni nacrt«dokument»piano finanziario Stroskovni nacrt«v Microsoft Excel obliki lahko uporabite kot pripomoček

Prikaži več

Programska sprememba oddelka šole

Programska sprememba oddelka šole Pomoč uporabnikom Programska sprememba oddelka šole -NA-SI-355, V1.0 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Navodila... 1 2 Postopek...

Prikaži več

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC Državni zbor v številkah 90 poslancev 9 + 1 poslanska skupina 150+ mobilnih naprav (OS Android, ios) 500+ internih uporabnikov, 650+ osebnih računalnikov, 1100+

Prikaži več

Microsoft Word - DGSF - Preverjanje veljavnosti ZPIZ e-dokumentov - V.1.0

Microsoft Word - DGSF - Preverjanje veljavnosti ZPIZ e-dokumentov - V.1.0 Upravljanje z dokumentarnim gradivom (DGSF) Zgodovina dokumenta Verzije # Oznaka verzije Spremembe Avtorji Datum 1.0 Osnovni dokument Upravljanje z dokumentarnim gradivom (DGSF) Stran 2 od 13 Kazalo 1

Prikaži več

Šolski center Celje Gimnazija Lava IZDELAVA SPLETNEGA BRSKALNIKA Raziskovalna naloga Avtor David Simunič, 2. e Mentor Tomislav Viher, univ. dipl. org.

Šolski center Celje Gimnazija Lava IZDELAVA SPLETNEGA BRSKALNIKA Raziskovalna naloga Avtor David Simunič, 2. e Mentor Tomislav Viher, univ. dipl. org. Šolski center Celje Gimnazija Lava IZDELAVA SPLETNEGA BRSKALNIKA Raziskovalna naloga Avtor David Simunič, 2. e Mentor Tomislav Viher, univ. dipl. org. Mestna občina Celje, Mladi za Celje Celje, marec 2014

Prikaži več

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefonih. Obstaja precej različic, sam pa sem sestavil meni

Prikaži več

Macoma katalog copy

Macoma katalog copy POSLOVNE APLIKACIJE PO ŽELJAH NAROČNIKA Poročilni sistem Finance in kontroling Poprodaja Podatkovna skladišča Prodaja Proizvodnja Obstoječi ERP Partnerji Implementacija rešitev prilagojena po željah naročnika

Prikaži več