Transcript
Page 1: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO

David Gojković

UPORABA IN PODPORA JAVASCRIPT KNJIŽNIC V SISTEMU ZA UPRAVLJANJE VSEBIN WORDPRESS

Diplomsko delo

Maribor, september 2018

Page 2: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO

David Gojković

UPORABA IN PODPORA JAVASCRIPT KNJIŽNIC V SISTEMU ZA UPRAVLJANJE VSEBIN WORDPRESS

Diplomsko delo

Maribor, september 2018

Page 3: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

i

UPORABA IN PODPORA JAVASCRIPT KNJIŽNIC V SISTEMU ZA UPRAVLJANJE VSEBIN

WORDPRESS

Diplomsko delo

Študent: David Gojković

Študijski program: Univerzitetni študijski program 1. stopnje

Informatika in tehnologije komuniciranja

Smer: Informacijski sistemi

Mentor: doc. dr. Marko Hölbl

Somentor: asist. Luka Hrgarek, mag. inž. inf. in tehnol. kom.

Lektorica: mag. Petra Kunc

Page 4: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

ii

ZAHVALA Iskreno se zahvaljujem mentorju doc. dr. Marku Hölblu in somentorju asist. Luki Hrgareku za strokovno pomoč in vodenje pri izdelavi diplomske naloge. Še posebej se zahvaljujem moji družini, ki mi je omogočila študij in me pri tem nenehno podpirala. Zahvaljujem se tudi sošolcem, ki so mi pomagali tekom študija.

Page 5: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

iii

Uporaba in podpora JavaScript knjižnic v sistemu za

upravljanje vsebin Wordpress

Ključne besede: WordPress, Javascript knjižnice, oblikovanje spletnih strani, sistem za

upravljanje vsebin

UDK: 004.774.6(043.2)

Povzetek

Večina spletnih strani danes stremi k čim večji funkcionalnosti in hkrati k dobremu

estetskemu videzu. Pri zmanjševanju količine programiranja le-teh nam pripomorejo

sistemi za upravljanje vsebin in knjižnice programskih jezikov. V diplomskem delu so

opisani takšni sistemi in posamezne knjižnice ter ogrodja v programskem jeziku JavaScript.

S pomočjo statističnih podatkov je prikazano, katere knjižnice se najbolj uporabljajo in

podano je, kako se lahko te integrirajo v sistem za upravljanje vsebin WordPress. Na

praktičnem primeru je prikazano, da lahko aplikacija, spisana s pomočjo ogrodja Angular,

prikaže podatke iz sistema WordPress, ki jih pridobimo prek formata JSON. Podan je sklep,

da JavaScript in knjižnice predstavljajo koristen dodatek sistemu, vendar za namenske

spletne strani obstajajo boljše rešitve.

Page 6: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

iv

Use and support of JavaScript libraries in WordPress

content management system

Key words: WordPress, Javascript libraries, website design, content management

system

UDK: 004.774.6(043.2)

Abstract

Most of the websites today are aiming to have better functionality and at the same time a

better aesthetic look. To reduce the amount of programming we use the help of content

management systems and libraries of various programming languages. In this diploma

thesis we describe such systems, individual libraries and frameworks of the programming

language JavaScript. With the help of statistical data we view which libraries are used the

most and we show how they can be integrated into the content management system,

WordPress. On a straightforward practical example we demonstrate that an application

written in Angular can show data from the system WordPress, acquired with the JSON

data format. We conclude that JavaScript and it’s libraries represent a useful addition to

the system, although there are better solutions to purposive web sites.

Page 7: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

v

KAZALO 1 UVOD .......................................................................................................................... 1

2 SISTEMI ZA UPRAVLJANJE VSEBIN .............................................................................. 3

2.1 Sistemi za upravljanje vsebin .................................................................................. 4

2.2 Izbira primernega CMS ........................................................................................... 5

2.3 WORDPRESS ............................................................................................................ 7

3 JAVASCRIPT KNJIŽNICE ............................................................................................. 10

3.1 jQuery .................................................................................................................... 10

3.2 Razlika med knjižnico in ogrodjem ....................................................................... 12

3.3 Ogrodje Angular .................................................................................................... 13

3.4 React ..................................................................................................................... 14

3.5 Ember.js ................................................................................................................ 16

3.6 Vue.js ..................................................................................................................... 17

3.7 Podpora JavaScript knjižnic v sistemu WordPress ................................................ 19

3.7.1 WordPress REST API .......................................................................................................... 20

4 UPORABA JAVASCRIPT KNJIŽNIC .............................................................................. 21

4.1 Razvijalsko okolje .................................................................................................. 21

4.1.1 Vgrajeni urejevalnik v sistemu WordPress ........................................................................ 22

4.2 Spletne aplikacije .................................................................................................. 22

4.3 Predloga ali ustvarjanje nove ................................................................................ 23

4.4 Javascript in smernice oblikovanja ....................................................................... 26

4.5 Primer uporabe REST API ...................................................................................... 27

5 SKLEP ......................................................................................................................... 32

VIRI IN LITERATURA ............................................................................................................. 34

Page 8: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

vi

KAZALO SLIK IN TABEL

Slika 2.1: Porazdeljenost uporabe CMS (v %) za prvih 1 000 000 strani ............................... 5

Slika 3.1: Primer arhitekture z REST API .............................................................................. 12

Slika 3.2: Delovanje Angular aplikacije ................................................................................ 14

Slika 3.3: Primer MVC arhitekture z dodatkom ReactJS ...................................................... 15

Slika 3.4: Diagram delovanja Ember.js aplikacije ............................................................... 17

Slika 3.5: Hitrosti knjižnic v primerjavi z navadnim JavaScript (manjše število pomeni večjo

hitrost) ................................................................................................................................. 18

Slika 3.6: Število prostih mest za razvijalce JavaScript knjižnic ........................................... 19

Slika 4.1: Primerjava med »tradicionalnim« in sodobnim spletnim modelom ................... 23

Slika 4.2: Mnogim dobro znan izgled Material Designa ...................................................... 27

Slika 4.3: Vtičnik za generiranje vsebine ............................................................................. 28

Slika 4.4: Vmesnik z ukazno vrstico ..................................................................................... 29

Slika 4.5: Ustvarjena Angular aplikacija, ki nam prikaže prispevke s strani WordPress...... 31

Tabela 2.1 : Primerjava nekaterih najbolj priljubljenih sistemov .......................................... 6

Page 9: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

1

1 UVOD

Ustvarjanje spletnih strani je časovno zahteven postopek, ki zahteva tudi tehnično znanje.

Čas pa lahko prihranimo s programsko kodo, ki je že ustvarjena in jo lahko znova

uporabimo. Skupek takšnih funkcij in virov imenujemo knjižnice (ang. libraries). Prav tako

so pri ustvarjanju in urejanju spletnih strani vedno bolj priljubljeni sistemi za upravljanje

vsebin (ang. content management system, CMS), ki omogočajo spreminjanje elementov

(besedilo, slike ipd.) brez znanja programskih in označevalnih jezikov, kot je HTML (ang.

Hyper Text Markup Language). Takšni sistemi se osredotočajo predvsem na vsebino in

manj na oblikovanje. Zaradi tega se uporabljajo oblikovne predloge (ang. template), ki so

pogosto napisane v programskem jeziku JavaScript, enem od najpopularnejših

programskih jezikov, ko gre za obdelavo informacij s strani odjemalca (ang. client-side).

Namen diplomske naloge je raziskava korelacije med sistemom za upravljanje vsebin

WordPress (temelji na programskem jeziku PHP) in JavaScript knjižnicami, ki so

namenjene ustvarjanju t. i. čelnega dela (ang. front-end) spletnih strani. Glavni cilji, ki smo

jih želeli doseči, so naslednji:

− ustvarjanje aplikacije s pomočjo sistema WordPress in knjižnic, ki bodo najbolj

ustrezale po uporabnosti in podprtosti ter dostopnosti dokumentacije;

− analiza, kako se takšen sodoben pristop primerja s klasičnim ustvarjanjem strani;

− opredelitev tega, kaj so sistemi za upravljanje vsebin in katere vrste JavaScript knjižnic

