79
Dejan Kropec RAZVOJ SPLETNE TRGOVINE NA OSNOVI SISTEMA ZA UPRAVLJANJE Z VSEBINAMI PIMCORE Diplomsko delo Maribor, avgust 2015

Navodila za izdelavo diplomske naloge · Pimcore content management system Key words: content management, content management systems, rapid application development, electronic commerce,

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Dejan Kropec

RAZVOJ SPLETNE TRGOVINE NA OSNOVI

SISTEMA ZA UPRAVLJANJE Z VSEBINAMI

PIMCORE

Diplomsko delo

Maribor, avgust 2015

I

RAZVOJ SPLETNE TRGOVINE NA OSNOVI SISTEMA

ZA UPRAVLJANJE Z VSEBINAMI PIMCORE

Diplomsko delo

Študent: Dejan Kropec

Študijski program: VS ŠP Računalništvo in informatika

Smer: Informatika

Mentor: doc. dr. Gregor Polančič, univ. dipl. inž. rač. in inf.

Lektorica: Ksenija Pečnik, prof. slov. jezika

II

III

IV

V

ZAHVALA

Zahvaljujem se mentorju doc. dr. Gregorju

Polančiču za nasvete, pomoč in vodenje pri

izdelavi diplomskega dela.

Posebna zahvala gre staršem, ki so mi študij

omogočili in me med študijem podpirali.

Njihova pomoč in spodbuda sta pripomogli k

uresničitvi zastavljenih ciljev.

VI

VII

Razvoj spletne trgovine na osnovi sistema za

upravljanje z vsebinami Pimcore

Ključne besede: upravljanje z vsebinami, sistemi za upravljanje z vsebinami, hiter

razvoj aplikacij, elektronsko trgovanje, pimcore, jquery, zend framework

UDK: 004.738.5:339.371.4(043.2)

Povzetek

V diplomskem delu je predstavljeno področje sistemov za upravljanje vsebin. Pri tem se

osredotočamo na zasnovo spletnih sistemov za upravljanje vsebin in spoznamo

današnje glavne smernice, ki jih področje zajema tako na spletu kot tudi drugje.

Na začetku dela so predstavljeni sistemi za upravljanje vsebin in opisani splošni

koncepti upravljanja z vsebinami. V nadaljevanju so proučeni različni tipi sistemov za

upravljanje z vsebinami. Osredotočimo se na tipične značilnosti, ki jih takšni sistemi

vključujejo. Sledi analiza arhitektur sistemov za upravljanje vsebin in njihovih sestavnih

delov. Na področju uporabe so predstavljene aktualne rešitve sistemov za upravljanje

vsebin.

V praktičnem delu diplomskega dela smo razvili aplikacijo za spletno trgovino z

uporabo ogrodja za izgradnjo spletnih aplikacij Zend Framework in sistema Pimcore.

Na osnovi pridobljenega teoretičnega znanja je nato z uporabo sistema Pimcore, ki

temelji na omenjenem ogrodju, razvit primer tipične aplikacije za elektronsko

poslovanje. Razvita aplikacija predstavlja primer osnovne spletne trgovine za prodajo

blaga na drobno in vsebuje različne tehnologije razvoja sodobnih spletnih aplikacij, kot

so notacija JSON, jQuery in zahteve AJAX.

VIII

IX

The development of an online store based on

Pimcore content management system

Key words: content management, content management systems, rapid application

development, electronic commerce, pimcore, jquery, zend framework

UDK: 004.738.5:339.371.4(043.2)

Abstract

The bachelor's thesis presents the problem of content management systems. I focus on

online content management systems and present today's main guidelines for this field

online and elsewhere.

Firstly, I will present what content management systems are and also describe certain

general concepts of content management. Secondly, I explore the different types of

content management systems. I focus on the typical features which are included with

such systems. Thirdly, I analyse the architecture of content management systems and

their constituents. As regards to their use, I will present some of the most frequent and

actual solutions of content management systems.

Through a developed practical application, I will present the framework of operation

for building online applications using Zend Framework and Pimcore. On the basis of

the obtained knowledge and within the framework of the Pimcore system, which is

based on the aforementioned framework, an example of a typical application for

electronic commerce is developed. The developed application represents an example of

a basic retail e-store and includes different online concepts, such as JSON notation,

jQuery and AJAX demands.

X

XI

KAZALO

1 UVOD ...................................................................................................................... 1

2 SISTEMI ZA UPRAVLJANJE S SPLETNIMI VSEBINAMI .......................... 3

2.1 VSEBINE ZA OBJAVO NA SPLETU .................................................................... 3

2.1.1 Oblika vsebin na spletu................................................................................. 3

2.1.2 Struktura spletnih vsebin .............................................................................. 4

2.1.3 Življenjski cikel vsebin na spletu .................................................................. 4

2.1.4 Statična vs. dinamična spletna stran ............................................................ 5

2.2 UPRAVLJANJE Z VSEBINAMI .......................................................................... 5

2.3 CELOVITO UPRAVLJANJE Z VSEBINAMI ........................................................... 6

2.4 ZNAČILNOSTI SPLETNIH SISTEMOV ZA UPRAVLJANJE VSEBIN ........................... 6

2.5 UPORABA SPLETNEGA SISTEMA ZA UPRAVLJANJE Z VSEBINAMI........................ 8

3 ARHITEKTURA SISTEMOV ZA UPRAVLJANJE S SPLETNO VSEBINO

11

3.1 TIPI ARHITEKTUR SISTEMOV ZA UPRAVLJANJE SPLETNIH VSEBIN .................... 11

3.1.1 Modularnost in linearnost sistemov za upravljanje z vsebinami ................ 11

3.1.2 Komponentni sistemi za upravljanje vsebin ............................................... 13

3.1.3 Kompozicijski sistemi CMS ........................................................................ 14

3.1.4 Shematski sistemi CMS ............................................................................... 15

3.2 SESTAVNI DELI TIPIČNEGA SPLETNEGA SISTEMA ZA UPRAVLJANJE Z VSEBINAMI

16

3.3 DELOVANJE SISTEMA ZA UPRAVLJANJE S SPLETNO VSEBINO ......................... 18

3.3.1 Podsistem zbiranja in priprave vsebin ....................................................... 18

3.3.2 Podsistem upravljanja vsebin ..................................................................... 20

3.3.3 Podsistem objave vsebin ............................................................................. 21

4 OGRODJA ZA RAZVOJ APLIKACIJ ............................................................. 23

4.1 PREDSTAVITEV OGRODJA ZEND FRAMEWORK ............................................... 23

4.2 VZOREC PROGRAMIRANJA MVC ................................................................. 23

XII

4.3 ZMOŽNOSTI OGRODJA ................................................................................. 25

4.4 RAZVOJ SPLETNIH APLIKACIJ....................................................................... 26

4.5 PROGRAMSKI VMESNIK SIMPLE CLOUD API ................................................. 27

5 RAZVOJ SPLETNE TRGOVINE V SISTEMU PIMCORE........................... 28

5.1 OPIS POSLOVNEGA PROBLEMA..................................................................... 28

5.2 NAČRTOVANJE REŠITVE .............................................................................. 29

5.2.1 Predstavitev funkcionalnih zahtev rešitve .................................................. 29

5.2.2 Razredni diagram ....................................................................................... 30

5.2.3 Shranjevanje podatkov ............................................................................... 32

5.3 IMPLEMENTACIJA VTIČNIKA ........................................................................ 34

5.3.1 Kreiranje razredov Pimcore s pomočjo integriranega okolja PIM ........... 34

5.3.2 Definicija statičnih povezav za spletno trgovino ........................................ 39

5.3.3 Implementacija kontrolerja za spletno trgovino ......................................... 40

5.4 PREDSTAVITEV APLIKACIJE ......................................................................... 44

5.5 POVZETEK ................................................................................................. 53

6 SKLEP ................................................................................................................... 54

VIRI ............................................................................................................................... 56

PRILOGE ...................................................................................................................... 57

PRILOGA A: SEZNAM IZVORNIH KOD ....................................................................... 57

PRILOGA B: NASLOV ŠTUDENTA ............................................................................. 57

PRILOGA C: KRATEK ŽIVLJENJEPIS ......................................................................... 57

XIII

KAZALO SLIK

Slika 3.1: Sestavni deli sistema CMS. ....................................................................... 17

Slika 3.2: Procesi in aktivnosti v sistemu zbiranja vsebin. .......................................... 19

Slika 3.3: Procesi repozitorija v podsistemu upravljanja vsebin. ................................. 21

Slika 4.1: Diagram zaporedja v notaciji UML za vzorec MVC. .................................. 24

Slika 5.1: Diagram primerov uporabe. ....................................................................... 30

Slika 5.2: Razredni diagram aplikacije za spletno trgovino. ........................................ 31

Slika 5.3: Prikaz razreda Object_Product z dodanimi lokaliziranimi polji. ............. 36

Slika 5.4: Pogled za urejanje objekta razreda Product. ............................................. 37

Slika 5.5: Nastavitev omejitev tipa razreda v gradniku href. ..................................... 38

Slika 5.6: Končna definicija razreda Object_Product. ........................................... 39

Slika 5.7: Pogled za urejanje statičnih povezav. ......................................................... 40

Slika 5.8: Ozadje sistema Pimcore. ........................................................................... 44

Slika 5.9: Pojavno okno za vnos novega objekta s poljem za ključ objekta.................. 45

Slika 5.10: Vnašanje osnovnih podatkov objekta v ozadju Pimcore in prirejanje slike. 45

Slika 5.11: Potek prirejanja kategorije artiklu. ........................................................... 46

Slika 5.12: Vnos podatkov o trdem disku. ................................................................. 47

Slika 5.13: Pregled strani kategorije s prikazom seznama podkategorij. ...................... 48

Slika 5.14: Pregled kategorije s prikazom artiklov. .................................................... 49

Slika 5.15: Pogled podrobnosti artikla. ...................................................................... 50

Slika 5.16: Košarica spletne trgovine......................................................................... 50

Slika 5.17: Prvi korak: pogled na košarico v blagajni. ................................................ 51

Slika 5.18: Drugi korak nakupa: izbira naslova za dostavo. ........................................ 52

Slika 5.19: Četrti korak: povzetek in zaključek naročila. ............................................ 53

KAZALO TABEL

Tabela 1: Primerjava komponentnega in kompozicijskega sistema CMS. ................... 13

Tabela 2: Primer tipičnih tipov vsebin v komponentnem sistemu CMS. ...................... 14

Tabela 3: Primer tipičnih tipov vsebin v kompozicijskem sistemu CMS. .................... 15

Tabela 4: Tipi gradnikov v razredih v sistemu Pimcore. ............................................. 32

XIV

UPORABLJENE KRATICE

ACL Access Control List, seznam za kontrolo dostopa

AJAX Asynchronous JavaScript and XML, asinhroni JavaScript in XML

API Application Program Interface, programski vmesnik

CM Content Management, upravljanje vsebin

CMS Content Management System, sistem za upravljanje vsebin

CSS Cascading Style Sheet, prekrivni slogi

DDV Davek na dodano vrednost

FAQ Frequently Asked Questions, pogosto zastavljena vprašanja

GUI Graphic User Interface, grafični uporabniški vmesnik

HTML Hyper Text Markup Language, označevalni jezik

IDE Integrated Development Environment, integrirano razvojno okolje

JQUERYUI jQuery User Interface, zbirka gradnikov grafičnega vmesnika za HTML

JSON JavaScript Object Notation, notacija v javascript-u za objekte

LAMP Linux-Apache-MySQL-PHP, skupek odprtokodnih programskih oprem

MVC Model-View-Controller, vzorec za implementiranje uporabniških

vmesnikov

PDT PHP Development Tools, vtičnik za razvojno okolje PHP v programu

Eclipse

PHP PHP Hypertext Preprocessor, skriptni programski jezik

PIM Product Information Management, upravljanje informacij o produktih

RAD Rapid Application Development, hiter razvoj aplikacij

RIA Rich Internet Application, bogata spletna aplikacija