poznamo;

− analiza načina, s pomočjo katerega WordPress podpira JavaScript knjižnice (React,

jQuery … ) in ogrodja (Angular, Ember, Vue.js …).

Page 10: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

2

Obstaja več popularnih sistemov za upravljanje vsebin, kot sta Joomla in WordPress,

vendar slednji poganja več kot 60 milijonov spletnih strani in ima največji delež

uporabnikov ter ima precej obsežnejšo dokumentacijo, zato smo se omejili na sistem za

upravljanje vsebin WordPress in peščico določenih odprtokodnih knjižnic JavaScript, ki so

najpopularnejše glede na statistične podatke. Kljub določenim razlikam smo v pojem

knjižnic vključili tudi ogrodja. V diplomski nalogi in praktičnem primeru smo zato pod

terminom knjižnice razumeli vsa ogrodja in knjižnice, spisane z namenom oblikovanja

spletnih strani. V analizo programske kode odprtokodnih rešitev se nismo poglabljali, saj

to ni osrednja tema te diplomske naloge. Uporabili smo tudi vnaprej postavljene predloge

in primerjali njihovo uporabo z ustvarjanjem rešitev »iz nič«. Predpostavili smo, da

WordPress podpira JavaScript in knjižnice v določeni meri, vendar ne v popolnosti.

Predpostavili smo tudi to, da obstaja boljši način uporabe le-teh, ter da v zasnovi spletne

strani ne igrajo ključne vloge.

Pri izdelavi diplomske naloge in spletne strani smo pregledali spletno literaturo oziroma

dokumentacijo posameznih programskih rešitev in knjižnic. Pregledali smo tudi forume za

razvijalce v skupnostih za WordPress in JavaScript knjižnice. Na podlagi pridobljenega

znanja smo izbrali primerne knjižnice in jih v skladu s smernicami oblikovanja uporabili za

izdelavo aplikacije, ki uporablja podatke iz sistema WordPress. Metode dela, ki smo jih

uporabili so: zbiranje in pregled/analiza podatkov, analiza obstoječih rešitev in delo na

praktičnem primeru.

Page 11: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

3

2 SISTEMI ZA UPRAVLJANJE VSEBIN

Sistemi za upravljanje vsebin (ang. Content Management Systems, CMS) so vrsta

programske opreme, ki pomaga uporabnikom ustvarjati, upravljati in urejati vsebine (na

spletnih straneh) brez potrebe po posebnemu tehničnemu znanju (Rouse, 2016).

Namesto grajenja lastnega sistema za ustvarjanje spletnih strani, shranjevanje datotek in

ostalih funkcij sistem za upravljanje vsebin poskrbi za osnovno infrastrukturo, tako da se

lahko osredotočimo na tako imenovani čelni del naše spletne strani (ang. front end).

Poleg sistemov, namenjenih spletnim stranem, obstajajo tudi takšni, ki se osredotočajo na

druge funkcionalnosti, kot je upravljanje z dokumenti (Pick-a-web, 2018).

Kot primer si poglejmo, kako se ustvari stran v izbranem CMS (WordPress).

Brez podobnega sistema bi morali napisati HTML dokument in ga prenesti na strežnik.

Namesto nas sistem opravi ta prenos s pomočjo vmesnika, ki je bolj uporabniško prijazen

kot namenska orodja za FTP. V sistemu za upravljanje vsebin, kot je WordPress,

uporabimo vmesnik in vnesemo želeno vsebino. Zelo podoben vmesnik najdemo pri

vstavljanju datotek, kjer lahko uporabimo že naložene datoteke, ki se prikažejo v knjižnici

medijev (ang. media library). V osnovi je sistem za upravljanje vsebin razdeljen na dva

ključna dela:

− aplikacija za upravljanje z vsebino (ang. content management application, CMA ) –

del, kjer dejansko dodajamo in upravljamo vsebinski del z vmesniki, kot smo videli

prej;

− aplikacija za dostavo vsebine (ang. content delivery application, CDA) –

del, kjer se v ozadju zgodijo procesi, ki poskrbijo za prenos in hrambo vsebine

naložene v CMA (GoodRich, 2013).

Page 12: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

4

2.1 Sistemi za upravljanje vsebin

Sistem WordPress, ki smo ga delno že prikazali, je eden od primerov popularnega sistema

za upravljanje vsebin. Najpogostejši tipi CMS sistemov so namenjeni izgradnji blogov in

spletnih trgovin. WordPress ima približno 60 odstotkov tržnega deleža na spletnih straneh

z znanim sistemom za upravljanje vsebin (W3Techs, 2018). Poleg programskih rešitev, ki

izvirajo iz WordPressa, med priljubljenimi sistemi za upravljanje vsebin najdemo še

(Mening, 2017):

− Joomla,

− Drupal,

− Magento,

− Squarespace.

Obstaja še mnogo drugih podobnih komercialnih sistemov, ki se ponujajo večjim

podjetjem (posledično je cena temu primerna) (Sudhir, 2016).

Sistemi za upravljanje vsebin so danes zelo prilagodljivi. Nekateri so osredotočeni na

določeno področje (npr. Magento in področje spletnih trgovin), vendar večina tovrstnih

sistemov omogoča izgradnjo številnih vrst spletnih strani. Na primer WordPress se

uporablja za:

− statične spletne strani,

− bloge,

− spletne trgovine,

− forume,

− portfelj (najpogosteje umetniki).

Page 13: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

5

2.2 Izbira primernega CMS

Tako kot pri mnogo programskih rešitvah, ne obstaja vsesplošna rešitev, ki je primerna za

vsa okolja in situacije. Večina ljudi ima svojo subjektivno preferenco, vendar je težko najti

objektivni razlog, ki nam pove, zakaj je določena rešitev najboljša. Pokazatelj kakovosti je

lahko število uporabnikov in tržni delež.

Omenili smo že, da na področju sistemov za upravljanje kakovosti prevladuje WordPress,

kar je tudi vidno na sliki 2.1. Za večino vrst spletnih strani ponuja uporabniško prijazen

vmesnik, ki se ga lahko prilagodi z vtičniki. Ni vedno najboljša rešitev, vendar je najboljša

rešitev v večini primerov, saj najdemo za vsak namen primerno že ustvarjeno podlago.

Slika 2.1: Porazdeljenost uporabe CMS (v %) za prvih 1 000 000 strani

(BuiltWith, 2018)

5141

5 3

Porazdeljenost uporabe CMS

WordPress

Ostali

Drupal

Joomla

Page 14: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

6

Tabela 2.1 : Primerjava nekaterih najbolj priljubljenih sistemov

WordPress TYPO3 Joomla! Drupal Contao

Licenca GNU

GPLv2+

GPL GNU GPL v2 GPL LGPL

Operacijski

sistem

Cross-

platform

Cross-

platform

Cross-

platform

Cross-

platform

Cross-

platform

Podprti spletni

strežniki

Strežnik s

PHP in

MySQL

podporo

Apache,

NGINX, MS IIS

Apache,

Nginx, MS IIS

Strežnik s

PHP podporo

Strežnik s

PHP in

MySQL

podporo

Podprte

podatkovne

baze

MySQL,

MariaDB

MySQL,

PostgreSQL,

Oracle,

Firebird, MS

SQL Server

MySQL, MS

SQL Server,

PostgreSQL,

MariaDB

MySQL,

MariaDB,

PostgreSQL,

SQLite

MySQL

Vmesni

sistemi

PHP PHP, SQL,

JavaScript

PHP PHP PHP

Dodatni

vtičniki in

razširitve

✔ ✔ ✔ ✔ ✔

Back-end na

osnovi

spletnega

brskalnika

✔ ✔ ✔ ✔ ✔

Page 15: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

7

Funkcije

poročanja

(npr. za

podatkovno

rudarjenje)

Potreben je

vtičnik

Potreben je

vtičnik

✔ ✔ Potreben

je vtičnik

XML vmesnik Potreben je

vtičnik

Potreben je

vtičnik

Potreben je

vtičnik

Potreben je

vtičnik

Potreben

je vtičnik

Integracija

lastnih skript

✔ ✔ Potreben je

vtičnik

✔ ✔

Upoštevanje

standardov

(W3C)

✔ ✔ ✔ ✔ ✔

2.3 WORDPRESS

WordPress je odprtokodna programska oprema, s pomočjo katere se ustvarjajo spletne

strani, namenjene različnih uporabnikom (blog, spletna trgovina ipd.). Zaradi preproste

uporabe in prilagodljivosti je z razlogom najbolj priljubljen sistem za upravljanje vsebin.

Najpogosteje je asociiran z blogi, čeprav podpira tudi ostale tipe spletnih strani.

Prva izdaja WordPress sistema je bila na voljo 27. maja 2003 kot nadaljevanje

b2/cafeloga, kjer sta bila glavna razvijalca Matt Mullenweg in Mike Little. Preveden je v

več kot 50 jezikov, med katerimi je tudi slovenščina. Za delovanje potrebujemo strežnik, ki

vsebuje podatkovno bazo (MySQL ali MariaDB), PHP in podpira HTTPS in na katerem je

nameščen programski paket WordPress.org (WordPress, 2018).

Page 16: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

8

Eden od glavnih razlogov, da se mnogi odločajo za uporabo WordPress sistema, je

odprtokodnost, kar pomeni, da poleg glavnih razvijalcev lahko pri razvoju tega sodeluje

kdor koli. Zaradi tega, ker je odprtokodni projekt, je sistem WordPress brezplačen.

WordPress je prilagodljiv in razširljiv. Trenutno obstaja 56 tisoč vtičnikov, ki omogočajo

preprosto spreminjanje izgleda spletne strani in dodajanje novih funkcionalnosti, kot so

galerije slik in spletne trgovine (WordPress.org, 2018).

Za ustvarjanje spletne strani z WordPressom ne potrebujemo tehničnega znanja, ker ima

uporabniško prijazen vmesnik. Vmesnik za dodajanje nove vsebine je podoben

urejevalnikom besedil, kot je Microsoft Word, ki je del programskega paketa Office,

katerega uporablja več kot milijarda uporabnikov (Callaham, 2016). Zaradi priljubljenosti

in razširjenosti lahko lažje poiščemo odgovore na vprašanja v povezavi s tem sistemom za

upravljanje vsebin, ker obstaja ogromno število vodičev in dokumentacije. V pomoč so

tudi forumi, na katerih sodeluje veliko število razvijalcev in oblikovalcev. Obstajajo tudi

uradni forumi, ki jih najdemo na spletnem naslovu https://wordpress.org/support/.

Poleg zgoraj naštetih razlogov je treba upoštevati tudi SEO (Search Engine Optimization).

Ob namestitvi imamo že možnost optimizacije naše spletne strani, tako da nas spletni

iskalniki lažje najdejo. Matt Cutts, nekdanji glavni vodja Google ekipe za spam, je javno

hvalil, kako je WordPress učinkovit pri prej omenjeni optimizaciji za spletne iskalnike

(Cutts, 2013). Poleg razlogov, podanih v poglavju 3.1, bomo opredelili še nekaj prednosti,

ki jih ponuja sistem WordPress, in sicer:

− Stroškovna učinkovitost

Nižja cena urejanja in vzdrževanja spletne strani. Zaradi preprostosti uporabe se lahko

odločimo, da stran ustvarimo sami in brez razvijalca.

− Dostopnost

Stran lahko spreminjamo kjer koli smo, dokler imamo dostop do spleta.

− Lažja optimizacija za spletne iskalnike

Poleg že dane optimizacije lahko dodamo še vtičnike, ki ponujajo dodatno

funkcionalnost za ta namen. Primer takšnega vtičnika je Yoast SEO.

Page 17: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

9

− Predloge in odzivna spletna stran (ang. Responsive web design)

Število mobilnih naprav in njihov promet je presegel število namiznih, zato je danes

odzivna spletna stran skoraj že nujna. Že vključene predloge so primer odzivne spletne

strani.

− Preprosta integracija z družbenimi mediji

Obstaja veliko število vtičnikov, ki skrbijo, da so naše objave vidne tudi na vedno bolj

popularnih družbenih medijih.

− Varnost

Pogoste posodobitve pomenijo manjšo možnost vdora.

− Lažji prehod

Novi razvijalci lažje nadomestijo stare, ker je dosti manj programske kode.

Čeprav je sistem WordPress najbolj priljubljen, ima tudi nekaj napak:

− Hrošči

Zaradi posodobitev tako v WordPress sistemu kot v vtičnikih pride do neželenih težav.

− Zmogljivost

WordPress sam po sebi ni počasen, vendar lahko pride do upočasnitve, ko dodamo

večje število vtičnikov. To se lahko omili s pomočjo vtičnikov za predpomnilnik, ampak

to ni trajna rešitev.

− Ni primerno za vsakogar

Slabost odprtokodnih sistemov je v tem, da podpora ni zagotovljena. Večja podjetja se

zaradi tega odločajo za plačljive rešitve, ker lahko pričakujejo pomoč, ko pride do

težav.

− Priljubljenost

Zaradi popularnosti pride posledično do največ poskusov vdora.

Page 18: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

10

3 JAVASCRIPT KNJIŽNICE

»Knjižnica (ang. library) ali tudi programska knjižnica je v računalništvu zbirka

podprogramov (oziroma funkcij) za pomoč pri izdelavi oziroma razvoju programske

opreme. Knjižnice vsebujejo kodo in podatke, ki se jih da uporabiti v neodvisnih

programih. Zaradi tega se programi izmenjujejo in spreminjajo modularno. Nekatere

izvršne datoteke so lahko oboje, samostojni programi ali knjižnice, vendar večina knjižnic

ni izvršljivih« (Khan Academy, 2018).

Obstaja več razlogov, zakaj bi želeli dodati JavaScript v WordPress spletno stran in prav

tako več načinov implementacije, vendar moramo biti pri tem pozorni, saj lahko pride do

ranljivosti sistema samega. Obstaja možnost, da ne najdemo WordPress vtičnika za želeno

funkcionalnost (npr. predvajanje specifičnih videoposnetkov) in to lahko vključimo s

pomočjo JavaScripta.

JavaScript knjižnic je mnogo in vsaka ima svoj namen. V naslednjih poglavjih si bomo

ogledali najbolj priljubljene in njihovo uporabo.

3.1 jQuery

jQuery je preprosta odprtokodna JavaScript knjižnica, katere glavni namen je »pisati manj,

narediti več«. Trenutno podpira naslednje brskalnike (jQuery, 2018):

− Chrome: (trenutna verzija – 1) in trenutna verzija,

− Edge: (trenutna verzija – 1) in trenutna verzija,

− Firefox: (trenutna verzija – 1) in trenutna verzija, ESR,

− Internet Explorer: 9+,

− Safari: (trenutna verzija – 1) in trenutna verzija,

− Opera: trenutna verzija.

Uporabna je za preproste naloge, ki ponavadi zahtevajo več vrstic programske kode in

metod, ker jih poenostavi in zaradi tega jih lahko kličemo v eni sami vrstici. Poenostavi

Page 19: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

11

tudi zahtevnejše stvari, za katere se uporablja JavaScript, kot so AJAX in DOM

manipulacija (W3schools, 2018).

V sodobnem spletnem razvoju igra veliko vlogo v dodajanju funkcionalnosti, ki delujejo s

strani odjemalca, kar posledično zmanjša količino prenosa podatkov in izboljša

uporabniško izkušnjo.

Med primeri uporabe jQuery najdemo tudi drsnike, pojavna okna, animacije ipd. Tukaj je

mišljena možnost dinamičnega prikazovanja le-teh in ne ustvarjanje.

Razvijalci lahko z uporabo jQuery izvajajo nekatere dejavnosti brez vnovičnega nalaganja

spletne strani, kot so premikanje po spletni strani, klici AJAX skript in upravljanje z

dogodki, ko uporabnik klikne na določeni element.

jQuery je že v vključen v WordPress in vsebuje tudi nekaj ključnih pomožnih knjižnic.

Razvijalci tem in vtičnikov lahko preprosto kličejo jQuery metode in jih vključijo v lastne

jQuery skripte.