SQL Structured Query Language, strukturiran povpraševani jezik

URL Uniform Resource Locator, internetni naslov

WCMS Web Content Management System, spletni sistem za upravljanje z

vsebinami

WYSIWYG What-You-See-Is-What-You-Get Editor, HTML urejevalnik, podoben

MS Wordu

XML eXtensible Markup Language, razširljivi označevalni jezik

ZF Zend Framework, ogrodje za izgradnjo spletnih aplikacij v PHP

XV

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 1

1 UVOD

Širitev interneta in nenehen napredek v informacijskih tehnologijah sta omogočila, da se je

internet sčasoma razširil v večino aspektov naše družbe in jo s tem preoblikoval. Njegova

razširitev je pomembno vplivala in preoblikovala poslovanje podjetij. To je povzročilo

definiranje novih temeljnih poslovnih strategij, spremenilo je dinamiko trga in poslovna

pravila. Internet omogoča hiter prenos informacij, ki jih nujno potrebujemo tako zasebno

kot tudi pri poslovanju podjetij.

Ključ do uspeha na spletu je zagotovo ustrezna in dobro predstavljena vsebina spletne

strani, saj z vsebino podjetja in posamezniki distribuiramo svoje poslovne vrednosti.

Uspešne spletne strani si obisk zagotavljajo bodisi s svežimi vsebinami ali pa nudijo

preglednejše, bogatejše in prijazne storitve. Vse to so, med drugim, dejavniki za uspešno

predstavitev in prodajo na spletu, ki jih je treba upoštevati pri zasnovi in vzdrževanju

vsebine strani. Podjetja si zato želijo orodje, ki jim bo koristilo pri upravljanju velikih

količin informacij, ki jih želijo objaviti na spletu in drugih komunikacijskih kanalih (npr.

pametnih mobilnih telefonih, tablicah, idr.). Uporaba kompleksnih orodij za zbiranje,

upravljanje in objavljanje vsebine je zato nujno potrebna in med takšna orodja spadajo

sistemi za upravljanje z vsebinami (angl. Content Management System, CMS). Sistemi

CMS so že postali stalna praksa za objavo vsebin na spletu, saj jih uporablja večina

sodobnih spletnih mest. Sistemi imajo pomembno vlogo pri dostavi informacij in zaradi

tega v diplomski nalogi raziščemo in proučimo upravljanje z vsebinami in se ob tem

osredotočimo na sisteme za upravljanje s spletnimi vsebinami, saj se na tem področju

dogaja največ novosti v povezavi z upravljanjem vsebin.

V diplomskem delu so opisane teoretične osnove upravljanja z vsebinami in tipične

značilnosti sistemov CMS ter omenjene nekatere poglavitne funkcionalnosti, ki jih morajo

vsebovati.

2 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

V drugem poglavju diplomskega dela se osredotočimo na arhitekture sistemov CMS.

Proučimo sestavne dele tipičnega sistema CMS in povzamemo različne arhitekturne stile

omenjenih sistemov.

V tretjem poglavju diplomske naloge pregledamo praktične primere sistemov CMS glede

na različne načine uporabe. Proučimo možnost uvajanja sistema CMS v organizacijo in

pregledamo tudi nekaj najpogostejših težav, ki lahko pri tem nastanejo. Odločamo se med

različnimi odprtokodnimi rešitvami, pri čemer se osredotočamo na platformo po modelu

LAMP (Linux – Apache – MySQL – PHP).

V praktičnem delu diplomske naloge se poglobimo v sistem CMS Pimcore