Če želimo uporabiti to knjižnico v naši temi, moramo dodati lastno skripto v čakalno vrsto

(WordPress queue). Dodamo lahko kateri koli del jQuery Core ali kateri koli vtičnik, ki je že

vključen v WordPress.

Primer programske kode, kjer smo dodali JavaScript po meri:

Izsek programske kode 3.1 : Primer uporabe jQuery v WordPress

<?php

wp_enqueue_script('nasa_skripta', get_stylesheet_directory_uri() .

'/js/nasa_skripta.js', array( 'jquery' ));

?>

Page 20: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

12

3.2 Razlika med knjižnico in ogrodjem

Pogosto pride do zmede, ko se govori o JavaScript knjižnicah, ker so pogosto narobno

označene kot ogrodja (ang. frameworks), čeprav obstajajo razlike. Ogrodje je vrsta

knjižnice, vendar deluje nekoliko drugače. Ogrodja uporabimo za izgradnjo aplikacij ali

spletnih strani v celoti. Tukaj lahko povlečemo vzporednico in lahko rečemo, da so

ogrodja glede na namen podobna sistemu WordPress, ker ponujajo podlago za izgradnjo

danega projekta. V primerjavi s klasičnimi knjižnicami so ogrodja dosti bolj strukturirana.

Ogrodja lahko razdelimo v več kategorij: ogrodja za čelni del (ang. front-end), ogrodja za

hrbtni del (ang. back-end) in ogrodja za polno izgradnjo (ang. full-stack). Čelni del skrbi za

interakcijo z uporabnikom, hrbtni del skrbi za stvari v ozadju in full-stack kombinira oba

dela.

Ogrodja se lahko v sistemu WordPress uporabijo kot dodatek, kjer se CMS uporabi kot

podlaga in aplikacija se nato gradi »povrhu« (slika 3.1).

Slika 3.1: Primer arhitekture z REST API

(Arunesh, 2015)

Page 21: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

13

3.3 Ogrodje Angular

Angular (pogosto znan pod imenom Angular 2+) je odprtokodna platforma za izgradnjo

čelnega dela spletnih aplikacij in temelji na TypeScriptu (Microsoftova nadgradnja

JavaScripta). Razvoj Angular vodi namenska ekipa pri Googlu in skupnost posameznikov

ter podjetij. Platforma je popolna prenova produkta od ekipe, ki je razvila AngularJS.

Razvijalci vidijo v Angular platformo, s katero preprosto gradimo aplikacije znotraj spleta

in vsebuje integrirane prakse za reševanje težav pri razvoju (Angular, 2018). Na sliki 3.2

vidimo delovanje takšne aplikacije. Ko govorimo o platformi Angular, govorimo o

JavaScript ogrodju, kot smo že omenili v prejšnjem poglavju. Uporablja se za izgradnjo t. i.

aplikacij na eni strani (ang. Single Page Applications, SPA). SPA aplikacije navadno

uporabljajo JavaScript okolje v brskalniku, da lahko oponašajo vedenje klasičnih spletnih

strani. Ker niso popolnoma odvisne od strežnika, lahko počnejo stvari, ki jih običajno

vidimo le v »native« aplikacijah. Poleg tega je komunikacija s strežnikom minimalna, kar

posledično pomeni odzivnejšo aplikacijo. S pomočjo tehnologij, kot je Googlov

Lighthouse, lahko te aplikacije postanejo skoraj nerazpoznavne v primerjavi z mobilnimi

aplikacijami (npr. na Android sistemih). Odzivne aplikacije oziroma spletne strani so nuja,

kajti 53 odstotkov uporabnikov bo zapustilo stran, če traja več kot 3 sekunde, da se naloži.

Poleg tega pričakujejo, da bo premikanje gladko in brez upočasnitev (Google, 2018).

Angular je bil prvotno namenjen za uporabo s programskimi jeziki JavaScript, TypeScript

in Dart. Skozi čas je najbolj priljubljen jezik postal TypeScript. Ne samo zaradi boljše

dokumentacije, ampak tudi zaradi pogostejših posodobitev.

Sčasoma so razvijalci tega ogrodja izdelali orodja, ki skupaj delujejo kot dobro

organizirana celota. Orodja, kot sta Angular-Cli in Angular Material, dodajo

funkcionalnost, ki olajšajo delo. Primer takšnih funkcionalnosti so hitra generacija

projektov, upodabljanje na strani strežnika in lepše komponente uporabniškega

vmesnika. Zaradi tega lahko obravnavamo Angular ne le kot ogrodje, temveč tudi kot

platformo.

Page 22: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

14

Slika 3.2: Delovanje Angular aplikacije

(Presa, 2015)

3.4 React

React je JavaScript knjižnica, namenjena izgradnji uporabniških vmesnikov. Avtor je

Jordan Walke, vendar razvoj nadaljuje ekipa pri Facebooku in skupnost individualnih

razvijalcev ter podjetij. Uporabi se lahko tudi kot osnova za izgradnjo prej omenjenih SPA

ali mobilnih aplikacij. Lastnosti, ki to knjižnico razlikuje od podobnih, so:

− Deklarativen jezik

Ustvarimo lahko dizajn za posamezna stanja in zaradi tega se ob spremembi podatkov

spremenijo le specifične komponente vmesnika. Posledica tega je programska koda, ki

je lažja za branje in razumevanje.

− Osnove so komponente

Gradimo gnezdene komponente, ki nadzorujejo lastna stanja, in jih združimo, da lahko

ustvarimo kompleksnejše uporabniške vmesnike. Logika komponent bazira na

JavaScriptu in posledično pride do lažjega prehoda informacij skozi aplikacijo oziroma

spletno stran.

− Obširnost

React je pogosto le del večjega sklopa knjižnic, ki gradijo spletno stran oziroma

aplikacijo, zato je pomembno, da obstaja možnost dodajanja novih funkcionalnosti

Page 23: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

15

brez vnovičnega pisanja že obstoječe programske kode. React se lahko tudi izvaja na

strani strežnika s pomočjo Node.js okolja ali pa poganja mobilne aplikacije, kar se

doseže s pomočjo React Native (Facebook-Github, 2018).

React lahko opišemo kot pogled v arhitekturi Model-Pogled-Kontroler (ang. Model-View-

Controller, MVC), kar je vidno tudi na sliki 3.3. Ogrodja, kot je Angular, že imajo lastne

strukture za pogled v takšni arhitekturi, zato zamenjava ni potrebna. React ni nujno

zamenjava, ampak le nadgradnja določenih delov uporabniškega vmesnika, ki se lahko

znova uporabijo (ang. refactoring oziroma reusing).

Slika 3.3: Primer MVC arhitekture z dodatkom ReactJS

(Deutcsh, 2017)

Page 24: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

16

3.5 Ember.js

Ember.js je MVC (Model-View-Controller) JavaScript ogrodje, ki ga vzdržuje ekipa Ember

Core (Yehuda Katz, Tom Dale in ostali). Razvijalcem omogoča razvoj SPA aplikacij, ki se

grajene na osnovi REST arhitekture.

Ember se uporablja na mnogih popularnih spletnih mestih, kot so LinkedIn, Vine,

Nordstrom in Twitch.tv. Poleg tega da omogoča razvoj SMA, je možno s pomočjo Ember

ustvariti tudi namizne in mobilne aplikacije. Primer namizne aplikacije, grajene s tem

ogrodjem, je Apple Music.

Elementi, ki jih najdemo v ogrodju Ember (slika 3.4), so:

− Route

Route objekt predstavlja stanje aplikacije in je vezan na URL.

− Model

Vsak route objekt ima na sebe vezan Model, ki vsebuje podatke, asociirane s

trenutnim stanjem aplikacije.

− View

View se uporabi za upravljanje z uporabniško sproženimi dogodki ali pa za dodajanje

elementov v predlogo oziroma vnovično uporabo le-teh.

− Component

Posebna oblika View je namenjena ustvarjanju elementov, ki se nato lahko znova

uporabijo.

Page 25: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

17

Slika 3.4: Diagram delovanja Ember.js aplikacije

(Sehgal, 2018)

3.6 Vue.js

Vue.js (v nadaljevanju Vue) je odprtokodno JavaScript ogrodje, ki je namenjeno izgradnji

uporabniških vmesnikov. Integracija v projekte, ki vsebujejo ostale JavaScript knjižnice,

naj bi bila lažja, saj je Vue ustvarjen z namero preproste integracije. Vue lahko funkcionira

tudi kot ogrodje za izgradnjo Single Page aplikacij (SPA), vendar za to obstajajo boljše in

hitrejše rešitve.

Vue kot ogrodje ni najbolj priljubljeno, saj se številčno ne more primerjati s knjižnicami,

kot je jQuery, vendar je definitivno v vzponu. Vzrokov za to je več. Mnogi za to ogrodje

niso niti slišali in Vue ni bil uporabljan pri razvoju aplikacij širšega obsega. Čeprav za sabo

nima velike korporacije kot npr. Angular, se vseeno pojavi med najbolj obiskanimi

repozitoriji na spletnem mestu GitHub (Motroc, 2018).

Page 26: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

18

Razlogov za izbiro tega ogrodja je več, vendar so najpogostejši naslednji:

− Preprostost učenja

Za začetek dela s tem ogrodjem potrebujemo le osnovno znanje HTML in JavaScripta.

Pomaga tudi, da prevajalnik (ang. compiler) ni obvezen. Mnogi priporočajo to ogrodje

kot začetno točko začetnikom pri delu z JavaScript ogrodji (Vue, 2018).

− Hitrost

Vsa novejša ogrodja in knjižnice so hitre, saj je hitrost danes skoraj že pogoj, kar smo

že omenili. V primerjavi z ostalimi ogrodji, kot je npr. React, se izkaže, da je Vue

hitrejši, kar vidimo tudi na sliki 3.5 (Krause, 2018).

− Skupnost

Ko delamo na projektu s pomočjo ogrodij, lahko naletimo na težavo in potrebujemo

pomoč. Omenili smo že, da je repozitorij Vue zelo priljubljen in posledično lahko

najdemo veliko skupnost razvijalcev, med katerimi je še vedno aktiven kreator tega

ogrodja Evan You.

Slika 3.5: Hitrosti knjižnic v primerjavi z navadnim JavaScript (manjše število pomeni večjo hitrost)

(You, 2016)

0

0,5

1

1,5

2

2,5

NavadenJavascript

Vue 2.0 React 15.3 Angular2.0.0

Vue 1.0.26

Page 27: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

19

3.7 Podpora JavaScript knjižnic v sistemu WordPress

Določene JavaScript knjižnice niso direktno podprte in jih pogostokrat niti ne

potrebujemo. Ne potrebujemo back-end knjižnic oziroma ogrodij, saj za to poskrbi

osnovna struktura WordPressa. Knjižnice, ki se mnogo bolj uporabljajo, so knjižnice,

namenjene front-end delu naše spletne rešitve. Tukaj lahko tudi štejemo knjižnice za

DOM (ang. Document Object Model) manipulacijo. Jezik, v katerem je sistem WordPress

napisan, je PHP, ki je sam po sebi kompleksen in zmožen mnogih funkcionalnosti.

JavaScript in knjižnice PHP kodo s strežnika prikažejo na vizualno privlačnejši način, saj je

to pogosto tudi namen JavaScripta. Razvijalci vmesnikov delujejo na več področjih, med

katerimi so tudi sistemi za upravljanje vsebin in število delovnih mest je temu primerno,

kar vidimo tudi na sliki 3.6.

Slika 3.6: Število prostih mest za razvijalce JavaScript knjižnic

(Paul, 2018)

Page 28: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

20

3.7.1 WordPress REST API

Od različice 4.7 naprej je v WordPress vključen aplikacijski programski vmesnik (ang.

application programming interface, API) za REST storitve (ang. Representational State

Transfer). To pomeni, da nismo več odvisni od vtičnikov in ne potrebujemo zahtev prek

PHP, temveč jih lahko pošiljamo skozi JavaScript. Praktično to pomeni, da lahko

dostopamo do podatkov v back-end delu skozi zahtevke v čelnem delu, kar izboljšuje

odzivni čas in povečuje funkcionalnost. Če želimo podatke o npr. člankih, preprosto

pošljemo GET zahtevek (WordPress REST Doc, 2018).

Izsek programske kode 3.2: Primer zahtevka po podatkih

$response = wp_remote_get( 'http://spletna-stran/wp-json/wp/v2/posts')

Za določene knjižnice obstajajo tudi vtičniki za lažje povezovanje, kar nam prihrani čas, ki

bi ga potrebovali za pisanje programske kode. Dokumentacija je včasih pomanjkljiva in se

zgodi, da moramo pregledati skozi repozitorij ter preizkusiti, na kakšen način deluje

določena metoda.

Page 29: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

21

4 UPORABA JAVASCRIPT KNJIŽNIC

4.1 Razvijalsko okolje

Ko pride do potrebe po urejanju WordPress datotek, kot so na primer podlage, imamo na

voljo dva različna načina spreminjanja. WordPress ima vgrajen urejevalnik (ang. built-in

editor), ki nam omogoča urejanje prek spleta, v katerem koli spletnem brskalniku. Druga

možnost je lokalno spreminjanje datotek, ki jih nato naložimo na našo spletno stran s

pomočja FTP klienta (ang. File Transfer Protocol) (WordPress.org, 2018).

WordPress urejevalnik je dovolj dober za osnovno spreminjanje, vendar je lažje in bolj

smiselno, da uporabimo orodja, ki nam omogočajo več. Veliko razvijalcev uporablja

integrirana razvojna okolja (ang. Integrated Development Enviroment, IDE). Najprej se

moramo vprašati, za kateri programski jezik potrebujemo IDE. V našem primeru je to PHP

zaradi sistema WordPress ter seveda JavaScript zaradi knjižnic. Vprašati se moramo tudi

po namenu uporabe, ceni in funkcionalnostih. Najpomembnejša pa je seveda osebna

preferenca. IDE programska oprema ima veliko zmožnosti, ampak včasih ne potrebujemo

vseh. Takrat se odločimo za uporabo urejevalnikov, ki jih po izbiri nadgradimo.

Page 30: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

22

4.1.1 Vgrajeni urejevalnik v sistemu WordPress

WordPress vsebuje dva vgrajena urejevalnika, ki omogočata urejanje datotek direktno

prek spletnega brskalnika. Imenujeta se Theme editor in Plugin editor. Do njiju dostopamo

prek menija Administration:

Za Theme editor: Administration – Appearence – Editor.

Za Plugin editor: Administration – Plugins – Editor.

Vrste datotek, ki jih lahko urejamo s pomočjo urejevalnika v WordPress, so

(WordPress.org, 2018):

− HTML,

− PHP,

− CSS in TXT.

Urejevalnika, ki sta vključena v WordPress, sta zelo osnovna po funkcijah in zato je

priporočena uporaba drugih. Manjkajo funkcionalnosti, ki so za nekatere nepogrešljive.

Primeri takšnih so iskanje oziroma zamenjava, označevanje sintakse in samodejno

dokončevanje.

4.2 Spletne aplikacije

Z izbranim sistemov za upravljanje vsebin WordPress lahko preprosto ustvarjamo spletne

strani in v večini primerov, kjer želimo dodati ogrodje, kot je Angular, preidemo v razvoj

spletne aplikacije. Zaradi povečanja števila mobilnih naprav, ki dostopajo do spleta, so v

zadnjem času postale priljubljene spletne aplikacije. Spletne strani predstavljajo klasični

razvoj, medtem ko spletne aplikacije predstavljajo sodobnejši pristop (slika 4.1). V času,

preden so obstajale trgovine za aplikacije, je pojem aplikacije predstavljal programsko

opremo z interaktivnim uporabniškim vmesnikom, vendar smo to programsko opremo

morali posebej namestiti. V primerjavi s klasičnim spletom, kot so na primer blogi, spletne

aplikacije predstavljajo bogatejšo uporabniško izkušnjo (ang. user experience, UX) in

dostop do naprednih zmogljivosti spletnega brskalnika (Borodescu, 2013).

Page 31: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