[https://www.pimcore.org], ki je zgrajen na odprtokodni platformi Zend Framework [12].

V ta namen bomo v četrtem poglavju spoznali osnove platforme Zend Framework proučili

implementacijo uporabniških vmesnikov po vzorcu MVC (angl. Model-View-Controller).

Pridobljena znanja bomo nato uporabili v šestem poglavju, kjer podrobneje obravnavamo

primer aplikacije v sistemu Pimcore. Kot dodatek smo v omenjenem sistemu CMS

implementirali vtičnik za spletno trgovino, kjer smo na primeru uporabljali koncepte

sodobnih tehnologij za izgradnjo bogatih spletnih aplikacij (angl. Rich Internet

Application).

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 3

2 SISTEMI ZA UPRAVLJANJE S SPLETNIMI VSEBINAMI

2.1 Vsebine za objavo na spletu

Vsebina je intelektualna lastnina organizacije. So informacije, ki so ločene od predstavitve.

Vsebina so informacije, ki so zajete na primer v brošuri, navodilih za uporabo, diplomskem

delu, spletni strani, knjigi ali v kateremkoli drugem informacijskem produktu [1].

Upravljanje vsebine omogočamo z uporabo podatkovnih tehnologij, ki jih uporabljamo za

hranjenje in dostavo vsebin. Problem upravljanja z vsebinami je, kako uporabiti

podatkovne tehnologije, da lahko upravljamo in dostavljamo kakovostne vsebine. Vsebino

je treba obravnavati kot podatke, saj jo le tako lahko shranjujemo, pridobivamo in

dostavljamo. Cilj je torej, da informacije ravno toliko predstavimo s podatki, da vsebina ne

postane preveč mehanska, nezanimiva in nerazumljiva za uporabnike. Po drugi strani pa

moramo vsebino predstaviti ravno toliko vsebinsko bogato, da jo še lahko upravljamo z

računalniki. Bogatejše kot so vsebine, težje je upravljanje takih vsebin z računalniki.

Realizacija upravljanja vsebin je odvisna od tega, ali bomo pri tem uničili kontekst bogatih

vsebin, saj moramo paziti tudi na to. Cilj je torej najti nek kompromis, pri katerem vsebino

označimo z metapodatki, ki opisujejo informacije v tolikšni meri, da jih lahko računalniki

organizirajo in sistematizirajo zbiranje, upravljanje in objavo. V nadaljevanju si bomo

pogledali dve temeljni lastnosti vsebine, to sta oblika in struktura.

2.1.1 Oblika vsebin na spletu

Oblika vsebine je oblika kodiranja določenega dela podatkov v podani informaciji. Format

ali oblika vsebine se uporablja za pripravo podatkov pri predstavitvi oz. prezentaciji

informacij [2].

Oblika prikaza je del vsebine, s katerim se je v sistemu CMS najteže spopasti, saj

nadzoruje prikazovanje. Vsebina mora biti ločena od predstavitve. Oblikovanje vsebine

4 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

delimo v tri različne kategorije: oblikovanje po psihološkem učinku (npr. velikost, barva in

pozicija), oblikovanje po vizualnem učinku (npr. ozadje) in oblikovanje po področju

uporabe (npr. slog za tisk, slog za spletno stran) [2].

2.1.2 Struktura spletnih vsebin

Določanje strukture vsebinam pomeni najti način, kako združevati vsebine med seboj.

Struktura zajema dele vsebine, ki določajo medsebojne odnose za potrebe organiziranja in

upravljanja. Struktura je tudi množica navedenih razmerij med posameznimi deli vsebin.

Poleg oblike je struktura vsebine osnovna lastnost vsebine, saj jo je pri upravljanju z

vsebinami treba razumeti in nadzorovati.

Struktura je ključ za upravljanje vsebin. Dobro strukturirane vsebine so tudi dobro

organizirane. Znano je dejstvo, da kdor nadzoruje strukturo, ima tudi nadzor nad objavo

vsebin. Primer dobrega strukturiranja je na primer uporaba kategorij, s katerimi točno

določimo medsebojen odnos med vsebinami in kje bodo katere vsebine objavljene. Dober

sistem CMS nam omogoča zasnovo več vrst struktur na istem telesu vsebine [2].

2.1.3 Življenjski cikel vsebin na spletu

Življenjski cikel spletne vsebine je pogosto kompleksen proces, skozi katerega gre spletna

vsebina. Vsaka faza življenjskega cikla vsebine se nanaša na procese zbiranja, upravljanja

ali objave vsebine. Različni avtorji predstavljajo različne faze v življenjskem ciklu vsebine,

ki se razlikujejo od modela do modela. Na splošno se življenjski cikel deli na faze

ustvarjanja, posodabljanje, distribucijo in arhiviranje spletnih vsebin [3].

Za namen diplomskega dela bomo uporabili življenjski cikel vsebine, povzet po [2], ki

definira tri poglavitne faze, in sicer: fazo zbiranja, fazo upravljanja in fazo objave

vsebine.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 5

2.1.4 Statična vs. dinamična spletna stran

Spletne strani so lahko statične ali dinamične. Razlika med njimi je v tem, na kakšen način

pridobijo HTML kodo spletne strani. Statične spletne strani uporabnik pridobi v brskalnik

takšne, kot so shranjene na strežniku. Navadno so te shranjene v HTML dokumentih kot

datoteke, ki so shranjene v datotečnem sistemu spletnega strežnika in so na voljo preko

HTTP zahtev. Statične strani so primerne za manjše spletne strani, ki imajo vsebine, ki jih

je redko potrebno spreminjati, saj za to potrebujemo strokovnjaka. Pridobivanje dinamične

spletne strani nadzoruje aplikacijski strežnik. Ta s pomočjo strežniških skript generira

HTML kodo vsake spletne strani glede na različne vhodne parametre, ki so podani v URL

naslovih ali v poslanih obrazcih. S strežniškimi skriptami lahko vsebino spletne strani

prilagodimo tipu uporabljenega brskalnika, uporabniku ali njegovi lokaciji. Dinamične

spletne strani za shranjevanje vsebine navadno uporabljajo podatkovno bazo. Sčasoma se

je razvila nova vrsta spletnih aplikacij, s katerimi je mogoče objavljati velike količine

vsebin in jih pri tem imeti organizirane. Takšna orodja imenujemo sistemi CMS. Šele ta

orodja nam omogočajo ustvariti dinamične spletne strani, ki so primerne za elektronsko

poslovanje, saj lahko shranjujejo velike količine informacij o produktih in te dinamično

prikazujejo na spletnih straneh. Hkrati pa omogočajo uporabnikom enostavno spreminjanje

in upravljanje vsebin. [2]

2.2 Upravljanje z vsebinami

Spletne strani so postale večje in obširne, s hitro spreminjajočo se vsebino, zato so orodja

za upravljanje z vsebino postala nujna. Pri upravljanju spletnih strani so podjetja za te

namene razvila orodja, ki zadostijo njihovim potrebam, ta orodja pa so poimenovala

sistemi za upravljanje z vsebinami (angl. Content Management Systems). Če torej želimo

ustvariti in vzdrževati vsebinsko obvezno spletno stran, imamo tehten razlog, da to storimo

s striktnimi strukturami in formalnimi procedurami sistema CMS. Takšen sistem nam

pomaga biti in ostati organiziran, tako da naša stran lahko raste in se hitro spreminja,

medtem pa njena vsebina ostaja kakovostna.

Upravljanje z vsebinami je sklop procesov in tehnologij, ki podpirajo zbiranje, upravljanje

in objavljanje informacij v kakršnikoli obliki ali mediju. Ko jih shranimo in na računalniku

6 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

dostopamo do te informacije, postanejo vsebina oz. natančneje digitalna vsebina. Ta

vsebina lahko prevzame obliko besedila (kot so elektronski dokumenti), multimedijske

datoteke (avdio- in video-datoteke) ali druge vrste datotek, ki gredo po stopnjah

življenjskega cikla vsebine [4].

2.3 Celovito upravljanje z vsebinami

Večina razprav v povezavi z upravljanjem vsebin se nanaša na ustvarjanje vsebinsko

obveznih spletnih strani. Čeprav so spletne strani trenutno primarna uporaba sistemov za

upravljanje vsebin, sega potencial upravljanja vsebin glede tega, kako pomagati

organizaciji, daleč preko spletne uporabe. Jasno je seveda, da lahko sistem CMS naredi

veliko več kot le spletno stran. Celovito upravljanje vsebin obsega celotno ustvarjanje

vsebin in informacij in sistem organiziranja vsebin kjerkoli v organizaciji [2].

Celovito upravljanje vsebin so strategije, metode in orodja, ki se uporabljajo za zajem,

upravljanje, shranjevanje, arhiv in dostavo vsebin in dokumentov, povezanih z

organizacijskimi procesi. Celovito upravljanje vsebin obsega upravljanje informacij v

celotni organizaciji, četudi so informacije v obliki papirnatega dokumenta, elektronske

datoteke, zapisov v podatkovni bazi ali celo elektronske pošte [2, 5].

Obstajajo številni dejavniki, ki spodbujajo podjetja k celovitemu načinu upravljanja vsebin.

Med drugimi so to potreba po večji učinkovitosti, izboljšan nadzor nad informacijami in

zmanjševanje stroškov upravljanja informacij za podjetje [5].

2.4 Značilnosti spletnih sistemov za upravljanje vsebin

Spletni sistem za upravljanje vsebin se uporablja za upravljanje dinamičnih zbirk spletnega

materiala, vključno s HTML dokumenti, slikami in drugimi oblikami medijskih datotek.

Sistem za upravljanje vsebin omogoča upravljanje dokumentov, pregled, urejanje in

časovno upravljanje objave vsebine, kot to kažejo naslednje tipične značilnosti spletnega

sistema CMS [6]:

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 7

avtomatiziranje predlog: omogočanje predlog, ki se samodejno uporabijo na novi

ali obstoječi vsebini. To nam omogoča spreminjanje videza vsebin z enega

centralnega mesta;

delegacija: sistem CMS omogoča omejevanje dostopnih pravic nad določenimi

vsebinami za različne uporabniške skupine;

sodelovanje: sistem CMS lahko deluje kot sodelovalno ogrodje, saj omogoča, da

vsebino pridobi in ureja eden ali več pooblaščenih uporabnikov sistema.

Omogočeno je sledenje sprememb, potrjevanje objave ali zavrnitev sprememb;

možnost razširitev: večina sistemov CMS omogoča vtičnike, ki se enostavno

namestijo v sistem in omogočajo razširitev funkcionalnosti spletne strani;

nadgradljivost: spletni sistemi CMS omogočajo tudi ustvarjanje mikrostrani

z1notraj glavne namestitve spletne strani;

nadgradnje spletnih standardov: spletni sistemi CMS navadno omogočajo

prejemanje rednih posodobitev sistema z novimi spletnimi standardi;

nadzor dostopa: spletni sistemi CMS podpirajo različne uporabniške skupine.

Različne uporabniške skupine omogočajo nadzor nad tem, kako različni uporabniki

dostopajo do vsebine spletne strani;

ponujanje vsebine: spletni sistemi CMS pogosto pomagajo pri distribuciji vsebine,

saj omogočajo kreiranje spletnih virov informacij RSS in Atom, ki jih je mogoče

vključiti v drugih sistemih. Prav tako lahko sistem ob posodobitvah obvesti

uporabnike z e-pošto in je to del poteka dela;

preprosto urejanje vsebine: ko je vsebina ločena od vizualne predstavitve spletne

strani, postane njena vsebina veliko bolj obvladljiva. Takšno vsebino je laže in

hitreje urejati. Večina spletnih sistemov CMS za te namene vključuje orodja za

urejanje vsebin, s pomočjo katerih lahko uporabniki enostavno ustvarjajo in

spreminjajo vsebine;

upravljanje delovnega toka: potek dela je proces ustvarjanja zaporednih in

vzporednih opravil, ki so opravljena v spletnem sistemu CMS. Na primer, eden ali

številni ustvarjalci vsebin lahko predložijo vsebino za objavo, vendar je ta

objavljena šele, ko jo odobri administrator;

1 Mikrostran - samostojna, majhna spletna stran znotraj vsebine druge spletne strani

8 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

upravljanje dokumentov: spletni sistem CMS mora zagotoviti skupinsko

upravljanje življenjskega cikla dokumenta, od začetnega ustvarjenja, popravkov,

objave, arhiviranja do uničenja;

upravljanje z različicami: spletni sistemi CMS omogočajo proces vodenja

različic, s pomočjo katerega se dokumenti verzionirajo. To pooblaščenim

uporabnikom omogoča pridobivanje različnih verzij strani in nadaljevanje dela z

določene točke;

večjezičnost: spletni sistemi CMS omogočajo prikaz vsebine v več jezikih;

virtualizacija vsebine: spletni sistem CMS omogoča vsakemu uporabniku, da dela

s trenutno virtualno kopijo celotne spletne strani in v setu vseh dokumentov.

2.5 Uporaba spletnega sistema za upravljanje z vsebinami

Spletne sisteme CMS potrebujemo iz različnih vzrokov, med drugim so pomembni pri

zagotavljanju naslednjih poslovnih in drugih ciljev:

preprostost uporabe: najprej je treba spletno stran prilagoditi in integrirati v

spletni sistem CMS. To lahko opravi oseba, ki ima osnovno znanje o tehnologijah

PHP, MySQL, CSS in HTML. Ko sta prilagajanje in integracija končana, je

upravljanje vsebin naravnano povsem enostavno [7];

povečanje fleksibilnosti spletne strani: spletne strani prilagajamo hitro, saj lahko

imamo v organizaciji na primer nove artikle, storitve ali poslovne strategije, ki jih

želimo objaviti. S pomočjo sistemov CMS omogočamo hitro prestrukturiranje in

spreminjanje s pomočjo uporabniških vmesnikov [8];

povečanje natančnosti informacij: povečamo splošne kakovosti informacij, ki so

natančne, posodobljene in celovite [8];

podpora marketingu: spletne strani so dobro orodje marketinga v procesu

opravljanja elektronskega poslovanja. S pomočjo sistemov CMS pomagamo z

dostavo marketinškega materiala kot tudi blagovne znamke in celostne podobe

podjetja;

razširljivost: v sistemih CMS ima poseben pomen, saj so zgrajeni zelo skalabilno

in omogočajo, da se v spletne strani kot vsebino vključi različne funkcionalnosti.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 9

Pravzaprav je edina meja v ponujenih vsebinah kreativnost programerjev in

lastnikov spletne strani [7];

zmanjševanje duplikatov informacij: podvojitev informacij po poslovnih enotah

in platformah zvišuje stroške vzdrževanja in napak pri predstavitvi vsebine, zato bi

bila smiselna enkratno shranjevanje in vnovična uporaba informacij [8];

zviševanje uporabniške izkušnje: s sistemom CMS zvišujemo sposobnost, da za

obiskovalce spletne strani zagotovimo polno in bogato okolje. S tem tudi

omogočamo bolšjo kakovost spletne strani in zvišamo enostavnost uporabe [8];

podpora prodaji: ker prodaja prek elektronskega trgovanja vztrajno narašča, je

smiselno, da sistem CMS zagotavlja dodatne prodajne materiale, ki spodbujajo e-

trgovanje naše spletne strani. Sistemi CMS naj dopolnjujejo tudi obstoječe

infrastrukture e-trgovanja [8];

racionalizacija v posodobitvah informacij: ročni proces posodobitve informacij

na spletni strani je počasen in neučinkovit, zato sta smiselna racionalizacija in

podpiranje hitrih in enostavnih posodobitev vseh vsebin na spletni strani [8];

podpora rasti spletne strani: v strateških potrebah za bistveno povečanje količin

informacij, objavljenih na spletnih straneh gospodarske organizacije, mora sistem

CMS zagotavljati učinkovito in ugodno upravljanje, da se zlahka dosežejo cilji rasti

spletne strani [8];

izboljšanje poslovne odzivnosti: smiselno je, da sistem CMS omogoča razvoj

novih izdelkov in storitev kakor tudi drugih sprememb v smereh poslovanja. To se

doseže z zagotavljanjem hitrega in učinkovitega mehanizma za posodobitev

internih informacij in ostalih virov [8];

izboljšan proces objave: ad-hoc procesi za objavljanje vsebin preprečujejo

učinkovito upravljanje in sledenje informacijam. Z določenimi procesi v sistemih

CMS to izboljšujemo kot tudi zagotavljamo večjo transparentnost in odgovornost

[8];

zajem poslovnega znanja: Sistemi CMS podpirajo zajem poslovnih znanj v

organizaciji [8];

izboljšanje izmenjave znanja: neposredna komunikacija osebja in »peer-to-peer«

komunikacija sta dva od najučinkovitejših načinov širjenja informacij oz. znanja.

Smiselno je, da s sistemi CMS zagotovimo orodja in okolje za lažje potekanje

takšnih procesov komunikacije [8];

10 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

zmanjševanje stroškov objavljanja: veliko poslovnih priročnikov je izdelanih v

papirnati obliki. Če bi jih izdelali elektronsko, bi prihranili veliko denarja [8];

zmanjševanje stroškov vzdrževanja spletne strani: Sistem CMS omogoča

zamenjavo vseh aktivnosti in tako zmanjšamo potrebo po administrativnih

dejavnostih in druge z njimi povezane stroške [8];

povečanje občinstva na spletu: Sistem CMS omogoča dostop do spletne strani

širši množici oz. ciljnim skupinam, na primer večjezične različice spletne strani [8].

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 11

3 ARHITEKTURA SISTEMOV ZA UPRAVLJANJE S SPLETNO

VSEBINO

3.1 Tipi arhitektur sistemov za upravljanje spletnih vsebin

Arhitekture v sistemih za upravljanje spletnih vsebin ločimo na dva tipa. Ločujejo se po

modularnosti in linearnosti takšnih sistemov. Slednje opišemo v naslednjem podpoglavju.

3.1.1 Modularnost in linearnost sistemov za upravljanje z vsebinami

Kako organizirati in upravljati informacije v sistemu CMS je v veliki meri odvisno od tega,

kako posamezne vsebine gredo skupaj. Na eni strani so sistemi, ki vsebujejo povsem

samostojne in modularne dele vsebin, takšne sisteme imenujejo komponentni sistemi za

upravljanje z vsebinami. Na drugi strani so deli vsebine, povezani v celoto v posebnem

vrstnem redu, in takšne sisteme imenujemo kompozicijski sistemi za upravljanje z

vsebinami. Obstajajo tudi sistemi, ki imajo atribute obeh, komponentnih in kompozicijskih

sistemov za upravljanje z vsebinami. Vsi ti komponentni in kompozicijski sistemi za

upravljanje vsebin združujejo značilnosti organiziranja vsebin, vendar na različen način, in

te načine bomo spoznali v nadaljevanju.

Večina sistemov za upravljanje vsebin je podobnih upravljanju podatkov, saj obravnavajo

dele vsebine kot ločene entitete, ki so med seboj povezane samo z meta podatki. Na

primer, tipičen spletni CMS lahko upravlja nekaj ducat različnih tipov vsebin, kjer ima

vsak svojo interno strukturo. Vsak del vsebine (komponenta) je z ostalimi kosi vezan le

šibko. Čeprav je za publikacijo treba združiti tudi več delov, je vsak del namenjen temu, da

stoji posamezno. Takšen sistem CMS je zelo podoben knjižnici; vsak del vsebine ima

svojo domeno (knjiga), ampak je še vedno povezan z drugimi koščki z meta podatki

(katalog knjig). Takšne modularne sisteme imenujemo komponentni sistemi za upravljanje

12 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

vsebin, saj je primarni poudarek na zbiranju, upravljanju in objavi ločenih delov informacij

oz. posameznih komponent.

Nasprotno nekateri sistemi za upravljanje vsebujejo vsebine, ki so bolj tesno povezane

skupaj, podobno kot knjiga. V veliko knjigah vsak del vsebine sodi natanko v delček

celotnega obrisa celotne vsebine. Skozi večino vsebine teče pripoved, kjer si delčki sledijo

v določenem zaporedju in tako tvorijo združeno celoto. Če komponentni sistemi združujejo

posamezne ločene koščke vsebine in jih organizirajo v širšo publikacijo, imajo

kompozicijski sistemi v celoti integrirano vsebinsko osnovo, ki pa se lahko uporablja za

zelo različne publikacije. Takšne linearne sisteme imenujemo kompozicijski sistemi, saj

želimo navesti, da je poudarek na zbiranju, upravljanju in objavi enotne, tesno povezane

kompozicije.

Vrste procesov, ki jih potrebujemo za delo z modularnimi komponentami, se razlikujejo od

tistih, ki jih potrebujemo v linearni in kompozicijski vsebini. Na primer, v komponentnem

sistemu bomo potrebovali orodja, s katerimi bomo locirali informacije in jim dodelili

želeno strukturo, s katero bo naša spletna stran pridobila neko smiselno združeno celoto.

Medtem pa imamo v kompozicijski vsebini že precej dober vpogled v vsebino in njeno

strukturo, vendar potrebujemo orodja, s pomočjo katerih izvlečemo želeni delček vsebine,

ki ga želimo prikazati na določeni strani. Procesi za izgradnjo spletne strani so zato v obeh

vrstah sistemov drugačni, saj smo v prvem primeru gradili vsebino navzgor, v drugem

primeru pa smo jo pridobili iz osnovne vsebine.

Nekje vmes med tema dvema modeloma leži shematski sistem CMS, saj vsebuje atribute

obeh vrst sistemov. Kot v kompozicijskem sistemu vsebuje tudi shematski sistem splošen

oris vsebine, v katerem je na voljo vsa vsebina. Vendar se podobno kot pri komponentnem

sistemu CMS celotna vsebina v repozitoriju ne bere v enotnem zaporedju, saj je na voljo

več različnih tipov vsebin, ki so med seboj nepovezani, in pri njih ni mišljeno, da se berejo

v zaporedju [2].

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 13

Tabela 1: Primerjava komponentnega in kompozicijskega sistema CMS.

Komponentni sistemi Kompozicijski sistemi

Zbiranje Urejanje je mogoče s strani

poljubnega števila ljudi, ki se

ne poznajo med seboj in ne

poznajo drugih vsebin kot te, ki

jih urejajo. Obstoječe vsebine

se lahko enostavno združijo iz

zunanjih virov. Vsebina je

sestavljena iz posameznih

delčkov, ki niso organizirani v

linearnem zaporedju.

Urejanje poteka s strani tistih, ki

poznajo in razumejo, kako se

vsebine, ki jih urejajo, nanašajo na

vsebine, shranjene v sistemu.

Obstoječe nove vsebine je težko

integrirati v sistem. Vsebine se

prilegajo (navadno linearno)

strukturi, iz katere izhaja tudi del

njihovega pomena.

Upravljanje Vsebina se združuje šibko in

vertikalno. To pomeni, da so

povezave med vejami v

drevesu vsebine šibke.

Primarne so povezave v

vertikali na prvem nivoju

podkategorij sistema.

Vsebine se združujejo tako

vertikalno kot tudi horizontalno.

Povezave med posameznimi

vejami vsebine so močne; smisel

se odraža v strukturi vsebine.

Povezave do drugih kategorij so

na vseh nivojih.

Objavljanje Objavljanje obsega izbiranje in

montažo želenih delov vsebine.

Izziv objave je pridobitev

rezultata in ne vnovično

zbiranje posameznih kosov

informacij.

Objavljanje obsega pridobivanje

ustreznih delov vsebine iz celote.

Izziv objave je pridobivanje

rezultata kot le odlomka iz celotne

pripovedi.

3.1.2 Komponentni sistemi za upravljanje vsebin

Komponentni sistem CMS je tipičen sistem, ki bi ga uporabili za upravljanje spletnih

vsebin. Sistem CMS bi tako zajemal različne tipe vsebin, s pomočjo katerih organiziramo

vsebine, ki jih določena organizacija potrebuje oziroma zbira, upravlja in objavlja.

Posamezne komponente vsebin so med seboj le šibko povezane, skupno jim je le to, da se

nahajajo v skupni hierarhiji strani. Če ima sistem tesnejše relacije, komponente med seboj

povezuje enak nabor ključnih besed in tako ustvari niz sklicevanj med njimi. Kljub temu

pa so posamezni koščki vsebine razmeroma samostojni.

Poglejmo si primer tipičnih tipov vsebin v komponentnem sistemu, ki so ponazorjeni v

tabeli 2.

14 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Tabela 2: Primer tipičnih tipov vsebin v komponentnem sistemu CMS.

Tip vsebine Opis

Lokacije Skupina shranjuje lokacije, kjer organizacija posluje.

Izdelki Skupina je namenjena izdelkom in storitvam, ki so predstavljeni z

uvodnimi informacijami in jih za svoje potrebe potrebujejo stranke.

Dogodki Ta skupina shranjuje informacije o dogodkih, ki jih organizacija namerava

opraviti ali pa jih je že opravila. Najboljša praksa je, da organizacije z

velikim številom dogodkov uporabijo ločen sistem za upravljanje z dogodki

in ga povežejo s sistemom CMS s predlogami.

Prispevki Skupina se uporablja za vse komponente, ki imajo obliko člankov.

FAQs Skupina shranjuje pare vprašanj in njihovih odgovorov.

Stranke Skupina shranjuje informacije o strankah in njihovih interakcijah z

organizacijo.

Prenosi Skupina se uporablja za vse datoteke, ki jih organizacija ponuja za prenos z

njihove spletne strani.

Iz tabele 2 so razvidni različni tipi vsebin, ki ponazarjajo glavna področja v tipični spletni

strani nekega podjetja. Vsak tip vsebine je med seboj nepovezan in lahko rečemo, da je

področje zase. Vsak tip je neodvisen drug od drugega in je samostojen in smiseln z vidika

zbiranja, upravljanja in objave. Tako sta na primer vsebini v skupinah Izdelki in FAQs

povsem ločeni ena od druge in s stališča avtorja temu ni treba poznati prve vsebine, če želi

urejati slednjo, saj je znanje iz drugih tipov vsebin povsem nepotrebno.

3.1.3 Kompozicijski sistemi CMS

V nasprotju s standardnimi komponentnimi sistemi CMS, ki so osredotočeni predvsem na

sestavljanje vsebine iz komponent z različnimi viri, je kompozicijski sistem CMS

osredotočen na zbiranje, upravljanje in objavo vsebine, ki je med seboj prepletena in je

sestavljena v eni sami pripovedi (kot npr. knjiga). Posamezne vsebinske komponente v

kompozicijskem sistemu med seboj niso ločene in jih ni mogoče izvleči posamezno, saj bi

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 15

potem njihova vsebina postala nejasna, ker ni podana v celoti. Takšen kompozicijski

sistem ima vse vidike zbiranja, upravljanja in objave, zato je iz vsebine mogoče ustvariti

več različnih publikacij, kot so denimo knjiga, spletna stran ali druge publikacije.

Tabela 3: Primer tipičnih tipov vsebin v kompozicijskem sistemu CMS.

Tip vsebine Opis

Poglavje Poglavja so imenovani bloki besedila, ki pokrivajo eno temo. Poglavja so v

vsebini lahko vgrajena v druga poglavja, zato je repozitorij navadno v

večini sestavljen iz poglavij znotraj poglavij.

Koncept Koncepti so dva ali trije odstavki besedila, ki ponazarjajo eno izmed idej.

Koncepte najdemo znotraj poglavij.

Mediji Mediji so slike ali galerije s slikami in njihovimi napisi, ki se nahajajo v

konceptih ali poglavjih.

Iz tabele 3 je razvidno, da so tipi vsebine v kompozicijskih sistemih povsem drugačni od

tistih v komponentnih sistemih. Kompozicijski sistem ločuje vsebino po komponentah, ki

so med seboj povezane, saj so podane v določenem vrstnem redu. Berejo se enako kot na

primer knjiga.

3.1.4 Shematski sistemi CMS

Med modularnostjo in fleksibilnostjo tradicionalnih komponentnih sistemov CMS in tesno

prepletenih kompozicijskih sistemov obstajajo tudi tretji tipi sistemov, ki vsebujejo

lastnosti obeh tipov. Takšen sistem omogoča fleksibilnosti različnih tipov vsebine, kot je to

pri komponentnem sistemu, in hkrati omogoča visok nivo integriranosti, kot je to pri

kompozicijskih sistemih CMS. Kar omogoča takšen hibridni sistem, je shema XML ali

podatkovna baza, ki služi kot osnova strukturi vsebine.

Kot v komponentnem ali kompozicijskem sistemu lahko shematski sistem CMS proizvede

široko paleto publikacij. Publikacije tudi tukaj združujejo vsebine v tipe vsebin tematsko,

ne glede na to, kako bodo objavljene. Tako kot v drugih sistemih tudi tukaj publikacije

proizvajamo z združevanjem koščkov vsebin oziroma komponent, ko želimo vsebine

objaviti.

16 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

3.2 Sestavni deli tipičnega spletnega sistema za upravljanje z vsebinami

Spletne strani, ki temeljijo na sistemih CMS, niso nujno 100 % statične niti 100 %

dinamične. Ravno nasprotno, velika večina strani na spletu je delno oboje. Deli spletne

strani so lahko sestavljeni iz statičnih HTML dokumentov, preostale dele pa lahko

dinamično pridobivamo iz podatkovne shrambe. Poleg tega so lahko podatkovne shrambe

različnega tipa in izvora (npr. XML ali SQL), ki pridobivajo različne dele spletne strani

[2].

Na sliki 3.1 vidimo, da lahko imamo spletno stran, ki je kompleksna. Kompleksna je na

dva načina. Prvič, ima veliko programskih in strojnih komponent, ki se skupaj

koordinirajo. Drugič, ima kompleksne informacijske strukture, ki morajo biti shranjene,

pravilno dostavljene in strukturirane. Sistem CMS nam omogoča upravljanje teh

kompleksnih informacij. Če menimo, da so različni deli kode v HTML predlogah

funkcionalnost, potem lahko rečemo, da je tudi funkcionalnost vsebina, ki jo je v sistemih

CMS mogoče zbirati, upravljati in objavljati [2].

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 17

Slika 3.1: Sestavni deli sistema CMS. [vir slike]

V naslednjih alinejah si bomo ogledali sestavne dele tipičnega spletnega sistema CMS.

Aplikacija sistema CMS: Spletna aplikacija sistema CMS je varno nameščena na

našem strežniku in skrbi za zbiranje vsebin posameznih uporabnikov, poskrbi tudi

za upravljanje poteka dela in administracijo. Dejanska arhitektura sistema CMS se

razlikuje od izdelka do izdelka.

Repozitorij: Prav tako na spletnem strežniku leži relacijski ali XML-podatkovni

vir. Repozitorij hrani vse vsebine, administrativne podatke in kakršnekoli druge

vire, ki jih potrebujemo, da lahko ustvarimo spletno stran (kot so grafike in CSS).

HTML-datoteke: Sistem CMS upravlja z datotekami za statični del spletne strani

in jih razporeja.

18 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Podatkovna shramba sistema CMS: To je podatkovna baza, ki je pripravljena na

spletnem strežniku in jo uporabljamo za zagotavljanje dinamične vsebine spletne

strani. Sistem CMS nam izvozi podatke in vsebino iz repozitorija v podatkovno

shrambo sistema CMS.

Drugi podatkovni viri: Na spletno stran lahko povežemo tudi druge podatkovne

vire, ki ne spadajo v okvir sistema CMS. Drugi podatkovni viri lahko delujejo

povsem neodvisno od sistema CMS ali predlog.

Predloge: Uporabljamo niz predlog za publikacije, ki jih lahko povežemo s podatki

iz kateregakoli vira v obliko, ki je potrebna za prikaz na spletni strani. V nekaterih

primerih so podatki podani v statičnih HTML dokumentih, v drugih primerih so

shranjeni v podatkovno bazo na spletnem strežniku.

3.3 Delovanje sistema za upravljanje s spletno vsebino

3.3.1 Podsistem zbiranja in priprave vsebin

Sistem zbiranja v sistemu CMS so procesi, ki se zgodijo, preden je vsebina pripravljena za

objavo. S pomočjo sistema zbiranja spremenimo neobdelane informacije v dobro

organizirane vsebinske komponente [2].

Procesi zbiranja vsebine so sestavljeni iz [2]:

Izdelovanje vsebine: sprotno ustvarjanje vsebine;

pridobivanje: zbiranje vsebine iz obstoječih virov;

pretvarjanje vsebine: odstranitev nepotrebnih informacij in pretvorba;

združevanje vsebine: urejanje vsebine, ločitev po komponentah in obdajanje

vsebine z metapodatki;

storitve zbiranja vsebin: različne podporne storitve in funkcije, ki jih potrebujemo

za zbiranje vsebine (npr. spletni obrazci, s katerimi vnašamo vsebino v

komponento).

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 19

Slika 3.2: Procesi in aktivnosti v sistemu zbiranja vsebin.

Za opis procesov in aktivnosti v sistemu zbiranja vsebin smo uporabili notacijo BPMN 2.0.

Legenda uporabljenih simbolov v diagramu:

- Začetni dogodek

- Vzporedni prehod

- Potek zaporedja

- Povezava

- Tok sporočila

- Opravilo

- Ponavljajoče opravilo

20 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

- Ad – hoc podproces (v vašem primeru)

- Podatkovna shramba

- Podatkovni predmet

- Končni dogodek

3.3.2 Podsistem upravljanja vsebin

Podsistem upravljanja v sistemu CMS skrbi za dolgoročno skladiščenje vsebinskih

komponent in različnih drugih sredstev. Podsistem upravljanja zajema [2]:

repozitorij: nabor podatkovnih baz, datotečnih direktorijev in drugih sistemskih

struktur, ki hranijo vsebino oziroma vse druge podatke, povezane s sistemom

CMS;

sistem verzij: verzioniranje pomeni sposobnost shranjevanja in obnovitve starejše

kopije vsebine, ki jo imamo shranjeno;

nadzor virov: sistem nadzora virov nam pomaga preprečiti, da pride do težav, ki

jih povzročijo neavtorizirane spremembe ali sočasno urejanje vsebine več avtorjev.

Vsebuje nadzor souporabe, zaklepanje, potrjevanje sprememb/posodobitev

sprememb, opozorila, revizijsko sled;

lokalizacijo: s pomočjo lokalizacije v sistemu omogočamo proizvodnjo različnih

različic vsebin, ki so namenjene različnim ciljnim skupinam ali jezikom;

nadzor delovnega toka: sistem delovnega toka organizira in zajema opravila, ki

jih akterji upravljajo nad objekti sistema CMS;

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 21

administracijski sistem: administracijski sistem je odgovoren za nastavitvene

parametre in strukture sistema CMS. Pogosto zajema administrativno ploščo,

uporabniško administracijo, dnevnik, poročila, varnost, podporo za povezave in

medije ter robustnost.

Slika 3.3: Procesi repozitorija v podsistemu upravljanja vsebin.

3.3.3 Podsistem objave vsebin

Sistem objavljanja je odgovoren, da izvleče dostopne strukture in komponente iz

repozitorija in jih združi z dizajnom, postavitvijo in oblikovanjem ter tako ustvari ciljno

publikacijo [2].

Sistem objavljanja obsega naslednje [2]:

predloge za objavo: aplikacija gradi publikacije avtomatično iz predlog;

22 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

storitve objave: je niz orodij, s katerimi nadzorujemo, kaj je objavljeno in kako je

objavljeno;

povezave: orodja in metode, ki se uporabljajo za vključevanje podatkov iz drugih

sistemov (izven našega sistema CMS) in končnih publikacij;

spletne publikacije: najpogostejši izhodni tok, podprt v večini sistemov CMS;

druge publikacije: druge vrste publikacij, ki niso spletne publikacije, vključno z

drugimi elektronskimi publikacijami, tiskanine in sindikacije (kot je na primer

RSS).

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 23

4 OGRODJA ZA RAZVOJ APLIKACIJ

4.1 Predstavitev ogrodja Zend framework

Zend Framework je odprtokodno objektno orientirano ogrodje za razvoj spletnih aplikacij

z uporabo PHP-verzije 5+. Zend Framework je večkrat imenovan tudi knjižnica

komponent, saj ima veliko med seboj slabo povezanih sestavnih delov ali komponent, ki se

lahko uporabljajo samostojno.

Omogoča do 4/5 vnovične uporabe funkcionalnosti, ki jo potrebuje tipična spletna

aplikacija, za ostalih 20 % prilagoditev pa razvijalec poskrbi sam. Zend Framework

omogoča tudi uporabo vzorca MVC (angl. Model-View-Controller), ki vključuje uporabo

predlog PHP (angl. layout), ki jih je mogoče uporabiti v okviru spletne aplikacije.

Zasnovan je po principu enostavnosti in produktivnosti, saj omogoča razvoj varnih,

zanesljivih in modernih aplikacij in spletnih storitev WEB2.0 in že omogoča enostavno

uporabo zunanjih storitev ponudnikov, kot so Google [https://maps.google.si], Amazon

[https://www.amazon.com], Yahoo! [https://developer.yahoo.com/geo/geoplanet/] in Flickr

[https://www.flickr.com/]. V ogrodju Zend Framework je poudarek na hitrem razvoju

programske opreme (na tehniki angl. Rapid Application Development, RAD),

standardizaciji pogostih opravil in uporabi koncepta računalništva v oblaku [9, 10].

4.2 Vzorec programiranja MVC

Kratica MVC predstavlja arhitekturni vzorec za ločitev predstavitve podatkov od podatkov

in njihove obravnave. S pomočjo vzorca MVC je programska oprema razdeljena na tri

medsebojno povezane dele. Prav tako pa ločuje interno predstavitev informacij od

predstavitve, ki jo vidi končni uporabnik [11].

24 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Vzorec MVC je postal de-facto standard v zasnovi sodobnih spletnih aplikacij. Večino

kode v spletni aplikaciji lahko delimo v naslednje tri kategorije: predstavitvena, poslovna

logika in dostop do podatkov. Vzorec MVC loči komponente za model, pogled in

kontroler. Končni rezultat je takšen, da imamo kodo za predstavitev ločeno v enem delu

aplikacije, poslovno logiko v drugem delu in dostopanje do podatkov v tretjem delu.

Številni razvijalci so to dobro opredeljeno ločitev podprli, saj je njihova koda bolje

organizirana, še posebej ko več razvijalcev dela na eni aplikaciji. Takšna implementacija

modelov pa prav tako spodbuja vnovično uporabo napisanih delov kode [12].

MVC vzorec se nanaša na arhitekturo, ki uporablja komponentno zasnovo. Ločene

komponente so model, pogled in kontroler. Centralna komponenta je model, ki zajame

problemsko domeno. Model neposredno upravlja aplikacijske podatke, logiko in vsa

potrebna pravila. Pogled je zadolžen samo za predstavitev informacij uporabniku, kontroler

pa je tisti, ki poskrbi za prejemanje vhodnih parametrov in jih pretvori v ukaze za pogled in

model (ustreza v načinu Fat Model/Tiny Controller).

Slika 4.1: Diagram zaporedja v notaciji UML za vzorec MVC.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 25

4.3 Zmožnosti ogrodja

Zmožnosti ogrodja so naslednje [vir]:

vse komponente so objektno orientirane, napisane v PHP 5+;

arhitektura z uporabo-po-volji s šibko povezanimi komponentami in minimalnimi

medsebojnimi odvisnostmi;

razširljiva MVC-implementacija s podporo postavitvam strani in predlogam, ki

temeljijo na PHP-ju;

podpora za več podatkovnih sistemov in ponudnikov, kot so na primer MariaDB,

MySQL, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite in Informix

Dynamic Server;

omogočanje sestavljanja in dostave e-pošte, pridobivanje s pomočjo protokolov

Maildir, POP3 ali IMAP4;

fleksibilen sistem za predpomnjenje s podporo za več tipov ozadja, kot sta na

primer pomnilnik ali datotečni sistem (komponenta Zend_Cache);

Zend_Test zagotavlja orodja za lažje testiranje enot v okviru aplikacije Zend

Framework MVC. Zend Framework vsebuje tudi komponento za splošno beleženje

(Zend_Log);

z ogrodjem Zend Framework poenostavljamo ustvarjanje in obravnavanje spletnih

obrazcev v spletni aplikaciji. To je mogoče s pomočjo filtriranja in validacije polj,

nastavitvami vrstnega reda in grupiranja (komponente Zend_Form, Zend_Filter,

Zend_Validate);

komponenta Zend_Session je objektno orientirana implementacija za seje v PHP-

ju. Zagotavlja standardiziran objektno orientiran vmesnik za delo z imenskimi

prostori znotraj standardnega mehanizma sej v PHP-ju;

Zend_Acl omogoča lahek in fleksibilen seznam za nadzor dostopa (angl. Access

Control List) za implementacijo upravljanja pravic;

z Zend_Locale in drugimi razredi za lokalizacijo jezika uporabniškega vmesnika,

formata števil in na primer datuma, je mogoče spletno aplikacijo popolnoma

prirediti tako, da jo lahko uporabljamo po vsem svetu. Zend Framework nudi

celovito podporo za namene internacionalizacije in prevodov;

ogrodje nudi več pomožnih komponent, ki jih lahko po potrebi uporabimo v

aplikaciji. Imena komponent nam povedo, za kaj se uporabljajo, nekatere med njimi

26 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

pa so naslednje: Zend_Auth, Zend_Barcode, Zend_Captcha, Zend_Config,

Zend_Date, Zend_Feed, Zend_Json, Zend_Ldap, Zend_OAuth, Zend_OpenId,

Zend_Pdf, Zend_Registry, Zend_Service, Zend_XmlRpc in druge.

4.4 Razvoj spletnih aplikacij

Aplikacije Zend Framework lahko poganjamo na vseh strežnikih, ki podpirajo PHP in

izpolnjujejo tehnične zahteve.

Zend Technologies ponuja okolje za poganjanje PHP-ja, Zend Server (ali Zend Server

Community Edition), ki naj bi bil optimiziran za zagon spletnih aplikacij Zend Framework.

Zend Server v inštalaciji vključuje Zend Framework, skupaj s PHP-jem in z vsemi

potrebnimi razširitvami. V skladu z Zend Technologies Zend Server ponuja boljšo

zmogljivost za PHP in še posebej za aplikacije Zend Framework, saj vključuje

pospeševanje ukazne kode (opcode) in več načinov predpomnenja (cache) ter omogoča

spremljanje in diagnostiko pri zagonu aplikacij.

Zend Studio je integrirano razvojno okolje (IDE), ki vključuje funkcionalnosti za

integracijo z ogrodjem Zend Framework. Nudi pogled po vzorcu MVC-ja, generiranje

MVC-kode, saj temelji na orodju Zend_Tool. Omogoča tudi formatiranje kode,

dokončanje kode, pomočnika za parametre in ostale dodatne funkcionalnosti.

Zend Studio ni brezplačna programska oprema, medtem ko ogrodje Zend Framework in

Zend Server Community Edition sta.

Razvijalci, ki želijo uporabljati drug strežnik ali drugo integrirano razvojno okolje (IDE),

lahko uporabljajo orodje, kot je Eclipse PDT, ki deluje s strežnikom Zend Server. Na

spletni strani Zend je na voljo tudi pred-nastavljen brezplačen Eclipse PDT z Zend

razhroščevalcem (Zend Debug).

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 27

4.5 Programski vmesnik Simple Cloud API

Septembra 2009 je Zend Technologies najavil, da bo skupaj s tehnološkimi partnerji, kot

so Microsoft, IBM, Rackspace, Nirvanix in GoGrid, razvil skupen aplikacijski programski

vmesnik (angl. Application Programming Interface, API) za aplikacije in storitve v

računalniškem oblaku in ga poimenoval Simple Cloud API. Tako so izboljšali

prenosljivost aplikacij v PHP-ju v vseh večjih oblačnih platformah. Projekt je del ogrodja

Zend Framework in je predstavljen na spletni strani ogrodja. Adapterji za priljubljene

oblačne storitve so v ogrodju Zend Framework že dosegli kakovost, ki omogoča

komercialno uporabo [13].

28 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

5 RAZVOJ SPLETNE TRGOVINE V SISTEMU PIMCORE

5.1 Opis poslovnega problema

Pimcore je najbolj fleksibilna platforma za spletno upravljanje vsebin, prijazna tako

uporabnikom in razvijalcem. Omogoča izjemne digitalne izkušnje, saj nudi upravljanje in

urejanje vseh vrst vsebin za različne naprave in kanale. Poleg upravljanja vsebin nudi tudi

upravljanje digitalnih sredstev (angl. Digital Assets Management, DAM) in upravljanje z

informacijami produktov (angl. Product Information Management, PIM), ki nudita celovito

osnovo za upravljanje velikih količin informacij, kot jih potrebujemo npr. v elektronskem

poslovanju. Ker ocenjujem, da je platforma primerna, uporabna, fleksibilna in ker v osnovi

za enkrat ne nudi funkcionalnosti za elektronsko poslovanje, sem se odločil, da z orodji, ki

so nam na voljo v Pimcore, implementiram vtičnik, ki bo razširil funkcionalnosti sistema,

da bo ta uporaben za elektronsko poslovanje. Tako bomo povečali uporabnost sistema

Pimcore na področjih, kjer zaenkrat še ni prisoten, prav tako pa bomo razvit vtičnik lahko

ponovno uporabili v proizvodnem okolju.

Tako smo razvili dodatek (vtičnik) v sistemu za upravljanje z vsebinami Pimcore, ki nam

služi kot pripomoček za e-trgovanje, saj ima najpomembnejše funkcionalnosti spletne

trgovine. Tako smo v modulu dodatka po vzorcu MVC implementirali kontrolerje in

posamezne akcije kontrolerja, s pomočjo katerih je mogoč ogled izdelkov, zaračunavanje,

pošiljanje e-pošte in ostale funkcionalnosti, povezane s spletno trgovino. Definirali smo

statične povezave, ki so povezane z akcijami, in prikazali definicije razredov, ki jih

potrebujemo za namene spletne trgovine.

Aplikacijo za spletno trgovino smo razvili skladno s sistemom dodatkov v platformi

Pimcore. Tako nam je uporaba platforme Pimcore koristila, da bomo razviti dodatek lahko

znova namestili v katerikoli drug sistem Pimcore in ga tako znova uporabili. V naši spletni

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 29

trgovini smo uporabljali vse koncepte platforme Pimcore kot tudi sistem za upravljanje z

informacijami produktov (angl. Product Information Management, PIM).

5.2 Načrtovanje rešitve

Aplikacijo smo razvijali v razvojnem okolju Eclipse Kepler 4.3.2 PDT IDE. Za spletni

strežnik smo uporabljali Apache 2 z nameščenim PHP-jem 5.4, ki je popolnoma skladen z

razvijalnim okoljem, ogrodjem Zend Framework in platformo Pimcore.

5.2.1 Predstavitev funkcionalnih zahtev rešitve

Uporabnik ima možnost prijave in registracije v spletno aplikacijo, kjer se bodo o

uporabniku shranjevali podatki, kot je polno ime in priimek, naslov in elektronski naslov.

Uporabnik ima tudi možnost pregleda podstrani o podjetju in pregled prve strani. Lahko

pregleduje posamezne kategorije produktov in produkte, opravlja pa lahko tudi nakupe.

Administrator je akter, ki upravlja z produkti in kategorijami ter nekaterimi nastavitvami

spletne trgovine, kot so na primer davčne stopnje. Slika 5.1 prikazuje diagram primerov

uporabe spletne trgovine v notaciji UML verzija 2.0 ki je izdelana v orodju Visual

Paradigm for UML Communitiy Edition 10.1.

30 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Slika 5.1: Diagram primerov uporabe.

5.2.2 Razredni diagram

Slika 5.2 prikazuje razredni diagram spletne trgovine spletarjenje.tk. Prikazane so vse

tabele, ki so uporabljene v spletni trgovini. Iz diagrama je razvidno, da potrebujemo tabele

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 31

za prikaz produkta, kjer se največ tabel uporabi za shranjevanje specifičnih atributov, ki jih

poimenujemo specification<ImeKategorije>. Potrebujemo tudi tabele za shranjevanje

proizvajalca artikla, davčne stopnje, priporočenih artiklov, kategorije in uporabnike ter tudi

tabeli za vodenje evidence naročil. Potrebovali bomo tudi tabelo za nastavitve.

Slika 5.2: Razredni diagram aplikacije za spletno trgovino.

32 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

5.2.3 Shranjevanje podatkov

Za shranjevanje podatkov smo v aplikaciji »spletarjenje.tk« uporabljali sistem za

upravljanje z informacijami produktov (angl. Product Information Management, PIM) v

Pimcore sistemu CMS. Upravljanje z informacijami produktov je v sistemu Pimcore

realizirano s kreiranjem razredov, ki jih uporabnik nastavi z grafičnim vmesnikom v

ozadju sistema. Definiranje razreda sestavljajo opredelitev in definiranje atributov razreda

in logično razporejanje atributov v različne postavitve za namene strukturiranja podatkov.

Različne gradnike lahko tako grupiramo v panele ali zavihke, saj jih je tako mogoče

združevati po uporabi in tako ločiti njihovo uporabo v grafičnem vmesniku aplikacije. To

nam omogoča logično strukturiranje atributov razreda na manjše enote podatkov, ki

spadajo skupaj.

Atributi razreda so definirani iz množice vnaprej določenih tipov podatkov. Ti tipi

podatkov razreda lahko opredelijo različne vrste podatkov, ki jih realiziramo z različnimi

gradniki, kot so na primer besedila, števila, slike, polje z WYSIWYG-om (angl. What You

See Is What You Get), reference na drug objekt idr. Vse možne tipe gradnikov v razredu

lahko najdemo v tabeli 4.

Tabela 4: Tipi gradnikov v razredih v sistemu Pimcore.

Naziv Opis

checkbox potrditveno polje

country spustni seznam držav, ki so definirane v Zend_Locale

date polje za datum

date & time polje za datum in čas

fieldcollections zbirka polj

geopoint točka Google Maps na zemljevidu z zemljepisno dolžino in širino

geobounds razširitev Google Maps za opredelitev geografske meje

geopolygon razširitev Google Maps za definiranje geografskega območja

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 33

Naziv Opis

href referenca na dokument Pimcore, objekt ali sredstvo

image drag & drop področje za prikaz sredstva Pimcore

input tekstovno polje

language polje Dripdown s seznamom jezikov iz Zend_Locale

localizedfields lokalizirana skupina polj za vnos po sistemskih jezikih

link povezava

multihref zbirka referenc na dokumente Pimcore, objekte ali sredstva

multiselect kombinirano polje multiselect

nonownerobjects referenca na objekt, ki je v lasti drugega objekta

numeric polje za vnos številke (spinner)

objects zbirka objektov Pimcore

objectbricks razširitev skupin atributov za vključitev v posamezne razrede

password polje za geslo

select spustni seznam

slider polje za številke z drsnikom

table tabela

textarea polje za vnos besedila

video polje za video

wysiwyg spletni urejevalnik WYSIWYG

user spustni seznam z uporabniki Pimcore

34 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

5.3 Implementacija vtičnika

5.3.1 Kreiranje razredov Pimcore s pomočjo integriranega okolja PIM

Izdelava razredov v sistemu Pimcore poteka prek grafičnega uporabniškega vmesnika v

ozadju sistema Pimcore. Za upravljanje razredov mora imeti uporabnik nastavljene

primerne pravice. Ker izdelava poteka preko GUI-ja, se vse datoteke in nastavitve za

razrede shranjujejo avtomatično in z njimi upravlja sistem. Razrede gradimo z gradniki, ki

so nam na voljo v sistemu (tabela 4). Nekateri gradniki so uporabljeni za shranjevanje

podatkov, medtem ko so drugi na voljo za logično strukturiranje podatkovnih gradnikov v

skupine in različne postavitve elementov.

V spletni aplikaciji spletarjenje.tk potrebujemo naslednje razrede:

Object_Product – informacije o artiklu

Object_ProductBrand – uporabljamo za shranjevanje posameznih znamk

Object_ProductCategory – informacije o skupini artiklov

Object_ProductProfileTaxRate – razred za uporabo davčnih stopenj v artiklih

Object_ProductRecommendations – razred za priporočene artikle

Object_OnlineShopOrder – razred za opravljena naročila

Object_OnlineShopOrderItem – razred za shranjevanje postavk naročila

5.3.1.1 Definiranje razredov

Razred Object_Product nam bo služi za shranjevanje informacij o produktih. Ker je

podatkov produkta veliko, smo v razredu ustvarili pogled po zavihkih. V ta namen smo

uporabili postavitveni element, ki se imenuje »Tab panel« in nam omogoča prikaz po

zavihkih. Ko smo določili pogled po zavihkih, smo za pravilno delovanje zavihkov dodali

še en postavitveni element, ki vsebuje dejanske podatkovne gradnike za posamezen

zavihek in se imenuje panel. Ker smo podatke želeli prikazovati v štirih zavihkih, smo v

tab panel dodali štiri panele in jih poimenovali: General, Categories, Prices in Specific

Attributes.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 35

V razredu Object_Product smo za opis produkta potrebovali naslednje podatke:

productNumber – interna številka produkta

title – naslov produkta

shortDescription – kratek opis

description – opis

brand – referenca na objekt za predstavitev znamke

images – slike produkta

categories – seznam referenc kategorij, v katere spada produkt

regularPrice – cena produkta

reducedPrice – spletna cena

taxRate – referenca na objekt za stopnjo davka

specificAttributes – podatki, ki so specifični za posamezni produkt

Pred nadaljevanjem smo za lepši pregled podatkov dodali tudi element za postavitev

podatkov fieldset. V te elemente smo nato vključili posamezne gradnike, ki bodo

shranjevali podatkovne spremenljivke razreda. Na sliki 5.3 vidimo definicijo razreda za

produkt.

36 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Slika 5.3: Prikaz razreda Object_Product z dodanimi lokaliziranimi polji.

Ker smo aplikacijo zgradili tako, da bo podpirala več jezikov, smo osnovne podatke artikla

shranjevali v večjezičnih poljih. Za ta namen smo uporabili gradnik za skupino

lokaliziranih polj (localized fields). Skupina kreira dodana polja za vsak sistemski jezik

posebej in tako omogoča shranjevanje postavk glede na različne jezike. V to skupino smo

vključili naslov artikla kot tudi kratek in daljši opis. Ostala polja ne potrebujejo

večjezičnosti, zato smo jih dodali izven elementa za lokalizirana polja. Za naslov smo

uporabili navadno vnosno polje, medtem ko smo za opis in kratek opis uporabili polja

WYSIWYG.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 37

Slika 5.4: Pogled za urejanje objekta razreda Product.

V razredu Object_Product smo dodali element, ki definira znamko produkta. Znamke smo

shranjevali v posebni mapi, zato smo v naš razred za produkte dodali le referenco na

poljuben objekt znamke. Sistem Pimcore za te namene v razredih uporablja poseben

gradnik, ki se imenuje href. Z njim določimo referenco na objekt, nastavimo pa lahko tudi

omejitev, za katere objekte lahko hranimo reference v določenem elementu href. V

nastavitvah elementa zato označimo Object Restrictions in razred Object_ProductBrand.

Tako določimo veljaven tip razreda za referenco, ki jo uporabljamo za znamke, in je razred

Object_ProductBrand. Na sliki 5.5 vidimo grafični vmesnik za nastavitve omejitev

določenih razredov.

38 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Slika 5.5: Nastavitev omejitev tipa razreda v gradniku href.

V našem razredu Object_Product smo želeli shranjevati tudi spremenljivke, ki so značilne

samo za določene vrste produktov. Da smo razred Object_Product lahko razširili z atributi,

ki so določeni samo v nekaterih produktih, smo v razredu uporabili gradnik, ki se imenuje

objectbricks, in ga poimenovali specificAttributes. Ta gradnik nam omogoča, da lahko

razširimo razred z dodatnim nizom atributov, ne da bi spreminjali osnovno definicijo

razreda. Z osnovno definicijo razreda Object_Product želimo zagotoviti osnovne atribute,

ki so na voljo v vseh produktih, medtem ko z objectbricks želimo zagotoviti nestalne

atribute, ki jih imajo le določene vrste produktov.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 39

Slika 5.6: Končna definicija razreda Object_Product.

Po enakem postopku smo v ozadju sistema Pimcore pripravili še druge razrede, s katerimi

prikazujemo priporočene produkte, naročila in znamke. Zaradi prostora v diplomskem delu

slike definicij nismo predstavili, saj je končen rezultat viden v predstavitvi razvite

aplikacije.

5.3.2 Definicija statičnih povezav za spletno trgovino

Statične povezave se uporabljajo za opredelitev vzorcev URL-povezav, ki se preslikajo v

določeno akcijo. V pogledu Static Routes smo zato nastavili povezave za vse akcije, ki jih

potrebujemo za našo spletno trgovino. V našem vtičniku za spletno trgovino smo za vse

potrebne akcije uporabljali en kontroler. Poimenovali smo ga skladno po ogrodju Zend

Framework Shop_ShopController in v njem implementirali naslednje akcije:

homeAction – prikaz priporočenih artiklov in hkrati prva stran trgovine

40 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

categoryAction – prikaz za kategorije, prikaz artiklov za določeno kategorijo in vse

podkategorije

detailsAction – prikaz podrobnosti artikla

cartAction – vse funkcionalnosti, povezane s košarico

checkoutAction – blagajna za nakup artiklov

S pomočjo povezav, ki smo jih ustvarili, se bo v aplikacij URL-naslov v objektu

Zend_Route preslikal v želene akcije kontrolerja, ki smo jih našteli prej. To se zgodi v

procesiranju zahteve, preden se kličejo posamezne akcije kontrolerja. Tako aplikacija ve, v

katero akcijo je treba preslikati dani URL-naslov. Povezave kreiramo z grafičnim

uporabniškim vmesnikom, kot je to prikazano na sliki 5.7.

Slika 5.7: Pogled za urejanje statičnih povezav.

V prvem polju urejanja statičnih povezav smo vnesli ime povezave. Sledil ji je vzorec

regex, ki nam koristi za prepoznavanje URL-naslova in preslikavo v akcijo, ki jo

definiramo s parametri Module, Controller in Action. Ker smo želeli povezavo na naš

vtičnik za spletno trgovino, smo te parametre označili kot modul Shop, kontroler Shop in

želeno akcijo. Polje Reverse nam koristi za kreiranje URL-naslova kjerkoli v naši

aplikaciji. Za prepoznavanje parametrov v URL-povezavi nam koristi polje Variables, kjer

nastavimo parametre, ki so navzoči v URL-povezavi.

5.3.3 Implementacija kontrolerja za spletno trgovino

5.3.3.1 Metoda init()

Metoda init() je standardna inicializacijska metoda kontrolerja v MVC-modelu ogrodja

Zend Framework, ki se avtomatsko kliče ob vsaki zahtevi kontrolerja. Pri njeni uporabi

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 41

smo morali paziti, da smo klicali tudi metodo očetovskega razreda, saj je razred kontrolerja

dedovan iz razreda Shop_Controller_Action.

parent::init();

Izvorna koda 1: Kličemo očetovsko funkcijo za inicializacijo kontrolerja.

V inicializacijski metodi init() smo nastavili nekatere pomočnike, ki smo jih lahko

uporabljali skozi zahteve, ki se vršijo v kontrolerju. Tako smo uporabljali objekt razreda

Dk_Pimcore_Objects_Helper, saj je to naš model in poenostavlja uporabo objektov

Pimcore, tako da združuje nekatere uporabne funkcionalnosti, ki smo jih uporabljali skozi

akcije kontrolerja.

Objekt smo nastavili v razredno spremenljivko $this->objectsHelper in v spremenljivko

pogleda $this->view->objectsHelper, od koder smo ga lahko nato klicali v okviru akcij in

pogledov kontrolerja.

// shranemo instanco objekta za pomočnika Pimcore razredov $this->objectsHelper = new Dk_Pimcore_Objects_Helper(); $this->view->objectsHelper = $this->objectsHelper;

Izvorna koda 2: Nastavljanje modela za pomočnika objektov Pimcore.

V inicializacijski metodi kontrolerja smo shranili tudi model za pomočnika, ki vsebuje

nekaj uporabnih funkcij, ki jih bomo uporabljali v našem kontrolerju. Razred je shranjen v

knjižnici našega vtičnika, ki se nahaja v mapi /Shop/lib/Dk/Snippets.php. Za nalaganje

knjižnice poskrbi Zend_Autoloader, ki je primerno nastavljen.

// shranemo instanco pomočnika za razne funkcionalnosti $this->snippets = Dk_Snippets::getInstance(); $this->view->snippets = Dk_Snippets::getInstance();

Izvorna koda 3: Shranjevanje pomočnika z raznimi uporabnimi funkcijami.

Skozi implementacijo našega vtičnika za spletno trgovino smo uporabljali tudi datoteko z

nastavitvami, s pomočjo katerih bomo shranjevali nekatere uporabne vrednosti. Datoteka

se shranjuje v formatu XML in zanjo uporabljamo razred Zend_Config_Xml. Nastavitve

nato shranimo v objekt Zend_Registry, s pomočjo katerega so potem na voljo v različnih

sklopih naše spletne aplikacije.

42 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

// naložimo nastavitve v vtičniku spletne trgovine $this->plgConfig =

new Zend_Config_Xml(PIMCORE_PLUGINS_PATH . '/Shop/config.xml'); Zend_Registry::set("Shop_Config", $this->plgConfig);

Izvorna koda 4: Branje nastavitvene XML-datoteke in shranjevanje nastavitev.

5.3.3.2 Implementacija homeAction()

Akcijo homeAction() smo v naši spletni trgovini uporabljali za prikaz priporočenih

produktov, ki jih v ozadju sistema nastavljamo z razredom

Object_ProductRecommendations. Prav tako smo v tem pogledu prikazovali povezave na

korenske postavke kategorij produktov.

Na začetku akcije smo morali aplikaciji sporočiti, da v posameznih pogledih omogoči

uporabo predloge postavitve strani. To naredimo, kot kaže izvorna koda 5.

$this->enableLayout();

Izvorna koda 5: Vklapljanje HTML-predloge naše aplikacije.

V nadaljevanju smo v pogled vključili korenske postavke kategorij, ki so naša iztočna

točka za navigacijo spletne trgovine. Korenske kategorije smo shranili v polje, ki ga

inicializiramo v akciji.

// naložimo mapo ki vsebuje korenske kategorije $categoriesFolder = Object_Folder::getById(

$this->plgConfig->folderids->categories );

$categoriesA = array(); foreach ($categoriesFolder->getChilds() as $category) { if ( $category instanceof Object_ProductCategory) { $categoriesA[$category->getId()] = $category; } } // polje z korenskimi kategorijami podamo v pogled $this->view->rootCategories = $categoriesA;

Izvorna koda 6: Pridobivanje korenskih postavk kategorij in podaja spremenljivke v

pogled.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 43

V pogled smo vključili tudi seznam objektov razreda Object_ProductRecommendations, ki

hranijo objekte priporočenih produktov. Objekte smo naložili le pod pogojem, da so ti v

intervalu med datumoma startDate in endDate.

// naložimo seznam objektov Object_ProductRecommendations $recommendations = Object_ProductRecommendations::getList(); $recommendations->setCondition( "startDate <= ". $today->getTimestamp() ." AND " . "endDate >= ". $today->getTimestamp() ); foreach ($recommendations->load() as $recommendation) { $recommendationsA[$recommendation->getId()] = $recommendation; }

Izvorna koda 7: Pridobivanje objektov za priporočene produkte.

V pogledu za akcijo homeAction() smo nato pridobili priporočene produkte in korenske

kategorije, kot je to prikazano v izvorni kodi 8.

<div class="four columns offset-by-one alpha" style="padding-top:15px;"> <h4><?= $this->translate("KATEGORIJE") ?></h4> <ul class="categories">

<?php foreach ($this->rootCategories as $categoryObject) { ?> . . . <?php } ?> </ul> </div> <div class="nine columns offset-by-one omega" style="padding-top:15px;"> <h4><?= $this->translate("PRIPOROČAMO") ?></h4> <ul class="product-list">

<?php foreach ($this->recommendations as $recommendation) { $i=0; foreach ($recommendation->getRecommendedProducts() as $item) { . . . <?php } } ?> </ul> </div>

Izvorna koda 8: Implementacija pogleda za akcijo homeAction().

44 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

5.4 Predstavitev aplikacije

Spletna aplikacija, ki smo jo razvili kot vtičnik sistema Pimcore, ima vse značilnosti

spletne trgovine in jo je mogoče znova uporabiti v poljubni spletni trgovini, zgrajeni s

pomočjo sistema Pimcore. Njena implementacija je zadostna za osnovno spletno trgovino,

je nadgradljiva in jo je moč spreminjati. Je tesno integrirana z vtičnikom Pimcore

Uporabniki, ki omogoča prijavo uporabnika in shranjevanje profila uporabnika, ki je

shranjen kot objekt Pimcore. Vtičnik za upravljanje uporabnikov je bil prav tako razvit v

sklopu diplomskega dela in omogoča prijavo z identiteto OAuth ponudnikov Facebook in

Google.

V nadaljevanju si bomo ogledali, kako poteka vnos artikla in osnovno uporabo spletne

trgovine, ki jo bomo predstavili v ozadju sistema Pimcore. Na sliki 5.8 vidimo ozadje

sistema Pimcore. Na levi strani smo dodali pogled za spletno trgovino Online Shop, kjer

hranimo objekte, kot so naročila, postavke naročila, produkti, kategorije idr. Na desni

strani je pogled Assets, kjer hranimo slike in ostale multimedijske datoteke. Produkt smo

vstavili v pogledu Online Shop s pomočjo kontekstnega menija na možnost Add object-

>Product.

Slika 5.8: Ozadje sistema Pimcore.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 45

Ob kliku za dodajanje objekta se nam odpre pojavno okno za vnos unikatnega ključa

objekta. Ta se ob vnosu avtomatično spremeni v varno obliko (brez presledkov) in se nato

uporabi kot naziv v drevesni strukturi objektov.

Slika 5.9: Pojavno okno za vnos novega objekta s poljem za ključ objekta.

Na sliki 5.10 vidimo potek vnašanja podatkov artikla. Na voljo so nam urejevalniki

WYSIWYG, vnosna polja in okvirčki, ki delujejo po sistemu povleci in spusti. Tako lahko

na sliki 5.10 vidimo, kako smo preprosto z leve strani, kjer je pogled Assets, z miško

povlekli datoteko slike v polje Images in tako artiklu priredili sliko.

Slika 5.10: Vnašanje osnovnih podatkov objekta v ozadju Pimcore in prirejanje slike.

46 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Na vrsti je vstavljanje podatkov o kategoriji artikla. Polje za reference objektov v sistemu

Pimcore, s katerega so realizirane kategorije artiklov, prav tako vstavljamo po principu

povleci in spusti. Na sliki 5.11 vidimo, kako vstavljamo kategorijo ssd-diski med reference

kategorij artikla.

Slika 5.11: Potek prirejanja kategorije artiklu.

V urejanje artikla smo vnesli tudi cene in priredili davčno stopnjo artikla. To smo storili v

zavihku Prices. Cene artikla smo vnesli v navadna tekstovna polja, medtem ko je davčna

stopnja polje – referenca na objekt, ki deluje po principu povleci in spusti.

V naslednjem koraku smo dodali artiklu vnesli dodatne atribute, ki so specifični za skupino

trdih diskov. Zato se bomo v urejanju artikla pomaknili na zavihek Specific Attributes, kjer

vnašamo dodatne atribute. Specifični atributi artikla so narejeni s poljem objectbricks.

Ob kliku na zeleni gumb polja za specifične atribute vidimo meni, ki nam odpre vse

možnosti, ki so nam na voljo. Sami izberemo možnost specificationTrdiDisk, saj vnašamo

artikel iz te skupine. Naslednja slika prikazuje meni s vsemi možnostmi.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 47

Slika 5.12: Vnos podatkov o trdem disku.

V zasnovi uporabniškega vmesnika ospredja smo za glavno navigacijo izbrali meni s

kategorijami, ki ga prikazujemo na levi strani okna. Kot vidimo na sliki 5.13, smo v meniju

za lažji pregled ločili barvo kategorij od podkategorij. V desnem delu vsebine smo nad

naslovom artikla prikazali povezave drobtinice (angl. breadcrumbs), pod njimi naslov

strani, v pogled pa smo vključili seznam kategorij z njihovimi slikami.

48 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Slika 5.13: Pregled strani kategorije s prikazom seznama podkategorij.

Ko brskamo po kategorijah do določenega nivoja gnezdenja, se nam v vsebinskem delu

spletne aplikacije namesto kategorij prikazujejo artikli. V levem delu spletne trgovine smo

prikazali še filtriranje po znamkah in cenah artiklov. Ob znamkah smo prikazali število

artiklov, ki jih posamezna znamka vsebuje v kategoriji. Filtriranje po cenah artiklov je

omogočeno s pomočjo lestvice in z drsnikom jQueryUI.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 49

Slika 5.14: Pregled kategorije s prikazom artiklov.

V pogledu za prikaz podrobnosti artikla smo v prvi vrsti prikazali seznam povezav na

kategorije, v katerem je artikel (angl. Breadcrumbs). V pogledu za posamezni artikel smo

prikazali podatke, kot so naslov, slike, kratek opis, cene in gumb za košarico. Daljši opis in

specifične atribute artikla smo prikazali ločeno z zavihki jQueryUI.

50 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Slika 5.15: Pogled podrobnosti artikla.

Po dodajanju artikla v košarico, se vrši AJAX zahteva z JSON notacijo. Primer košarice

vidimo na sliki 5.16.

Slika 5.16: Košarica spletne trgovine.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 51

V pogledu blagajna lahko nadaljujemo z postopka naročila. V blagajni smo prikazali

artikle, ki jih imamo v naši košarici. Vidimo jo lahko na sliki 5.17.

Slika 5.17: Prvi korak: pogled na košarico v blagajni.

Blagajna je sestavljena iz petih različnih pogledov: Košarica, Naslov za dostavo, Način

dostave in plačila in Povzetek. Na sliki 5.18 lahko vidimo pogled v koraku za vnos naslova

dostave.

52 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Slika 5.18: Drugi korak nakupa: izbira naslova za dostavo.

Četrti korak v postopku naročila je Povzetek o naročilu. Tukaj je na voljo še možnost, da

se pomaknemo nazaj ali zaključimo z naročilom. Pregled predstavitvenega naročila vidimo

na sliki 5.19.

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 53

Slika 5.19: Četrti korak: povzetek in zaključek naročila.

5.5 Povzetek

Razvita spletna aplikacija deluje kot predstavitvena spletna trgovina, ki smo jo realizirali

kot vtičnik v sistemu Pimcore. Vsebuje vse koncepte spletnega poslovanja, kot so

kategorije artiklov, pregled artikla, košarico in blagajno ter omogoča kupcem neposredni

nakup blaga prek spleta in tako prikliče fizično analogijo kupovanja proizvodov na drobno.

Prva stran spletne trgovine omogoča spremljanje priporočenih artiklov, ki jih s pomočjo

objektov nastavimo v ozadju sistema Pimcore.

Pri realizaciji spletne trgovine smo uporabili tudi najnovejše koncepte razvoja na spletu.

Med drugim so to uporaba zahtev AJAX, podatkovni vmesnik JSON ter napredno

programiranje v programskem jeziku Javascript s knjižnicama jQuery in jQueryUI.

54 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

6 SKLEP

V teoretičnem delu diplomskega dela smo spoznali vse ključne dele, ki jih mora vsebovati

celostno zasnovan sistem CMS. Ugotovili smo, da je zasnova takšnega sistema

kompleksen proces in za realizacijo potrebuje veliko znanja in poznavanja področja. Tako

smo se seznanili z različnimi tipi sistemov za upravljanje vsebin in spoznali življenjski

cikel vsebine, ko gre skozi vse faze objave. Podrobno smo si ogledali, kaj morajo

vsebovati sistemi za zbiranje, sistem za upravljanje in sistem za objavljanje vsebine. Pri

vsem tem smo se osredotočali predvsem na sisteme za upravljanje vsebin na splošno in

smo šele kasneje dodali koncept spletnega sistema za objavljanje vsebin.

Ugotovili smo, da nam spletni sistemi za upravljanje vsebin ponujajo več kot le orodje za

urejanje vsebine spletne strani, saj nam omogočajo dostavo bogatejših vsebin, kar je pri

razvoju bogatih spletnih aplikacij zelo pomembno. Pri predstavitvi celostne podobe

podjetja na spletu nam služijo, da pridobimo »pogled izven škatle« in nam v naši

predstavitvi poslovnih vrednosti omogočajo drugačen, nekonvencionalen pogled iz druge

perspektive. Tako je z njimi mogoče laže distribuirati prave poslovne vrednosti podjetja.

Pomembni so tudi s stališča ažurnosti informacij, saj nam omogočajo hitro urejanje vsebin.

V proučitvi rešitev za spletno urejanje vsebin na trgu smo spoznali, da obstajajo različne

rešitve, ki jih je mogoče kategorizirati po namembnosti. Tako za različne namene obstajajo

namenske rešitve, ki jih je mogoče uporabiti za dani problem. Zato je pri izbiri pomembno,

da izberemo rešitev, ki ustreza našim zahtevam.

Za navadno spletno stran, bi na podlagi pridobljenih izkušenj izbirali rešitev predvsem s

stališča, koliko računalniškega znanja ima stranka. Ker poznam te sisteme, bi npr. za

naprednejše stranke izbrali rešitev, kot sta Joomla ali Wordpress, saj jim ti dve rešitvi

omogočata, da sami prilagajajo stran svojim potrebam, saj na spletu obstaja veliko število

vtičnikov in razširitev, ki so nam na voljo za uporabo. Za stranke brez veščin spletnega

razvoja, bi priporočali rešitev, kot je Pimcore, saj je ta najbolj fleksibilen, prilagodljiv in

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 55

prijazen do programerja in uporabnika ter omogoča hiter razvoj bogatih spletnih aplikacij

(angl. Rapid Application Development, RIA).

Objektno orientiran pristop k programiranju in ogrodja za razvoj spletnih aplikacij nam

omogočajo hitrejši in varnejši razvoj bogatih aplikacij RIA, kar je pri današnjem

poslovanju zelo pomembno. Zaradi tega mislimo, da je uporaba takšnih tehnologij nujno

potrebna in bo v prihodnje še pomembnejša, zato bo zanimivo spremljati razvoj teh

tehnologij tudi v prihodnje.

Razvili smo tudi aplikacijo, ki skozi praktični primer prikazuje predstavljene koncepte

spletnega sistema Pimcore za upravljanje vsebin in jih povezuje v celoto. Spletna

aplikacija je bila napisana skladno z načeli razvoja spletnih aplikacij ogrodja Pimcore in

vključuje vse vidike platforme Pimcore, kot tudi sodobne tehnologije, kot sta AJAX in

JSON.

Iz spletne trgovine, ki smo jo razvili, je razvidno, da sta razvoj in implementacija takšne

aplikacije s pomočjo platforme Pimcore enostavna in hitra, prednost pa najdemo tudi v

tem, da jo je mogoče poljubno razširiti. Sistem za upravljanje z informacijami produktov

(PIM), ki ga Pimcore vključuje, je dobro orodje, ki nam pride prav tako pri majhnih

spletnih straneh kot tudi pri večjih. Je koristno, uporabniku prijazno orodje, ki bo v

prihodnosti zagotovo uporabnejše, platforma Pimcore pa bo med programerji postala še

bolj razširjena.

56 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

VIRI

[1] CMS Community Wiki. Dostopno na: http://www.cmswiki.com/tiki-index.php

[19. 11. 2013].

[2] Boiko, B. Content Management Bible, 2nd Edition, Kraj: Indianapolis, Wiley

Publishing, 2005.

[3] Wikipedia. Web content lifecycle. Dostopno na: http://en.wikipedia.org/wiki/

Web_content_lifecycle [19. 11. 2013].

[4] Wikipedia. Content management. Dostopno na: http://en.wikipedia.org/wiki/

Content_management [29. 11. 2013].

[5] Wikipedia. Enterprise Content Management, , Dostopno na:

http://en.wikipedia.org/wiki/Enterprise_Content_Management [2. 12. 2013].

[6] Wikipedia. Web Content Management System. Dostopno na: http://en.wikipedia.

org/wiki/Web_content_management_system [9. 12. 2013].

[7] Jurmann, M. 11 Reasons Why a Web CMS Will Make Your Life Easier and Your

Wallet Fatter. Dostopno na: http://www.chromaticsites.com/blog/11-reasons-why-a-

web-cms-will-make-your-life-easier-and-your-wallet-fatter [4. 3. 2014].

[8] Robertson, J. What are the goals of a CMS?. Dostopno na: http://www.steptwo.

com.au/papers/kmc_goals/index.html [4. 3. 2014].

[9] Zend Framework. Dostopno na: http://framework.zend.com [28. 4. 2014].

[10] Wikipedia. Zend Framework. Dostopno na: http://en.wikipedia.org/wiki/

Zend_Framework [28. 4. 2014].

[11] Wikipedia. Model-View-Controller. Dostopno na: http://en.wikipedia.org/wiki/

Model%E2%80%93view%E2%80%93controller [8. 8. 2014].

[12] Zend Framework Manual. Dostopno na: http://framework.zend.com/manual/

1.11/en/manual.html [8. 8. 2014].

[13] Wikipedia. Simple Cloud API. Dostopno na: http://en.wikipedia.org/wiki/Simple

_Cloud_API [6. 5. 2014].

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 57

PRILOGE

Priloga A: Seznam izvornih kod

Izvorna koda 1: Kličemo očetovsko funkcijo za inicializacijo kontrolerja. ...................... 41

Izvorna koda 2: Nastavljanje modela za pomočnika objektov Pimcore. .......................... 41

Izvorna koda 3: Shranjevanje pomočnika z raznimi uporabnimi funkcijami. ................... 41

Izvorna koda 4: Branje nastavitvene XML-datoteke in shranjevanje nastavitev. .............. 42

Izvorna koda 5: Vklapljanje HTML-predloge naše aplikacije. ........................................ 42

Izvorna koda 6: Pridobivanje korenskih postavk kategorij in podaja spremenljivke v

pogled. ................................................................................................................. 42

Izvorna koda 7: Pridobivanje objektov za priporočene produkte. .................................... 43

Izvorna koda 8: Implementacija pogleda za akcijo homeAction(). ............................. 43

Priloga B: Naslov študenta

Dejan Kropec

Drumlažno 7

2318 Laporje

Tel. študenta: 040 538 174

E-pošta študenta: [email protected]

Priloga C: Kratek življenjepis

Rojen: 7. 4. 1985 v Mariboru

Šolanje:

Osnovna šola Anice Černejeve Makole

Srednja elektro-računalniška šola Maribor, smer računalniški tehnik

Fakulteta za elektrotehniko, računalništvo in informatiko v Mariboru, smer VŠ računalništvo in informatika – informatika

58 Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore

Priloga C: Izjava o istovetnosti tiskane in elektronske verzije zaključnega dela

in objavi osebnih podatkov diplomantov

Razvoj spletne trgovine na osnovi sistema za upravljanje z vsebinami Pimcore 59

Priloga D: Izjava o ustreznosti zaključnega dela