23

Za večino uporabnikov pojem spletne strani vključuje tudi spletne aplikacije, kar je tudi

smiselno. Do obeh dostopamo s pomočjo spletnega brskalnika in potrebujemo le URL

naslov. Kljub temu lahko razlikujemo spletne strani od aplikacij po interaktivnosti. Če

spletno mesto vsebuje le statične podatke, tedaj lahko govorimo o spletni strani.

Slika 4.1: Primerjava med »tradicionalnim« in sodobnim spletnim modelom (Techsith.com, 2018)

4.3 Predloga ali ustvarjanje nove

Spletne strani, ustvarjene v sistemu WordPress oziroma s pomočjo katerega drugega

sistema za upravljanje vsebin, so lahko grajene po meri, kjer je stran zgrajena iz ničesar za

določeno stranko/podjetje, da odgovarja njihovim potrebam. Obstaja pa tudi možnost

uporabe že vnaprej narejene predloge oziroma »teme« kupljene s spleta ali pridobljene s

spleta. Podobno velja za gradnjo aplikacij v ogrodju, kot je Googlov Angular. Obe metodi

imata svoje prednosti in slabosti, vendar je v veliki meri odvisno od ciljev, potreb in

seveda razpoložljivih sredstev. Spletna stran, grajena s predlogo (ang. template), je

pogosto dobra izbira za manjše in preproste projekte. Prednosti so lahko naslednje:

− Cenovno ugodnejše

Uporaba predloge pomeni, da je večina spletne strani že napisana in razvijalec ima

posledično manj dela. Zaradi tega so strani s predlogami cenejše, čeprav mora

razvijalec vseeno vložiti nekaj časa, da predlogo prilagodi.

Page 32: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

24

− Hitrejša implementacija

Večina kode spletne strani je že napisane. Odvisno od vsebine je lahko spletna stran

hitro pripravljena za uporabo. Glede na kompleksnost potrebujemo dosti več časa za

izgradnjo strani po meri.

− Sodobnost predlog

Najboljše predloge so tiste, ki so dobro zasnovane, omogočajo prilagajanje in sledijo

sodobnim smernicam razvoja.

Število slabosti je lahko večje, če razvijalec nima dovolj znanja oziroma izkušenj na

tem področju.

− Generičnost

Preprosto povedano, lahko pride do tega, da spletna stran izgleda preveč podobna

drugi, kar lahko odvrne uporabnike. Dober razvijalec lahko to prepreči s kreativno

uporabo grafičnih elementov in prilagajanjem predloge vsebini.

− Omejenost

Določena mera prilagodljivosti obstaja, še posebej pri dražjih komercialnih predlogah,

vendar smo vseeno omejeni pri parametrih znotraj predloge same. Težave pri

parametrih so lahko preproste narave, kot je omejena izbira ikon, ali pa bolj

kompleksne, kar nam otežuje dodajanje funkcionalnosti, ki si jih želimo.

− Redke posodobitve

Večina predlog danes je odzivnih (ang. responsive design), kar pomeni, da se

prilagodijo napravi in velikosti zaslona. WordPress se pogosto posodablja, kar ne

moremo reči za nekatere predloge. Zna se zgoditi, da predloga ne deluje z najnovejšo

verzijo sistema in smo prisiljeni uporabiti starejšo, kar lahko pomeni ranljivost spletne

strani.

− Varnost

Ljudje, ki pišejo škodljivo kodo, vidijo v spletnih mestih s predlogami dobro priložnost

za vdor, ker lahko vdrejo v več strani naenkrat z manj truda, kajti napaka je lahko v

predlogi sami.

Page 33: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

25

Strani grajene po meri ali vsaj tiste, ki imajo po meri izdelano predlogo, večinoma nimajo

nekaterih od slabosti, ki smo jih navedli za vnaprej pripravljene predloge.

Najpomembnejše pri izdelavi takšnih strani je, da se dizajn prilagodi nam in ne obratno,

kjer se moramo prilagoditi izbrani predlogi. Ostale prednosti vključujejo:

− manj omejitev – kar si zamislimo, se lahko tudi realizira; pogoj je seveda cena;

− prilagodljivost in možnost sprememb – skozi čas lahko ugotovimo, da ne

potrebujemo le nov dizajn, ampak tudi nove funkcionalnosti; za razliko od strani s

pripravljenimi predlogami, nimamo potrebe po tem, da bi začeli vse znova;

− lažje posodobitve – ker imamo razvijalca za našo spletno stran, je spreminjanje lažje,

ker že pozna način, kako je stran postavljena;

− boljši SEO – optimizacija za spletne iskalnike je pogosto ena izmed znanj, ki jih imajo

razvijalci rešitev za splet.

Page 34: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

26

4.4 Javascript in smernice oblikovanja

Oblikovanje in posledično izgled spletne strani je subjektiven. Vsaka spletna stran oziroma

informacijska rešitev nasploh je posledica odločitev, ki so jo sprejeli razvijalci, in ena

izmed pomembnejših je seveda izgled. Te odločitve ne moremo soditi in definitivno ločiti

med napačnimi in pravilnimi. Obstajajo smernice, ki nam te odločitve olajšajo, vendar na

njih ne smemo gledati kot na pravila. Seveda obstajajo načela, ki so do neke mere

objektivna, ker temeljijo na človeškem dojemanju umetnosti. Primer tega je pravilo

tretjin, ki ga pogosto videvamo v fotografiji. Razvijalci se ne ukvarjajo pogosto z

načrtovanjem oblikovanja, vendar iščejo zgled v že obstoječih rešitvah. Veliko smernic nas

opozarja, da mora oblikovanje biti povsod isto. Čas lahko prihranimo s pomočjo tako

imenovanih sistemov za oblikovanje (ang. design systems), ki nam povedo, na kakšen

način moramo implementirati določene gradnike. Predstavljajo enotno zalogo virov, ki so

isti na vseh platformah.

Google je razvil svoj lastni dizajn sistem, ki so ga poimenovali Material Design (slika 4.2).

Opisali so ga kot »enotni sistem, ki združuje teorije, vire in orodja za izdelavo digitalnih

izkušenj« (Karthikeyan, 2018). Z uporabo Material Designa, izkoristimo skupek znanja in

izkušenj korporacije, kot je Google. Na takšen način je možnost za napake manjša in

pomeni, da prihranimo ogromno časa, ker nam ni treba razvijati lastne vizualne izkušnje.

Večji razlog za uporabo je za mnoge subtilen. Uporabniki podzavestno asociirajo našo

spletno mesto z Googlom, kar lahko pomeni večji nivo zaupanja ter občutka varnosti.

Nekateri seveda tega ne želijo, saj je dizajn subjektiven, kar smo že omenili na začetku

poglavja.

Uporaba sistemov za oblikovanje je odvisna od programskega jezika oziroma ogrodij.

Implementacija vseh pravil dizajn sistema, kot je Material Design, je dolgotrajen

postopek, zato se odločimo za že ustvarjene rešitve. To je seveda odvisno od ogrodja, ki

smo ga izbrali. Za ogrodje Angular obstaja rešitev Angular Material, kar ni presenetljivo,

saj je produkt razvoja pri Googlu. Ostala ogrodja pa imajo komponente za Material Design

Page 35: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

27

v rešitvah, ki jih je ustvarila skupnost. Primer priljubljene rešitve je Material-UI za

knjižnico React.

Slika 4.2: Mnogim dobro znan izgled Material Designa

4.5 Primer uporabe REST API

Na praktičnem primeru želimo prikazati, kako deluje aplikacija (ustvarjena s pomočjo

JavaScript ogrodja/knjižnice) v povezavi s sistemom za upravljanje vsebin WordPress.

Želimo se osredotočiti na prenos podatkov prek REST API-ja in ne toliko na aplikacijo

samo.

Uporabili smo odprtokodne rešitve in z njimi ustvarili preprost projekt.

Za strežnik in delovno okolje smo uporabili WAMP, ki je sposoben gostiti dinamične

strani.

Sistem za upravljanje vsebin je seveda WordPress in izbrano JavaScript ogrodje je Angular.

Ustvarili smo spletno aplikacijo, ki prikazuje prispevke s spletne strani, napisane v

WordPress.

Najprej smo vzpostavili strežnik in sistem za upravljanje vsebin. Nato smo skozi NPM, ki je

upravitelj paketov (ang. package manager) za JavaScript, zgradili našo aplikacijo.

Ker nas zanima interakcija med sistemom WordPress in izbrano Angular aplikacijo, smo

skozi REST API oziroma JSON pridobili podatke o vsebini.

Za začetek smo potrebovali strežnik in delovno okolje. Tukaj smo se odločili za

WampServer. V namestitev strežnika in sistema za upravljanje vsebin nismo podrobneje

Page 36: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

28

posegali, saj to ni osrednja tema te diplomske naloge. Namestitev ni težavna, ker skozi to

vodi namestitveni čarovnik.

Preden namestimo WordPress, najprej potrebujemo novo zbirko podatkov v podatkovni

bazi MySQL.

Pri praktičnem primeru bomo v Angular aplikaciji prikazali prispevke, ki jih bomo ustvarili

v sistemu WordPress s pomočjo vtičnika (slika 4.3).

Slika 4.3: Vtičnik za generiranje vsebine

Za tem smo ustvarili novo aplikacijo v Angular, ki uporablja Sass za oblikovanje. Uporabili

smo Angular Command Line Interface in z ukazom, vidnim na sliki 4.4, ustvarimo novo

aplikacijo.

Page 37: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

29

Slika 4.4: Vmesnik z ukazno vrstico

V aplikacijo smo dodali še Angular Material.

S pomočjo Sublime Text smo ustvarili nov modul, kjer smo uporabili elemente Angular

Materiala. Moduli so sestavljeni iz več komponent, ki smo jih omenili v poglavju 3.3.

Izsek programske kode 4.1: Modul za Material Design

const materialModules = [

MatToolbarModule,

MatCardModule,

MatButtonModule,

];

@NgModule({

imports: materialModules,

exports: materialModules

})

Urediti moramo še datoteko app.module.ts in dodati prejšnji modul v imports sekcijo.

Omenjeni modul je krovni modul, kjer moramo dodati vse ostale module, ki jih želimo

uporabiti.

Page 38: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

30

Če želimo pridobiti podatke iz WordPressa, moramo najprej implementirati

funkcionalnost za http, kar dosežemo z dodajanjem modula Angular HttpClient.

V glavnem modulu dodamo naslednje in podobno kot prej dodamo izbrani modul v

imports.

Izsek programske kode 4.3: Uvoz modula za HTTP

import { HttpClientModule } from '@angular/common/http'

S pomočjo Angular Command Line Interface dodamo novo service datoteko za

WordPress, ki ji dodamo naslov za JSON podatke. S pomočjo metode getPosts

pridobimo JSON podatke iz naslova, ki ga podamo kot parameter.

Izsek programske kode 4.4: Metoda getPosts

getPosts(): Observable<any[]> {

return this.http.get<any[]>('http://localhost/wordpress/wp-

json/wp/v2/posts?_embed', {

params: {

per_page: '6'

}

Za tem moramo urediti še html datoteko za prikaz. Tukaj smo uporabili element mat-

card za prikaz naslova prispevkov in vsebine.

Izsek programske kode 4.5: HTML komponente za mat-card

<mat-card-header>

<mat-card-title>{{ post.title.rendered }}</mat-card-title>

<mat-card-subtitle>{{ post.date_gmt | date }}</mat-card-subtitle>

</mat-card-header>

<img matCardImage

Izsek programske kode 4.2: Import sekcija v app.module

imports: [

BrowserModule,

BrowserAnimationsModule,

AppMaterialModule

],

Page 39: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

31

[src]="post['_embedded']['wp:featuredmedia'][0]['media_details'].sizes['m

edium'].source_url">

<mat-card-content [innerHTML]="post.excerpt.rendered"></mat-card-

content>

<mat-card-actions align="start">

<a mat-button [href]="post.link">Ogled</a>

</mat-card-actions>

</mat-card>

Na sliki 4.5 vidimo, da so na strežniku z Angular aplikacijo prikazani prispevki s spletne

strani, ustvarjene z WordPress.

Slika 4.5: Ustvarjena Angular aplikacija, ki nam prikaže prispevke s strani WordPress

Page 40: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

32

5 SKLEP

Število uporabnikov na spletu vsak dan narašča. Vprašati se moramo, na kakšen način

lahko največ uporabnikov privabimo s pomočjo vizualnih elementov. Videli smo, da je

veliko število spletnih strani ustvarjenih s pomočjo sistemov za upravljanje vsebine, kjer

prevladuje WordPress. V podobnih sistemih smo omejeni, ko pride do vizualnega

oblikovanja spletnega mesta. Tedaj nastopijo JavaScript in razne knjižnice. Knjižnice in

ogrodja so v veliki večini odprtokodne narave, kar je prednost, ko pride do pridobivanja

znanja. S pomočjo privlačne spletne strani uporabnika privabimo, vendar je na koncu

najpomembnejša vsebina.

Diplomsko delo smo razdelili na dva dela, na teoretični in praktični del. V teoretičnem

delu smo opisali izbrani sistem za upravljanje vsebin ter zapisali, zakaj ima na tržišču

prevladujoč delež. Pogledali smo si tudi najbolj priljubljene JavaScript knjižnice, kjer smo

vključili tudi ogrodja, ki smo jih tudi opisali ter primerjali z ostalimi. Ugotovili smo, da

obstaja mnogo knjižnic, ki imajo vsaka svoj namen. Pogledali smo si tudi razlike med

knjižnicami in ogrodji, ker jih mnogokrat napačno enačijo. Nato smo opisali način, s

pomočjo katerega se lahko enostranske aplikacije povezujejo z izbranim sistemom za

upravljanje vsebin. Podali smo tudi opis urejevalnikov, katere smo uporabili pri

praktičnem delu, ter primerjali sodobni način razvijanja spletnih strani s klasičnim. Pri

praktičnem delu smo vzpostavili delovno okolje s pomočjo programske opreme

WampServer in namestili sistem za upravljanje vsebin, kjer smo s pomočjo vtičnika dodali

vsebino. Ustvarili smo Angular aplikacijo ter jo prilagodili za prikaz vsebine, ki smo jo

pridobili skozi WordPressov REST API. Uporabili smo Angular CLI (Command Line

Interface), s pomočjo katerega smo ustvarili novo aplikacijo. Zaradi oblikovanja smo

dodali tudi Angular Material. Komponente le-tega smo uvozili v aplikacijo samo. Za

podatke smo dodali Angular modul za HTTP – HTTPClient. Za tem smo ustvarili nov

service, kjer smo ustvarili metodo getPosts, v kateri smo dodali naslov, kjer se

nahajajo JSON podatki. Za konec smo prilagodili HTML datoteko zaradi boljšega

oblikovanja.

Page 41: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

33

Ugotovili smo, da je generiranje aplikacij dokaj preprosto, saj imamo na voljo ogromno

orodij in moramo le vnesti ukaze v ukazno vrstico. Čeprav nismo imeli strokovnega znanja

iz ogrodja Angular, smo lahko zlahka našli koristne informacije v skupnosti ostalih

razvijalcev in v uradni dokumentaciji.

Težava, s katero smo se pogosto srečevali, je zastarelost podatkov, kajti uporabljene

programske rešitve se pogosto posodabljajo in temu se je bilo treba prilagoditi. Težava je

tudi v količini podatkov, kajti knjižnic je ogromno in s tem tudi dokumentacije. Pri

podatkih smo pogosto naleteli na subjektivna mnenja, kot so opisi »najboljših« knjižnic.

Objektivno ne moremo podati, katera knjižnica je najboljša, saj imajo različne cilje in

različne metode za dosego le-teh.

Področje spletnega razvoja se nenehno spreminja in s tem tudi sistemi za upravljanje

vsebin. Če želimo biti konkurenčni, se moramo nenehno izobraževati. Čeprav je ogromno

tehničnega dela, spoznamo, da je izdelava spletnih mest do določene mere tudi

umetnost. WordPress in nekatere JavaScript knjižnice, kot je ogrodje Angular, bodo na

tržišču verjetno še nekaj časa, ker za njimi stojijo ogromne skupnosti razvijalcev, ki bodo

te rešitve tudi posodabljali.

Vprašanje, ki se bo pojavilo v prihodnosti, je zmogljivost oziroma sposobnost umetne

inteligence, ki bi lahko nadomestila razvijalce spletnih strani. Kot smo videli v diplomski

nalogi, je oblikovanje spletnih mest do neke mere tudi subjektivno. Obstaja že nekoliko

rešitev, ki s pomočjo umetne inteligence posnemajo priljubljene spletne strani in s tem

tudi njihovo oblikovanje.

Za nadaljnje delo bi se morda lahko osredotočili na pridobivanje izkušenj in znanja na

področju knjižnic, omenjenih v tem diplomskem delu. Kot smo videli, je povpraševanje po

takšnih razvijalcih veliko. Pogledali bi si lahko, kako deluje skupinski razvoj aplikacije v

izbrani knjižnici in na kakšen način se uporabljajo sistemi za nadzor verzij.

Page 42: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

34

VIRI IN LITERATURA

[1] 1&1 Digital Guide. 1 & 1 Digital Guide, 2018. Dostopno na:

https://www.1and1.com/digitalguide/hosting/cms/cms-comparison-a-review-of-

the-five-best-platforms/ [6. 5. 2018].

[2] Alsudani, F. in Casey, M., The Effect of Aesthetics on Web Credibility. People and

Computers XXIII,(2009), str. 512–519.

[3] Angular. Angular docs, 2018. Dostopno na: https://angular.io/docs [9. 8. 2018].

[4] Arunesh, P. wisdmlabs, 2015. Dostopno na:

https://wisdmlabs.com/blog/demystifying-project-calypso-and-wordpress-coms-

new-architecture/ [21. 8. 2018].

[5] Atom Discuss. Atom Discuss Forum, 2018. Dostopno na:

https://discuss.atom.io/t/why-is-atom-so-slow/11376 [5. 8. 2018].

[6] Atom. Atom.io, 2018. Dostopno na: https://atom.io/packages [14. 8. 2018].

[7] Be.Mydo. bemydo.com, 2018. Dostopno na: https://www.bemydo.com/taking-

control/wordpress-theme/ [24. 8. 2018].

[8] Borodescu, C. Slash Data, 2013. Dostopno na:

https://www.slashdata.co/blog/2013/07/web-sites-vs-web-apps-what-the-

experts-think [18. 8. 2018].

[9] BuiltWith. Trend BuiltWith, 2018. Dostopno na: https://trends.builtwith.com/cms

[24. 8. 2018].

[10] Callaham, J. Windows Central, 2016. Dostopno na:

https://www.windowscentral.com/there-are-now-12-billion-office-users-60-

million-office-365-commercial-customers [27. 8. 2018].

Page 43: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

35

[11] Cutts, M. WordPress & CEO, 2013. Dostopno na :

https://www.youtube.com/watch?v=3P-m2cBCJSk [1.9.2018]

[12] Deutcsh, D. Medium.com, 2017. Dostopno na: https://medium.com/of-all-things-

tech-progress/understanding-mvc-architecture-with-react-6cd38e91fefd [25. 8.

2018].

[13] Facebook-Github. GitHub, 2018. Dostopno na: https://github.com/facebook/react

[13. 8. 2018].

[14] GoodRich, R. Business News Daily, 2013. Dostopno na:

https://www.businessnewsdaily.com/5148-content-management-systems.html

[22. 8. 2018].

[15] Google. Developers Google, 2018. Dostopno na:

https://developers.google.com/web/progressive-web-apps/ [4. 8. 2018].

[16] jQuery. jQuery.com, 2018. Dostopno na: https://jquery.com/browser-support/

[24. 8. 2018].

[17] Kang, Y. in Kim, Y. Designing emotionally evocative homepages: an empirical study

of the quantitative relations between design factors and emotional dimensions..

International Journal of Human-Computer Studies, (2003), str. 899–940.

[18] Karthikeyan. Medium.com, 2018. Dostopno na: https://medium.com/beginners-

guide-to-mobile-web-development/a-guide-to-google-material-design-

977315149ea5 [24. 7. 2018].

[19] Khan Academy. Khan Academy, 2018. Dostopno na:

https://www.khanacademy.org/computing/computer-programming/html-css-

js/using-js-libraries-in-your-webpage/a/whats-a-js-library [4. 9. 2018].

[20] Krause, S.. StefanKrause, 2018. Dostopno na: https://stefankrause.net/js-

frameworks-benchmark4/webdriver-ts/table.html [11. 8. 2018].

Page 44: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

36

[21] Mcfarlin, T. TomMcfarlin Practical WordPress development, 2016. Dostopno na:

https://tommcfarlin.com/atom-packages-for-wordpress/ [8. 8. 2018].

[22] Mening, R. WebsiteSetup.org, 2017. Dostopno na:

https://websitesetup.org/popular-cms/ [7. 8. 2018].

[23] Motroc, G.. JaxEnter, 2018. Dostopno na: https://jaxenter.com/github-trending-

tensorflow-vuejs-142382.html [9. 8. 2018].

[24] Paul, A.. CubetTech, 2018. Dostopno na: https://www.cubettech.com/blog/are-

you-using-javascript-technologies-top-5-things-to-expect-in-2018/[13. 8. 2018].

[25] Pick-a-web. Pick A Web, 2018. Dostopno na:

https://www.pickaweb.co.uk/kb/what-is-a-content-management-system/ [4. 5.

2018].

[26] Presa, A. AlfonsoPresa, 2015. Dostopno na:

https://alfonsopresa.wordpress.com/2015/08/29/creating-angular-2-applications-

with-plain-old-javascript-es5/ [10. 8. 2018].

[27] Rouse, M. WhatIs.com, 2016. Dostopno na:

https://searchcontentmanagement.techtarget.com/definition/content-

management-system-CMS [5. 8. 2018].

[28] Sehgal, K.. Medium.com, 2018. Dostopno na: https://medium.com/karuna-

sehgal/discovering-ember-js-2e92e8d32e36 [3. 8. 2018].

[29] Sudhir, N. PixelMatic, 2016. Dostopno na:

https://www.pixelmattic.com/blog/commercial-cms-for-publishers/

[11. 8. 2018].

[30] Techsith.com. TECHSITH = Technology Simple Intuitive Tutorial Home, 2018.

Dostopno na: http://techsith.com/what-is-the-difference-between-a-website-and-

a-web-application/ [30. 5. 2018].

[31] Vue. Vue.js docs, 2018. Dostopno na: https://vuejs.org/v2/guide/ [11. 8. 2018].

Page 45: UPORA A IN PODPORA JAVAS RIPT KNJIŽNI V SISTEMU ZA ... · podjetjem (posledično je cena temu primerna) (Sudhir, 2016). Sistemi za upravljanje vsebin so danes zelo prilagodljivi

37

[32] W3schools. W3Schools, 2018. Dostopno na:

https://www.w3schools.com/jquery/jquery_intro.asp [12. 8. 2018].

[33] W3Techs. W3Techs - Web Technology Surveys, 2018. Dostopno na:

https://w3techs.com/technologies/details/cm-wordpress/all/all [4. 8. 2018].

[34] wbond. Package Control, 2018. Dostopno na: https://packagecontrol.io/about

[13. 8. 2018].

[35] WordPress REST Doc. WP REST API, 2018. Dostopno na: http://v2.wp-api.org/

[13. 8. 2018].

[36] WordPress.org. WordPress Codex, 2018. Dostopno na:

https://codex.wordpress.org/ [16. 8. 2018].

[37] WordPress.org. Wordpress.org Plugins, 2018. Dostopno na:

https://wordpress.org/plugins/ [24. 8. 2018].

[38] WordPress. WordPress.org, 2018. Dostopno na:

https://wordpress.org/about/requirements/ [24. 8. 2018].

[39] You, E. Medium.com, 2016. Dostopno na: https://medium.com/the-vue-

point/vue-2-0-is-here-ef1f26acf4b8 [11. 8. 2018].


Recommended