1 Site Management Handleiding Onderhouden en beheren van een door Smartsite 5 aangedreven site Smartsite Software BV2 Copyright 2004 Smartsite Softwar...
Voor je ligt de Smartsite Site Management Handleiding. De handleiding voor sitemanagers is een lastige handleiding. Een door Smartsite aangedreven site kan namelijk in vele gedaanten voorkomen: van een relatief simpele site die op een enkele server draait tot een over meerdere servers uitegerolde applicatie waar productie en publicatie van informatie volledig van elkaar gescheiden zijn. Wanneer er sprake is van een grote organisatie dan zullen de sitemanagers zich niet gauw hoeven bezig te houden met de technische aspecten van een site, terwijl in een kleine organisatie misschien wel hogere eisen aan de sitemanager worden gesteld. Door deze brede invulling die je aan het begrip sitemanager kunt geven is het lastig om de informatie daar eenduidig op af te stemmen. In deze handleiding proberen we de concepten die aan Smartsite ten grondslag liggen uit te leggen. Daarnaast willen we ook de praktische handelingen niet vergeten. Wanneer je vindt dat er informatie in deze handleiding ontbreekt dan moedigen we je aan om ook eens op onze sites te kijken: manual.smartsite.nl en support.smartsite.nl. Op deze sites wordt meer informatie gegeven en deze informatie wordt altijd actueel gehouden. We hopen dat je als sitemanager jullie site tot een succes weet te maken. Delft, december 2003 Smartsite Software BV
Smartsite is continu bezig om zijn product te verbeteren. Dat betekent dat er telkens weer nieuwe versies van Smartsite worden uitgebracht. Bij het uitbrengen van een nieuwe versie wordt bestaande functionaliteit herzien, en waar nodig verbeterd, en nieuwe functionaliteit toegevoegd. Bij het uitbrengen van de nieuwste versie is ook de Site Management Handleiding herzien. De informatie uit bepaalde hoofdstukken is verplaatst en nieuwe hoofdstukken zijn toegevoegd. Er is geprobeerd een scheiding aan te brengen in de sitemanager als content manager en de sitemanager als technisch beheerder van de site. Hierbij wordt meteen een scheiding aangebracht in de ‘dagelijkse’ routine die bij het beheer van de site komt kijken en de technische handelingen die minder vaak voorkomen.
De kennis die je als sitemanager nodig hebt is nogal afhankelijk van hoe jouw rol als sitemanager er uitziet. Ben je voornamelijk bezig met het beheren van de content dan is speciale kennis niet vereist, maar is het een vordeel als je een basisidee hebt de werking van een database. Ben je als sitemanager bezig met het importeren en exporteren van content, het aanpassen van de Rendertemplates of het configureren van de security dan is meer kennis noodzakelijk van bijvoorbeeld XML, HTML en databases. We hopen dat de handleiding in de nieuwe opzet voldoet en wensen je succes met het beheren van jouw site. Delft, december 2004 Smartsite Software BV
Voorwoord Inhoud Hoofdstuk 1 Smartsite Data Model en Architectuur Content Data Model Wat is een database De Contents tabel Contenttypes De ContentVersions tabel, workflow en versies Security model Gebruikers, Groepen, Rollen, Acties Role-based Management Delegated Security Hardware architectuur en Outscaling
Hoofdstuk 2 Meta-informatie: thesauri en tabellen Inleiding over thesauri Relatie-indicatoren en term data De equivalente relatie De hiërarchische relatie De associatieve relatie Aanvullende informatie voor termen Een thesaurus beheren Data aan een thesaurus toevoegen Door een thesaursus bladeren Een thesaurus exporteren of importeren Exporteren Importeren De opzet van een thesaurus wijzigen Een thesaurus definiëren Definiëren van Term Data Types Definiëren van Relation Types De thesaurus definiëren Tabellen bewerken
Hoofdstuk 3 Content Management Praktische site opbouw CMS folders Translations Geneste Translations Geparametriseerde Translations Afbeeldingen en Binaries Folders op orde houden Sturen van content Overzicht van items in een worfklow Items aan gebruikers toekennen Een workflow van een item halen Content publiceren en archiveren Publicatiestatus instellen Content actualiseren Meta-informatie wijzigen Tekst in meerdere items aanpassen Gewijzigde items versneld activeren
Hoofdstuk 4 Data Management Wat is data-management Een site labelen Gelabelde versies terugzetten Verwijderde items Gearchiveerde taken opruimen Versies opruimen
Hoofdstuk 5 Formulieren Wat zijn formulieren Een nieuw formulier toevoegen Default Source Save as Item, field Body Save as Item Send Email Database Table Databinding eigenschappen wijzigen Het formulier definiëren Elementen toevoegen Eigenschappen van elementen Tekstelementen Lijstelementen Overige elementen htmlEdit element Label element FileInput element Submit en Reset button element Subformulieren Opmaak van elementen
Hoofdstuk 6 Import en export Import-functies Import mogelijkheden Word-documenten importeren Tekst- en HTML-documenten importeren Een aantal opties in de Export Wizard Importeren of refereren
Hoofdstuk 7 Rechten en Security Smartsite Application Console Gebruikers aanmaken en beheren Een apart soort gebruiker: de visitor Groepen aanmaken en beheren Rollen aanmaken en beheren Wie, waar, wat Gebruik van de Smartsite Manager Bladeren door de site
Hoofdstuk 8 Workflow Definitie Workflow Hoe werkt workflow CMS-statussen CMS-Statussen en interactie Analyse Workflow De basis van een workflow De definitie van activiteiten Acties binnen Activiteiten Transitions
Hoofdstuk 9 Channels, Rendertemplates en Macro’s Wat zijn channels Opbouw van een channel Wat zijn Rendertemplates Opzet van Rendertemplates Simpele HTML Rendertemplate Complexe rendertemplates XLinks Macro Een XLinks macro invoegen
Hoofdstuk 10 Contenttype Management Weergave van een contenttype aanpassen Eigenschappen van een contenttype Contenttype velden Smartsite Content Management Server ®
95 98
101 102 102 104 105 106 107
109 110 112 113 114 117 119 119 121
125 126 128 129 130 133 135 136 141 142
147 148 148 152 152 154 155 156 156
161 162 165 166 V
Aanpassen van Contenttype veldeigenschappen
Hoofdstuk 11 Servercache en AIM Active Integrity Maintenance (AIM) Overzicht van verwijzingen AIM in de praktijk Servercache Servercache instellen Servercache en AIM Level I en Level II cache
Bijlage A De Smartsite Management Information module Meten van bezoekers Cache Proxyserver Cookies Cookie instellingen Methode van tellen Referrer Algemene issues Conclusie Hardware en software eisen SMI Architectuur SMI Database model jDays Applet beschrijving De buttons van het applet De SMI menubalk Management Information Setup SMI menu opties SMI templates Scope Menu Site menu Visitor menu Referrers Menu Server Menu Eigen events meten Personalisatie
Om een site te kunnen beheren is het goed om een globaal inzicht te hebben van de technische achtergronden van Smartsite. Smartsite is een database georiënteerde applicatie en veel zaken die met het beheer te maken hebben zijn beter te begrijpen wanneer je enigszins begrijpt hoe een database werkt. Binnen de Smartsite Manager is Security van groot belang; elke gebruiker mag alleen die acties uitvoeren die aan zijn rol zijn gekoppeld. In dit hoofdstuk wordt een korte inleiding op het security model van Smartsite gegeven. Smartsite is een server-side application. Hierdoor hoeven er geen programma’s op lokale computers geïnstalleerd te worden om met Smartsite te kunnen werken. Alleen Microsoft Internet Explorer is vereist om te ‘surfen’ naar de Smartsite Manager. Om de werkdruk van de server zo optimaal te verdelen kunnen de taken over meerdere servers verdeeld worden. Dit proces wordt ‘outscaling’ genoemd en zal in dit hoofdstuk kort worden toegelicht. Met deze kennis worden sommige aspecten, die komen kijken bij het beheren van een door Smartsite aangedreven site, eenvoudiger te begrijpen en te doorzien.
Smartsite Data Model en Architectuur
1.1 Content Data Model Smartsite is een database georienteerde applicatie waarin alle informatie wordt opgeslagen. Ook alle ondersteunende informatie is in deze database terug te vinden. Deze informatie is verdeeld over verschillende tabellen die onderling relaties met elkaar kunnen hebben. Veel processen binnen Smartsite kunnen beter worden beschreven wanneer men een globaal inzicht heeft in de structuur van deze database
1.1.1 Wat is een database Databases zijn bestemd om op een ordelijke manier uiteenlopende informatie op te slaan. Een database bestaat uit een verzameling van tabellen. Elke tabel bestaat uit kolommen, in een database de velden genoemd, en rijen, ook wel records genoemd. Door steeds rijen te vullen met informatie, sla je die informatie op een geordende manier op.
ID Naam
Group
1
J. Jansen
Content Managers Beheert en structureert de content in de site.
2
M. Gerritsen Content Editors
Voegt nieuwe content toe aan de site.
3
C. Ontent
Voegt nieuwe content toe aan de site.
Content Editors
Groepsomschrijving
Tabel 1-1: Voorbeeld van een tabel Gebruikers
Een database zou uit een tabel kunnen bestaan, maar vaak zie je dat er meerdere tabellen in een database aanwezig zijn. Deze tabellen kunnen relaties met elkaar onderhouden waardoor een zogenaamde relationele database ontstaat. Het voordeel van deze relaties is dat informatie niet onnodig hoeft worden ingevuld. In bovenstaand voorbeeld hebben we een eenvoudige tabel waarin we een overzicht hebben van alle gebruikers van de Smartsite Manager en in welke groep zij zitten. Daarnaast wordt er een omschrijving van die groep gegeven. Deze tabel is nog kort en overzichtelijk, maar in werkelijkheid kan deze tabel uit tientallen, misschien wel honderden records bestaan. We zien in het voorbeeld dat er twee personen zijn die de rol van Content Editor hebben. De omschrijving voor de groep is natuurlijk exact hetzelfde. Deze omschrijving moet echter wel elke keer ingevuld worden en ook nog eens opgeslagen. Dat kost voornamelijk ruimte in de database. Door nu meerdere tabellen in deze database te gebruiken kunnen we dat probleem voorkomen. Er wordt een aparte tabel gemaakt voor alle Groepen:
Content Managers Beheert en structureert de content in de site. Tabel 1-2: een tabel met alle Groepen
De Gebruikers tabel kan nu korter gemaakt worden. In deze tabel worden de velden Groepsnaam een Groepsomschrijving vervangen door een enkel veld GroepsID.
ID Naam
GroepsID
1
J. Jansen
2
2
M. Gerritsen 1
3
C. Ontent
1
Tabel 1-3: de vereenvoudigde Gebruikers tabel
In het veld GroepsID wordt nu het nummer van de betreffende groep uit de tabel Groepen gezet. De velden GroepsID uit beide tabellen zjin aan elkaar gerelateerd. Op deze manier hoeft er veel minder informatie te worden opgeslagen. Door de GroepsID van een gebruiker kunnen we achterhalen wat de naam van de groep is en wat de omschrijving van die groep is door deze uit de tabel Groepen te lezen. Je plakt de twee tabellen dus als het ware achter elkaar:
ID Naam
GroepID
1
J. Jansen
2
2
M. Gerritsen
1
3
P. Fuijk
1
Content Editors
Voegt nieuwe content toe aan de site.
Tabel 1-4:
Dit is een zeer beknopte beschrijving van een hoe het in een database toegaat en in werkelijkheid is het ook gecompliceerder dan hier beschreven. Echter, het principe van elke relationele database werkt zoals in dit voorbeeld is uitgelegd.
1.1.2 De Contents tabel In de database van een door Smartsite aangedreven site is de Contents tabel de belangrijkste tabel. Alle informatie die door middel van items wordt ingeSmartsite Content Management Server ®
3
Smartsite Data Model en Architectuur
voerd wordt in deze tabel opgeslagen. Elk item is dus eigenlijk een record, een rij, in deze tabel. De Contents tabel bevat een heleboel velden. Zomaar een greep uit deze velden is bijvoorbeeld:
Veldnaam
Omschrijving
Nr
Dit veld bevat het unieke nummer van een item.
Title
De titel van een item wordt in dit veld weggeschreven.
Body
De tekst die in het body-veld wordt getypt wordt in dit veld opgeslagen.
AddDate
De datum wanneer een item werd aangemaakt en toegevoegd aan de Contents tabel.
Parent
Het nummer van het item waar dit item een kind van is. Op deze manier wordt de hiërarchie van de boomstructuur gecreëerd.
CTSpecificInt1
Een veld waarin numerieke waarden kunnen worden opgeslagen.
CTSpecificVar3 Een veld waarin tekst kan worden opgeslagen. Tabel 1-5: Een greep uit de velden van de Contents tabel
Elk veld is van een bepaald veldtype en kan dienovereenkomstig een bepaald soort informatie herbergen; het veld Body is een uitgebreid tekstveld en kan grote hoeveelheden tekst bevatten, het veld AddDate is een veld dat alleen datums accepteert en het veld CTSpecificInt1 accepteert alleen gehele getallen. Een speciaal veld is het veld Nr, dat een uniek nummer bevat en dat automatisch wordt opgehoogd elke keer dat er een nieuwe regel aan de tabel wordt toegevoegd. Alle items die in de Contents tabel zijn aangemaakt hebben een relatie tot elkaar. Elk item in de tabel heeft een uniek nummer. Elk item heeft een veld genaamd Parent. Dit veld Parent verwijst naar het unieke nummer van een ander item. Het resultaat van deze verwijzing is een boomstructuur. Binnen Smartsite wordt gesproken over Parents (Ouders) en Children (Kinderen) en een daaruit resulterende Parent-Child relatie (Ouder-Kind relatie). Door deze Parent-Child relatie ontstaat er een hiërarchie in de informatie die is opgeslagen. De Parent-Child relatie wordt gebruikt om eigenschappen van een item door te geven aan een item dat een kind is van dat item. Dit doorgeven van eigenschappen wordt binnen Smartsite, en net als in het echte leven, overerving genoemd. De hiërarchische boomstructuur die ontstaat door gebruik te maken van Parent-Child relaties wordt binnen Smartsite voor uiteenlopende doelen gebruikt: • het vastleggen van een functionele indeling; • het erven (doorgeven) van eigenschappen van items;
• het dynamisch genereren van hyperlinks naar onderliggende en/of bovenliggende items; • het toekennen van rechten aan gebruikers om delen van de boomstructuur wel of niet te mogen bewerken. In eerdere versie van Smartsite was er behoefte om extra velden aan de Contents tabel toe te voegen om de invoer van informatie te structureren; het aantal benodigde velden was vaak groter dan het aantal beschikbare velden die in de database voorkwam. Het aantal velden in de database groeide daarom explosief omdat elke soort invoer van informatie weer andere velden noodzakelijk maakte. De Contents tabel van Smartsite 5 bevat een groot aantal velden die voorzien zijn van een hele algemene naam zoals CTSpecificText1, CTSpecificBit3 en CTSpecificBinary1. Deze velden kunnen nu gebruikt worden om informatie in op te slaan. Om de velden effectief te gebruiken worden contenttypes gebruikt. Elk item in de Contents tabel is daarom aan een contenttype gekoppeld.
1.1.3 Contenttypes Het aantal velden in de Contents tabel bedraagt ongeveer vijftig. Wanneer een item wordt toegevoegd met behulp van de Smartsite Manager hoef je (gelukkig) niet al die velden in te vullen. Voor het invullen van die velden wordt namelijk gebruik gemaakt van zogenaamde contenttypes.
Noot Het genoemde aantal van vijftig velden is een standaardsituatie. Omdat het datamodel van Smartsite uitbreidbaar is, is het mogelijk dat het aantal velden in de Contents tabel groter is dan vijftig.
Contenttypes zijn definities van informatie. Een contenttype heeft een aantal velden waarin deze informatie kan worden ingevuld. De definitie van het contenttype koppelt deze velden aan de velden in de Contents tabel. Heel basaal gezegd is een contenttype een masker dat over een regel in de Contents tabel wordt gelegd om de invoer in deze tabel te vereenvoudigen - het laat aleen die velden zien die moeten worden ingevuld terwijl de andere velden zijn afgedekt. Een contenttype stelt je dus in staat om eenvoudig informatie in te voeren. Je hoeft je alleen nog maar te beperken tot die velden die getoond worden. Maar wat gebeurt er eigenlijk met de overige velden die niet zichtbaar zijn? Voor die velden die niet zichtbaar zijn zijn er twee mogelijkheden: 1. De velden worden door Smartsite ingevuld. De datum en tijd dat een item wordt aangemaakt (AddDate) en het nummer van een item (Nr) zijn typisch velden waar Smartsite zorg voor draagt; 2. Het veld blijft simpelweg leeg. Niet alle velden hoeven verplicht te worden ingevuld.
Smartsite Content Management Server ®
5
Smartsite Data Model en Architectuur
Naast dat een contenttype velden afschermt heeft een contenttype nog een functie. Een contenttype kan namelijk het gedrag van een veld bepalen. Dat wordt gedaan door het toepassen van speciale hulpmiddelen op een veld denk aan de webEditor - of door het afdwingen van bepaalde invoer - denk aan het niet leeg mogen zijn van het titelveld. Verder is het zo dat er afgedwongen kan worden welke rollen een bepaald veld wel of niet mogen zien en/of bewerken. Het definiëren en implementeren van contenttypes gebeurt bij het opzetten van een site. Daar heeft een site-manager in principe niets meer mee van doen. Smartsite heeft zelf al een groot aantal standaard contenttypes die gebruikt worden voor de werking van de site, zoals het bijvoorbeeld de contenttypes Channel, Rendertemplate en Worfklow die respectievelijk de definitie van een channel, de opmaak van contenttypes in een bepaald channel en de definitie van de worfklow bevatten. Om het zetten van de eigenschappen van de afzonderlijke velden zo eenvoudig mogelijk te houden zijn contenttypes gegroepeerd. Contenttypes die in dezelfde groep zitten hebben hetzelfde aantal velden. Of die velden ook zichtbaar zijn bij het bewerken van items van dat contenttype hangt helemaal van de eigenschappen af. Het ene contenttype uit een groep heeft misschien wel vier zichtbare velden, het andere contenttype heeft er zes. Omdat ze in dezelfde groep zitten hebben ze exact hetzelfde aantal velden, alleen bij het ene contenttype is aangegeven dat twee van de zes velden niet zichtbaar zijn. Er kan nu echter wel gebruik worden gemaakt van de mogelijkheid om de eigenschappen van de overige vier velden van het contenttype tegelijk te bepalen in plaats van voor elk contenttype afzonderlijk. Dat contenttypes gegroepeerd zijn komt bijvoorbeeld terug in de actie Switch Contenttype
Noot Het is misschien goed om te onderstrepen dat contenttypes géén items zijn en ook geen zelfstandige objecten. Het zijn alleen maar hulpmiddelen om informatie in de contentstabel op een gestructureerde manier te manipuleren en weer te geven. Toch zal er in het verdere verloop van deze handleiding over contenttypes gesproken worden als waren het zelfstandige objecten die informatie bevatten. Voor de beeldvorming is dit ook een prima uitgangspunt maar in sommige gevallen moet je je weer even realiseren dat de informatie niet in het contenttype is opgeslagen maar in de Contents tabel.
1.1.4 De ContentVersions tabel, workflow en versies Alle items die in de Smartsite Manager worden aangemaakt zijn onderworpen aan een workflow. Dat betekent dat een item een keten van stappen moet doorlopen voordat het item actief wordt en zichtbaar aan de voorkant van de site. Daarnaast wordt er elke keer dat een item wordt opgeslagen een nieuwe versie van een item opgeslagen. In een later stadium kan een oude 6
versie van een item worden teruggehaald en opnieuw actief gemaakt worden. Het opslaan van de versies gebeurt in de ContentVersions tabel. De ‘actieve’ content bevindt zich in de Contents tabel. De Contents tabel en de ContentVersions tabel hangen nauw met elkaar samen. In onderstaande tabel wordt geprobeerd om de samenhang tussen deze twee tabellen en de levenscyclus van een item weer te geven:
Workflow Actie Status
Publication Status
tabel Contents
tabel ContentVersions
Busy
Prepublished nieuw record
nieuw record
Busy
Prepublished
nieuw record
Busy
Prepublished
nieuw record
Busy
Prepublished
nieuw record
Active
Active
Busy
Active
nieuw record
Busy
Active
nieuw record
Busy
Active
nieuw record
Active
Active
bestaand record overschreven
bestaand record overschreven
nieuw record
nieuw record
Tabel 1-6:
In bovenstaande tabel zien we dat elke keer dat een item wordt bewerkt er een nieuw record, een nieuwe rij in de ContentVersions tabel wordt geplaatst. Pas wanneer een item een gehele workflow heeft doorlopen wordt de laatste versie van een item overgeheveld van de ContentVersions tabel naar de Contents tabel. Op dat moment is de informatie ook zichtbaar aan de ‘voorkant’ van de site.
Noot In dit voorbeeld is gebruik gemaakt van de default workflow. Deze workflow kent maar twee statussen, namelijk Busy en Active. Echter, je zou het hele pad van het aanmaken van een item tot het actief worden tot het opnieuw bewerken en opnieuw actief worden van een item natuurlijk ook langs een zeer uitgebreide workflow kunnen laten lopen.
De ContentVersions tabel is dus een soort schaduwtabel van de Contents tabel. Het bevat bijvoorbeeld ook het veld Title het veld Body. Echter, er is een grote maar. Het hoeft niet zo te zijn dat alle velden uit de Contents tabel ook in de ContentVersions tabel bestaan. Die velden die niet in de ContentVersions tabel bestaan worden direct in de Contents tabel aangepast. Een wijziging in de Contents tabel betekent een directe wijziging van de actieve content en dat betekent vaak ook een direct resultaat aan de ‘voorSmartsite Content Management Server ®
7
Smartsite Data Model en Architectuur
kant’ van de site. Wanneer ik he veld Description van een item in de Contents tabel verander dan zal die verandering direct te zien zijn wanneer je het item aan de voorkant van de site opvraagt. Voor veel velden is het ook niet zo interresant wanneer zij aan versiebeheer onderhevig zijn. Het grote gevaar schuilt in de zogenaamde tekstvelden die aan de voorkant van de site gebruikt worden.
Voorbeeld Stel dat het veld Title en het veld Body in de ContentVersions tabel staan en het veld Description niet. Een redacteur bewerkt een item en typt in het Description veld een vreemde tekst. De redacteur slaat het item op in de workklow-status Busy. Hierbij gaat hij er vanuit dat de nieuwe informatie pas zichtbaar wordt als hij het item in de status Active opslaat en dat het niet erg is dat de tekst in de verschillende velden nog niet compleet is of tijdelijke ,misschien wel gevoelige, informatie bevat. Omdat het veld Description niet in de ContentVersionstabel staat zal de tekst in dit veld direct zichtbaar zijn aan de voorkant van de site op die plaatsen waar dit veld wordt afgebeeld.
1.2 Security model Het Security Data model regelt de rechten van de gebruikers van de Smartsite Manager en de bezoekers van de door Smartsite aangedreven site. Het Security Model van Smartsite is veelomvattend en de mogelijkheden om rechten nauwkeurig aan te passen nemen in de oplopende edities van Smartsite (Standard, Professional en Enterprise) alleen maar toe. Bij de security-instellingen van Smartsite gaat het om rechten van gebruikers of bezoekers. Het gaat hierbij niet om zaken als firewalls, packet filters, of virus scanners; deze maken geen deel uit van Smartsite zelf. Anders gezegd: het gaat niet om ‘hekken met prikkeldraad’ om Smartsite heen, maar om de ‘sloten op de deuren’ binnen Smartsite zelf.
1.2.1 Gebruikers, Groepen, Rollen, Acties Alle mogelijkheden die je binnen de Smartsite Manager hebt zijn samengevat in acties en privileges. Je kunt items toevoegen, contenttypes aanmaken en bewerken, bestanden importeren en je hebt de privileges om folders aan te maken, de WebEditor te gebruiken of om items te verwijderen. De acties die er binnen de Smartsite Manager mogelijk zijn moeten worden gekoppeld aan de gebruikers die met de Smartsite Manager aan de slag gaan. Daarnaast willen we ook aangeven waar binnen de hiërarchische boomstructuur van de site acties mogen worden uitgevoerd. Voor het koppelen van de acties aan de gebruikers zijn er in Smartsite twee tussenstappen: rollen en groepen. Deze rollen en groepen worden respectievelijk gevuld met acties en met gebruikers. Daarna worden de rollen aan groepen toegekend.
Figuur 1-1: De onderlinge samenhang van gebrukers, groepen, rollen en acties
De groepen spelen een centrale rol in de beveiliging en rechtenstructuur van de Smartsite Manager. De groepen worden gebruikt om het Waar, Wat en Hoe te definiëren. Smartsite Content Management Server ®
9
Smartsite Data Model en Architectuur
Groepen worden allereerst gebruikt om aan te geven op welk deel van de boomstructuur de groep recht heeft om items en folders te bewerken (Waar). De contenttypes die aan een groep zijn toegekend bepalen welke items en folders er bewerkt kunnen worden (Wat). De rol die aan een groep is toegekend bepaalt hoe de items en folders bewerkt kunnen worden (Hoe). Wanneer een gebruiker in een groep wordt geplaatst betekent dat: • hij een rol heeft die bepaalt welke acties hij mag uitvoeren • hij alleen items en folders van bepaalde contenttypes mag bewerken • hij alleen bepaalde folders op de file-server mag gebruiken Dit is de basis van het securitymodel. Het model gaat echter verder. Gebruikers kunnen bijvoorbeeld niet in een enkele groep geplaatst worden maar in meerdere groepen tegelijk. Hierdoor kunnen gebruikers verschillende rollen aannemen waarmee hun rechten worden ingedamd of uitgebreid. Dit wordt Role-based Management genoemd. De groepenstructuur is hiërarchisch van opbouw. Deze hiërarchie is enerzijds van belang voor de workflow van items maar deze hiërarchische opbouw van de groepen maakt het ook mogelijk om rechten door te geven aan “lagere” gebruikers. Dit principe wordt Delegated Security genoemd.
1.2.2 Role-based Management Role-based Management betekent dat een gebruiker bij het werken met de Smartsite Manager gebruik maakt van een bepaalde rol. De acties die aan een rol zijn toegekend bepalen in feite hoe je binnen de Smartsite Manager kunt werken Een gebruiker van de Smartsite Manager heeft een rol omdat hij in een bepaalde groep zit. Wanneer een gebruiker in meedere groepen zit dan zou het kunnen zijn dat hij in iedere groep een andere rol heeft. Is dat het geval dan betekent dat dat een gebruiker van rol kan wisselen. Het wisselen van rol betekent dus in feite dat de gebruiker in een andere groep terecht komt. In de hiërarchische boomstructuur van de website kan worden aangegeven welke groepen waar rechten hebben om hun acties uit te voeren. Door een deel van de boomstructuur aan een groep toe te kennen leg je de verantwoordelijkheid voor het onderhoud van de informatie in dat deel bij die groep. Wanneer een gebruiker dus meerdere rollen heeft dan kan het wisselen van rol betekenen dat hij in een andere groep terecht komt en dus op andere delen van de boomstructuur acties kan uitvoeren.
Voorbeeld Een medewerker van een organisatie zit in de groep News Editors. Deze groep heeft de rol van Editor (redacteur). Dit betekent dat deze persoon items mag aanmaken in een bepaald deel van de site, bijvoorbeeld onder een folder 10
met nieuwsitems. Voordat deze items kunnen worden gepubliceerd moeten deze, door de toegepaste workflow, ook nog langs de groepen Public Relations Management en Content Managers.
Figuur 1-2: Voorbeeld van een hiërarchische groepenstructuur
Deze persoon uit de groep News Editors is ook hoofd van de Sales afdeling. Alle berichten en informatie die te maken heeft met de verkoop, en die worden aangemaakt door de redacteuren uit de twee subgroepen Sales Dep. Interntl. en Sales Dep. Local, worden eerst door deze persoon gecontroleerd alvorens ze de laatste stap naar de groep Content Managers maken. Aan de groep Sales Management is de rol van Chief Editor (Hoofdredacteur) gekoppeld. Deze gebruiker zit nu dus in twee groepen en heeft in beide groepen een andere rol. Wisselen van rol betekent dus dat hij op andere delen van de boomstructuur andere acties kan uitvoeren.
Niet alle edities van Smartsite ondersteunen bovenstaande volwaardige manier van Role-based Management. In het kort ziet de situatie er als volgt uit:
Editie
Security model
Standard Edition
Een gebruiker kan maar in een groep zitten en aan een groep kan maar een rol worden toegekend.
Professional Edition Een gebruiker kan in meerdere groepen zitten maar de acties uit de verschillende rollen worden allemaal samengevoegd. Enterprise Edition
Een gebruiker kan in meerdere groepen zitten en in elke groep een compleet andere rol met andere acties spelen. Dat betekent dus dat volwaardig Role-based management alleen in deze editie mogelijk is. Tabel 1-7: overzicht
Smartsite Content Management Server ®
11
Smartsite Data Model en Architectuur
1.2.3 Delegated Security Dat een bepaalde groep van gebruikers meerdere rollen kan vervullen lijkt overbodig wanneer de inhoud van bepaalde rollen (de toegekende acties aan die rol) elkaar overlapt; een deelverzameling van de acties uit een “hogere” rol zit ook in de “lagere” rol. Smartsite maakt gebruik van het begrip Delegated Security. Het delegeren van een deel van jouw rechten kan wanneer je die rechten in verschillende rollen hebt ondergebracht. Het maximale wat je kunt uitdelen zijn de rechten die je zelf bezit. Als voorbeeld nemen we een standaard redactie waar de hoofdredacteur een aantal redacteuren onder zich heeft (Figuur 1-3:een elementaire hoofdredactie). De hoofdredacteur maakt in dit geval deel uit van de groep hoofdredacteuren, de redacteuren maken deel uit van de groep redacteuren.
Hoofdredactie A
Redactie A1
Redactie A2
Figuur 1-3: een elementaire hoofdredactie
Bij deze groepen horen de volgende rollen: Hoofdredacteu r
Groep/Rol
Redacteur
Hoofdredacteuren Redacteuren Tabel 1-8: groepen en rollen
De groep hoofdredacteuren heeft dus de rollen Hoofdredacteur en Redacteur. Bij de rollen uit dit voorbeeld horen de volgende acties: Acties/Rol
Configure Security, Edit Groups Set Manager Access Tabel 1-9: Rollen en acties
Noot Om het voorbeeld overzichtelijk te houden is de situatie vereenvoudigd. In werkelijkheid moeten naast de acties ook een aantal privileges worden toegekend. Deze maken het onder meer mogelijk toegang te krijgen tot de Manager, de SmartEditor te starten, een folder aan te maken en direct op de site te publiceren.
Afdeling A krijgt een nieuwe medewerker die ook aan de slag moet met de Smartsite Manager. De webmaster uit dit voorbeeld heeft geen tijd om zich bezig te houden met de personele wijzigingen op de redactie. Daarom heeft hij de Hoofdredacteur voorzien van de Gebruikers Bewerken (Edit Users) actie. Met deze actie kan de hoofdredacteur een nieuwe gebruiker aanmaken en deze in een groep plaatsten. Hij plaatst deze nieuwe redacteur natuurlijk in de groep redacteuren. De webmaster zelf heeft de rechten Rollen bewerken (Edit Roles)
en
Actielijst bewerken (Edit Action List) . Daarmee is het mogelijk acties aan te maken en vast te leggen binnen rollen. Dit kan echter eenmalig gebeuren waarna wijzigingen in bezetting door de hoofdredacteur zijn op te lossen. Pas wanneer de organisatie drastisch wijzigt (en er nieuwe afdelingen bijkomen) wordt weer een beroep gedaan op de webmaster. Deze hoeft alleen een nieuwe folder voor een redactie aan te maken in de site naast de bestaande folders voor redacties. Binnen deze folder kan de nieuwe redactie items plaatsen. Stel dat de organisatie wordt uitgebreid en er in de nieuwe situatie sprake is van drie afzonderlijke hoofdredacties (A, B en C) elk verbonden aan een eigen productgroep. De drie redacties krijgen een afzonderlijk deel van de site toegewezen voor het publiceren van artikelen. Het is niet de bedoeling dat leden van een redactie de artikelen van een andere redactie bewerken of wissen of voor deze andere redactie artikelen toevoegen. Als de hoofdredacteur nu drie groepen aanmaakt voor hoofdredacteuren en daarnaast redacteuren hiervoor aanmaakt, krijgen deze alle dezelfde rechten. Om ervoor te zorgen dat de redacties gescheiden van elkaar zijn (m.b.t. de rechten) is het noodzakelijk met de actie Manager Rechten Instellen (Set Manager Access) ten van toepassing zijn.
aan te geven op welk deel van de site de rech-
Smartsite Content Management Server ®
13
Smartsite Data Model en Architectuur
Hoofdredactie Bedrijf
Set edit access
Hoofdredactie A
Redactie A1
Redactie A2
Hoofdredactie B
Redactie B1
Redactie B2
Rol HR
Rol R
Hoofdredactie C
Redactie C1
Rol HR
Redactie C2
Rol R
Rol R
Figuur 1-4: Een voorbeeld van een organisatiestructuur
Het aangeven van de plaats waar één rol mag worden uitgevoerd, zodat op verschillende plaatsen de acties uit verschillende rollen zijn toegestaan, wordt alleen volledig ondersteund door de Enterprise Edition. Binnen de overige edities is het wel mogelijk de hiërarchie op te bouwen en de plaats aan te geven waar een rol mag worden uitgevoerd maar alle rollen waarover een gebruiker beschikt worden samengevoegd. Dus op de plaats die je aangeeft zijn alle acties uit alle rollen toegestaan. Stel dat iemand deel uitmaakt van Hoofdredactie A en Redactie C1. Zowel in de Professional als in de Enterprise Edition is het mogelijk de rollen in te stellen (rol HR en rol R bij Hoofdredactie A, rol R bij redactie C1). In de Professional edition worden alle toegekende rollen echter samengevoegd waardoor deze persoon ook over de rol HR beschikt op redactie C1. In de Enterprise Edition worden de rollen niet samengevoegd. Het is absoluut aan te raden de hiërarchie van het begin af aan goed op te bouwen (ook als je niet over de Enterprise Edition beschikt) om het werken met Smartsite te structureren en om eventuele upgrades te vergemakkelijken.
1.3 Hardware architectuur en Outscaling Smartsite is een server-side application - een applicatie die op een centrale (web)server draait en waarvoor geen apart programma op een lokale computer hoeft te worden geïnstalleerd. Het bewerken van de informatie die door Smartsite wordt beheerd en gepubliceerd gebeurt met behulp van de Smartsite Manager. De Smartsite Manager wordt geopend in de webbrowser en we kunnen dus zeggen dat de Smartsite Manager niets ander is dan een zeer geavanceerde website die jou in staat stelt om informatie te bewerken en te beheren. De opgeslagen informatie wordt ook gepubliceerd deze informatie wordt opgevraagd de bezoekers van de site. Deze situatie zou als geschetst kunnen worden zoals in onderstaande figuur
Figuur 1-5: Client-Server model
In Smartsite termen noemen we deze architectuur een CMS-server en een Publicatie-server in een. De redacteuren van de site die de informatie bewerken en de bezoekers die de informatie opvragen ‘surfen’ naar dezelfde webserver. Wanneer er sprake is van een druk bezochte site waar op hetzelfde moment ook een groot aantal redacteuren en beheerders bezig is met het toevoegen, bewerken en beheren van (nieuwe) informatie, dan kun je je voorstellen dat de webserver het druk krijgt - de performance van de site komt onder druk te staan. Om de performance te verbeteren kan de architectuur van de site zodanig worden ingericht dat er verschillende stromen van elkaar worden gescheiden. Dit proces wordt Outscaling genoemd. Er zijn verschillende vormen van Outscaling. Waar het bij Outscaling op neer komt is dat je de taken gaat verdelen over verschillende servers: publicatieservers en CMS servers. De publicatieserver wordt benaderd door bezoekers terwijl de CMS server wordt gebruikt voor het toevoegen en bewerken van nieuwe content. Smartsite
Smartsite Content Management Server ®
15
Smartsite Data Model en Architectuur
zorgt voor de communicatie tussen de twee servers en zorgt ervoor dat de publicatieserver gevoed wordt met de laatste actieve content.
Figuur 1-6: Voorbeeld van outscaling
Hoe beïnvloedt de architectuur nu het beheerproces van een Smartsite omgeving? Voor de site managers die zich met het beheer van de content bezighouden zal een complexe architectuur nauwelijks merkbaar zijn. Smartsite is zodanig ingericht dat het beheer van de content op alle CMS servers hetzelfde verloopt. Men heeft niet door dat men eventueel op een andere CMS server aan het werk is. Met betrekking tot de publicatie zijn er echter wel een aantal zaken die de aandacht verdienen. Wanneer er sprake is van een aparte publicatieserver die met behulp van webservices wordt gevoed met de actieve content kan er in het bijwerken van de publicatieserver een vertraging zijn ingebouwd. Hoe groot deze vertraging is, is instelbaar. Dat betekent dat de informatie soms pas na enige tijd zichtbaar is aan de publicatiekant van de site. Wanneer je het resultaat echter aan de voorkant van de CMS-server bekijkt dan zul je direct de juiste informatie zien.
Een belangrijk onderdeel van een site is meta-informatie. Metainformatie is informatie die iets zegt over andere informatie - de categorie van een item, de sleutelwoorden of trefwoorden van een item, de auteur, het contenttype zijn allemaal elementen van een item die duiding geven over de feitelijke inhoud van een item. Een belangrijke taak voor site managers is het beheren van de meta-informatie opdat redacteuren altijd een juiste categorie of trefwoord kunnen selecteren. Deze meta-informatie is voornamelijk opgeslagen in de thesaurus. Andere meta-informatie is terug te vinden in tabellen die in de database aanwezig zijn. Een thesaurus is een gestructureerde woordenlijst waarin tussen de termen die in deze lijst voorkomen relaties bestaan. Deze relaties kunnen van verschillende aard zijn: equivalent, hiërarchisch of associatief.
Meta-informatie: thesauri en tabellen
2.1 Inleiding over thesauri De vertaling van het latijnse woord Thesaurus is in het Nederlands schatkamer. Dit geeft al aan welke waarde er aan een goed opgezette thesaurus gegeven kan worden; een goed opgezette thesaurus maakt het mogelijk om op een gestructureerde manier meta-informatie aan de content van een site toe te voegen. Door de onderlinge relaties van de meta-informatie kunnen we de inhoud van de site op een nog betere manier ontsluiten. In deze en volgende paragrafen wordt eerst een analyse gemaakt van de verschillende onderdelen van een thesaurus in het algemeen. Deze analyse is voornamelijk ontleend aan document van het amerikaanse instituut voor standaardisatie: NISO. Het document is getiteld: Guidelines for the Construction, Format, and Management of Monolingual Thesauri ANSI/NISO Z39.19-2003 (Revision Z39.19-1980) ISSN:1041-5653 ISBN: 1-8080124-04-1.
Dit document kunt u vinden op de website van de National Information Standards Organization (NISO): www.niso.org. Een definitie die door de National Information Standards Organization (NISO) wordt gegeven voor een thesaurus is: “Een thesaurus is een gecontroleerde en geordende woordenlijst waarin equivalente, homografische, hiërarchische en associatieve relaties tussen termen eenduidig zijn vastgelegd door gestandaardiseerde relatie-indicators die ook omkeerbaar zijn. Het doel van een thesaurus is het bevorderen van consistentie bij het indexeren van documenten, voornamelijk bedoeld voor systemen voor het beheren en opslaan van informatie, en het faciliteren van zoekmogelijkheden door het verbinden van termen op basis van de relatie-indicators.”
Uit de definitie van de thesaurus kun je afleiden dat een thesaurus gebruikt wordt voor het toekennen van meta-informatie aan items. Meta-informatie speelt binnen Smartsite namelijk een belangrijke rol. Veel van de meta-informatie die binnen Smartsite aan items wordt toegekend is geautomatiseerd. Men kan hierbij denken aan de datum wanneer een item bewerkt is of het contenttype waar het item op is gebaseerd. Echter, deze meta-informatie zegt niets over de inhoud van het item - zij wordt alleen gebruikt voor de technische mogelijkheden van Smartsite: items kunnen gesorteerd worden weergegeven op datum van aanmaak of gegroepeerd per contenttype. Wil je iets kunnen zeggen over de inhoud van een item dan zul je gebruik moeten maken van woordenlijsten die bestaan uit een verzameling algemene en conceptuele termen. Door deze termen toe te kennen aan items kunnen deze items worden gecategoriseerd. Naast een lijst van algemene termen kan 18
men ook gebruik maken van een lijst van sleutelwoorden. Dat zijn woorden die niet zo zeer conceptueel van aard zijn maar die hele specifieke kernwoorden zijn voor bepaalde delen van een tekst. Voor de duiding van de inhoud van een item zouden meerdere sleutelwoorden van toepassing kunnen zijn. Voor het toekennen van categorieën en sleutelwoorden aan items worden vaak afzonderlijke lijsten gebruikt. Dit wordt gedaan om de aangeboden hoeveelheid informatie - de hoeveelheid woorden in een lijst - overzichtelijk te houden. Met behulp van een thesaurus kunnen deze woordenlijsten gecombineerd worden. Het combineren van woordenlijsten tot een thesaurus heeft als voordeel dat er nu relaties bestaan tussen de woorden onderling. Het bestaan van deze relaties werkt twee kanten op. Op basis van een geselecteerde categorie kan de gebruiker een tweede lijst van sub-categorieën worden aangeboden die het mogelijk maken het item nog duidelijker te specificeren. Deze lijst van sub-categorieën wordt aangeboden op basis van een relatie die de termen in die lijst het hebben met het woord dat is gekozen als categorie. Aan de andere kant kan bij het zoeken van informatie op een site ook gebruik gemaakt worden van de relaties die tussen de woorden onderling staan. Op een eenvoudige manier kan bij een geselecteerde pagina in de site een overzicht gegeven worden van andere pagina’s met gelijkwaardige of gelijksoortige informatie op basis van de relaties die er tussen de meta-informatie van die pagina’s bestaat.
Smartsite Content Management Server ®
19
Meta-informatie: thesauri en tabellen
2.2 Relatie-indicatoren en term data Een van de belangrijke verschillen tussen een thesaurus en andere vocabulaire lijsten is dat de woorden in de lijst onderling gerelateerd zijn. Een ideale thesaurus bevat dan ook geen wezen - termen die op generlei wijze gerelateerd zijn aan enige andere term. Er worden drie typen relaties onderscheiden binnen een thesaurus: • De equivalente relatie • De hiërarchische relatie • De associatieve relatie Elk van deze relaties heeft de eigenschap dat zij omkeerbaar is, i.e., elke relatie tussen term A en term B heeft een corresponderende relatie tussen van term B naar term A. De conventionele afkortingen voor de relatie indicatoren zijn als volgt:
Relatie
Relatie indicator
Equivalentie (synoniem) USE Hiërarchie Associatie
Afkorting U
USED FOR
UF
BROADER TERM
BT
NARROWER TERM
NT
RELATED TERM
RT
Tabel 2-1: Relatie indicatoren en hun afkortingen
2.2.1 De equivalente relatie Wanneer een bepaald concept beschreven kan worden door twee of meer termen dan moet een keuze gemaakt worden welke van deze termen de voorkeur krijgt boven de andere(n). De (quasi)synoniemen van de voorkeursterm zijn niet de woorden die in de hoofdwoordenlijst terecht dienen te komen. Deze woorden kunnen als ingang gebruikt worden, maar het is niet wenselijk dat deze termen ook andere relaties onderhouden met termen uit de hoofdwoordenlijst van de thesaurus. Die relaties worden alleen gelegd met de voorkeursterm. Welke term de voorkeursterm is wordt bepaald door de context van de thesaurus. Wanneer bijvoorbeeld een chemische thesaurus wordt gemaakt dan zullen de chemische termen de voorkeurstermen zijn, terwijl algemene omschrijving van die termen als equivalenten worden ingevoerd.
Voorbeeld Binnen een chemische thesaurus zullen de technische termen de voorkeursterm zijn: aspirine / acetylsalicylzuur zout / natriumchloride De voorkeurstermen zijn vet weergegeven.
De voorkeurstermen zijn dus die termen die de behoefte van de meerderheid van de gebruikers van de thesaurus bevredigt. De beslissing welke term de voorkeursterm wordt in een equivalente relatie zal dus bij de opzet van de thesaurus genomen moeten worden.
Noot Binnen de thesaurus van Smartsite wordt de equivalente relatie ondergebracht onder de kop Term Data. Term Data is aanvullende informatie op een term uit de thesaurus en deze aanvullende informatie zal geen onderdeel uitmaken van de hoofdwoordenlijst. Op deze manier komen de equivalenten van een woord niet in de hoofdwoordenlijst terecht en kunnen deze equivalente termen ook geen relaties onderhouden met andere termen uit de hoofdwoordenlijst.
2.2.2 De hiërarchische relatie Dit type relatie is de primaire eigenschap van een thesaurus die deze onderscheidt van een ongestructureerde woordenlijst. De hiërarchische relatie is gebaseerd op basis van niveau’s van superioriteit en ondergeschiktheid van termen waarbij de superieure termen een gehele klasse voorstellen en de ondergeschikte termen een deel of lid van die klasse zijn. Voor het beschrijven van de hiërarchische relatie worden de volgende relatie indicatoren gebruikt: • BT (Broader Term) - label voor de superieure term • NT (Narrower Term) - label voor de ondergeschikte term Hiërarchische relaties tussen termen onderling kunnen worden onderscheiden in drie typische situaties: Hiërarchisch relatie type Omschrijving Generieke relatie
Een manier van beschrijven waarbij een klasse en zijn leden worden beschreven
Geheel - Onderdeel relatie
De ondergeschikte termen zijn een onderdeel van de bredere term die het geheel beschrijft
Categoriserende relatie
De ondergeschikte termen zijn voorbeelden van de bredere term
Tabel 2-2: overzicht van hiërarchische relatie types
De generieke relatie
Smartsite Content Management Server ®
21
Meta-informatie: thesauri en tabellen
De generieke relatie beschrijft de verbanden tussen een klasse en de leden van die klasse. Een eenvoudige manier om te testen of deze hiërarchische relatie van toepassing is, is door gebruik te maken van de zin: “[Narrower Term] is een [Broader Term]” (de zogenaamde Allemaal - Sommige test). Let hierbij wel op de omkeerbaarheid van de relatie.
Voorbeeld Een meer algemene term voor een cactus is vetplant. Ook woestijnplant lijkt op het eerste gezicht een bredere term voor een cactus. Maar omgekeerd geldt niet dat alle cactussen woestijnplanten zijn. Formeel gezien behoort de cactus daarom niet als ondergeschikte term van de categorie woestijnplanten te worden gedefinieerd.
De geheel - deel relatie Deze hiërarchische relatie legt een verband tussen een geheel en de leden die tot dat geheel behoren. Een zeer duidelijk voorbeeld voor zo’n type relatie is een overzicht van geografische lokaties: • Nederland • Zuid-Holland • Den Haag • Delft • Rotterdam De categoriserende relatie Deze relatie legt het verband tussen een algemene categorie van dingen of gebeurtenissen en individuele voorbeelden van die categorie: • Berggebieden • Alpen • Himalaya • Pyreneeëen Wanneer daar behoefte aan is kan binnen een thesaurus expliciet onderscheid gemaakt worden tussen deze drie situaties. Dat onderscheid kan worden gemaakt door aparte hiërarchische relaties, inclusief hun unieke relatieindicatoren, te definiëren voor elk van de situaties
Voorbeeld Uitgedrukt in de relatie-indicatoren zouden de volgende hiërarchische relaties kunnen zijn gedefinieerd: • BT/NT • BTG/NTG • BTC/NTC
Wanneer er sprake is van een hiërarchie tussen termen dan is er sprake van een structuur. Deze structuur kan verschillende vormen aannemen:
Tree Type
Maximaal aantal algemene termen
Maximaal aantal ondergeschikte termen
Not Defined
-
-
Path
1
1
Binary Tree
1
2
Tree
1
oneindig
Network
oneindig
oneindig
Tabel 2-3: Types structuren voor hiërarchische relaties tussen termen in een thesaurus
2.2.3 De associatieve relatie De meest lastige relatie om te definiëren is de associatieve relatie. Deze relatie omvat die termen die noch equivalent, noch hiërarchisch tot elkaar in relatie staan. Toch staan deze termen op een of andere manier, conceptueel dan wel semantisch, in relatie tot elkaar. Voor het beschrijven van de associatieve relatie wordt de relatie indicator RT (relational term) gebruikt. Binnen de associatieve relatie kunnen we nog onderscheid maken tussen relaties tussen termen uit dezelfde hiërarchie en termen uit verschillende delen van de hiërarchie.
Voorbeeld ‘Boten’ en ‘Schepen’ zijn allebei termen die tot de klasse (BT) ‘Voertuigen’ behoren. Voor beide kan een afzonderlijke complete beschrijving gemaakt worden omdat de termen ‘Boten’ en ‘Schepen’ zich binnen de scheepvaart duidelijk onderscheiden door bijvoorbeeld afmetingen en tonnage. Het is dus niet zo dat een de termen ‘Boten’ en ‘Schepen’ equivalent (U/UF) zijn. Conceptueel gezien staan deze termen echter wel in relatie tot elkaar. Een associatieve relatie (RT) tussen deze twee termen is dus op zijn plaats. ‘Paarden’, ‘Ezels’ en ‘Muilezels’ behoren allemaal tot de familie van de ‘Equidae’, net als bijvoorbeeld ‘Zebra’s’. Tussen ‘Paarden’ en ‘Ezels’ bestaat er niet direct een verband anders dan hun beider relatie tot een bredere term: ‘Equidae’. Echter, voor beiden geldt dat er een relatie bestaat tot de ‘Muilezel’, een dier dat een kruising is tussen een paard en een ezel. Beide termen kunnen dus een associatieve relatie aangaan met de term ‘Muilezel’.
Smartsite Content Management Server ®
23
Meta-informatie: thesauri en tabellen
In bovenstaande voorbeelden vallen alle termen binnen een en dezelfde hiërarchie. Het is echter ook goed mogelijk dat er associatieve relaties bestaan tussen termen die uit een heel ander deel van de hiërarchie komen: Associatieve relatie
Voorbeeld
Processen en instrumenten Temperatuur beheersing - Thermostaat Acties en hun producten
Weven - Doek
Acties en hun doelen
Boekbinden - Boek
Causale relaties
Sterfgeval - Dood
Concepten en eenheden
Elektrische eenheid - Ampères
Tabel 2-4: voorbeelden van associatieve relaties tussen termen niet in dezelfde hiërarchie.
2.2.4 Aanvullende informatie voor termen Binnen een thesaurus kan de behoefte bestaan om extra informatie aan termen te kunnen toevoegen. Je kunt daarbij denken aan: • Een omschrijving van de term en welke termen er onder die termen worden verwacht (Scope Note); • Een definitie van de term wanneer een term voor meerdere uitleg vatbaar is (Definition); • Een code die aan een term wordt gekoppeld (Code). Deze aanvullende informatie wordt Term Data genoemd. Deze informatie wordt niet in de hoofdwoordenlijst opgeslagen maar als extra informatie in een aparte tabel weggeschreven. Dat deze informatie niet in de hoofdwoordenlijst voorkomt geeft al aan dat deze informatie niet gebruikt kan en mag worden in enige relatie. Eveneens wordt deze informatie niet gebruikt als uitgangspunt voor het doorzoeken van de thesaurus. Deze informatie wordt pas getoond in combinatie met de term waartoe deze extra data behoort. Binnen een equivalente relatie (U/UF) is er ook sprake van een term die in de hoofdwoordenlijst voorkomt en een of meerdere termen die daar niet in staan. Omdat deze relatie alle kenmerken van term data heeft wordt deze relatie ook onder deze noemer gedefinieerd.
2.3 Een thesaurus beheren Een thesaurus beheer je met de actie Thesaurus Bewerken (Edit Thesaurus) . Deze actie kun je starten wanneer je de het item van het contenttype Thesaurus selecteert in de boomstructuur wat verwijst naar de betreffende thesaurus die je wilt bewerken. Deze actie wordt uitgevoerd in het actievenster.
Figuur 2-1: Een thesaurus bewerken.
Noot Wanneer je de Shift-toets ingedrukt houdt tijdens het starten van de actie Thesaurus Bewerken (Edit Thesaurus)
dan wordt het item zelf geopend i.p.v. de thesaurus.
2.3.1 Data aan een thesaurus toevoegen Let op! Bij het werken met de thesaurus is het van belang dat je regelmatig de aangebrachte wijzigingen opslaat: Save Current Thesaurus
.
!
Let op!
Smartsite Content Management Server ®
25
Meta-informatie: thesauri en tabellen
Bij het bewerken van een thesaurus is allereerst het toevoegen (New Term ), bewerken (Edit Term ) en verwijderen (Delete Term men uit de hoofdwoordenlijst van de belang.
) van ter-
Bij het toevoegen van een term wordt een dialoogvenster geopend:
Figuur 2-2: Een term uit de thesaurus bewrerken
Aan elke term kan een code worden toegevoegd. Dit is meteen een voorbeeld van term data die aan een term kan worden toegekend. Deze hoeft dus niet apart gedefinieerd te worden. Of er daadwerkelijk een code aan termen wordt gekoppeld hangt natuurlijk helemaal af van de conventies die binnen jouw organisatie zijn bepaald met betrekking tot de thesaurus. Bij elke term die aan de hoofdwoordenlijst wordt toegevoegd kan ook de bijbehorende term data gedefefinieerd worden. Welke term data je aan termen kunt toevoegen heeft natuurlijk helemaal te maken met de definitie van de thesaurus.
Het het toevoegen van term data: 1. Selecteer de term in de hoofdwoorden lijst; 2. Selecteer in de dropdown lijst onder de kop Term Data het soort term data dat je aan de term wilt toekennen; 3. Klik op New Term Data pend;
. Er wordt een dialoogvenster geo-
4. Typ de term data die bij de geselecteerde term uit de hoofdwoordenlijst hoort en klik op OK
om deze informatie toe te voegen.
Let op! Wanneer er een aantal termen zijn gedefinieerd kunnen er relaties tussen de termen gedefinieerd worden (afhankelijk van de vraag of deze binnen de definitie van de thesaurus aanwezig zijn).
Het toevoegen van term data: 1. Selecteer de term in de hoofdwoorden lijst;
2. Selecteer in de dropdown lijst onder de kop Relations de relatieindicator die je wilt gebruiken; 3. Klik op New Relation . Er wordt een dialoogvenster geopend. Dit venster toont alle overige termen uit de hoofdwoordenlijst exclusief de geselecteerde term:
Figuur 2-3: Relaties tussen termen leggen
4. Selecteer een of meedere termen die je aan de geselecteerde term wilt relateren. Gebruik de Shift en/of Control-toets voor het tegelijkertijd selecteren van meerdere termen; 5. Klik op OK . De termen worden nu toegevoegd aan de geselecteerde relatie-indicator uit de dropdown lijst.
Let op!
Smartsite Content Management Server ®
27
Meta-informatie: thesauri en tabellen
2.4 Door een thesaursus bladeren Met de actie Open Thesaurus (Browse Thesaurus) kun je door de thesaurus bladeren. Deze actie geeft een overzicht van alle termen en de relaties die er tussen deze termen bestaan. Ook geeft deze actie een overzicht aan van de term data die bij een term uit de hoofdwoordenlijst van de geselecteerde thesaurus hoort.
Figuur 2-4: Door een thesaurus bladeren
Naast het bladeren kunnen ook de statistieken voor de thesaurus bekeken worden met de optie Show Statistics . De statistieken voor een thesaurus geven bijvoorbeeld een overzicht van het aantal termen en het aantal relaties per relatie-indicator.
2.5 Een thesaurus exporteren of importeren De termen, relaties en term data die in een thesaurus zijn opgeslagen kunnen worden geëxporteerd. Evenzo kunnen termen uit een andere thesaurus worden geïmporteerd. Voor het exporteren en importeren van thesauri wordt gebruik gemaakt van XML - een gestructureerde manier van gegevensopslag.
2.5.1 Exporteren Wanneer een thesaurus wordt geexporteerd dan zal het als een XML bestand worden weggeschreven. De structuur van de data in dat bestand is eenvoudig. In Voorbeeldcode 2-1: Een simpele geëxporteerde thesaurus zie je een voorbeeld van zo’n XML bestand. In dit voorbeeld zijn er drie termen waartussen twee soorten relaties bestaan: een hierarchische (NT/BT) en een associatieve (RT).
<descriptor>term1 term2 <descriptor>term2 term1 <descriptor>term3
Echter, het kan zo zijn dat op deze standaard export een transformatie wordt toegepast - met behulp van een XSLT-bestand - waardoor het eindresultaat er heel anders uitziet. Vaak is deze transformatie zo ingesteld dat je het geëxporteerde bestand direct kunt gebruiken in een andere applicatie.
Een (deel van de) thesaurus exporteren: 1. Gebruik de Shift en/of de Ctrl-toets om een aantal termen te selecteren of selecteer niets;
Smartsite Content Management Server ®
29
Meta-informatie: thesauri en tabellen
2. Start de optie Export Terms uit de knoppenbalk boven de thesaurus. Er verschijnt een dialoogvenster:
Figuur 2-5: een thesaurus exporteren
3. Selecteer of je alleen de geselecteerde termen of de gehele thesaurus wilt exporteren; 4. Typ in het veld Filename een naam voor de geëxporteerde thesaurus; 5. Typ in het veld Destination de folder op de fileserver waar het bestand moet worden opgeslagen; 6. Klik op Export om de de thesaurus te exporteren. Er verschijnt een dialoogvenster dat het verloop van de export toont.
Let op!
Noot Het bestand wordt altijd weggeschreven als een XML-bestand.
2.5.2 Importeren Het importeren van termen uit een andere thesaurus is mogelijk. Echter, om de termen, de relaties tussen de termen en de termdata goed te kunnen importeren dient het formaat van het te importeren bestand zodanig te zijn dat Smartsite het kan hanteren. Dat betekent dat niet elke willekeurige lijst van woorden zomaar geïmporteerd kan worden. Om een lijst van woorden te kunnen importeren moet deze eerst zodanig worden getransformeerd dat Smartsite de termen, relaties en term data kan onderscheiden en aan de thesaurus toevoegen. De uiteindelijke structuur van de thesaurus die geïmporteerd wordt moet lijken op de structuur zoals die is afgebeeld in Voorbeeldcode 2-1: Een simpele geëxporteerde thesaurus. Wanneer we deze structuur heel simplistisch voorstellen dan ziet deze er als volgt uit:
<descriptor>term term
Binnen deze structuur is een concept een term uit de hoofdwoordenlijst van de thesaurus inclusief al zijn relaties met andere termen en/of term data. Deze relaties worden voorgesteld door een relatie-indicator. Deze relaties kunnen alleen geïmporteerd worden wanneer deze relatie-indicatoren binnen de defintie van de thesaurus in Smartsite bestaan!
Voorbeeld Stel dat de thesaurus uit Voorbeeldcode 2-1: Een simpele geëxporteerde thesaurus geïmporteerd wordt. In dat geval moet in de definitie van de thesaurus binnen Smartsite relaties gedefinieerd zijn die als relatie-indicatoren respectievelijk BT, NT en RT hebben. De relatie-indicatoren BT en NT worden toegekend aan een reciproke hiërarchische relatie en de relatie-indicator RT aan een associatieve relatie. Wanneer de definities van deze twee relaties andere relatie-indicatoren gebruiken dan kan Smartsite de relaties in het bestand niet ‘matchen’ aan een relatie die is vastgelegd binnen de definitie van de thesaurus. Deze relaties worden dan niet geïmporteerd en de import resulteert in een enkele lijst van termen.
Bij het importeren van een thesaurus komen dus nogal wat aspecten om de hoek kijken - de structuur van het te importeren bestand, de opzet van de thesaurus en de daarin vastgelegde relaties en termdata spelen allemaal een belangrijke rol. Een thesaurus importeren zal echter niet een dagelijkse bezigheid zijn en wanneer een externe thesaurus wordt geimporteerd dan zal vaak gebruik worden gemaakt van dezelfde bron. In dat geval zal bij de opzet van de site rekening gehouden zijn met de structuur van het bronbestand en zal er automatisch een transformatie plaatsvinden die er voor zorgt dat de thesaurus op een juiste manier wordt geïmporteerd.
Smartsite Content Management Server ®
31
Meta-informatie: thesauri en tabellen
Een thesaurus importeren: 1. Start de optie Import Terms uit de knoppenbalk boven de thesaurus. Er wordt een dialoogvenster geopend:
Figuur 2-6: Een thesaurus importeren
2. Blader naar het bestand dat geïmporteerd moet worden; 3. Maak een keuze of je de huidige thesaurus wilt overschrijven of dat je de termen uit de te importeren thesaurus wilt toevoegen; 4. Klik op Import . Er verschijnt een dialoogvenster dat de voortgang van de import laat zien.
2.6 De opzet van een thesaurus wijzigen Over de opzet van een thesaurus is als het goed is van te voren lang en breed nagedacht. Er is een protocol geschreven waarin alle bijzonderheden met betrekking tot de thesaurus zijn vastgelegd. Je kunt hierbij denken aan: • Het soort relaties dat gebruikt gaat worden; • Het soort term data dat aan termen kan woorden toegekend; • Of samengestelde termen (termen bestaande uit meer dan een woord) worden toegelaten; • De regels met betrekking tot spelling, interpunctie en diakritische tekens. Verder zijn er regels opgesteld hoe men dient om te gaan met het toevoegen van nieuwe termen aan de thesaurus en wie daar de eindverantwoording voor heeft. Tijdens de implementatie van de site wordt de structuur van de thesaurus gebruikt om de contenttypes te voorzien van velden waar de meta-informatie, die in de thesaurus wordt opgeslagen, kan worden geselecteerd. Enerzijds kunnen we dus stellen dat het toevoegen van termen en term data en het creëren van de onderlinge relaties tussen deze termen de thesaurus kan uitgroeien tot een complex organisme dat met veel zorg moet worden onderhouden. Anderzijds is de thesaurus een belangrijk mechanisme binnen de site die het mogelijk maakt om op een gestructureerde manier meta-informatie toe te voegen aan folders en items. De opzet van een thesaurus die in gebruik is kan op eenvoudige wijze gewijzigd worden door direct gebruik te maken van de optie Configure Current Thesaurus
of via de actie Thesauri Beheren (Manage Thesauri)
. Door het de-selecteren van relatie-types of term data types kan de structuur van een thesaurus eenvoudig gewijzigd worden. Echter, men moet goed beseffen dat wanneer men deze wijzigingen doorvoert ook de data die bij deze relatie of term data hoorde wordt vernietigd. Hiermee kan jaren van werk in een klap teniet gendaan worden.
Let op! Door het de-selecteren van relatie-types of term data binnen een thesaurus kan jaren werk in een keer teniet gedaan worden. Wees daar alert op. Wees daarom voorzichtig met het toekennen van de actie Thesauri Beheren (Manage
Thesauri)
!
binnen jouw organisatie.
Let op!
Smartsite Content Management Server ®
33
Meta-informatie: thesauri en tabellen
2.7 Een thesaurus definiëren Een thesaurus is dus een verzameling van relatie-indicatoren en term data. Deze relatie-indicatoren en term data types kunnen gedefinieerd worden en in meerder thesauri gebruikt worden. Het definiëren van relatie-indicatoren, term data types, boomstructuur types en de thesauri zelf gebeurt met de actie Thesauri Beheren (Manage Thesauri) geopend:
. Wanneer deze actie wordt gestart wordt een dialoogvenster
Figuur 2-7: Dialoogvenster voor het beheer van thesauri
Binnen dit dialoogvenster zijn vier velden te onderscheiden die gebruikt worden voor de definitie van de thesaurus:
veld
Omschrijving
Thesauri
Lijst van gedefinieerde thesauri waarbij gebruik gemaakt wordt van de gedefinieerde Term Data Types en Relation Types.
Tree Types
Lijst van gedefinieerde structuren die de hiërarchie kan aannemen.
Term Data Types (Relationele) informatie die betrekking hebben op een term in de hoofdwoordenlijst van de thesaurus. De informatie van dit type komt niet in de hoofdwoordenlijst terug. Relation Types
Relatie types die de onderlinge verbanden tussen de termen in de hoofdwoordenlijst van de thesaurus beschrijven.
Tabel 2-5: Beschrijving van de velden van het dialoogvenster voor het beheer van de thesauri
2.7.1 Definiëren van Term Data Types Term Data is een verzamelnaam voor informatie die kan worden toegekend aan termen in de thesaurus. Het geeft meer informatie over de term zelf. Veel gebruikte Term Data binnen thesauri zijn Scope Note en Definition. Een Scope Note is een uitleg die je aan een term toekent waarin staat beschreven wat voor soort ondergeschikte termen er aan die term kunnen worden toegekend. Behalve voor de managers van de thesaurus kan zo’n Scope Note ook gebruikt worden om aan de voorkant van de site duidelijk te maken welke termen er onder een bepaalde term verwacht kunnen worden. Het kan wenselijk zijn dat de termen in een thesaurus worden uitgebreid met een Definition. Deze term data geeft dus een definitie van een term. Dit kan praktisch zijn wanneer termen voor meerdere uitleg vatbaar zijn. Binnen Smartsite wordt onder de Term Data ook de equivalente relatie (U/UF) gedefinieerd. Ondanks dat er sprake is van een relatie type wordt deze hier aangemaakt omdat op deze manier de equivalenten van een term niet in de hoofdwoordenlijst van de thesaurus terecht komen. Wanneer een nieuw type Term Data wordt toegevoegd (New Term Data Type
) wordt een dialoogvenster geopend:
Figuur 2-8: Een nieuw type Term Data toevoegen
Dit dialoogvenster heeft de volgende opties:
Smartsite Content Management Server ®
35
Meta-informatie: thesauri en tabellen
Veld
Omschrijving
Name
Een unieke naam voor de Term Data Type.
Code
Een unieke code voor de Term Data Type.
Definition
Een omschrijving van de Term Data Type.
Allowed Entries
Maak een keuze of aan een term in de hoofdwoordenlijst een of meer termen of omschrijvingen kunnen worden toegekend.
Direction Type
definitie van de richting tussen de term en de termdata.
Tabel 2-6: Overzicht van velden van de optie New Term Data Type
De velden Name en Code zijn verplichte velden. Het Description-veld is optioneel. De overige velden zijn geheel afhankelijk van het soort term data dat wordt gedefinieerd. Wanneer er sprake is van een Scope Note of een Definition is het logisch dat er gekozen wordt voor maar een omschrijving per term uit de hoofdwoordenlijst - het is bijvoorbeeld niet logisch dat een term meerdere definities heeft. De richting die er bestaat tussen de term en de term data kan een van de volgende vormen aannemen:
Direction Type Omschrijving Directed
De term data is alleen gerelateerd aan de term.
Undirected
de term data en de term zijn wederkerig. Ze gebruiken allebei dezelfde relatie-indicator. Voor termdata is dit type niet van belang.
Reciprocal
De term data en de term zijn omgekeerd evenredig met elkaar. De term en de term data gebruiken allebei een aparte relatie-indicator. Tabel 2-7: Relaties tussen term en term data
De omkeerbaarheid van term data geldt alleen wanneer de term data gebruikt wordt als relatie. Wanneer je dit type wilt gebruiken voor een relatie gaat het om relaties waarbij een van de delen van de relatie niet in de hoofdwoordenlijst dient te komen. Een goed voorbeeld daarvan is een equivalente relatie.
Een equivalente relatie definiëren: 1. Klik op New Term Data Type pend;
Het dialoogvenster wordt geo-
2. Typ in het veld Name Use For; 3. Typ in het veld Code UF;
4. Geef een omschrijving van deze Term Data in het Descriptionveld; 5. Selecteer Allow Mulitple Entries per Term; 6. Selecteer Reciprocal uit de lijst Direction Type; 7. Typ op het tweede tabblad in het veld Name de naam van de tegenhanger van Use For: Use; 8. Typ in het veld Code U; 9. Typ een omschrijving van deze omkering in het veld Description. 10.Klik op OK
om de equivalente relatie aan te maken.
Let op!
Noot Bij het definiëren van de equivalente relatie wordt geredeneerd vanuit de term in de hoofdwoordenlijst - de Term Data wordt aan die term toegekend. Dat is de reden dat op het eerste tabblad Use For gedefinieerd wordt en op het tweede tabblad Use - vanuit de term in de hoofdwoordenlijst gezien geef je aan voor welke andere termen die hoofdterm een synoniem is.
2.7.2 Definiëren van Relation Types Relation Types worden gebruikt voor het definiëren van de mogelijke relaties tussen termen onderling. De belangrijkste relatie die hier gedefinieerd wordt is de hiërarchische relatie. Deze relatie onderscheidt een thesaurus van een gewone woordenlijst. Wanneer een nieuwe relatie wordt aangemaakt (New Relation Type wordt er een dialoogvenster geopend:
)
Figuur 2-9: Een nieuw relatie type definiëren
Smartsite Content Management Server ®
37
Meta-informatie: thesauri en tabellen
Het dialoogvenster heeft twee tabbladen. Elk tabblad impliceert een relatieindicator. Het eerste tabblad heeft de volgende velden:
Veld
Omschrijving
Name
Een unieke naam voor de Relation Type.
Code
Een unieke code voor de Relation Type.
Definition
Een omschrijving van de Relation Type.
Tree Type
Maak een selectie op welke manier termen aan elkaar gerelateerd kunnen worden.
Direction Type
definitie van de richting tussen de termen. Tabel 2-8: Overzicht van velden van de optie New Relation Type
De velden Name en Code zijn verplichte velden. De naam en de code van een relatie-indicator moet uniek zijn. Het Description veld is optioneel. Het geselecteerde Tree Type bepaalt hoe vaak een relatie gelegd kan worden tussen termen onderling:
Het Direction Type van een relatie bepaalt de wederkerigheid van een relatie:
Direction Type
Omschrijving
Directed
Undirected
Reciprocal
Tabel 2-10: Tree types
Een hiërarchische relatie definiëren: 1. Klik op New Relation Type pend;
Het dialoogvenster wordt geo-
2. Typ in het veld Name Narrower Term; 3. Typ in het veld Code NT; 4. Geef een omschrijving van deze relatie in het Description-veld; 5. Selecteer Network (NET) in het Tree Type veld; 6. Selecteer Enable Reciprocal; 7. Typ op het tweede tabblad in het veld Name de naam van de tegenhanger van Narrower Term: Broader Term; 8. Typ in het veld Code BT; 9. Typ een omschrijving van deze omkering in het veld Description. 10.Klik op OK
om de hiërarchische relatie aan te maken.
Let op!
Een associatieve relatie definiëren: 1. Klik op New Relation Type pend;
Het dialoogvenster wordt geo-
2. Typ in het veld Name Narrower Term; 3. Typ in het veld Code RT; 4. Geef een omschrijving van deze relatie in het Description-veld; 5. Selecteer PATH (NET) in het Tree Type veld;
Smartsite Content Management Server ®
39
Meta-informatie: thesauri en tabellen
6. Selecteer Undirected in de lijst Direction Type; 7. Klik op OK
om de associatieve relatie aan te maken.
Let op!
2.7.3 De thesaurus definiëren Als alle Term Data Types en Relation Types die in de thesauri moeten worden gebruikt zijn aangemaakt kan de feitelijke thesaurus worden gedefinieerd.
Een thesaurus definiëren: 1. Klik op New Relation Type pend:
Het dialoogvenster wordt geo-
Figuur 2-10: Een nieuwe thesaurus definiëren
2. Typ in het veld Name een naam voor de thesaurus; 3. Typ in het veld Code een unieke code voor de thesaurus. Deze code wordt gebruikt om de thesaurus te benaderen wanneer er data uit gehaald dient te worden; 4. Geef een omschrijving van deze thesaurus in het veld Description; 5. Maar een selectie uit de lijst van gedefinieerde Relation Types die je wilt gebruiken in de thesaurus;
6. Maak een selectie uit de lijst van gedefinineerde Term Data Types die je wilt gebruiken in de nieuwe thesaurus; 7. Klik op OK
.
Let op! Door het definiëren van de thesaurus is de datastructuur voor de nieuwe thesaurus vastgelegd. Om de termen te kunnen toevoegen moeten we een item toevoegen van het contenttype Thesaurus. Dit item is een soort van doorgeefluik van de gebruiker naar de thesaurus. Omdat het bewerken van de thesaurus via een item gaat, betekent dat er ook security op de thesaurus van toepassing is. Een gebruiker tegelijk kan het item maar openen en derhalve kan maar een iemand tegelijk de thesaurus bewerken. De thesaurus kan op een speciale plaats in de boomstructuur geplaatst worden waar alleen geselecteerde groepen rechten hebben.
Let op! In tegenstelling tot alle andere items in Smartsite betekent dit niet dat er ook workflow en versiebeheer op de thesaurus van toepassing is. Een thesaurus heeft geen workflow en geen versiebeheer. Wijzigingen in een thesaurus kunnen daarom niet ongedaan gemaakt worden. Het item is alleen maar een doorgeefluik naar de feitelijke thesaurus.
!
Let op! Om de thesaurus te kunnen bewerken moet er dus een item van het contenttype Thesaurus worden aangemaakt. Het kan praktisch zijn om alle thesauri te groeperen in een aparte CMS-folder.
Figuur 2-11: Een item van het contenttype Thesaurus
Smartsite Content Management Server ®
41
Meta-informatie: thesauri en tabellen
Het contenttype Thesaurus heeft drie velden waarvan er maar twee ingevuld hoeven te worden. In het Name-veld geef je een naam voor dit item. Het meest praktische is om dezelfde naam te gebruik van de thesaurus die geselecteerd wordt in het veld ThesaurusNr. De lijst in het veld ThesaurusNr bevat alle thesauri die met de actie Thesauri Beheren (Manage Thesauri)
zijn aangemaakt.
De code die is gegenereerd en die is weergegeven in het veld Code hoeft niet gewijzigd te worden. De code die bij de definitie van de thesaurus is gebruikt is van feitelijk belang voor het correct benaderen van de thesaurus in andere functionaliteit binnen Smartsite.
2.8 Tabellen bewerken Meta-informatie hoeft niet alleen in thesauri te zijn opgeslagen. Er zijn ook andere bronnen waar termen in staan die gebruikt worden om items te classificeren. Deze termen staan dan in tabellen die hetzij in dezelfde Smartsite database zijn opgeslagen of in een externe database. Echter, onafhankelijk van de lokatie kunnen deze tabellen vanuit Smartsite worden bijgewerkt. Het verschil tussen de termen in een thesaurus en termen in een andere tabel is dat er in die tabel geen relaties tussen de termen bestaan. Een tweede belangrijk verschil is dat die tabel vaak meer informatie bevat dan alleen de term. Een tabel afdelingen kan bijvoorbeeld naast de naam van de afdeling, die geselecteerd wordt als meta-informatie binnen een item, ook nog het telefoonnummer van die afdeling, de afdelingsmanager - wiens naam weer uit een andere tabel geselecteerd kan worden (zie 1.1.1 Wat is een database) - en een omschrijving van die afdeling bevatten. Wanneer er tabellen zijn die bewerkt kunnen worden dan is dat gekoppeld aan een actie. De naamgeving van de actie verschilt natuurlijk van organisatie tot organisatie en het aantal velden dat moet worden ingevuld hangt van de definitie van de tabel af. De manier van werken is echter in alle gevallen hezeldfe. Wanneer je bijvoorbeeld de actie Gebruikers Bewerken (Edit Users)
uitvoert, bewerk je direct een tabel in de Smartsite database.
Een belangrijke taak voor een site manager is het monitoren van de informatie die er in de site staat. Vanuit een “helicopter view” moet je als site manager de onderlinge samenhang van de content in de gaten houden en, waar nodig, redacteuren aansturen om informatie in items te herzien. Naast het herzien van individuele items zullen er ook wijzigingen moeten worden aangebracht in grote hoeveelheden items tegelijk. De meta-informatie van meerdere items moet worden aangepast of een bepaald woord die veelvuldig in de site voorkomt moet worden vevangen door een ander woord. Voor dit soort situaties zijn er acties die jou in staat stellen om de benodigde wijzigingen door te voeren. Naast de het toezien op de informatie in de items, zul je als site manager ook verantwoordelijk zijn voor de hiërarchische opbouw van de site. Als site manager ken je het belang van de hiërarchie voor overerving, security en de navigatiestructuur aan de voorkant. Je zorgt dat de boomstructuur zicht biedt op Translations, Images en Binaries zodat de overige gebruikers deze hulpmiddelen kunnen gebruiken in hun items.
Content Management
3.1 Praktische site opbouw Een site wordt gekenmerkt door een hiërarchische opbouw. Deze opbouw vinden we terug in de boomstructuur van de site. De structuur van een stie bestaat uit folders en items. Deze folders en items zijn ieder van een bepaald contenttype. De indeling van de boomstructuur wodt voor een aantal zaken gebruikt: • Voor het logisch ordenen van informatie; • Voor het instellen van rechten voor de verschillende gebruikergroepen; • Als basis voor de navigatiestructuur aan de voorkant van de site zodat bezoekers van de site intuïtief op zoek kunnen naar de informatie; Standaard komen er met Smartsite een aantal contenttypes mee. Veel van deze standaard contenttypes worden gebruikt als ondersteuning voor het beheren en publiceren van informatie. Deze contenttypes bevatten zelf geen informatie die gepubliceerd wordt. Je kunt hierbij bijvoorbeeld denken aan de contenttypes Rendertemplate, Channel en Workflow. Andere contenttypes, met als meest vooraanstaande het contenttype WebPage, bevatten de de feitelijke informatie die in de site wordt opgeslagen. Dit zijn de contenttypes waar de redacteuren mee aan de slag moeten. Een standaard indeling van de boomstructuur is een opdeling in het contentgedeelte en het configuratie gedeelte. In het configuratie gedeelte zijn alle items verzameld die gebruikt worden voor het goed het beheer en de werking van de site. In het content gedeelte staan de items en folders die de informatie bevatten.
Figuur 3-1: Indeling boomstructuur
De structuur die gehanteerd wordt in het content-gedeelte van de site is vaak ook de basis van de navigatiestructuur aan de voorkant van de site. De folders worden aan de voorkant van de site getoond als elementen waaruit een bezoeker van de site zijn keuze kan maken wanneer hij een site bezoekt. In de boomstructuur van de Smartsite Manager zien we dan ook altijd een topfolder, vaak met de naam van de site, en daaronder een aantal subfolders. Deze subfolders zijn de hoofdrubrieken van de site.
Om onder de topfolder nieuwe folders of items te plaatsen, ofwel het toevoegen van nieuwe rubrieken, werkt niet altijd even goed - soms is de voorkant van de site daarop niet berekend en de kans dat de nieuwe hoofdrubriek niet in de navigatiestructuur terugkomt of de navigatiestructuur verstoord is reeel. Binnen de folders die de hoofdrubrieken vormen kunnen natuurlijk wel nieuwe folders en items worden toegevoegd. Bij het toevoegen van nieuwe folders kan de hiërarchie steeds dieper worden. Ook nu moet je je afvragen of dat wenselijk is. Vaak werkt het niet bevorderlijk voor de navigatiestuur van een site en ook nu geldt dat de navigatiestructuur er niet altijd op berekend is. De situatie zoals hierboven beschreven is een indicatie van de relatie die boomstructuur in de Smartsite Manager heeft met de navigatiestructuur aan de voorkant van de site. In jouw site kunnen deze dingen heel anders zijn ingericht. Als site manager is het belangrijk dat je een beeld hebt van de relatie tussen die twee. Buiten de relatie tussen de voor en de achterkant van de site is de boomstructuur ook nog van belang voor de rechten van de verschillende gebruikersgroepen van de Smartsite Manager. Deze relatie wordt in een later hoofdstuk verder uitgelegd.
3.1.1 CMS folders Er zijn een aantal items die door de verschillende redacteuren in de verschillende gebruikersgroepen gedeeld kunnen worden: Translations, Images, Binaries en References. Op zichzelf vormen deze items geen content maar ze worden gebruikt binnen andere items. Je wilt niet dat dat dit soort items in de navigatiestructuur aan de voorkant van de site komen. Eerder zagen we al dat we eigenlijk ook geen extra folders willen aanmaken onder de topfolder van de site. Echter, er is een uitzondering in de vorm van een CMS folder. Een CMS folder is apart contenttype. Een folder van dit contenttype heeft namelijk geen fysieke betekenis aan de voorkant van de site - het item kan niet gerenderd worden omdat deze folder geen content bevat. Natuurlijk staan er onder deze folder wel weer allemaal items die content bevatten.
Figuur 3-2: Een CMS folder aanmaken
Smartsite Content Management Server ®
47
Content Management
CMS folders kunnen gebruikt worden als een soort van container waarin items kunnen worden opgeslagen. Omdat CMS folders geen fysieke betekenis hebben worden ze automatisch ook niet zichtbaar in navigatie structuur aan de voorkant van de site. Deze folders zijn dus geschikt voor het verzamelen van items van de bovengenoemde contenttypes: Translations, References, Images, Binaries en References. Verder kunnen ze gebruikt worden als archief folder of als tijdelijke folder voor geïmporteerde items of items die verwijderd waren en weer teruggeplaatst moeten worden in de site.
Noot De CMS folder zelf kan niet gerenderd worden en is dus niet opvraagbaar aan de voorkant van de site. De items die in die folder staan kunnen, indien deze wel gerenderd kunnen worden, wel worden opgevraagd aan de voorkant van de site. Bezoekers kunnen door het spelen met de querystring dus informatie bekijken die eventueel nog niet zichtbaar mocht zijn. Het plaatsen van een item in een CMS folder is dus niet hetzelfde als een item niet publiceren.
Figuur 3-3: Een aantal CMS folders
3.1.2 Translations Een Translation is een veelgebruikte tekst die wordt bijeengehouden door een afkorting. Binnen andere items kan een Translation worden gebruikt door de afkorting tussen blokhaken [] te plaatsten. Wanneer een item wordt opgevraagd zal Smartsite de tekst doorzoeken of er Translations worden gebruikt en zal het deze Translation vervangen door de bijbehorende tekst. Goede voorbeelden van Translations zouden de bedrijfsnaam, het adres of telefoonnummer van de organisatie kunnen zijn. Wanneer deze in een Translation worden geplaatst en de redacteuren gebruiken deze Translations consequent dan hoeft bij een verandering van het adres alleen op een plaats de Translation te worden aangepast. 48
Er bestaan drie Translation types: System, Global en Local. System Translations worden gebruikt voor items die bij het starten van de site al in het geheugen worden geladen, zoals bijvoorbeeld de Rendertemplates. Deze variant wordt dus vooral door site bouwers gebruikt. Voor de Translations die gebruikt worden in de content van de site blijven dan de globale en de lokale varianten over. Een globale Translation wordt overal in de site op dezelfde manier vertaald. Echter, een globale Translation wordt vervangen door een lokale Translation binnen alle items die in dezelfde folder of onderliggende folders staan als de lokale Translation.
Voorbeeld E bestaat een globale Translation [TEL] die het algemene telefoonnummer van het bedrijf voorstelt. De boomstructuur van de site is zodanig ingericht dat elke afdeling zijn eigen folder heeft. Wanneer deze afdelingen verwijzen naar een telefoonnummer verwijzen ze door middel van de Translation [TEL] naar het algemene telefoonnummer. Na verloop van tijd wil men eigenlijk direct naar het nummer van de afdeling verwijzen. In plaats van alle bestaande Translations te vervangen door een nieuwe Translation [TELafd] kun je nu ook een lokale Translation [TEL] in de folder van deze afdeling aanmaken met het telefoonnummer van de afdeling.
3.1.2.1Geneste Translations Translations kunnen genest worden. Dat betekent dat binnen de ene Translation een andere Translation gebruikt kan worden.
Voorbeeld In dit voorbeeld zie je hoe de contactgegevens van Smartsite Software BV zijn opgebouwd uit verschillende Translations:
[Website] www.smartsite.nl Tabel 3-1: Voorbeeld van geneste translations
Ook nu kan er gebruik gemaakt worden van lokale varianten van een Translation.
Smartsite Content Management Server ®
49
Content Management
Noot Het is niet mogelijk om een globale Translation in een lokale Translation te nesten.
3.1.2.2Geparametriseerde Translations Translations kunnen ook voorzien worden van parameters. Door het gebruik van een parameter kun je het resultaat van de Translation beïnvloeden. Parameters worden binnen een Translation geschreven als {translationParam()}. De parameters worden meegegeven aan de Translation door ze tussen haakjes en gescheiden door komma’s achter de naam van de Translation te schrijven.
Voorbeeld Code [Adres]
Vervangen door Smartsite Software B.V. {translationParam(1)} Tabel 3-2: Voorbeeld van een geparametriseerde translation
De Translation kan nu aangeroepen worden met behulp van parameters:
Translation
Resultaat
[Adres]
Smartsite Software B.V.
[Adres((Support))] Smartsite Software B.V. (Support) Tabel 3-3: Resultaat van een Translation met parameters
Ook van een Translation met parameters kan een lokale variant bestaan. Deze lokale Translation hoeft echter niet hetzelfde aantal parameters te ondersteunen als de globale variant. Wanneer er gebruik wordt gemaakt van de lokale Translation en er worden parameters gebruikt dan zullen deze parameters geen invloed hebbben op de Translation.
3.1.3 Afbeeldingen en Binaries Afbeeldingen en documenten worden over het algemeen opgeslagen als bestanden op de fileserver. De contenttypes Image en Binary bieden echter de mogelijkheid om afbeeldingen en documenten als een item op te slaan. De data wordt dan in de Contents tabel van Smartsite opgeslagen. De afbeeldingen en documenten kunnen eenvoudig in andere items gebruikt worden door te verwijzen naar het item in plaats van te verwijzen naar een bestand op de server. 50
Het opslaan van een bestand of afbeelding als item geeft alle voordelen die er ook bestaan voor items - er kan workflow op worden toegepast, er is sprake van versiebeheer en met behulp van de veiligheidsinstellingen kun je er voor zorgen dat niet iedereen de items die de afbeeldingen en documenten bevatten kan wijzigen. Het belangrijkste voordeel is dat er security aan toegekend kan worden voor de bezoekers van de site. Daar waar bestanden op de fileserver niet afgeschermd kunnen worden voor bezoekers, kunnen afbeeldingen en bestanden die als item zijn opgeslagen wel worden afgeschermd. Een nadeel van het opslaan van afbeeldingen en bestanden als Image of Binary in de database is het feit dat de inhoud van het item veel groter is dan de inhoud van een item dat alleen tekst bevat. Daarnaast kan het zo zijn dat het veld ook nog eens aan versiebeheer is onderworpen. In dat geval betekent het dat elke keer dat je een item van het contenttype Image of Binary opslaat er een nieuw record aan de ContentVersions tabel wordt toegevoegd inclusief alle binaire informatie. Door het regelmatig opruimen van oude versies is dat echter goed te beheren. Bij items van dit contenttype is het van belang om rekening te houden met de servercache van deze items. Zonder in dit stadium diep in te gaan op wat servercache is volgt onderstaand een korte uitleg. Wanneer een item met afbeeldingen wordt opgevraagd en die afbeeldingen zijn items van het contenttype Image, dan moet in principe al die informatie uit de database worden gelezen. Wanneer dat elke keer dat het bewuste item wordt opgevraagd zou moeten gebeuren kan dat invloed hebben op de performance - er moet te vaak te veel data uit de database gehaald worden. Servercache maakt van de opgevraagde items een pagina en plaatst deze in de een aparte folder op de server. Bij het opvragen van deze pagina hoeft er nu geen data meer uit de database te worden gelezen. Om dit te bereiken moet de servercache van binaire items op Until Item Update worden gezet. Het al of niet gebruiken van de contenttypes Image en Binary is dus een afweging die gemaakt moet worden. Er zijn voordelen en er zijn nadelen. Er kan wel voorop gesteld worden niet alle afbeeldingen als item van het contenttype Image hoeven te worden opgeslagen. Hetzelfde geldt voor documenten. Deze hoeven niet allemaal als item van het contenttype Binary te worden opgeslagen. Door te begrijpen welke mogelijkheden er zijn en welke invloed het heeft op de achterliggende database kan er een keuze gemaakt worden voor het gebruik van deze contenttypes.
3.1.4 Folders op orde houden Voor het op orde houden van de folders kun je gebruik maken van de acties Sorteer Folder (Sort Folder)
, Knippen (Cut)
, Kopiëren
(Copy) en Plakken (Paste) . Dit zijn acties die voornamelijk door hoofdredacteuren en stie managers worden gebruikt omdat zij voor een belangrijk deel bepalen hoe de site er aan de voorkant uit en hoe de informatie voor de bezoeker is geordend. Dat komt natuurlijk omdat de boomstructuur vaak de basis is voor de navigatiestructuur aan de voorkant van de site. Smartsite Content Management Server ®
51
Content Management
3.2 Sturen van content Als site manager ben je voortdurend bezig om vanuit een “helicopter view” de structuur en inhoud van de site te monitoren. Je bewaakt de structuur van de hiërarchische boomstructuur, je sorteert folders, verplaatst items en misschien ben je ook een schakel - misschien zelfs de laatste schakel - van een uitgebreide workflow waardoor je ook actief bezig bent met de informatie in items. Tegelijkertijd ben je ook bezig met het controleren van de content van de site. Items waaraan een workflow gekoppeld is kunnen bijvoorbeeld door ziekte van een redacteur onnodig lang “stil blijven staan”. In dat geval is het jouw taak om er voor te zorgen dat anderen de verantwoordelijkheid over dat item kunnen overnemen.
3.2.1 Overzicht van items in een worfklow Voor het monitoren van de workflow van items maak je gebruik van de actie Workflow Beheren (Manage Workflow) . Deze actie is voor elke gebruiker van de Smartsite Manager van praktisch nut omdat het een snel overzicht geeft welke items er aan jou zijn toegekend (tabblad Assigned) of toegekend aan de gebruikersgroep waar jij inzit (tabblad Called Out). Echter, als site manager heb je vaak ook de beschikking over een extra tabblad: Overview. Met dit tabblad krijg je een compleet overzicht van alle items die op dat moment gekoppeld zijn aan een gebruiker.
Figuur 3-4: Overzicht van alle items die aan een workflow gekoppeld zijn
Noot De actie Workflow Beheren (Manage Workflow) is gevoelig voor de context waarin deze gestart wordt - de actie kijkt welke folder er geselecteerd is en geeft een overzicht van alle items die aan een worfklow zijn gekoppeld onder die folder en onderliggende folders.
Het tabblad Overview is verdeeld in een aantal kolommen:
Kolomnaam Omschrijving Nr
Het nummer van het betreffende item
Title
De titel van het betreffende item
Status
De workflow status van het item
User
De gebruiker of gebruikersgroep die op dat moment verantwoordelijk is voor het item
Workflow
De workflow die op het item van toepassing is.
ModDate
De datum dat het item voor het laatst bewerkt is. Tabel 3-4: Kolommen op het tabblad Overview
Vooral de kolom ModDate geeft een goed beeld van wat er gebeurt met items die aan een workflow gekoppeld zijn. Door de kolom te sorteren op ModDate krijg je snel een beeld of er items zijn die aan een workflow zijn gekoppeld en tegelijkertijd al een tijd niet bewerkt zijn. Wanneer dat het geval is, is het misschien nodig dat er actie wordt ondernomen. Je zou de gebruiker die op dat moment voor het item verantwoordelijk is er op kunnen aanspreken of je maakt gebruik van de actie Workflow Zetten (Set Workflow) om het item aan iemand anders binnen dezelfde gebruikersgroep toe te wijzen of de workflow van het item te halen.
3.2.2 Items aan gebruikers toekennen Wanneer jij eindverantwoordelijk bent voor de informatie die binnen een site is opgeslagen zonder daadwerkelijk al die informatie te beschrijven dan zul je redacteuren moeten aansturen om bepaalde items te herzien en de inhoud van die items aan te passen. In extreme gevallen kan een site zodanig zijn ingericht dat redacteuren niet zelfstandig items kunnen bewerken maar alleen wanneer iemand hoger in de hiërarchie, ergo een hoofdredacteur of een content manager, het item aan de redacteur toekent. Het toekennen van items gebeurt met de actie Workflow Zetten (Set Workflow) . Met deze actie kun je aan items die nog niet gekoppeld zijn een workflow toekennen. Bij het koppelen van een workflow kun je het item aan een complete gebruikersgroep toekennen of aan een specifieke gebruiker.
Smartsite Content Management Server ®
53
Content Management
Items toekennen: 1. Selecteer de items en folders die je wilt koppelen aan een workflow; 2. Klik op de actie Workflow Zetten (Set Workflow) een dialoogvenster geopend:
. Er wordt
Figuur 3-5:
3. Selecteer de workflow die je op de selectie van items en folders wilt toepassen en klik op Volgende (Next)
;
4. Selecteer een gebruikersgroep en eventueel een gebruiker aan wie je de items wilt toekennen; 5. Klik op Voltooien (Finish)
.
Let op! In de definitie van de workflow kan zijn opgenomen dat op het moment dat een item wordt toegekend aan een gebruiker of een gebruikersgroep, deze persoon of personen automatisch een taak of een mailtje krijgen. Op deze manier worden zij op de hoogte gebracht van het feit dat zij een item moeten bewerken. Ook redacteuren moeten natuurlijk de actie Workflow Beheren (Manage Workflow) gebruiken om te zien welke items er aan hen persoonlijk of de gebruikersgroep waar zij onderdeel van maken zijn toegekend. Het gebruik van de actie Workflow Zetten (Set Workflow) dus in staat om de levenscyclus van items actief te sturen.
stelt je
3.2.3 Een workflow van een item halen Wanneer de actie Workflow Zetten (Set Workflow) gestart wordt, wordt er een dialoogvenster getoond. Een van de mogelijkheden kan zijn dat je de workflow van een item afhaalt door de optie (None) te kiezen. Wanneer een item, dat actief is, gekoppeld is aan een workflow dan betekent dat er een actieve versie van het item in de Contents tabel staat en dat er in
de workflow-cyclus nieuwe versies van het item zijn aangemaakt. Deze nieuwe versies bevinden zich in de ContentVersions tabel. Wanneer de workflow van een item wordt afgehaald worden de versies in de ContentVersions tabel niet opgeruimd. Echter, wanneer het item, nu zonder workflow, opnieuw wordt bewerkt, dan worden de velden van het item gevuld met de informatie in de ContentVersions tabel - er ontstaat dus een discrepantie met wat er aan de voorkant van de site zichtbaar is (de actieve versie in de Contents tabel en de informatie die zichtbaar is als het item wordt bewerkt).
Noot Deze discrepantie treedt natuurlijk alleen op voor die velden die in de ContentVersions tabel bestaan.
Wanneer je een workflow van een item afhaalt dan moet je dus in alle gevallen het item onmiddelijk weer toekennen aan iemand zodat de wijzigingen alsnog doorgevoerd kunnen worden. Vaak is het daarom beter om gebruik te maken van de optie ReAssign binnen de actie Workflow Zetten (Set Workflow) . Het verwijderen van de workflow van een item is in principe alleen zinvol op het moment dat je het item daarna verwijdert met de actie Verwijderen (Delete)
.
Smartsite Content Management Server ®
55
Content Management
3.3 Content publiceren en archiveren Elk item heeft altijd een publicatiestatus. De publicatiestatus van een item bepaalt of het item zichtbaar is aan de ‘voorkant’ van de site. Er zijn vijf publicatie-statussen te onderscheiden:
Publicatiestatus
Omschrijving
Prepublished/Inactive Een item is niet zichtbaar aan de voorkant van de site. Active
Een item is actief en zichtbaar aan de voorkant van de site.
Archived
Een item dat gearchiveerd is, is niet meer zichtbaar is aan de voorkant van de site en kan ook niet meer bewerkt kan worden. Het staat nog wel in de boomstructuur.
Template
Een item wordt gebruikt als basis voor andere items en is niet zichtbaar aan de voorkant van de site.
Deleted
Een item is verwijderd, derhalve niet meer zichtbaar aan de voorkant en in de Smartsite Manager. Het item bestaat echter nog wel in de database Tabel 3-5: Overzicht van publicatie statussen
De publicatiestatus Active heeft nog twee varianten: Awaiting Activation en Expired. Deze twee varianten worden bepaald door de datums die in de velden ShowFrom en ShowUntil staan. Is de datum in het ShowFrom veld nog niet aangebroken dan zal het item nog niet zichtbaar zijn aan de voorkant van de site. Is de datum in het ShowUntil veld verstreken dan geldt hetzelfde. De status Prepublished krijgt elk item dat voor het eerst wordt aangemaakt en zich nog in de worfklow bevindt. Op het moment dat het item door middel van de Workflow actief wordt gemaakt, zal ook de publicatiestatus van het item veranderen van Prepublished in Active. Ook items die gekopieerd of geïmporteerd worden, die verwijderd waren en weer worden teruggezet of anderzins (op)nieuw in de boomstructuur van de Smartsite Manager verschijnen zullen deze status aannemen. Items die de status Archived hebben zijn nog steeds zichtbaar in de boomstrutuur van de site. Deze items zijn echter niet zomaar te bewerken. Gearchiveerde items moeten eerst een andere status krijgen, bijvoorbeeld Inactive, voordat deze weer bewerkt kunnen worden. Op deze manier kunnen items uit het het CMS proces gehaald worden, maar nog steeds zichtbaar zijn zodat zij in een later stadium weer teruggezet, bewerkt en geactiveerd kunnen worden. Het belangrijke verschil tussen items met de status Inactive en items die de status Archived hebben is het feit dat de laatste niet bewerkt kunnen worden. Wanneer het recht om de status van gearchiveerde items te wijzigen niet aan elke gebruiker van de Smartsite Manager is toegekend, dan is het een uitstekend middel om items (tijdelijk) uit de roulatie te nemen. Items die de
status Inactive hebben kunnen namelijk vaak wel bewerkt worden door redacteuren. Wanneer het workflow-proces dan wordt afgerond is het item eerder weer zichtbaar aan de voorkant van de site. Wanneer een item wordt verwijderd met de actie Verwijderen (Delete) krijgt het de publicatiestatus Deleted. Vanaf dat moment is het item niet meer zichtbaar in de boomstructuur. Het item is echter nog steeds aanwezig in de Contents tabel. Het voordeel hiervan is dat items eventueel nog teruggehaald kunnen worden wanneer bij nader inzien het verwijderen van het item niet terecht was. Wanneer een item de publicatiestatus Template heeft dan wordt de inhoud van dat item gebruikt voor andere items van hetzelfde contenttype. Het template item kan bijvoorbeeld gebruikt worden om het body-veld van een item te vullen met een in de template vastgelegde hoeveelheid informatie. Je kunt bijvoorbeeld denken aan een vastgelegde indeling aan de hand van paragraaftitels. Welk item als template is gemarkeerd is bij de opzet van de site vastgelegd door de site bouwers. Zomaar een ander item als template markeren werkt daarom niet omdat er heel expliciet wordt verwezen naar het nummer of de code van een item dat als template wordt gebruikt.
3.3.1 Publicatiestatus instellen De publicatiestatussen Prepublished, Active, Awaiting Activation, Scheduled en Expired worden bereikt door het bewerken van een item en de workflow die op het item wordt toegepast of door het verstrijken van de tijd. De levenscyclus van een item begint bij het aanmaken waarbij het item de status Prepublished krijgt. Aan het eind van de cyclus heeft het item de status Active. Indien het ShowFrom of ShowUntil veld is ingevuld dan worden de statussen Awaiting Activation en Expired ook automatisch bereikt. Het is echter niet altijd wenselijk om te wachten op de uitkomst van de workflow. Soms is direct ingrijpen op de publicatie-status van een item wenselijk. Daarvoor is de actie Item Status Instellen (Set Item State) . Met deze actie verander je direct de publicatie-status van een item ongeacht of het item aan een workflow is gekoppeld.
De publicatiestatus aanpassen: 1. Selecteer in de boomstructuur de folders en items waarvan je de publicatiestatus wilt aanapassen en start de actie Item Status Instellen (Set Item State)
. Er wordt een dialoogvenster geo-
Smartsite Content Management Server ®
57
Content Management
pend:
Figuur 3-6:
2. Selecteer een publicatie-status. Wanneer je de publicatiestatus Active kiest kun je ook een datum instellen wanneer het item gepubliceerd of of gedepubliceerd moet worden. 3. Klik op OK
om de nieuwe publicatiestatus in te stellen.
Let op!
Noot Of je een bepaalde publicatiestatus kunt kiezen hangt samen met je rol. Wanneer jij een bepaalde publicatiestatus niet in je rol hebt, kun je deze in de actie Item Status Instellen (Set Item State)
niet selecteren.
Wanneer alles goed gaat dan hoef je de actie Item Status Instellen (Set Item State) niet vaak te gebruiken. De content voltooit keer op keer zijn levenscyclus, al dan niet gestuurd, en de juiste informatie is altijd zichtbaar aan de voorkant van de site. Deze actie gebruik je wanneer er bijvoorbeeld onverhoopt informatie te vroeg zichtbaar is op de site. Dan gebruik je deze actie om de ShowFrom datum van het item aan te passen of door de status te veranderen in Inactive. Het veranderen van de publicatie-status van een item gebeurt direct op de Contents tabel; de wijziging wordt direct doorgevoerd op het actieve item, ook wanneer dat item aan een workflow is gekoppeld. Indien noodzakelijk is dit zonder probleem te doen. Er is echter een uitzondering waarin je de publicatie-status niet moet veranderen: wanneer een item aangemaakt is en nog in een worfklow zit.
Wanneer een item wordt aangemaakt, en de belangrijkste velden zoals Title en Body aan versiebeheer onderhevig zijn, dan zal bij het aanmaken een nul versie in de Contents tabel gezet worden en alle opeenvolgende versies worden in de ContentVersions tabel bewerkt. Wanneer het item aan het eind van de workflow de status Active krijgt wordt de complete informatie overgeheveld naar de Contents tabel en wordt deze informatie gepubliceerd. Wanneer nu met de actie Item Status Instellen (Set Item State) de publicatiestatus van het nieuwe item op Active wordt gezet, dan wordt in feite de nul versie van het item geactiveerd. Er is een grote kans dat je hiermee een lege versie activeert en dat er non-informatie aan de voorkant van de site verschijnt. Het probleem in deze is dat de publicatiestatus Prepublished van een nieuw item visueel niet te onderscheiden is van een item dat de publicatiestatus Inactive heeft. Indien hier twijfel over bestaat is het altijd beter om items die de publicatiestatus Prepublished/Inactive hebben via de workflow actief te laten worden.
Let op! Activeer geen items die de publicatiestatus Prepublished hebben en die zich nog in een workflow bevinden
!
Let op!
Smartsite Content Management Server ®
59
Content Management
3.4 Content actualiseren Het actueel houden van de content gebeurt natuurlijk voornamelijk door de redacteuren. Al dan niet gestuurd door een uitgebreide workflow, dragen zij zorg voor de inhoud van de afzonderlijke items. Wanneer de items op deze manier worden bewerkt, zal er over het algemeen aandacht worden besteed aan het gehele item zoals de tekst en de meta-informatie. Het kan zo zijn dat er op een gegeven moment nieuwe meta-informatie beschikbaar is. Tegelijkertijd zou deze meta-informatie moeten worden toegepast op de bestaande items in de boomstructuur - dat betekent dus dat er in een keer meerdere items aangepast moeten worden. Wanneer dit voor elk item afzonderlijk zou moeten gebeuren dan zou dat, zeker naarmate het aantal items toeneemt, een heleboel werk en dus tijd kosten. Een anders situatie die zou kunnen optreden is een naamsverandering van bijvoorbeeld een product of de organisatie. Wanneer bij het opzetten van de site geen gebruik is gemaakt van Translations en de product- of bedrijfsnaam is altijd volledig uitgeschreven, dan zal bij een verandering van die naam alle content moeten worden herzien. Elk item moet doorzocht worden of deze informatie in het item aanwezig is en indien dat het geval is dan moet deze informatie worden aangepast. Voor bovenstaande situaties zijn er twee verschillende acties: Meerdere Items Aanpassen (Update)
en Tekst Vervangen (Replace Text)
. De actie Meerdere Items Aanpassen (Update) is bedoeld voor velden die meta-informatie bevatten en de actie Tekst Vervangen (Replace Text)
is voor het zoeken en vervangen van tekst in items.
3.4.1 Meta-informatie wijzigen Met de actie Meerdere Items Aanpassen (Update) kun je een of meerdere velden van een of meerdere items tegelijk wijzigen. Velden die met deze actie gewijzigd worden bevatten over het algemeen meta-informatie het zijn velden die een lijst van keuzemogelijkheden aanbieden waaruit een gebruiker kan kiezen zoals bijvoorbeeld een lijst van voorgedefinieerde categorieën. De actie Meerdere Items Aanpassen (Update) wijzigt de complete inhoud van een veld. Daarom is deze actie niet geschikt voor het aanpassen van bijvoorbeeld het titel-veld van meerdere items - meerdere items met dezelfde titel is namelijk niet de bedoeling. Welke velden er kunnen worden aangepast met deze actie is bij de opzet van de site vastgelegd - van elk veld van een contenttype kun je aangeven of dat veld de eigenschap BulkUpdatable heeft. Dat betekent dus ook dat bijvoorbeeld een veld Keywords uit het contenttype Web Page wel met de actie Meerdere Items Aanpassen (Update) kan worden aangepast en een veld Keywords uit een ander contenttype niet. Dit alles is namelijk op contenttype niveau geregeld. 60
Velden van meerdere items tegelijk bijwerken: 1. Maak een selectie van items in de boomstructuur en start de actie Meerdere Items Aanpassen (Update) dialoogvenster:
. Er verschijnt een
Figuur 3-7: meta informatie aanpassen
2. Selecteer de velden waarvan je de waarde wilt aanpassen door ze naar rechts te verplaatsen en klik op Volgende (Next)
;
3. Selecteer nieuwe waarden voor de geselecteerde velden; 4. Selecteer de optie Include Children wanneer je de aanpassingen niet alleen op de geselecteerde items wilt uitvoeren maar ook op de ondergelegen kinderen van die items; 5. Klik op Voltooien (Finish) op Vorige (Back)
om de velden aan te passen. Klik
om terug te gaan en andere velden te selecte-
ren. Klik op Sluiten (Close) wijzigingen door te voeren.
om de actie af te sluiten zonder de
Let op! Wanneer je een selectie hebt gemaakt en je start de actie Meerdere Items Aanpassen (Update)
dan kun je soms een melding krijgen:
Smartsite Content Management Server ®
61
Content Management
Figuur 3-8: Geen gerelateerde contenttypes
Deze melding treedt op op het moment dat de selectie van items meerder contenttypes bevat terwijl die contenttypes niet in dezelfde groep zitten. Wanneer je deze actie gebruikt dan kun je deze het beste toepassen op items van hetzelfde contenttype.
!
Let op! Wanneer je toch meerdere contenttypes in de selectie hebt, let dan op dat de implementatie op de velden gelijk is. Twee contenttypes kunnen wel in dezelfde groep zitten maar bijvoorbeeld een andere thesaurus gebruiken op het veld Keywords.
Let op! Wanneer in de selectie van items, waarop je de actie Meerdere Items Aanpassen (Update) wilt uitvoeren, meerdere contenttypes aanwezig zijn dan zullen alleen die velden getoond worden die in beide contenttypes aanwezig zijn.
Voorbeeld Het contenttype Web Page heeft drie velden die aangepast kunnen worden met de actie Meerdere Items Aanpassen (Update) : ShowFrom, ShowUntil en Keywords. Een ander contenttype uit dezelfde groep heeft maar twee velden die met deze actie kunnen worden aangepast: ShowFrom en ShowUntil. Bij het starten van de actie zullen daarom alleen de velden ShowFrom en ShowUntil getoond worden wanneer er items van beide contenttypes in de selectie zitten.
Wanneer de actie wordt uitgevoerd dan worden de velden van de alle geselecteerde items gewijzigd. Waneer een van deze velden ook aan versiebeheer onderhevig is dan betekent dat in feite dat er een nieuwe versie van het item is gemaakt. Een nieuwe versie van een item moet eerst een workflow doorlopen voordat het item actief gemaakt kan worden.
3.4.2 Tekst in meerdere items aanpassen Velden als het Title veld, het Body veld en het Description veld bevatten tekst. Wanneer je in deze tekst iets wilt vervangen dan moet je allereerst het item openen, de tekst doorzoeken op de woorden die je wilt vervangen en daarna het item opslaan. Vaak is er dan ook nog sprake van een workflow die het item moet doorlopen en pas wanneer die is afgerond wordt de gewijzigde content zichtbaar. De hierboven beschreven levenscyclus van een item is redelijk omslachtig als je een bepaalde term in meer dan een item wilt vervangen. Met de actie Tekst Vervangen (Replace Text)
is dat een stuk eenvoudiger.
Tekst in meerdere items tegelijkertijd vervangen: 1. Start de actie Tekst Vervangen (Replace Text) of maak eerst een selectie van items die waarin je wilt zoeken en vervangen. Er wordt een dialoogvenster geopend:
Figuur 3-9: Tekst zoeken en vervangen
2. Typ in het veld Search de tekst die je wilt zoeken;
Smartsite Content Management Server ®
63
Content Management
3. Selecteer de contenttypes die je wilt doorzoeken en nadat je de contenttypes hebt gekozen selecteer je de velden die je wilt doorzoeken; 4. Pas de instellingen op het tabblad Advanced aan en klik op Zoeken (Search) . Het dialoogvenster toont een lijst van items die voldoen aan de zoekcriteria; 5. Selecteer de items waarin je de tekst wilt vervangen en typ in het veld Replace de nieuwe tekst; 6. Klik op Vervangen (Replace) gen.
. De gezochtte tekst wordt nu vervan-
Let op! Het tabblad Advanced toont een aantal instellingen die je kunt gebruiken bij het zoeken naar de tekst die je wilt vervangen:
Parameter
Omschrijving
Channel
Er kan heel specifiek op content worden gezocht die alleen in een bepaald channel bestaat.
Modified From Alleen die content wordt doorzocht die na een bepaalde datum is bewerkt. Modified to Only my items
Alleen die content wordt doorzocht die voor een bepaalde datum is bewerkt. Alleen items die door jou zijn aangemaakt worden doorzocht. Tabel 3-6: Instellingen voor het zoeken en vervangen van tekst.
!
Let op! Deze actie moet met de nodige zorgvuldigheid worden gebruikt want het verkeerd of onzorgvuldig gebruiken van deze actie kan enorme gevolgen hebben voor de site.
Let op! De actie Tekst Vervangen (Replace Text) heeft een aantal kanten die maken dat je deze actie met de nodige zorgvuldigheid moet toepassen: 1. Allereerst houdt deze actie geen rekening met hoofdletters en kleine letters. Bij het vervangen van de tekst wordt de gevonden tekst, al dan niet met een hoofdletter, vevangen door de tekst die je in het veld Replace hebt opgegeven; 2. Afhankelijk van hoe je je zoekterm definieert wordt er geen rekening meegehouden of het een heel woord betreft of een deel van een woord. Wanneer je bijvoorbeeld zoekt op ‘site’ dan resulteert dat in woorden als ‘Smartsite, ‘site’ en ‘sitebezoekers’. Wanneer ik nu de tekst vervang door ‘website’ dan heeft dat in twee van de drie gevallen een goed resultaat. Dat ‘Smarsite’ door ‘Smartwebsite’ wordt vervangen is duidelijk niet de bedoeling. Dit kun je voorkomen door in je zoekcriteria ook spaties op te nemen. 64
Wanneer je als zoekterm bijvoorbeeld ‘ site ‘ gebruikt, dan zullen ‘Smartsite’ en ‘sitebezoekers’ niet aan dat patroon voldoen; 3. Alle tekst die aan de zoekcriteria voldoet wordt vervangen - ook wanneer die tekst in een macro staat. Een macro is een bouwsteen die een pagina dynamisch maakt. Een macro genereert bijvoorbeeld automatisch verwijzingen naar kinderen van een folder of toont een sitemap. Een veelgebruikte macro is bijvoorbeeld ‘Links’, die verwijzingen naar onderliggende kinderen toont. Wanneer in items veelvuldig gebruik gemaakt wordt van de term ‘links’ en je wilt deze tekst vervangen door het woord ‘referentie’ dan moet je bij het selecteren van de items goed in de gaten houden dat in de selectie van items waarin je wilt zoeken en vervangen niet de macro ‘Links’ voorkomt. Deze tekst wordt dan ook vervangen door ‘Referentie’ en die macro is niet bekend. Bij het doorzoeken van de tekst kun je opgeven of je alleen de geselecteerde items wilt doorzoeken, alle items die in de geselecteerde view zitten wilt doorzoeken of dat je de gehele boomstructuur wilt doorzoeken (optioneel). Het moge duidelijk zijn dat de eerste optie de minste kans geeft op het onverhoopt vervangen van tekst die niet vervangen had moeten worden. Ook nu geldt dat, wanneer de actie wordt uitgevoerd, en de tekst die wordt vervangen staat in een veld dat aan versiebeheer onderhevig is, het item toegekend wordt aan diegene die deze actie uitvoert. De items moeten nu eerst een workflow doorlopen, en kunnen daardoor gecontroleerd worden, voordat zij actief worden en de wijzigingen daardwerkelijk zijn doorgevoerd aan de voorkant van de site.
3.4.3 Gewijzigde items versneld activeren Wanneer een groot aantal items is gewijzigd met de actie Meerdere Items Aanpassen (Update)
of met de actie Tekst Vervangen (Replace
Text) dan worden deze items toegekend aan de gebruiker die die actie heeft uitgevoerd. Deze items moeten nu dus eerst een workflow doorlopen voordat zij actief worden. Dit natuurlijk onder het voorbehoud dat een van de velden waarin een wijziging is aangebracht ook onderhevig is aan versiebeheer. Met de actie Workflow Zetten (Set Workflow) kun je nu de items onder verschillende redacteuren verdelen en hen de opdracht geven om de items te controleren. Wanneer je er echter van overtuigd bent dat de wijzigingen goed zijn dan is het traject van het toekennen aan verschillende redacteuren en het doorlopen van een workflow onnodig werk. In dat geval gebruik je de actie Workflow Beheren (Manage Workflow) . Op het eerste tabblad Assigned vind je de items terug die aan jou zijn toegekend. Wanneer je deze items met behulp van de Ctrl- en/of Shift-toets en je muis selecteert en je klikt op de rechter muisknop, dan kun je voor al deze items een nieuwe worfklow-status kiezen. Op deze manier kun je items versneld activeren door de workflow-status Active te kiezen.
Wanneer een site volop in bedrijf is zal de hoeveelheid data die in de Smartsite database wordt opgeslagen meer en meer toenemen. Een groot gedeelte van de informatie die is opgeslagen heeft betrekking op de actieve content. Echter, wanneer de actieve content regelmatig wordt bewerkt zullen er evenredig meer versies van items in de database worden opgeslagen - versies die misschien helemaal niet meer relevant zijn om te bewaren. Met de tijd kan het ook zijn dat items worden verwijderd uit de boomstructuur. Wanneer een item uit de boomstructuur wordt verwijderd wordt het niet uit de database verwijderd. Er bestaat dus nog altijd een mogelijkheid om deze items terug te halen. Over het algemeen zal dat niet nodig zijn en daarom zullen deze verwijderde items na enige tijd onnodige informatie in de database zijn. Soms zal het echter nodig zijn, om juridische redenen, om verwijderde en vervallen conent lang te bewaren. Hierover moeten in je organisatie afspraken worden gemaakt. Voor het beheer en opschonen van de database met betrekking tot content die zijn relevantie heeft verloren (oude versies, verwijderde items) heeft Smartsite een actie: Data management .
Data Management
4.1 Wat is data-management Aan een dynamische site wordt voortdurend content toegevoegd. Deze content doorloopt een cyclus van het aanmaken tot het publiceren en van het creëren van nieuwe versies van een item tot het opnieuw publiceren van deze versies. Alle data wordt in de Smartsite database opgeslagen. De belangrijkste tabel waarin deze content is opgeslagen is de Contents tabel. Deze bevat alle actieve, inactieve en verwijderde content die aan de hiërarchie van de site zijn toegevoegd. Daarnaast staan in de ContentVersions tabel alle versies die van de verschillende items in de site zijn aangemaakt. Elke keer waneer een gewijzigd item wordt opgeslagen wordt er een nieuwe regel aan deze tabel toegevoegd. In een actieve site kan veel gebruik worden gemaakt van taken. Verschillende gebruikersgroepen kunnen voor zichzelf, andere leden van de groep of voor (leden van) andere groepen taken aanmaken waarin men verzoeken tot bepaalde handelingen opneemt. Ook vanuit de workflow kan het zijn dat er voortdurend taken worden gegenereerd waarin gebruikers van de Smartsite Manager op de hoogte worden gesteld van het feit dat er handelingen met betrekking tot een specifiek item van hen worden verwacht. Taken worden ook in de database opgeslagen. Na verloop van tijd kan het zijn dat een groot deel van de data die in de database is opgeslagen niet meer relevant is; items met de CMS-status Deleted, tussenversies van items die een aanloop tot de gepubliceerde versie van het item vormden alsmede alle taken die afgesloten en gearchiveerd zijn. De Data Management hulpmiddelen stellen je in staat om deze toevoegingen aan de verschillende tabellen op te ruimen. Overbodige informatie wordt definitef uit de database verwijderd. Het moge duidelijk zijn dat deze actie onomkeerbaar is en dat het verkeerd uitvoeren van deze actie grote gevolgen kan hebben. Je zou kunnen zeggen bij het mislukken van deze actie terug gegrepen kan worden op een back-up van de database maar tussen het moment van het mislukken van de actie en het terugzetten van de database kan door de verschillende gebruikers van de site alweer veel nieuwe informatie zijn toegevoegd die dan verloren gaat. Het is daarom verstandig om voor het gebruik van deze actie een protocol te hanteren waarin duidelijke afspraken zijn gemaakt.
4.2 Een site labelen Op enig moment in de tijd kan de site een bepaalde waarde hebben waar men zeer tevreden over is - (een deel van) de actieve content vertegenwoordigt een bepaalde kwaliteit waar men in een later stadium eventueel op terug zou willen vallen. Je kunt op dat moment (delen van) de hiërarchie voorzien van een label. Wanneer op een later tijdstip blijkt dat de kwaliteit van de site vermindert, om wat voor reden dan ook, dan is het mogelijk om een ‘rollback’ uit te voeren om een eerder gelabelde versie van de site weer actief te maken. Om het terugdraaien van wijzigingen te vereenvoudigen kun je een groep van items en folders voorzien van een label. Dit doe je met de actie Items Labelen (Label Items) . Wanneer je in een later stadium weer terug wilt, gebruik je het label om die versies van items weer terug te halen die aan de kwaliteitseis voldeden. Er kunnen alleen items gelabeled worden die in de historie van versies een actieve versie hebben. Impliciet betekent dat dus dat items die de CMS-status Prepublished hebben niet van een label voorzien kunnen worden - er is nog geen actieve versie van dit item. Omgekeerd betekent dit ook dat items die de CMS-status Archived hebben wel weer voorzien kunnen worden van een label mits er in de versie historie van het gearchiveerde item een actieve versie is. Items die verwijderd zijn kunnen niet worden voorzien van een label om het simpele feit dat deze items niet meer geselecteerd kunnen worden in de boomstructuur.
4.2.1 Gelabelde versies terugzetten Wanneer (delen van) de site zijn voorzien van een label dan is het mogelijk om de versies die dat label dragen weer terug te zetten. In plaats van elk item afzonderlijk te openen en het de gelabelde versie terug te zetten kun je gebruik maken van de actie Data Management Hulpmiddelen (Data Management Tools)
, tabblad Version Labels.
Wanneer de gelabelde versies worden teruggezet zullen deze versies niet direct actief zijn. Een kopie van de gelabelde versie wordt bovenaan de lijst van versies van het item geplaatst. Daarnaast wordt de workflow-status van het item op Assigned gezet en dus is de gebruiker die de actie Data Management Hulpmiddelen (Data Management Tools) - Version Labels gestart heeft, vanaf dat moment verantwoordelijk voor de items. Nu kan men de items een voor een openen en de de workflow-status veranderen in Active. Beter is het natuurlijk om de actie Workflow Beheren (Manage Workflow)
te gebruiken.
Wanneer een nieuwe versie van een item op het moment van terugzetten van een gelabelde versie is onderworpen aan een workflow dan zal de gelabelde versie bovenaan de lijst worden geplaatst. Smartsite Content Management Server ®
69
Data Management
Het is niet altijd mogelijk om een versie terug te zetten. Wanneer een item bijvoorbeeeld verwijderd is dan wordt de gelabelde versie van dat item niet teruggezet. Wanneer de het verwijderde item daarna met de actie Data Management Hulpmiddelen (Data Management Tools) - Deleted Items wordt teruggezet dan zal bij het bewerken blijken dat de laatst actieve versie nog steeds geldig is en niet de gelabelde versie. Ook wanneer een item op het moment van terugzetten wordt bewerkt door een andere gebruiker dan is het niet mogelijk om de gelabelde versie van dat item terug te plaatsen. Bij het starten van de optie Restore wordt daar ook voor gewaarschuwd. Het aantal items dat in gebruik is (‘locked’) zal in het dialoogvenster worden getoond. Gezien bovenstaande obstakels die kunnen optreden bij het terugzetten van versies die voorzien zijn van een label kan de volgende praktische overweging misschien van nut zijn: Probeer altijd een folder en zijn kinderen te voorzien van een label. Op deze manier kun je bij het terugzetten van een gelabelde versie toegangsrechten op die folder en onderliggende items en folders blokkeren. Op dat moment weet je dat er geen items geblokkeerd zijn en dat alle van een label voorziene versies zonder problemen teruggeplaatst kunnen worden. Wanneer een nieuwe versie van een item onderhevig was aan een workflow, stel dan iedereen op de hoogte dat er een oude versie is teruggezet. Anders ontstaat er misschien verwarring onder de redacteuren.
4.3 Verwijderde items Wanneer een item wordt verwijderd met de actie Verwijderen (Delete) dan bestaat dit nog steeds in de database - alleen de waarde van de CMSstatus is aangepast waardoor het item niet meer in de boomstructuur in het viewvenster wordt afgebeeld. Zolang deze verwijderde items nog in de database staan ben je in staat om deze items weer terug te plaatsen in de hiërarchie. Dit mechanisme is te vergelijken met de Prullenbak (Recycle Bin) van Microsoft Windows.
Noot Naast het verwijderen van items uit de hiërarchie met de actie Verwijderen (Delete) kan de de CMS-status van items ook op Archived worden gezet. Het is niet de bedoeling van de actie Verwijderen (Delete) om items even tijdelijk uit het zicht te parkeren om ze daarna weer terug te zetten. Gebruik dan de actie Item Status Instellen (Set Item State) om het item te archiveren en zorg dat de rechten op deze status alleen bij een select aantal gebruikersgroepen liggen.
Anderzijds kan na verloop van tijd blijken dat verwijderd uit de hiërarchie ook echt betekent dat de items niet meer nodig zijn. In dat geval hoeven deze items ook niet meer in de database te worden opgeslagen. Voor beide situaties kun je gebruik maken van de actie Data Management Hulpmiddelen (Data Management Tools) . Wanneer deze actie gestart wordt en je selecteert het tabblad Deleted Items dan krijg je een overzicht van alle items die verwijderd zijn. Door items te selecteren in de lijst en te kiezen voor of de optie Undelete of de optie Purge kunnen deze items respectievelijk teruggezet worden of defintief worden verwijderd. Wanneer items worden teruggezet met de actie Undelete wordt er een dialoogvenster geopend waarin het nummer van de folder kan worden opgegevn waarin de items moeten worden geplaatst. Wanneer alle items uit dezelfde folder komen en de betreffende folder bestaat nog in de boomstructuur dan zal het nummer van die folder al in het tekstvak staan. Komen de items uit verschillende folders of bestaat de folder niet meer dan dien je zelf een folder op te geven.
Figuur 4-1: Een folder selecteren om de eerder verwijderde items terug te zetten.
Smartsite Content Management Server ®
71
Data Management
Items die worden teruggezet krijgen de CMS-status Prepublished maar er wordt geen workflow toegekend aan deze items. Er moet nu een besluit worden genomen of de inhoud van deze eerder verwijderde items van die kwaliteit is om ze direct de CMS-status Active te geven met behulp van de actie Item Status Instellen (Set Item State)
of dat deze items eerst een
workflow (Workflow Zetten (Set Workflow) ) moeten doorlopen voordat zij actief kunnen worden. Wanneer items niet op hun oude plaats in de hiërarchie konden worden gezet zul je ze waarschijnlijk eerst moeten verplaatsen naar de juiste folder. Wanneer men een deel van de hiërarchie heeft verwijderd, ergo, een folder en een aantal onderliggende item en folders, dan kan de optie Include Children helpen bij het terugzetten van dit complete deel van de hiërarchie. Wanneer men in de lijst van de verwijderde items de folder selecteert en zorgt dat de optie Include children is aangevinkt dan zullen bij het terugzetten van de folder alle kinderen recursief worden teruggezet: niet alleen de direct onder deze folder aanwezige items en folders zullen worden teruggeplaatst maar ook alle items die in de onderliggende folders staan worden teruggeplaatst in de boomstructuur. Naast het terugzetten van items met de CMS-status Deleted in de boomstructuur kunnen de items met deze status ook definitief uit de database worden verwijderd. Daarvoor wordt de optie Purge
gebruikt in de actie Data
Management op het tabblad Deleted Items. Wanneer deze optie wordt gestart worden alle geselecteerde items in de lijst permanent verwijderd.
Let op! Met deze optie worden de items definitief uit de Contents tabel in de database verwijderd. Ook alle bij dit item horende versies in de ContentVersions tabel zullen worden verwijderd. Deze actie kan niet ongedaan gemaakt worden anders dan het terugzetten van een back-up van de database. Echter, tussen het verwijderen en het terugzetten van de back-up kunnen er wijzigingen op de site plaatsvinden die door het terugzetten van de back-up teniet gedaan worden.
4.4 Gearchiveerde taken opruimen Taken die met de actie Taken Beheren (Manage Tasks) zijn gearchiveerd kunnen met de actie Data Management Hulpmiddelen (Data Management Tools) - Archived Tasks worden opgeruimd. Er zijn verschillende soorten taken en deze actie geeft de mogelijkheid om deze selectief op te ruimen. Voor een overzicht van hoeveel taken er gearchiveerd zijn kun je gebruik maken van de optie Statistics . Wanneer je hier op klikt krijg je een overzicht van de taken die gearchiveerd zijn. Een overzicht van gearchiveerde taken kun je ook weer terugvinden op tabblad Archive van de actie Taken Beheren (Manage Tasks)
Figuur 4-2: Een overzicht van gearchiveerde taken
Nadat je een selectie hebt gemaakt van het soort taken dat je wilt verwijderen en hebt aangegeven van voor welke datum je de taken weg wilt gooien, klik je op Purge . De gearchiveerde taken worden nu permanent uit de database verwijderd.
Smartsite Content Management Server ®
73
Data Management
4.5 Versies opruimen Items en folders in de site worden steeds weer opgenomen in de ‘content life- cycle’ - de informatie in items wordt voortdurend aangepast en door de toegepaste workflow verandert de status van het item voortdurend wanneer anderen in de organisatie zich over de inhoud buigen. Elke keer wanneer er wijzigingen in het item worden aangebracht en het item wordt opgeslagen zal er een nieuwe versie van het item in de ContentVersions tabel in de Smartsite database worden aangemaakt. Ook wanneer de workflow-status van een item wordt aangepast wordt er een nieuwe versie aan deze tabel toegevoegd. Na verloop van tijd kan het aantal versies van een item aanzienlijk worden en kun je je afvragen hoeveel waarde er nog aan die versies gehecht dient te worden. Wanneer een redacteur tijdens het bewerken van een item deze regelmatig opslaat met de workflow-status Busy en daarna verder gaat waar hij gebleven was, ontstaat er elke keer een nieuwe versie die in feite geen waarde heeft: het zijn maar tussenversies. Echter, wanneer een redacteur besluit om het item naar een volgende status in de worfklow te sturen, bijvoorbeeld Ready For Approval, dan betekent dat hoogst waarschijnlijk dat de informatie in het item compleet is. Wanneer het item uiteindelijk de workflow-status Active krijgt dan is de informatie in het item volledig en gecontroleerd. Bij het verwijderen van versies zullen we zien dat het verschil, of juist het ontbreken daarvan, tussen de workflow-status waarmee een versie van een item wordt geopend en de workflow-status waarmee het wordt opgeslagen leidend is bij het opruimen van oude versies. Het is duidelijk dat niet alle versies die tijdens deze cyclus zijn aangemaakt bewaard hoeven te worden. De actie Data Management Hulpmiddelen (Data Management Tools)
- Content versions kan daabij helpen.
Allereerst dient er een keuze gemaakt te worden welke versies verwijderd moeten worden. Er zijn drie mogelijkheden: • Only purge intermediate versions: verwijdert alle versies waarvan de workflow-status niet veranderd is;
Voorbeeld Een item heeft de workflow status Busy en wordt bewerkt. Bij het opslaan wordt het item weer met de status Busy opgeslagen. De workflow-status is dus niet gewijzigd.
• Purge Audit Trails, keep Activated versions: Alle versies van items die zijn opgeslagen met de workflow-status Active zullen worden bewaard. De overige versies zullen worden verwijderd; • Purge al versions: Alle versies voor die versie die het laatst de workflow-status Active heeft bereikt worden verwijderd.
Standaard wordt er gekeken vanuit de laatste versie die de workflow-status Active heeft bereikt. Alle versies die eerder zijn aangemaakt komen in aanmerking om verwijderd te worden. Deze randvoorwaarde kan worden aangepast door te kiezen voor een ander tijdstip. Er kan gekozen worden voor een bepaalde termijn (week, maand, jaar) of er kan heel expliciet een datum worden opgegeven. Wanneer een startdatum wordt gekozen dan moet een versie aan beide voorwaarden voldoen voordat deze opgeruimd wordt. Er wordt nu niet gekeken naar de eerstvolgende versie vanaf de geselecteerde datum die actief is geweest, maar alle versies die aan en de datum en de overige selectiecriteria voldoen worden verwijderd.
Formulieren zijn hulpmiddelen waarmee informatie kan worden verkregen van mensen die een site bezoeken. Een formulier biedt de bezoeker een verzameling velden die hij dient in te vullen, waarna deze informatie verzonden kan worden. Na ontvangst van deze informatie kan deze op verschillende manieren verwerkt worden: als item, als e-mail of als record in een aparte tabel van de Smartsite database. Bij het definiëren van een formulier kun je gebruik maken van elementen die je ook binnen de Smartsite Manager tegenkomt; tekstvelden, dropdown lijsten, HTML tekstvelden en de kalender zijn enkele voorbeelden. Deze velden zijn op eenvoudige manier toe te voegen en door het aanpassen van de eigenschappen van zo’n veld kun je het gedrag bepalen. Velden kunnen bijvoorbeeld een maximaal aantal tekens bevatten of de informatie in een veld moet voldoen aan een bepaald patroon voordat de informatie kan worden verstuurd. Nadat het formulier is gedefinieerd moet het in een item worden ingevoegd. Daarvoor maak je gebruik van een Smart Embedding Macro. Deze macro maakt het eenvoudig om het formulier in een item te plaatsen. Je bent niet gebonden aan een item. Je kunt het formulier, door het gebruik van de macro, ook in meerdere items plaatsen. Afhankelijk van de gekozen databinding wordt de informatie van het verstuurde formulier verder verwerkt. De basis van elk verzonden formulier is echter dat de informatie in ieder geval in XML formaat wordt opgeslagen. Hierdoor is de informatie altijd makkelijk te transformeren naar een ander formaat zodat de informatie op vele manieren verwerkt kan worden.
Formulieren
5.1 Wat zijn formulieren Een formulier gebruik je aan de voorkant van je site om informatie van bezoekers te verkrijgen. Welke informatie er gevraagd wordt kan van organisatie tot organisatie verschillen. Je kunt bijvoorbeeld denken aan een reactie formulier, een aanvraag voor een informatiepakket maar ook een formulier waarin men een aanvraag doet voor een inlognaam en wachtwoord om een afgeschermd gedeelte van de site te mogen bezoeken.
Figuur 5-1: Een formulier
De opbouw van een formulier bestaat uit verschillende velden die door een bezoeker moeten worden ingevuld. Om er voor te zorgen dat de bezoeker zoveel mogelijk correcte informatie invult zijn deze velden vaak voorzien van een zogenaamde validatie; een veld mag bijvoorbeeld niet leeg zijn of een veld mag niet leeg zijn en de inhoud moet voldoen aan een bepaald patroon - denk bijvoorbeeld aan een postcode. Deze validatie van velden vindt plaats op het moment dat de bezoeker de velden heeft ingevuld en het formulier gaat verzenden; de informatie wordt vervolgens teruggestuurd naar de server waarna Smartsite deze informatie kan gaan verwerken. Indien bij het verzenden de velden niet correct waren ingevuld - als de inhoud van de velden niet gevalideerd kan worden aan de opgelegde regels - dan krijgt de bezoeker een waarschuwing en moet hij deze velden opnieuw invullen. Indien de velden wel correct zijn ingevuld wordt de bezoeker vaak doorverwezen naar een pagina waarin hij bijvoorbeeld bedankt wordt voor het invullen, hij kan lezen welke vervolgacties er worden ondernomen of hij een samenvatting krijgt van de ingevulde gegevens.
Figuur 5-2: Niet alle velden zijn correct ingevuld
De informatie die wordt teruggestuurd naaar de server moet worden opgeslagen zodat deze gebruikt kan worden. Er zijn verschillende manieren om de informatie op te slaan. De informatie van het formulier kan: • als e-mail naar een (lijst van) geadresseerde(n) worden gestuurd; • in een tabel worden opgeslagen; • in een item worden opgeslagen; • door een speciaal component op andere wijze verwerkt worden afgehandeld. Een formulier bestaat uit verschillende velden. Alle velden die je bij het werken met de Smartsite Manager gebruikt zijn ook te gebruiken in een formulier: bijvoorbeeld tekstvelden, uitgebreide tekstvelden, datumselectie, multiselect lijsten enz. Deze velden kunnen, analoog aan contenttypes, over meerder tabbladen worden verdeeld. Op deze manier krijgt de bezoeker een overzichtelijk formulier gepresenteerd om in te vullen. De definitie van een formulier wordt vastgelegd in een item van het contenttype Form. Wanneer een formulier is gedefinieerd kun je het gebruiken in andere items. Om een formulier in een item te plaatsen maak je gebruik van een SmartEmbedding Macro, ook wel SE Macro of kortweg macro genoemd. Deze macro is in feite niets anders dan een verwijzing naar het betreffende item dat de definitie van het formulier bevat. Daarnaast kunnen er in een macro nog extra instellingen worden gedaan.
Smartsite Content Management Server ®
79
Formulieren
5.2 Een nieuw formulier toevoegen Een nieuw formulier maak je aan met de actie Formulier Toevoegen (Add Form) . Vaak is er voor de formulieren een speciale CMS-folder aangemaakt waar de veschillende definities van formulieren worden geplaatst. Wanneer je de actie Formulier Toevoegen (Add Form) schijnt er een dialoogvenster.
start ver-
Figuur 5-3: Een keuze maken voor de afhandeling van de data
In dit dialoogvenster krijg je een lijst van mogelijke vormen van databindingen. Dat is een technische term voor wat er moet gebeuren met de informatie in het formulier wanneer het verzonden wordt. Zoals eerder besproken zijn er vijf mogelijkheden:
Databinding
Omschrijving
Default Source
Wanneer een formulier verzonden wordt, wordt het in de tabel PostedFormData in de Smartsite database opgeslagen.
Save as Item, field Body De informatie wordt opgeslagen in een item van een contenttype dat je selecteert. De informatie die door de bezoeker is ingevuld wordt in XML formaat in het bodyveld van het item weggeschreven. Save as Item
De informatie wordt opgeslagen in de afzonderlijke velden van een item van een bepaald contenttype.
Send e-mail
De informatie wordt per e-mail verzonden aan een (lijst van) geadresseerde(n). De informatie wordt in XML formaat in de body van de e-mail geplaatst.
Database table
De informatie wordt opgeslagen in de afzonderlijke velden van een tabel in de Smartsite database. Tabel 5-1: Vormen van databinding
Afhankelijk van de keuze die je maakt voor een bepaald type databinding krijg je een vervolgscherm. Gevoelsmatig kunnen we nu al zeggen dat bij bijvoorbeeld Save as Item, field Body een dialoogvenster wordt verwacht wat ons een keuze laat maken welk contenttype we daarvoor willen gebruiken. Evenzo moet er bij de keuze voor het type databinding Database Table een lijst van tabellen getoond worden waaruit we een keuze kunnen maken.
5.2.1 Default Source Wanneer gekozen wordt voor Default Source wordt de data in de tabel PostedFormData in de Smartsite database opgeslagen. Beter gezegd: de data wordt in het veld FormData van een nieuw record in de tabel PostedFormData opgeslagen. De overige velden van deze tabel bevatten informatie over bijvoorbeeld de datum dat het formulier is ingediend eb welk formulier het betreft. Feitelijk is het zo dat elk formulier dat wordt verstuurd, ongeacht het type databinding, in deze tabel wordt opgeslagen. Alle hierna volgende opties met betrekking tot het opslaan van de formulieren zijn uitbreidingen die de data van het formulier ook nog op een andere manier presenteren, bijvoorbeeld als item van een bepaald contenttype of als aparte tabel. Deze toegevoegde mogelijkheden bieden weer extra mogelijkheden zoals het toepassen van een workflow wanneer een ingevuld formulier als item wordt toegevoegd. De informatie die in het item staat kan nu langs een aantal personen geleid worden die op hun beurt iets met die informatie kunnen doen.
5.2.2 Save as Item, field Body Wanneer een formullier aan het bodyveld van een item wordt gekoppeld dan betekent dit dat er elke keer wanneer een formulier wordt verzonden er een nieuw item wordt aangemaakt. Dit item is van een bepaald contenttype en dit item moet worden aangemaakt onder een bepaalde folder. Verder moet er aan dit item een workflow gekoppeld worden zodat een gebruiker van de Smartsite Manager op de hoogte wordt gebracht dat er een nieuw item is aangemaakt waarin informatie staat.
Smartsite Content Management Server ®
81
Formulieren
Figuur 5-4: Formulieren binden aan het Bodyveld van een item
Veld
Omschrijving
Parent
Het nummer van de folder waaronder het nieuwe item automatisch wordt aangemaakt.
Contenttype
Het contenttype dat gebruikt wordt voor de verstuurde informatie. Omdat de informatie als XML in het Bodyveld wordt opgeslagen heeft het contenttype XML de voorkeur.
Assign Workflow
De workflow die op het item moet worden toegepast op het moment dat het item met de verstuurde informatie wordt toegevoegd.
Select User Group De gebruikersgroep aan wie het item moet worden toegekend. Select User
De gebruiker in de geselecteerde gebruikersgroep aan wie het item moet worden toegekend.
Upload Files To
De map op de server waar bestanden, die als onderdeel van het formulier worden meegezonden, moeten worden geplaatst. Tabel 5-2: Databinding met het Bodyveld van een item
82
Noot Omdat de informatie, die vanuit het formulier verzonden wordt, als XML wordt opgeslagen in het Bodyveld van het item is het contenttype XML een praktisch contenttype om hiervoor te gebruiken.
5.2.3 Save as Item Wanneer je een formulier aan een compleet contenttype koppelt dan wordt elke keer dat een formulier wordt verstuurd een nieuw item van dat contenttype aangemaakt. De informatie uit de verschillende velden van het formulier worden in de overeenkomstige velden van het contenttype geplaatst.
Figuur 5-5: Databinding met een contenttype
Veld
Omschrijving
Contenttype
Het contenttype dat gebruikt wordt voor de verstuurde informatie. Bij de opbouw van het formulier kun je uitsluitend velden selecteren die binnen dit contenttype bestaan.
Assign Workflow
De workflow die op het item moet worden toegepast op het moment dat het item met de verstuurde informatie wordt toegevoegd.
Select User Group
De gebruikersgroep aan wie het item moet worden toegekend.
Select User
De gebruiker in de geselecteerde gebruikersgroep aan wie het item moet worden toegekend. Tabel 5-3: Instellingen voor databinding met een contenttype
Wanneer voor deze optie wordt gekozen, gebruik je over het algemeen een contenttype dat speciaal hiervoor gemaakt is. Het heeft geen praktisch nut om bijvoorbeeld het contenttype WebPage te gebruiken; daarmee zou je bezoekers aan de voorkant van de site de mogelijkheid bieden om informatie Smartsite Content Management Server ®
83
Formulieren
toe te voegen. Weliswaar moet het item waarin de informatie is opgeslagen, indien gekoppeld aan een worfklow, nog een pad afleggen langs verschillende mensen, toch is het niet de manier om informatie op deze manier toe te voegen aan de site. Deze optie zal daarom ook voornamelijk door sitebouwers gebruikt worden als basis voor bijvoorbeeld een discussieforum.
5.2.4 Send Email Een formulier kan gekoppeld worden aan een e-mail. In dat geval wordt de informatie die is ingevuld en opgestuurd per e-mail doorgestuurd aan een of meer geadresseerden. De informatie wordt in XML formaat in de body van het e-mail bericht opgeslagen.
Figuur 5-6: Databinding met een e-mail
De ontvangers van de het bericht worden in het veld Recipient ingevoerd. De verschillende e-mail adressen worden door puntkomma’s van elkaar gescheiden. De titel van het e-mail bericht typ je in het veld Message Subject Format. In de titel van het bericht kun je de informatie van een van de velden weergeven door deze als %fieldname% in de titel te vermelden.
Voorbeeld Een formulier voor het aanvragen van informatie bevat het veld ‘Name’. De titel van het e-mail bericht is: ‘%Name% wil een informatiepakket’. Wanneer de heer J. Jansen het formulier invuld en verstuurt dan wordt de titel van het mailtje ‘J. Jansen wil een informatiepakket’.
5.2.5 Database Table Een formulier dat gekoppeld is aan een tabel is in staat om velden van de tabel aan de bezoeker te tonen. De informatie die de bezoeker via het formulier verstuurt, wordt weer in die betreffende velden van de tabel opgeslagen. Bij het toevoegen van een formulier moet je dus een keuze maken welke tabel je hiervoor wilt gebruiken.
Figuur 5-7: Een formulier aan een tabel in de database koppelen
Analoog aan formulieren die gekoppeld zijn aan een contenttype, geldt nu ook dat dit soort formulieren vaak al bij de opzet van de site worden geïmplementeerd. Voor het uitlezen van de tabel moet je namelijk weer een aparte actie maken die het mogelijk maakt om de wijzigingen in de tabel te volgen. Daar zijn binnen Smartsite voldoende mogelijkheden voor maar het valt buiten het kader van deze sitemanager handleiding.
5.2.6 Databinding eigenschappen wijzigen De keuzes die bij het aanmaken van het formulier met betrekking tot databinding worden gemaakt kunnen in een later stadium gewijzigd worden. De menubalk van het item bevat de knop Configure data binding . Wanneer je daar op klikt wordt het dialoogvenster geopend dat bij de gekozen databinding hoort.
Smartsite Content Management Server ®
85
Formulieren
5.3 Het formulier definiëren Nadat de keuze voor de databinding van het formulier is gekozen moet het formulier zelf gedefinieerd worden. De actie Formulier Toevoegen (Add Form)
, en natuurlijk ook de actie Formulier Bewerken (Edit Form)
, worden in het actievenster uitgevoerd.
Figuur 5-8: Een formulier opzetten
De basis van een formulier is een lege tabel met twee kolommen en vier rijen. Het is de bedoeling dat de afzonderlijke cellen van de tabel gevuld worden met elementen. Er zijn twee elementen:
Element Omschrijving Field
Een invoerveld op het formulier
Caption
Een bij een veld behorende titel die duidelijk maakt welke informatie er in dat veld verwacht wordt. Tabel 5-4: Formulier elementen
Voor dat je het formulier gaat maken geef je het item van het contenttype Form eerst een titel en een FormID. Standaard wordt een zeer complexe FormID gegenereerd. Deze kun je eenvoudig vervangen door je eigen code. Wanneer je het formulier met behulp van een macro gaat toevoegen aan een item kun je op twee manieren dit formulier aanroepen: 1. op basis van het nummer van het item dat het formulier bevat;
2. op basis van de code die je aan het formulier hebt meegegeven. Het spreekt voor zich dat de code van het formulier uniek moet zijn omdat er anders conflicten ontstaan. Echter, wanneer je een code gebruikt die al in een ander item wordt gebruikt dan zul je daar voor gewaarschuwd worden.
5.3.1 Elementen toevoegen De basis van een formulier is een tabel. Elke cel van een tabel kan gevuld worden met een element. Een Field-element voeg je toe met de optie Add Field. Een Caption-element met de optie Add Caption. Omdat een caption onlosmakelijk is verbonden aan een Field-element kun je pas een Caption-element toevoegen op het moment dat je een Field-element hebt toegevoegd.
Elementen toevoegen: 1. Selecteer een cel in de tweede kolom; 2. Klik op de optie Veld Toevoegen (Add Field) in de knoppenbalk of in het contextmenu (rechter muisknop) of dubbelklik op de geselecteerde cel. Er verschijnt een dialoogvenster:
Figuur 5-9: Een Field-element selecteren
3. Selecteer een element dat je wilt toevoegen uit de lijst op het tabblad Library en klik op Volgende (Next)
;
4. Geen het veld een naam en een bijschrift en klik op Voltooien (Finish)
. Het veld wordt nu in de cel geplaatst;
5. Selecteer de cel links van de cel waarin je het Field-element hebt geplaatst;
Smartsite Content Management Server ®
87
Formulieren
6. Klik op de optie Bijschrift Toevoegen (Add Caption) in de knoppenbalk of in het contextmenu. Er wordt een dialoogvenster geopend:
Figuur 5-10: Een Caption-element selecteren
7. Selecteer de bij het Field-element horende Caption en klik op OK . Het Caption-element wordt nu in de cel geplaatst.
Let op! Wanneer je nu op het tabblad Preview kijkt krijg je een indruk van hoe het formulier er uit gaat zien:
Figuur 5-11: Een formulier met een veld en een bijschrift
Dit is de manier waarop Field-elementen en Caption-elementen worden toegevoegd. In bovenstaand voorbeeld hebben we een vrij logische indeling gehanteerd waarbij het Caption-element en het Field-element op een regel in de tabel staan en waarbij het Caption-element links van het Field-element staat. De celindeling van de tabel kan echter compleet worden aangepast. Dat betekent dat je helemaal vrij bent om de indeling van het formulier aan te passen omdat je de Field- en Caption-elementen in willekeurige cellen van de tabel kunt plaatsten. Voor het aanpassen van de tabel zijn er een aantal opties die je kunt gebruiken. Deze worden hier niet besproken omdat ze algemeen bekend worden verondersteld.
De velden van het formulier kunnen ook over meerdere tabbladen worden verdeeld. Wanneer je de eerste keer op Tab Toevoegen (Add Tab) klikt wordt de bestaande tabel omgezet in een tabblad. De volgende keer dat je op Tab Toevoegen (Add Tab) klikt wordt er een nieuwe tabel toegevoegd. Elk van deze tabellen heeft nu linksboven de naam van het tabblad.
Noot Elk tabblad moet een unieke naam hebben.
Wanneer je met de rechter muisknop op de naam van de tab klikt krijg je een contextmenu te zien. Met de opties in het tabblad kun je een tabblad toevoegen, verwijderen, hernoemen en verplaatsen.
Let op! Wanneer je een tabblad verwijderd worden ook alle op dat tabblad geplaatste elementen verwijderd.
!
De preview van een formulier is niet precies WYSIWYG. Immers, het uiterlijk van het formulier zal voor een niet onbelangrijk deel worden bepaald door de pagina waar op het formulier straks zal worden geplaatst.
Let op!
Smartsite Content Management Server ®
89
Formulieren
5.4 Eigenschappen van elementen Wanneer een Field-element wordt toegevoegd met de optie Veld Toevoegen (Add Field) wordt er een hele lijst getoond van mogelijke elementen die kunnen worden ingevoegd. Elk element, binnen Smartsite worden ze ook wel webControls genoemd, kan worden aangepast door zijn eigenschappen te veranderen. Door de gewijzigde eigenschappen zal het element zich anders gedragen. De eigenschappen van een Field-element kun je wijzigen door op het geplaatste element te dubbelklikken of door het element te selecteren en de optie Veld Bewerken (Edit Field) te selecteren. Er wordt dan een dialoogvenster geopend met de eigenschappen van het geselecteerde Field-element. De Field-elementen zijn in een aantal categorieën te verdelen: • Field-elementen waarin tekst getypt moet worden; • Field-elementen waar een keuze kan worden gemaakt uit een vooraf gedefinieerde lijst; • Overige Field-elementen.
5.4.1 Tekstelementen De volgende Field-elementent zijn tekst elementen: • Textbox • TextArea • Emailbox • Postcode • Password. Een Textbox heeft de volgende eigenschappen:
Eigenschap
Omschrijving
Caption
Het bijschrift van een Field-element. Het bijschrift kan ook gewijzigd worden door het bijschrift in de tabel te selecteren en op Bijschrift Bewerken (Edit Caption)
te klikken.
Line count
Het aantal regels waaruit de Textbox bestaat. Standaard is dat 1 regel. Wanneer je voor meer regels kiest dan verandert de Textbox in feite in een TextArea.
Word wrap
Wanneer een Textbox meer dan een regel heeft dan bepaalt deze optie of de tekst automatisch wordt afgebroken wanneer een zin het einde van de Textbox bereikt. Tabel 5-5: Eigenschappen van een tekstveld
Het maximum aantal karakters dat in de Textbox kan worden getypt.
Input validation
Een patroon waaraan de invoer moet voldoen voordat het formulier verstuurd kan worden.
Validation failure message
De melding die moet worden gegeven wanneer de ingevoerde informatie in dit veld niet aan het patroon voldoet.
Allow Empty
Hiermee bepaal je of een veld verplicht ingvuld dient te worden voordat het formulier vestuurd wordt of dat het leeg mag blijven. Tabel 5-5: Eigenschappen van een tekstveld
De overige Field-elementen zijn afgeleiden van de de Textbox. Enkele eigenschappen zijn al ingevuld waardoor het gedrag anders is.
Voorbeeld Het element TextArea is een TextBox met meerdere regels waarbij de tekst automatisch overgaat naar de volgende regel wanneer de zin het einde van het tekstveld bereikt. Het element Postcode is een element dat maar maximaal 7 karakters kan bevatten en waarbij de invoer moet voldoen aan het patroon 1234 AB.
De lastigste eigenschap van een tekstelement is de Input validation. Met behulp van een Input validation bepaal je het patroon waaraan de invoer moet voldoen voordat het formulier verstuurd kan worden. Deze validaties maak je met behulp van ‘regular expressions’. De syntax van ‘regualar expressions’ is niet uit te leggen in een kort tijdbestek. Op het World Wide Web zijn een groot aantal sites die zich in deze materie verdiepen en die je een goed beeld geven van de mogelijkheden.
5.4.2 Lijstelementen Lijst elementen bevatten een lijst van voorgedefineerde optie waaruit een keuze gemaakt moet worden. De volgende elementen gedragen zich als lijstelement: • CheckBoxList • RadioButtonList • DropDownList • DualList • DropdownCombo. Wanneer je de eigenschappen van een lijstelement gaat bewerken wordt je in staat gesteld om de verschillende opties aan de lijst toe te voegen.
Smartsite Content Management Server ®
91
Formulieren
Figuur 5-12: Opties toevoegen aan een lijst
Het toevoegen, bewerken, verplaatsen en verwijderen van opties doe je met de verschillende knoppen. Bij het toevoegen van opties moet je een Caption en een Value opgeven. De Caption van een optie wordt afgebeeld in de lijst, de Value van een optie wordt verstuurd.
Voorbeeld Een RadioButtonList wordt gebruikt om een Ja/Nee situatie te creëren op het formulier. Daartoe worden er twee opties toegevoegd aan de RadioButtonList. Optie een heeft als Caption ‘Ja’ en als Value ‘J’. Optie twee heeft als Caption ‘Nee’ en als Value ‘N’. In het formulier worden deze twee opties afgebeeld als ‘Ja’ en ‘Nee’. Wanneer het formulier echter wordt verstuurd dan zullen de waarden ‘J’ of ‘N’ verstuurd worden.
5.4.3 Overige elementen Naast tekst- en lijstelementen zijn er nog een aantal andere elementen die gebruikt kunnen worden op een formulier: Element
Omschrijving
htmlEdit
Een uitgebreid tekstveld waarmee de tekst op een eenvoudige manier kan worden voorzien van opmaak.
Label
Een label wordt gebruikt voor het afbeelden van een verklarende tekst.
FileInput
Met dit veld kan er met het formulier een bestand worden meegestuurd.
Datepicker
Een kalender waaruit een datum geselecteerd kan worden. Tabel 5-6: Overige elementen
De knop waarmee het formulier gewist wordt. Tabel 5-6: Overige elementen
5.4.3.1htmlEdit element Het htmlEdit element voegt een uitgebreid tekstveld toe waarin de tekst kan worden vormgegeven. Hiervoor is het tekstveld uitgebreid met een knoppenbalk en een contextmenu. Vaak zal dit element terugvallen op een vooraf gedefinieerde knoppenbalk en contextmenu. Soms kun je deze eigenschappen wijzigen. Je kiest dan een XML bestand waarin de definitie van de knoppenbalk of het contextmenu is vastgelegd.
5.4.3.2Label element Het Label element wordt gebruikt om een verklarende tekst neer te zetten. Een label bestaat uit een Caption en een Value. Wanneer je een Label element gebruikt zul je over het algemeen niet het Caption-element op het formulier plaatsen omdat deze Caption al binnen het Field-element gebruikt wordt.
5.4.3.3FileInput element Het FileInput element maakt het mogelijk om bij het formulier een bestand te voegen. Wanneer het formulier wordt verstuurd dan zal het bestand meeverstuurd worden en in een map op de Fileserver worden geplaatst of als binaire data in de XML van het verstuurde formulier. Een van de eigenschappen ven een FileInput element is het filteren van mogelijke bestanden. De eigenschap filter is een door puntkomma’s gescheiden lijst van extensies.
Voorbeeld Met behulp van het FileInput element mogen Microsoft Word-documenten en PDF-documenten geselecteerd worden. De eigenschap Filter wordt dan gedefinieerd als ‘*.doc;*.pdf’. Bij het selecteren van het bestand worden alleen deze bestanden getoond zodat er ook geen ander bestand gekozen kan worden.
5.4.3.4 Submit en Reset button element Elk formulier wordt standaard voorzien van een Submit knop. Met deze knop wordt het formulier verstuurd nadat de informatie gevalideerd is. De plaats van de Submit knop is links onder het formulier. Wanneer je de Submit knop op een andere plaats wilt, dan kun je dit Field-element in je formulier plaatsen in de cel waar jij vindt dat de knop hoort. Deze toevoeging zorgt
Smartsite Content Management Server ®
93
Formulieren
ervoor dat de standaardknop niet meer wordt getoond. Met de Reset knop kunnen alle velden in het formulier worden geleegd.
5.4.4 Subformulieren Bepaalde delen van formulieren keren in een organisatie misschien regelmatig terug. Om onnodige handelingen te voorkomen kunnen deze deelformulieren reeds zijn aangemaakt. Deze zijn dan als subformulier toe te voegen aan een nieuw formulier. Voorgedefinieerde subformulieren vind je op het tabblad Sub Forms wanneer je een nieuw Field-element op het formulier plaatst. Het subformulier wordt geplaatst in de geselecteerde cel. Bij het toevoegen van een formulier kun je de optie Add as frame kiezen. Wanneer je een subformulier als frame toevoegt wordt het omkaderd weergegeven:
Figuur 5-13: Een subformulier als frame weergeven
5.4.5 Opmaak van elementen Met de eigenschappen van Field-elementen wordt het gedrag van deze elementen bepaald. Ze bepalen echter niet de opmaak van deze elementen. Wanneer je een element op het formulier plaatst dan zal het element de opmaak aannemen die is vastgelegd in de stijl van de site. Tekst- en achtergrondkleur, letterhoogte, omlijning en andere opmaakeigenschappen zijn niet per element te wijzigen. Bij het invoegen van het formulier in een item geef je op welke stijlen er in dat item op het formulier van toepassing zijn. Zo kun je hetzelfde formulier op meerdere plaatsen gebruiken maar door het toekennen van een andere stijl toch een eigen uiterlijk geven.
5.5 Formulieren gebruiken Het definiëren van een formulier en het beschikbaar maken van het formulier op de website zijn twee verschillende dingen. Nadat het formulier is gedefinieerd moet dit formulier in een (of meerdere) items ingevoegd worden om het op die manier zichtbaar te maken aan de voorkant van de site. Het invoegen van een formulier in een item gebeurt door middel van een Smart Embedding Macro, ook wel SE Macro of kortweg macro genoemd. De macro die je gebruikt voor het plaatsen van een formulier in een item heet RenderForm. Macro’s zijn bouwstenen die een website dynamisch maken. Een macro is een functie met een aantal variabelen die op basis van de variabelen een bepaald resultaat toont. De macro RenderForm wordt gebruikt om een item van het contenttype Form binnen een ander item te tonen. Daarnaast zijn er een aantal parameters die bepalen hoe het formulier er uitziet en wat er gebeurt op het moment dat het formulier verstuurd wordt en ontvangen op de server. Voor het invoegen van een macro bestaat er binnen de webEditor een optie. Met deze optie wordt het plaatsen van een formulier in een item relatief eenvoudig.
Noot Ook zonder hulp van de webEditor kun je een macro invoegen. Het valt echter buiten het kader van deze handleiding om daar dieper op in te gaan omdat deze materie meer van toepassing is voor sitebouwers. Derhalve zullen ook niet alle parameters van de macro RenderForm behandeld worden.
Een formulier invoegen in een item met behulp van de webEditor: 1. Plaats de cursor in de webEditor waar je het formulier wilt invoegen; 2. Selecteer uit het menu Insert de optie Macro (Macro) wordt een dialoogvenster geopend met een lijst van Macro’s;
. Er
Smartsite Content Management Server ®
95
Formulieren
3. Selecteer uit de lijst de macro RenderForm en klik op Volgende (Next)
:
Figuur 5-14: Invoer van eigenschappen voor het formulier
4. Pas de parameters van het formulier aan en klik op Voltooien (Finish)
. De macro wordt nu ingevoegd op de plaats van de cursor.
Let op! De macro wordt afbeeld door middel van en icoontje met de tekst ‘<se..’. Een kenmerk van een macro is dat deze pas wordt uitgevoerd op het moment dat de pagina wordt opgevraagd. Het formulier wordt pas definitief ingevoegd op het moment dat de pagina gerenderd wordt. Wanneer je het icoontje selecteert en je vraagt de eigenschappen van de macro op dan wordt het dialoogvenster opnieuw geopend en kun je de parameters van de macro wijzigen. De parameters van de macro RenderForm zijn over meerdere tabbladen verdeeld. Voor het plaatsen van het formulier in het item zullen alleen de parameters op het eerste tabblad behandeld worden. De overige parameters doen of niet terzake of zijn te geavanceerd om in deze handleiding te behandelen. De parameters die van belang zijn voor het invoegen van het formulier zijn:
Het nummer of de code van het item van het contenttype CSS dat de Cascading Style Sheet (CSS) bevat waarin de opmaak van de formulierelementen is vastgelegd.
ForceSubmit
Deze optie zorgt ervoor dat het formulier altijd een Submit knop heeft, ook als je deze niet hebt toegevoegd in de formulierdefinitie.
FormId
Het nummer of de code van het item van het contenttype Form dat de formulierdefinitie bevat.
LoadRecord
Elk formulier dat verstuurd wordt, wordt, onafhankelijk van zijn databinding, ook in de tabel PostedFormData geplaatst. Wanneer een formulier geopend wordt dan kan het formulier gevuld worden met informatie. Deze informatie haal je uit de tabel PostedFormData door te verwijzen naar een record in deze tabel.
StartWorkflow
Onafhankelijk van de databinding van het formulier kan er een workflow gestart worden om personen te attenderen op een nieuw formulier of om de de verstuurde data te verwerken. Hiervoor wordt een speciale workflow gebruikt, een zogenaamde Application Workflow. Wanneer zo’n workflow is gedefinieerd dan kun je door middel van het nummer of de code van het item dat de Application Worfklow bevat een koppeling leggen tussen het formulier en de workflow.
WorfklowParams
De parameters die de werking Application Workflow bepalen.
FormClass
Hiermee kun je het een Class attribuut op het Form-element zetten.
FormStyle
Hiermee kun je een Style attribuut aan het Form-element toevoegen.
FeedbackMessage Een boodschap die wordt weergegeven wanneer het formulier is verstuurd. Deze boodschap komt op de plaats van het formulier te staan. Redirect
In plaats van een boodschap kun je na het insturen van een formulier ook naar een andere pagina in de site springen. Geef het nummer of de code van het item op waar naar toe gesprongen dient te worden. Tabel 5-7: Parameters voor de RenderForm macro
Met alleen het gebruik van de parameters CSS, FormId en Redirect of FeedbackMessage kun je op een eenvoudige manier een formulier invoegen. De overige parameters zijn wat geavanceerder en vereisen kennis van HTML of een diepere kennis van workflow en workflowparameters.
Smartsite Content Management Server ®
97
Formulieren
5.6 Verstuurde formulieren bekijken Elk formulier dat wordt ingestuurd wordt als nieuw record aan de tabel PostedFormData toegevoegd. Verder wordt op basis van het gekozen type databinding een vervolgactie uitgevoerd. Dat kan betekenen dat er een nieuw item wordt aangemaakt, dat er een e-mail verzonden wordt of dat de informatie ook in een andere tabel wordt opgeslagen. Afhankelijk van het type bekijk je de informatie op een andere manier. Wanneer er voor gekozen is om de informatie op te slaan in het Bodyveld van een item of wanneer de informatie als e-mail wordt vestuurd dan zal de verzonden informatie in XML formaat worden weergegeven. Deze XML is op een eenvoudige manier uit te lezen:
In bovenstaand voorbeeld zien we een formulier in XML formaat. XML kun je lezen als een tabel. Tussen de elementen <postedForm> en zien we de afzonderlijke velden van het formulier. Elk veld opent met en sluit met . Daartussen staat de data die is ingevuld. Er zijn drie extra velden toegevoegd __nr, __formid en __title. Deze drie velden verwijzen naar het item in de boomstructuur dat de formulierdefinitie bevat.
Met behulp van de Import is het mogelijk externe content, zoals bijvoorbeeld Microsoft® Word documenten of XML bestanden in Smartsite te importeren. Met export kan een tsite of een deel daarvan naar bestanden worden geschreven. De export functie is alleen in de Enterprise Edition beschikbaar.
Import en export
6.1 Import-functies Met de Import-functie is het bijvoorbeeld mogelijk een Microsoft® Word document te converteren naar zo compact mogelijke HTML en vervolgens op de site te plaatsen. Het is hierbij noodzakelijk dat Microsoft® Word 2000 op de webserver is geïnstalleerd. Vanuit de Import Wizard wordt Microsoft ® Word aangestuurd om een bestand als HTML op te slaan; de Import-functie reduceert de omvang van het HTML-bestand vervolgens aanzienlijk terwijl de inhoud nagenoeg hetzelfde blijft. Allerlei overbodige stijlelementen worden weggefilterd zodat het item niet botst met de huisstijl. De geïmporteerde documenten zijn vervolgens als item te bewerken binnen Smartsite. Microsoft ® Word documenten worden na Import in Smartsite anders weergegeven. Omdat een Smartsite item geen papieren pagina is, maar wordt afgebeeld op een beeldscherm, vervallen paginanummers, headers en footers van de te importeren documenten. Ook onderdelen zoals kantlijnen en regelafstanden die kunnen botsen, worden verwijderd bij de Import.
!
Let op! De Import-functies moeten niet worden verward met de Import macro's die vanuit de SmartEditor kunnen worden uitgevoerd. Deze client zijde Import macro's openen het document en converteren het naar HTML maar plaatsen de afbeeldingen niet in een aparte directory op de server. Om deze client zijde macro's uit te kunnen voeren is het noodzakelijk Microsoft® Word op de client geïnstalleerd te hebben.
Let op! Het is in principe niet de bedoeling vanuit Word een Copy Paste actie naar de WebEditor of SmartEditor uit te voeren. Dit levert onnodig grote HTMLbestanden op (er is geen gelegenheid geweest voor opschonen van de HTML). Het resultaat van de onnodig grote HTML-bestanden is dat de server traag wordt of dat de pagina's niet goed worden weergegeven en mogelijk botsen met de huisstijl. Om toch dergelijke HTML te kunnen gebruiken is de macro Cleanup beschikbaar in de SmartEditor. Binnen de webEditor kun je gebruik maken van de optie Remove Formatting. Dit macro haalt zoveel mogelijk niet gebruikte HTML-tags weg. De Import acties worden meestal gebruikt voor het importeren van grotere hoeveelheden documenten. Voor het importeren van één document zijn de SmartEditor macro's beter geschikt. De SmartEditor macro's worden lokaal uitgevoerd en zorgen daardoor niet voor extra serverbelasting.
6.1.1 Import mogelijkheden Import is aanwezig bij alle Smartsite edities. Import wordt gebruikt om een willekeurig document te importeren in de Smartsite Contents tabel.
• Voor deze import wordt gebruik gemaakt van Smartsite XML. De import bestaat uit twee stappen. In de eerste stap moet een brondocument geconverteerd worden naar Smartsite XML. In de tweede stap wordt het naar Smartsite XML geconverteerde brondocument geïmporteerd in de Contents tabel. • Smartsite XML wordt gegenereerd op basis van de structuur van de Contents tabel. • Van een XML-bestand met de beschrijving van een boek met daaronder de naar Smartsite XML geconverteerde versie:
The Lord of the Rings <subtitel>Fellowship of the Ring J.R.R. Tolkien0007123817 <samenvatting>Sauron, the Dark Lord, has gathered to him the Rings of Power - the means by which he will be able to rule the world. All he lacks in his plan for dominion is the Ruling Ring. .... <page> The Lord of the Rings - Fellowship of the RingJ.R.R. Tolkien <description>Sauron, the Dark Lord, has gathered to him the Rings of Power - the means by which he will be able to rule the world. All he lacks in his plan for dominion is the Ruling Ring. .... Voorbeeldcode 6-1:
Van een willekeurige XML wordt een afbeelding op de Smartsite XML gemaakt. Met het filter wordt bepaald welke informatie uiteindelijk in welke Contents velden terecht zal komen. In bovenstaand voorbeeld zien we dat het ISBN-nummer niet in de Contents tabel wordt geïmporteerd en dat titel en subtitel samengevoegd in het title veld geïmporteerd zullen worden. De broncode voor de conversie van de ondersteunde formaten naar Smartsite XML is openbaar (en beschikbaar op de supportsite); de code voor de Smartsite XML-Import naar de Contents tabel (de tweede stap) niet. Doordat de code voor de eerste stap openbaar is, is het voor Smartsite Value Added Resellers en voor eindgebruikers met een SDK-licentie mogelijk de werking van de conversie volledig af te stemmen op de specifieke kenmerken van de documenten bij de organisatie waar Smartsite wordt ingezet. Tijdens het importeren moet er een belangrijke keuze gemaakt worden, namelijk hoe wordt omgegaan met de nieuwe items. De beschikbare opties zijn: • Create new items (maak nieuwe items aan) • Remove all children before import (verwijder eerst alle kinderen, start daarna met importeren) • Keep existing children, update newer only (behoud de bestaande kinderen, ververs daarna alleen de nieuwere)
Smartsite Content Management Server ®
103
Import en export
• Keep existing children, always update (behoud de bestaande kinderen, ververs daarna in alle gevallen). De stappen van import zijn hieronder schematisch aangegeven:
Stage 1
Stage 2
Word Tekst Smartsite XML
Smartsite items
HTML
XML
Figuur 6-1: De import stappen
6.1.2 Word-documenten importeren Bij het importeren van een Word-document worden tien stappen doorlopen. De wizard die wordt gebruikt om de stappen te doorlopen zal de op de server geïnstalleerde Microsoft® Word 2000 gebruiken om de geselecteerde documenten als HTML op te slaan. Vervolgens wordt het resultaat opgeschoond met het Office 2000 HTML-filter om overbodige HTML-tags te verwijderen. Een bijkomend voordeel van dit filter is dat de omvang van de HTML-bestanden sterk (in het algemeen met een factor 5 tot 10) zal verminderen. Na deze stap wordt het HTML-bestand omgezet in een XHTML-bestand. Er kan voor gekozen worden dit bestand in meerdere delen op te splitsen, waarbij elk deel uiteindelijk als een afzonderlijk Smartsite item wordt geïmporteerd. Het filter zorgt ervoor dat de Smartsite XML wordt gegenereerd die vervolgens in de Contents tabel wordt geïmporteerd.
!
Let op! Om de actie op te starten is het noodzakelijk EERST een folder in het linkerdeel van de Smartsite Manager te kiezen en vervolgens de actie Import Word Documents te starten.
Let op! Het is ook mogelijk in plaats van een Word-document een Zip-bestand te selecteren. Het Zip-bestand moet dan uiteraard Word-bestanden bevatten. Het Zip-bestand wordt automatisch uitgepakt in een tijdelijke map. Alle Word-documenten in deze tijdelijke map worden geselecteerd voor import.
Voor het importeren van bestanden die lokaal (op de eigen computer, niet op de server aanwezig zijn is het noodzakelijk dat deze bestanden (met de Upload actie naar de server worden verzonden. Wat betreft het overnemen van eigenschappen uit Word is het mogelijk: • helemaal geen eigenschappen uit Microsoft® Word over te nemen • te kiezen voor standaard eigenschappen (zoals auteur en titel) • te kiezen voor het gebruik van zelf aangemaakte eigenschappen • zowel zelf-aangemaakte als standaard eigenschappen in de XML op te nemen. Het Word-document wordt geconverteerd naar XML dat aan het algemene Smartsite XML-Import-schema voldoet. Vervolgens moet worden aangegeven hoe wordt omgegaan met bestaande kinderen binnen de parent-folder waar de nieuwe items in terecht komen. Wanneer een Word-document voor de eerste keer wordt geïmporteerd moet altijd de optie Create as new items worden gekozen. Als het Word-document vervolgens wordt aangepast en de eerder d.m.v. import gemaakte items moeten worden vernieuwd, is het belangrijk te weten dat bestaande items aan de hand van de titel worden aangepast. De titel wordt gebruikt om de koppeling te leggen tussen de XML en de items binnen Smartsite.
Let op! Zeker in de gevallen waarin één document in meerdere items wordt gesplitst is het noodzakelijk dat titels in het document niet veranderen en uniek blijven. De titels moeten zowel in het document als binnen de parent-folder uniek zijn.
!
Let op! Pas op met de optie Remove all children; alle kinderen van een item worden daardoor weggehaald, er is geen undo-functie beschikbaar.
6.1.3 Tekst- en HTML-documenten importeren Tekst- en HTML-documenten dienen - net als Microsoft® Word documenten eerst omgezet te worden naar XML voordat import in Smartsite mogelijk is. Bij het importeren is het mogelijk bestanden d.m.v. de actie Upload naar de server te versturen. Het converteren van tekst naar XML verloopt volledig automatisch. Vervolgens wordt de XML-Import Wizard gestart om de informatie in Smartsite op te nemen. Tijdens het converteren van HTML naar XML kan worden aangegeven of alleen de inhoud van de body moet worden opgenomen, of dat het hele HTML-document moet worden geïmporteerd. Nadat dit is aangegeven wordt de HTML in XML omgezet en de XML-Import gestart.
Smartsite Content Management Server ®
105
Import en export
!
Let op! Het importeren van HTML-documenten is niet hetzelfde als het converteren van een website naar de Smartsite omgeving.
Let op!
6.2 Export-functies De Export-functies zijn toegankelijk via het file menu. De exportfunctionaliteit is alleen bij de Enterprise edition aanwezig. De export verloopt gelijk aan de import door het uitvoeren van een aantal op elkaar volgende stappen. Het verloop van deze stappen is hieronder schematisch weergegeven.
Export
HTML
Basic
XML
Advanced
Tekst
Custom
Figuur 6-2: Het verloop van het export procesin grote lijnen
De Export Wizard leidt de gebruiker door een aantal stappen; er moet een aantal vragen worden beantwoord: • Wordt geëxporteerd naar één bestand of wordt elk geëxporteerd item een nieuw bestand? • Worden de kinderen van een item ook geëxporteerd? • Waarnaar wordt geëxporteerd; HTML, XML of Tekst? • Waar worden de geëxporteerde bestanden geplaatst?
6.2.1 Een aantal opties in de Export Wizard Na het kiezen van export naar XML moet worden aangeven welk type XML is gewenst: XML Basic is de meest eenvoudige versie; alleen de body en de titel van een item worden opgenomen in het XML-bestand. Wanneer wordt geëxporteerd als één bestand worden de verschillende pagina's eenvoudigweg aan elkaar geplakt. Er wordt geen boomstructuur opgenomen.
XML Advanced is veel uitgebreider dan XML Basic. De velden die worden opgenomen zijn hier afhankelijk van het contenttype van de items die worden geëxporteerd. De boomstructuur met ouder-kind relaties blijft behouden als er wordt geëxporteerd als één bestand. Tevens is het mogelijk schemadefinities en schemabestanden op te nemen of te genereren. XML Custom, hiermee kun je het XML-sjabloon, dat wordt gebruikt om de XML-output te genereren, zelf aanpassen. Ook hier wordt de boomstructuur bewaard wanneer je kiest voor het exporteren als één bestand.
6.2.2 Importeren of refereren De keuze van het importeren van een document of het aanmaken van een referentie naar het document is sterk afhankelijk van de situatie waarin Smartsite wordt ingezet. In het geval van import wordt het bestand of document omgezet in Smartsite items. In het geval van een Microsoft® Word document worden ook de afbeeldingen opgenomen in Smartsite. Wanneer je refereert aan een bestand blijft het helemaal intact; het wordt op de server geplaatst en is beschikbaar door het klikken op een link. Hieronder wordt een aantal aandachtspunten genoemd voor het maken van de keuze tussen importeren en refereren: • Wanneer het belangrijk is dat de opmaak van een document niet wordt • aangepast is het beter de Upload actie te gebruiken en een referentie naar het document te maken. De bezoeker moet het document dan wel eerst downloaden (en over Microsoft Office beschikken) voor het gelezen kan worden. Ook is het niet mogelijk de inhoud van het document te doorzoeken voordat een bezoeker het op zijn eigen computer heeft staan. • Het kan belangrijk zijn dat er van een bepaald document slechts één versie bestaat. In dat geval mag het niet worden geïmporteerd omdat dan altijd een kopie wordt gemaakt. • Wanneer meerdere mensen het document mogen aanpassen en deze personen op het zelfde Intranet zijn aangesloten is het handig een referentie aan te maken met het pad naar het bestand. Op deze manier is het voor iedereen mogelijk het document te openen en te wijzigen. Tevens wordt een waarschuwing gegeven als het document door een tweede persoon wordt geopend. • Als een document vaak wordt gewijzigd, kan een referentie handiger zijn omdat dat niet steeds de Import Wizard hoeft te worden doorlopen. • In de gevallen dat de informatie uit het document is samengesteld uit een database (bijvoorbeeld een Excel-sheet met databasekoppeling) is • verstandig even te onderzoeken of deze gegevens ook met een SE ODBC macro zijn te verkrijgen. In dat geval kan Smartsite de gegevens rechtstreeks lezen.
Smartsite Content Management Server ®
107
Import en export
Microsoft Indexserver maakt het mogelijk te zoeken binnen gerefereerde tekst, HTML- en Office-documenten. Met behulp van een plugin van Indexserver is het ook mogelijk in PDF-documenten te zoeken. Na het uploaden van een bestand is het tevens mogelijk een harde link i.p.v. een referentie op te nemen; dit is echter af te raden omdat: • Bij harde links geen meta-informatie kan worden opgeslagen • Harde links niet door een macro kunnen worden gevonden (het is mogelijk een lijst met referenties te geven met behulp van een macro).
Als sitemanager is het ook een taak om de instellingen bij te houden die te maken hebben met de rechten die de verschillende gebruikers hebben bij het werken met de Smartsite Manager. De rechten die gebruikers hebben zijn vastgelegd in verschillende rollen. Gebruikers en rollen zijn met elkaar verbonden via gebruikersgroepen. In dit hoofdstuk wordt uitgelegd hoe je gebruikers, groepen en rollen beheert. Naast het regelen van de security aan de ‘achterkant’ van de site, de security binnen de Smartsite Manager, is het ook van belang om de security aan de voorzijde van de site te regelen. Bepaalde delen van de site kunnen zo ingesteld zijn dat deze alleen voor geauthoriseerde bezoekers toegankelijk zijn. Hoe je bepaalde delen van de site afschermt en hoe je de rechten uitdeelt om deze pagina’s te mogen bezoeken wordt ook in dit hoofdstuk besproken.
Rechten en Security
7.1 Smartsite Application Console Alle instellingen die te maken hebben met het aanmaken en beheren van gebruikers, groepen, acties en rollen zijn terug te vinden in de actie Configure Security loogvenster:
. Wanneer deze actie wordt gestart verschijnt er een dia-
Figuur 7-1: Dialoogvenster Configure Security.
Aan de linkerkant van het dialoogvenster vind je in de map Smartsite Console een aantal opties die je kunt gebruiken voor het instellen van de security:
LogOn Peeker
geeft een overzicht van de gebruikers die op dit moment van de Smartsite Manager gebruik maken.
Edit Users
met deze opties kunnen nieuwe gebruikers worden toegevoegd.
Edit Groups
met deze optie kunnen nieuwe groepen worden aangemaakt en kunnen rollen aan deze groepen worden toegekend.
Edit Roles
met deze optie worden rollen aangemaakt en worden acties aan de rollen toegevoegd.
Edit Actions
met deze optie worden acties gedefinieerd.
Edit Paths
Met deze optie kunnen de verschillende paden worden gedefinieerd om aan groepen toe te kennen. Tabel 7-1: Overizcht opties binnen de actie Configure Security
toont een overzicht op welke delen van de server de verschillende groepen bestanden kunnen opslaan en/of lezen.
Show Groups/Users relations
toon een overzicht in matrix-vorm welke gebruikers in welke groepen zitten.
Show Groups/Roles relations
toont een overzicht van welke rollen aan welke groepen zijn gekoppeld.
Tabel 7-1: Overizcht opties binnen de actie Configure Security
Ook op het configureren van de security is security toegepast. Dit klinkt wat eigenaardig maar is logisch. Wanneer in de Smartsite Enterprise Edition gebruik wordt gemaakt van Delegated Security, dan zal bij het delegeren van rechten alleen datgene te zien zijn dat bij de rol van diegene hoort die de rechten gaat uitdelen. Dit betekent ook dat iemand met minder rechten de opties Edit Roles en Edit Actions niet mag gebruiken omdat hij of zij daarmee zijn eigen security-instellingen kan aanpassen.
Smartsite Content Management Server ®
111
Rechten en Security
7.2 Gebruikers aanmaken en beheren Open de actie Configure Security en klik in de Smartsite Console op Edit Users. Het rechterdeel van het scherm toont een lijst van alle gebruikers die reeds zijn aangemaakt. Voor het toevoegen en beheren zijn er een aantal opties: Icoon
Omschrijving New: met deze optie maak je een nieuwe gebruiker aan. Open: met deze optie open je de gebruiker die je in de lijst hebt geselecteerd. Duplicate: Maak een kopie van een bestaande gebruiker om daarna de eigenschappen aan te passen. Delete: Verwijder de in de lijst geselecteerde gebruiker. Filter: Gebruik een filter om de getoonde lijst te filteren. Typ bijvoorbeeld de beginletter en klik op Filter . Alleen de namen van gebruikers met die beginletter worden getoond. Find. Geef een (deel van een) naam op om een gebruiker te vinden. Refresh. Gebruik deze optie om de lijst opnieuw te laden. Tabel 7-2 - overzicht opties binnen de actie Edit Users
Wanneer je een nieuwe gebruiker aanmaakt of een bestaande gebruiker bewerkt wordt er een nieuw dialoogvenster geopend:
Loginname De gebruikersnaam geeft in combinatie met het wachtwoord toegang tot de Smartsite Manager. Password Het wachtwoord dat gebruikt wordt wanneer de gebruiker zich aanmeldt bij de Smartsite Manager. Wanneer de gegevens van een bestaande gebruiker worden bekeken dan staan hier tien sterretjes, onafhankelijk van de lengte van het ooit ingevulde wachtwoord. Full Name De volledige naam van de gebruiker. E-mail Het e-mail adres van de gebruiker. Dit e-mail adres kan gebruikt worden om berichten aangaande de workflow van items, nieuwe taken of algemene mededelingen te doen. UserGroups Selecteer de groepen waar de gebruiker deel van uitmaakt. Een gebruiker moet minimaal in één groep zitten.
Noot Het toevoegen van gebruikers aan groepen kan ook via de optie Configure Security Edit Groups
.
Primary Group Wanneer een gebruiker maar in een groep zit is de primaire groep gelijk aan die groep. Wanneer een gebruiker in meerdere groepen is geplaatst wordt een van deze groepen als primaire groep beschouwd.
7.2.1 Een apart soort gebruiker: de visitor Naast de gebruikers van de Smartsite Manager is er nog een aparte groep gebruikers van de site: de bezoekers. Het hoeft niet altijd zo te zijn dat alle informatie op de site vrijelijk toegankelijk is voor alle bezoekers; bepaalde delen kunnen informatie bevatten die alleen voor een selecte groep beschikbaar is. Bezoekers worden in een aparte tabel opgeslagen. Met de actie Configure Security - Edit Visitors kers worden aangemaakt.
kunnen profielen voor de verschillende bezoe-
Het voordeel van deze aanpak is dat een lijst van bezoekers niet de lijst van gebruikers van de Smartsite Manager vervuilt. Bezoekers worden ook in aparte groepen ingedeeld om ze te onderscheiden van de gebruikers van de Smartsite Manager. Met de actie Set Browse Access ten voor de bezoekers worden ingesteld.
kunnen de rech-
Smartsite Content Management Server ®
113
Rechten en Security
7.3 Groepen aanmaken en beheren Open de actie Configure Security en klik in de Smartsite Console op Edit Groups. Het rechterdeel van het scherm toont een lijst van alle groepen die reeds zijn aangemaakt.
Noot Het Security model van Smartsite is ook geldig op de actie Configure Security. Dit heeft te maken met de Delegated Security. Rechten kunnen alleen doorgegeven woorden waar een gebruiker ook rechten heeft en zo geldt het ook voor het aanmaken van groepen.
Voor het toevoegen en beheren van groepen zijn er een aantal opties: Icoon
Omschrijving New: met deze optie maak je een nieuwe groep aan. Open: met deze optie open je de groep die je in de lijst hebt geselecteerd. Duplicate: Maak een kopie van een bestaande groep om daarna de eigenschappen aan te passen. Delete: Verwijder de in de lijst geselecteerde groep. Filter: Gebruik een filter om de getoonde lijst te filteren. Typ bijvoorbeeld de beginletter en klik op Filter beginletter worden getoond.
. Alleen de groepen met die
Find. Geef een (deel van een) naam op om een groep te vinden. Refresh. Gebruik deze optie om de lijst opnieuw te laden. Tabel 7-3 - overzicht opties binnen de actie Edit Groups
Wanneer je een nieuwe groep aanmaakt of een bestaande groep wijzigt wordt er een nieuw dialoogvenster geopend: Figuur 7-3:Een bestaande groep bewerken. Name Een unieke naam voor de groep. Voor de duidelijkheid is het handig om meervoudsvormen te gebruiken. Hoofdredacteuren, Redacteuren, Webmasters etc. etc. Inherit Folder Security Met de actie Set Manager Access kan ingesteld worden welke groepen rechten hebben om in een folder items aan te maken en te bewerken. Met de actie Set Browse Access kan worden ingesteld welke groepen aan de ‘voorkant’ van de site rechten heeft om de inhoud van bepaalde folders te zien. De optie Inherit Folder Security zorgt ervoor dat de toegangsrechten op andere folders die met bovenstaande acties zijn ingesteld door alle folders onder deze folder geërfd worden. 114
Parent Door het opgeven van een Parent group kun je een hiërarchie in de groepen aanmaken. Deze hiërarchie wordt gebruikt voor bijvoorbeeld het uitdelen van rechten. Tevens kan een hiërarchische groepsindeling het versturen van taken en/of mail vanuit een workflow vergemakkelijken.
Figuur 7-3: Een bestaande groep bewerken
ContentTypes Ken contenttypes toe aan de groep. De leden van een groep kunnen alleen items aanmaken van die contenttypes die hier geselecteerd zijn. UserPaths Selecteer de mappen op de server die deze groep kan benaderen. UserRoles Selecteer de rollen die aan deze groep gekoppeld worden. Een gebruiker uit een groep die in die groep meerdere rollen heeft, kan deze rollen uitdelen aan anderen. Dit principe wordt Delegated Security genoemd. Visitors Met de optie Edit Visitors kunnen bezoekers worden gedefinieerd die bepaalde afgeschermde delen van de site mogen bezoeken. Verschillende afgeschermde delen van de site kunnen aan verschillende groepen worden toegekend.
Noot Wanneer je een groep definieert die speciaal is gericht op bezoekers ken je aan zo’n groep natuurlijk geen rollen en paden toe. De groep is er dan puur opgericht om aan de ‘voorkant’ van de site een indeling te maken om afgeschermde gedeeltes van de site te
Smartsite Content Management Server ®
115
Rechten en Security bezoeken. Zo’n groep heeft dus geen instellingen nodig die betrekking hebben op het gebruik van de Smartsite Manager.
Users Op het tabblad Users geef je aan welke gebruikers in deze groep horen.
Noot Het toekennen van gebruikers aan groepen kan natuurlijk ook met de actie Configure Security - Edit Users . Het hangt af van welk overzicht je wilt hebben. Met de optie Edit Groups krijg je een snel overzicht welke gebruikers in een bepaalde groep zitten. met de optie Edit Users krijg je een snel overzicht in welke groepen een bepaalde gebruiker zit.
Voor een goed overzicht van de combinatie groepen/gebruikers, groepen/rollen en groepen/paden kun je achtereen volgens gebruik maken van de opties Matrix - Groups/Users, Matrix - Groups/Roles en Matrix Groups/Paths binnen de actie Configure Security
. Wanneer je deze opties start wordt in het rechterdeel van het dialoogvenster een matrix getoond waarin de relaties op een heldere manier getoond worden.
Figuur 7-4: Matrix m.b.t. relaties tussen groepen en rollen
7.4 Rollen aanmaken en beheren Open de actie Configure Security en klik in de Smartsite Console op Edit Roles. Het rechterdeel van het scherm toont een lijst van alle rollen die reeds zijn aangemaakt. Ook voor het beheren van rollen zijn er een aantal opties: Icoon
Omschrijving New: met deze optie maak je een nieuwe rol aan. Open: met deze optie open je de rol die je in de lijst hebt geselecteerd. Duplicate: Maak een kopie van een bestaande rol om daarna de eigenschappen aan te passen. Delete: Verwijder de in de lijst geselecteerde rol. Filter: Gebruik een filter om de getoonde lijst te filteren. Typ bijvoorbeeld de beginletter en klik op Filter letter worden getoond.
. Alleen de rollen met die begin-
Find. Geef een (deel van een) naam op om een groep te vinden. Refresh. Gebruik deze optie om de lijst opnieuw te laden. Tabel 7-4 - overzicht opties binnen de actie Edit Foles
Wanneer je een nieuwe rol gaat maken of een bestaande rol bewerkt wordt er een dialoogvenster geopend:
Figuur 7-5: Een bestaande rol bewerken
Voor een rol moet je een aantal instellingen doen:
Smartsite Content Management Server ®
117
Rechten en Security
Name Een naam voor de rol. Voor rollen gebruik je, in tegenstellingen tot groepen, vaak enkelvoudsvormen zoals Hoofdredacteur, Redacteur, Content-manager etc. Description Een omschrijving van de rol. UserGroups Hiermee kun je de rol aan verschillende groepen toekennen. Dit kun je natuurlijk ook doen met de actie Configure Security - Edit Groups. Het hangt af van het overzicht dat je wenst welke actie het best uitkomt. Status Rights Alle items die worden bewerkt zijn onderhevig aan een workflow. Gebruikers kunnen, afhankelijk van hun rol, bepaalde delen van de workflow aansturen door het selecteren van workflow-statussen, ook wel CMS-statussen. Deze CMS-statussen zijn dus gekoppeld aan een rol. Selecteer hier welke CMS-statussen bij deze rol horen. Hoe workflow en het CMS-statussen met elkaar samenhangen en hoe je die het best aan welke rol kan koppelen wordt nader uitgelegd in Hoofdstuk 8 Workflow. Actions Elke rol wordt gekenmerkt door acties. De acties bepalen de mogelijkheden die gebruikers hebben om binnen de Smartsite Manager bepaalde handelingen te verrichten. Welke acties je aan een bepaalde rol toekent is helemaal afhankelijk van de functie die de rol moet gaan vervullen. Alle acties ken je toe aan site-managers terwijl je een redacteur alleen die acties geeft die te maken hebben met het genereren van content. Naast acties zijn er ook privileges die je aan een rol kunt koppelen. Privileges worden door Smartsite herkend. Een privilege is niet zozeer iets wat je kunt doen maar meer iets wat je wel of niet mag. Het belangrijkste privilege dat aan alle rollen moet worden toegekend is bijvoorbeeld Privilege - Access to Smartsite Manager. Wanneer een rol niet over dit privilege beschikt dan zal de gebruiker die over deze rol beschikt nooit in de Smartsite Manager terecht kunnen komen.
7.5 Wie, waar, wat Wanneer alle groepen zijn gedefinieerd en aan die groepen rollen zijn toegekend is het van belang om instellingen te doen die bepalen welke gebruiker van de Smartsite Manager waar kan werken. Ook wil je misschien bepaalde delen van de site aan de ‘voorkant’ afschermen. Niet elke bezoeker heeft het recht om die pagina’s te bekijken. Voor deze instellingen kun je gebruik maken van de acties Set Manager Access
en Set Browse Access
.
7.5.1 Gebruik van de Smartsite Manager Met de actie Set Manager Access bepaal je welke gebruikers welke delen van de site kunnen bewerken. Deze actie wordt uitgevoerd op een of meer geselecteerde folders.
De rechten op folders instellen voor gebruikersgroepen: 1. Selecteer de folders die je wilt afschermen voor bepaalde gebruikersgroepen; 2. Start de actie Set Manager Access ster geopend:
. Er wordt een nieuw dialoogven-
Figuur 7-6: dialoogvenster vooer het instellen van folderrechten
3. Selecteer de groepen voor wie je de nieuwe rechten wilt instellen;
Smartsite Content Management Server ®
119
Rechten en Security
4. Selecteer welke rechten je de geselecteerde groepen wilt geven op de geselecteerde folders; 5. Maak een keuze of je deze instellingen wilt uitvoeren op de geselecteerde folders of dat deze instellingen ook van toepassing zijn op alle subfolders van de geselecteerde folders; 6. Klik op Finish
om de nieuwe instellingen door te voeren;
7. Klik nu op Back om voor andere groepen instellingen op de geselecteerde folders.
Let op! Je kunt vier verschillende instellingen aan een folders meegeven:
Optie
Omschrijving
None
De geselecteerde groepen hebben geen enkele rechten meer op de folders. De folders zijn derhalve niet meer zichtbaar voor deze groepen.
List (Show Folder)
De geselecteerde groepen kunnen wel de hiërarchie van de folders en items zien, maar kunnen geen items aanmaken of bewerken.
Add (Show Folder, add Item(s))
Gebruikers uit de geselecteerde groepen kunnen de hiërarchie van folders en items zien en kunnen onder de folders items en nieuwe folders aanmaken. De folder waar deze rechten aan toegekend zijn kan echter niet worden bewerkt.
Edit (Show Folder, add item(s), edit folder)
Gebruikers uit de geselecteerde groepen kunnen alle handelingen uitvoeren op de folders. Tabel 7-5: Instellingen voor folder-security
De gebruikersgroepen waarvoor de instellingen zijn gedaan kunnen deze instellingen herkennen aan een icoontje: • Een gebruiker mag alleen bladeren door folders maar heeft geen rechten om items aan te maken of te bewerken. Dit wordt gekenmerkt door een rood icoontje
achter de folders en items;
• Een gebruiker mag door folders bladeren en mag items aanmaken, maar niet bewerken. Dit wordt gekenmerkt door een geel icoontje folders en items.
achter de
Een overzicht van de rechten die de verschillende gebruikersgroepen hebben om bepaalde delen van de site te kunnen bewerken krijg je met behulp van de actie View Access Permissions . Voordat je deze actie start selecteer je eerst de folders waarvan je een overzicht wilt hebben. Als je deze actie dan start krijg je een matrix te zien die de relatie tussen groepen en folderrechten weergeeft:
Figuur 7-7: Overzicht van folderrechten van de gebruikersgroepen
7.5.2 Bladeren door de site Het kan wenselijk zijn om bepaalde delen van de site alleen toegankelijk te laten zijn voor een geselecteerde groep bezoekers. De bezoekers van een site kunnen we in eerste instantie in twee groepen onderscheiden: • Bezoekers van de eigen organisatie die ook met de Smartsite Manager werken; • Bezoekers die geen relatie hebben met de organisatie en/of die niet met de Smartsite Manager mogen werken. Wanneer bepaalde delen van de site afgeschermd moeten worden doe je dat door dat gedeelte van de site ‘restricted’ te maken en aan bepaalde groepen het recht te geven om door dat afgeschermde deel te bladeren. Alle gebruikers die gebruik maken van de Smartsite Manager zijn al onderverdeeld in groepen. Deze groepen kunnen direct gebruikt worden om toegang te verlenen tot het afgeschermde gedeelte. Bezoekers kunnen als een apart soort User worden aangemaakt (7.2.1 Een apart soort gebruiker: de visitor). Daarnaast kunnen deze gebruikers dan worden geplaatst in een aparte groep.
Noot Gebruikersgroepen die het recht hebben om het deel van de site te bewerken m.b.v. de Smartsite Manager hebben automatisch het recht om door dat deel van de site te bladeren. Ook wanneer de instellingen voor dat deel van de site op ‘restricted’ zijn gezet.
Smartsite Content Management Server ®
121
Rechten en Security
Om een deel van de site af te schermen: 1. Selecteer de folders die moeten worden afgeschermd; 2. Start de actie Set Browse Access geopend:
. Er wordt een dialoogvenster
Figuur 7-8: Bladertoegang voor de site instellen
3. Selecteer als Action de optie Set security; 4. Selecteer de groepen die je toegang wilt geven tot een bepaald deel van de site; 5. Zet de Security Rights op Browse; 6. Maak een selectie of deze instelling ook voor alle subfolders geldt of alleen voor de geselecteerde folders; 7. Klik op Finish
.
Let op! Wanneer deze actie is uitgevoerd wordt voor alle items en folders die geselecteerd zijn de de waarde van het veld Restricted aan gezet. Tegelijkertijd wordt er voor de geselecteerde groepen een uitzondering vastgelegd dat zij deze tot pagina’s gerenderde folders en items aan de ‘voorkant’ van de site mogen bezoeken. Wanneer een gebruiker uit de geselecteerde groepen naar de bewuste pagina bladert, dan zal hij een inlogscherm te zien krijgen waar in de inlognaam en het wachtwoord moet worden opgegeven. Wil je nu bepaalde groepen niet meer het recht geven om het afgeschermde deel van de site te bekijken dan herhaal je de actie Set Browse Access maar zet je in stap 5 de waarde van Security Rights op Remove Browse
Access. De geselecteerde gebruikersgroepen hebben dan geen recht meer om door het afgeschermde deel van de site te bladeren. Wil je de afscherming in zijn geheel verwijderen, dan herhaal je de actie Set Browse Access op die folders waarvan je de restrictie wilt verwijderen. Selecteer dan in stap 3 in Action de optie Remove security. Nu wordt de restrictie-vlag van alle items en folders verwijderd en zijn de geselecteerde delen van de site weer vrij toegankelijk voor een ieder om doorheen te bladeren.
Noot De actie Update geeft ook de mogelijkheid om de restrictie-vlag van folders en items aan te zetten. Echter, je hebt dan aangegeven dat een deel van de site afgeschermd is, maar je hebt nog niet vastgelegd welke groepen dat deel van de site mogen bezoeken. Daarvoor moet je alsnog de actie Set Browse Access
In dit hoofdstuk wordt een uitgebreide uitleg gegeven over workflow binnen Smartsite. Deze kennis is voornamelijk bedoeld als achtergrondinformatie die moet leiden tot een beter inzicht in de mogelijkheden. Workflow is verweven met de security instellingen van Smartsite. Elke rol heeft een aantal workflowstatussen. Deze statussen maken het mogelijk om een ‘Transition’ te starten van de ene naar de andere ‘Activity’. Bij het lezen zul je dus een goed inzicht moeten hebben in het security model, en dan met name met betrekking tot rollen en de hiërarchische groepsindeling. Workflow is complex. Zoals gezegd is dit hoofdstuk bedoeld als achtergrondinformatie. Het is geen aanmoediging om zomaar wijzigingen aan te brengen in een bestaande workflow. Bij de opzet van de site is daar namelijk aandacht aan besteed en wanneer het security model binnen de site niet ingrijpend veranderd is het niet nodig om wijzigingen in een workflow aan te brengen.
Workflow
8.1 Definitie Workflow Binnen Smartsite zijn er twee soorten workflow te onderscheiden: • CMS-worklow • Application Workflow Wanneer je in abstracte zin een definitie van workflow geeft zou deze er zo uit kunnen zien: “Workflow is een IT technologie die gebruik maakt van elektronische systemen om bedrijfsprocessen te beheren en te monitoren. Workflow maakt het mogelijk om de coordinatie van het pad, dat een werk tussen de verschillende personen en/of afdelingen aflegt, te definieren en te volgen.” Deze definitie laat meteen al een aantal dingen zien: • Er wordt een afgebakende eenheid van werk gevolgd; • Het werk doorloopt een keten van stappen langs een verzameling van personen en/of afdelingen; • De keten van stappen volgt uit de bestaande bedrijfsprocessen; • Het proces kan door het gebruik van een elektronisch systeem gevolgd en beheerd worden. Binnen Smartsite is het ‘stuk werk’ dat gevolgd moet worden een item. Het item is binnen de gehele workflow een atomaire eenheid; het item kan niet in stukken gehakt kan worden, maar moet in zijn totaliteit het gehele workflow proces doorlopen, en kan zich op enig moment maar op een plek in de workflow bevinden. Het item doorloopt dus in zijn geheel een keten van stappen langs een aantal personen en/of afdelingen. Binnen Smartsite zijn deze personen en afdelingen vastgelegd met behulp van de Security instellingen. De indeling in gebruikers, gebruikersgroepen en rollen, die vaak al is gemodelleerd volgens de bestaande bedrijfshierarchie, wordt binnen de workflow als basis gebruikt om de paden te bepalen die een item kan afleggen. Vooral de hierarchie die in de groepen is aangebracht speelt een belangrijke rol in het workflow-proces De workflow van items kan beheerd en gevolg worden. Te allen tijden kan de workflow-status van een item, die binnen Smartsite ook wel CMS-status wordt genoemd, bekeken worden. Deze workflow-status wordt vaak al in het viewvenster achter het item weergegeven. Verder kun je gebruik maken van de actie Workflow Overview ren en te beheren.
om de workflow van een item te monito-
Internationaal is er de laatste jaren getracht om het workflow-proces te standaardiseren. Het Workflow Managment Consortium (WfMC) heeft zich als organisatie opgeworpen om deze standaard vorm te geven. Dat heeft geleid tot een definitie die is vastgelegd in een nieuwe taal: XML Processing Description Language (XPDL).
XPDL is een op XML gebaseerde taal waarin alle aspecten die met workflow te maken hebben zijn vastgelegd in een internationale standaard. Smartsite heeft deze internationale standaard omarmd en maakt voor het definieren van de workflow binnen Smartsite gebruik van een subset van XPDL. Omdat deze taal is gebasseerd op XML is de subset die Smartsite gebruikt eenvoudig te vertalen naar een algemene, op XPDL gebasserde, workflow en vice versa.
Noot Voor meer informatie over het WfMC kun je terecht op www.wfmc.org.
Smartsite Content Management Server ®
127
Workflow
8.2 Hoe werkt workflow Een workflow is opgebouwd uit elementen van het type Activity (Activiteit) en Transition (Overgang). Wanneer we een simple workflow bekijken, zoals in Figuur 4-1 -Een eenvoudige workflow, dan kunnen we daarin een vijftal elementen van het type Activitiy onderscheiden: • Start • Assign • Edit • Activate • Complete
Figuur 8-1: Een eenvoudige workflow
Tussen deze vijf activiteiten zijn er vier overgangen. Er is een vijfde Transition toegevoegd die direct een overgang toestaat van de activiteit Start naar de activiteit Complete. Deze verzameling van Activities en Transitions beschrijft de workflow die een item moet doorlopen vanaf het moment dat het wordt aangemaakt tot het moment dat het wordt geactiveerd. Voordat een item naar een nieuwe Activity kan gaan, moet eerst de huidige Activity zijn afgerond. Binnen Smartsite zijn veel activiteiten afhankelijk van de gebruikers. De Activity Edit betekent bijvoorbeeld dat er door een gebruiker informatie aan een item moet worden toegevoegd. De verantwoordelijkheid voor het afronden van deze activiteit ligt dus geheel in handen van die gebruiker die met het item bezig is. Dat betekent ook dat alleen die gebruiker een bepaalde activiteit kan afronden en het item naar de volgende activiteit kan sturen. De workflow op items is dus geen autonoom proces; er is interactie van de gebruikers vereist om het proces aan te sturen. Welke richting het proces kan worden gestuurd wordt bepaald door de definitie van de workflow en de daarin vastgelegde Activities en Transitions.
128
Noot Er zijn overigens wel delen van een workflow die als autonoom proces kunnen worden gedefinieerd. Echter, het zal vaak het geval zijn dat zo’n autonoom proces eindigt bij iemand die een controle uitvoert op het uitgevoerde proces, zodat op dat moment weer een gebruikers-interactie plaatsvindt.
8.2.1 CMS-statussen Voor de interactie van de gebruiker met de workflow zijn er binnen Smartsite zogenaamde CMS-statussen gedefinieerd. De CMS-statussen zijn gedefinieerd in de tabel Status in de Smartsite database: Nr.
Naam
-3
Scheduled
-2
Busy
-1
Archived
0
Active
1
Prepublished
2
Deleted
3
Template
10
Assigned
11
Unassigned
Tabel 8-1: CMS-states binnen Smartsite
Er zijn twee soorten CMS-statussen te onderscheiden: Allereerst zijn er CMS-statussen die worden gebruikt om de publicatie-status van een item te beschrijven: Nr . Naam
Omschrijving
-1
Archived
Het item is gearchiveerd.
0
Active
Het item is actief.
1
Prepublished
Het item is nog nooit actief geweest.
2
Deleted
Het item is verwijderd.
3
Template
Het item is een sjabloon voor andere items van hetzelfde contenttype. Tabel 8-2: CMS-states voor publicatie
Deze statussen hebben dus betrekking op de gepubliceerde versie van een item en worden derhalve in het veld Status van de Contents-tabel opgeslagen. Daarnaast zijn er CMS-statussen die worden gebruikt voor de workflow van een nieuwe versie van een item: Nr . Naam
Omschrijving
-3
Scheduled
De versie wordt op opgegeven datum actief.
-2
Busy
De versie is in behandeling.
0
Active
De versie is actief. Tabel 8-3: CMS-states voor workflow
Smartsite Content Management Server ®
129
Workflow
Nr Naam .
Omschrijving
10 Assigned
De versie is toegekend aan een gebruiker of een gebruikersgroep.
11 Unassigned
De versie is aan niemand toegekend. Tabel 8-3: CMS-states voor workflow
Deze statussen, die betrekking hebben op de workflow, en die van toepassing zijn op een nieuwe versie van een item worden in het veld Status van de ContentVersions-tabel opgeslagen. De CMS-states kunnen met de actie Configure Security - CMS States beheerd en bewerkt worden. Met behulp van deze actie kun je ook je eigen CMS-states toevoegen aan de Status-tabel uit de Smartsite database die binnen een worfklow gebruikt kunnen worden. Je kunt alleen statussen toevoegen die op workflow van toepassing zijn.
!
Let op! De CMS-statussen zoals die gedefinieerd zijn in Tabel 4-1 -CMS-states binnen Smartsite zijn de systeem-statussen Deze mogen niet verwijderd worden omdat zij anders de werking van Smartsite nadeling kunnen beïnvloeden.
Let op!
8.2.2 CMS-Statussen en interactie Hoe sturen de CMS-states nu het workflow-proces aan? Wanneer een item wordt aangemaakt zal Smartsite, op basis van het content-type waarop het item is gebaseerd, een workflow aan het item verbinden. In de definitie van het content-type is namelijk vastgelegd wat de standaard workflow is die bij dit content-type hoort. Direct daarna zal Smartsite de workflow-status van het item op Assigned zetten. Het item wordt toegekend aan de gebruiker die het item opent. Daarvoor worden in de Contents-tabel de velden AssignedUserID en AssignedGroupID gevuld met de waarden die behoren bij de betreffende gebruiker. Deze waarden zorgen ervoor dat die gebruiker de verantwoordelijkheid over het item houdt tijdens het verdere proces dat het item met behulp van de workflow doorloopt. In de dropdown-lijst die de verschillende workflow-statussen weergeeft, zou je nu de term Assigned zien. De activiteit waarin het item zich nu bevindt is Assign.
Hoe werkt workflow zou de workflow-status van het item Busy moeten zijn. De activeit Assign is echter nodig om het workflow-proces in gang te kunnen zetten. We zullen later zien hoe we de informatie over deze activiteit voor de gebruikers kunnen verhullen en hoe we direct naar de activiteit Edit kunnen springen. Echter, in het kader van dit voorbeeld doen we de werkelijkheid enigszins geweld aan; • Een bestaand item kan ook aan iemand worden toegekend met de Set Worfklow . Met deze actie geef je aan welke workflow van toepassing is en welke groep of gebruiker de verantwoordelijkheid over het item krijgt.
Om nu in de activiteit Edit terecht te komen maken we gebruik van een workflow-status. De dropdown-lijst geeft altijd de huidige workflow-status van een item weer en de eerstvolgende workflow-status. Wanneer het item wordt opgeslagen met de workflow-status die het item op dat moment heeft, blijft het item in dezelfde activiteit. Kiest men de eerstvolgende workflow-status dan wordt een overgang in gang gezet van de ene activiteit naar de volgende activiteit.
Noten • De lijst wordt gevoed door de workflow-engine. Deze workflow-engine kijkt alleen vooruit. Dat betekent dat alleen die statussen worden weergegeven die na de huidige workflow-status komen plus de huidige workflow-status; • In de dropdown-lijst van mogelijke workflow-statussen die aan een item kunnen worden toegekend kunnen ook meer workflow-statussen dan alleen de huidige en de eerstvolgende status worden weergegeven. Dit heeft te maken met een zogenaamd Extended Attribute van een Activity, waarop later wordt teruggekomen; • Welke workflow-statussen er voor een gebruiker zichtbaar zijn in het lijstje wordt ook bepaald door de rol die de gebruiker heeft. Deze instellingen doe je met de actie Configure Security - Edit Roles
.
De workflow-status die is gekoppeld aan de Transition met id = 2, van activiteit Assign naar de activiteit Edit, is de status Busy. Wanneer deze workflow-status wordt gekozen en het item wordt opgeslagen, zal bij het opnieuw openen, het item zich in de activiteit Edit bevinden. Wanneer het item wordt geopend in de activiteit Edit dan zullen er weer twee workflow-statussen worden weergegeven: Busy, de huidige status, en Active, de eerstevolgende status. Wanneer een gebruiker alle informatie aan het item heeft toegevoegd zet hij of zij de status van het item op Active en slaat het item op. Door het kiezen van deze workflow-status wordt er binnen de workflow een overgang bewerkstelligd van de activiteit Edit naar de activiteit Activate. Aan de laatste Transition, de Transition met id = 4, van Activate naar Complete is geen workflow-status toegekend. Omdat deze Transition niet afhankelijk is van een interactie van een gebruiker zal de workflow-engine van Smartsite deze stap automatisch nemen. In de activiteit Complete is nu een actie opgenomen die deze versie van het item publiceert. De informatie van deze versie van het item worden gekopieerd van de tabel ContentVersions naar de Contents-tabel. De workflow-status van het item wordt Active.
Smartsite Content Management Server ®
131
Workflow
Noot Activiteiten kunnen worden ondersteund door acties. Deze acties automatiseren bepaalde handelingen zoals bijvoorbeeld het aanmaken van taken, het versturen van mail, het kopiëren van informatie van de ContentVersions-tabel naar de Contents-tabel, etc.
Wat we in bovenstaand voorbeeld gezien hebben is het volgende: • Door het veranderen van de workflow-status van een item wordt een Transition in gang gezet die het item bij een nieuwe activiteit brengt. De workflow-status geeft tevens aan in welke activiteit van de workflow het item zich op dat moment bevindt; • Wanneer een Transition niet gekoppeld is aan een workflow-status, dan zal de workflow-engine alle volgende stappen automatisch uitvoeren totdat er een Transition wordt bereikt die interactie van de gebruiker vereist of totdat de workflow voorbij is; • Binnen activiteiten kunnen acties gedefinieerd worden die een aantal handelingen kunnen automatiseren. Deze acties zijn speciale workflow-componenten die de IWorkflowComponent interface implementeren en derhalve ook zelf te maken zijn.
8.3 Analyse Workflow We gaan de Default workflow analyseren. Deze standaard workflow is de workflow waar Smartsite op terugvalt wanneer er aan een item geen andere workflow is toegekend:
Figuur 8-2: Smartsite Default workflow
Smartsite Content Management Server ®
133
Workflow
De code van de Default workflow ziet er als volgt uit: <WorkflowProcesses> <WorkflowProcess Id="1" Name="Default Publication Workflow” AccessLevel="PUBLIC"> <ExtendedAttribute Name="TransitionEndPoint" Value="False"/> <ExtendedAttribute Name="TransitionMode" Value="Optional"/> ASSIGNEDBUSYACTIVEUNASSIGNED Voorbeeldcode 8-1: Default workflow
Workflows worden in Smartsite helemaal in XML geschreven. De opbouw van het XML-document is vastgelegd in een zogenaamd XML Schema Definition (XSD). Dat betekent dat de verschillende elementen van het XML-document aan bepaalde randvoorwaarden moeten voldoen die in het schema zijn vastgelegd. Het Worfklow Management Consortium (WfMC) heeft zich de afgelopen jaren sterk gemaakt voor het standaardiseren van workflows. Dat heeft geleid tot het zogenaamde XML Processing Description Language (XPDL). Dit is een op XML gebaseerde taal, waarvan alle definities die gebruikt kunnen worden binnen een XPDL-document, zijn vastgelegd in een schema. Door bij de opbouw van een XPDL-document de regels uit het schema te volgen creëer je een workflow volgens de internationale standaard.
Het schema dat Smartsite gebruikt voor de workflows is een subset van het schema dat bij een XPDL document hoort. Niet alle, in dat internationale schema, gedefinieerde elemenen konden een praktische toepassing vinden binnen Smartsite. Echter, omdat er sprake is van eens subset van het internationale XPDL-schema, kan een workflow die in Smartsite is gedefinieerd, eenvoudig worden omgezet naar het XPDL-formaat.
8.3.1 De basis van een workflow Een workflow bestaat uit activiteiten (Activity) en overgangen (Transition). Wanneer we de Default workflow ontdoen van een groot deel van de code zien we meteen de basis-structuur van de workflow:
Bovenstaand uittreksel van de Smartsite workflow kunnen we ook als volgt weergeven:
Figuur 8-3: Basis van een Smartsite workflow
Uit Figuur 4-3 -Basis van een Smartsite workflow kunnen we aflezen dat er binnen het element WorkflowProcesses 0 tot oneindig veel afzonderlijke elementen van het type WorkflowProcess kunnen worden gedefinieerd. Elk element van het type WorkflowProcess bestaat weer uit een verzameling van 0 tot oneindig elementen van het type Activities en Transititons.
Smartsite Content Management Server ®
135
Workflow
Binnen een Smartsite workflow is er altijd minimaal één element van het type WorkflowProcess. Uit Voorbeeldcode 4-2 -Default workflow (‘uitgekleed’) kunnen we aflezen dat het element WorkflowProcess een aantal attributen heeft. Een van deze is het attribuut AccessLevel. Wanneer er meedere WorkflowProcess-elementen worden gedefinieerd dan mag er altijd maar een van deze elementen het attribuut AccessLevel = PUBLIC hebben. De overige elementen hebben dan het attribuut Accesslevel = PRIVATE. Het nut van meerdere elementen van het type WorkflowProcess is dat je delen van een uitgebreide workflow kan onderbrengen in een zogenaamde subflow. Binnen de publieke workflow wordt dan een sprong gemaakt naar een subflow (AccessLevel = PRIVATE). Wanneer de sublow is afgerond keert deze terug naar de basis-workflow (AccessLevel = PUBLIC) en wordt het proces daar voortgezet. Het element WorkflowProcess bevat twee elementen: Activities en Transitions. Per element WorkflowProcess kunnen deze elementen maar een keer voorkomen. Binnen het element Activities worden de afzonderlijke activiteiten gedefinieerd. Binnen het element Transitions liggen de definities van de overgangen vast.
8.3.2 De definitie van activiteiten Activiteiten zijn de verschillende stappen binnen het workflow-proces. Elke activiteit wordt als het element Activity gedefinieerd binnen het element Activities.
... <ExtendedAttribute Name="TransitionEndPoint" Value="False"/> <ExtendedAttribute Name="TransitionMode" Value="Optional"/> ... Voorbeeldcode 8-3: c activiteiten binnen een workflow
Het element Activities bevat dus een verzameling van alle activiteiten die binnen het workflow-proces plaatsvinden. De activiteiten hoeven niet per se ‘chronologisch’ te zijn gedefinieerd. De volgorde waarin de activiteiten worden uitgevoerd wordt namelijk bepaald door de Transitions. We kunnen Voorbeeldcode 4-3 -activiteiten binnen een workflow ook weergeven in een diagram:
Figuur 8-4: diagram van de activiteiten binnen workflow
Een Activity element heeft twee attributen: Id en Name. Het Id-attribuut is een verplicht attribuut voor een Activity. Dit attribuut wordt namelijk gebruikt binnen een Transition om aan te geven welke activiteiten door een Transition worden verbonden. Het attribuut Name dient om een Activity te voorzien van een duidelijke naam.
8.3.2.1 Uitgebreide attributen voor activiteiten Aan een Activity kunnen elementen van het type ExtendedAttribute worden toegevoegd. Deze elementen worden gebruikt om extra, uitgebreide attributen aan een activiteit toe te voegen die de werking van de activitieit beïnvloeden.
Noot elementen van het type ExtendedAttribute kunnen ook binnen andere elementen worden gedefinieerd. Het ExtendedAttribute-element wordt gebruikt om aan een element complexe attributen mee te geven.
Een ExtendedAttribute-element bevat verder geen elementen. Het ExtendedAttribute-element heeft echter wel twee eigen attributen. De attributen van het ExtendedAttribute vormen een naam-waarde-paar. Het eerste attribuut is de Name. Deze is verplicht voor een ExtendedAttribute. Het tweede attribuut is Value. Het Activity-element kent twee elementen van het type ExtendedAttribute: • TransitionMode • TransitionEndPoint
Smartsite Content Management Server ®
137
Workflow
8.3.2.2 Het uitgebreide attribuut TransitionEndpoint Wanneer een item wordt geopend bevindt zich het in een bepaalde activiteit. Bij die activiteit hoort een workflow-status. Wanneer het item wordt opgeslagen met diezelfde workflow-status dan blijft het item in die activiteit. Wordt er een volgende workflow-status gekozen dan wordt een overgang in werking gesteld en springt het item naar de volgende status. Het is niet altijd wenselijk om een item weer op te slaan met de workflow-status die het item op dat moment heeft. Dat betekent dat het item zich op dat moment nog steeds binnen die activiteit bevindt. Acties die aan die activiteit gekoppeld zijn worden dan ook weer opnieuw uitgevoerd.
Voorbeeld Een workflow bevat de volgende activiteiten en workflow-statussen: Activiteit
Wokflow-status
Edit
Busy
ToBeApproved
Ready for Approval
Approving
Busy Approving
IsApproved
Approved Tabel 8-4: Een deel van een uitgebreide workflow
Als het item wordt opgeslagen met de workflow-status Ready for Approval, springt de workflow naar de activiteit ToBeApproved. Binnen deze activiteit is er een actie opgenomen die een aantal mensen op de hoogte brengt dat er een item klaar staat voor goedkeuring. Wanneer een van hen het item opent, dan moet die gebruik ook daadwerkelijk met het item aan de slag. Deze gebruiker mag het item niet meer opslaan met de workflow-status Ready for Approval, want dan blijft het item in de activiteit ToBeApproved en krijgt dezelfde groep mensen opnieuw een bericht dat dat item klaar staat voor goedkeuring. De gebruiker die het item geopend heeft mag het item dus alleen opslaan met de worfklow-status Busy Approving. De workflow-status Ready for Approval mag niet meer zichtbaar zijn.
Om de mogelijkheid uit te sluiten dat een item wordt opgeslagen met dezelfde workflow-status als waarmee het wordt geopend, wordt gebruik gemaakt van het ExtendedAttribute TransitionEndPoint = False.
... <ExtendedAttribute Name="TransitionEndPoint" Value="False"/> ... Voorbeeldcode 8-4: het ExtendedAttribute TransitionEndPoint
Binnen de Default Workflow wordt dit ExtendedAttribuut gebruikt voor de activiteit Assign. Wanneer een item wordt aangemaakt, kent Smartsite direct in het content-type gedefinieerde workflow toe en springt naar de eerste activiteit Assign. Wanneer een gebruiker, aan wie het item is toegekend, het item opent, mag deze het niet meer opslaan binnen die activiteit. De workflow-status Assigned wordt daarom niet meer getoond. De geselecteerde workflow-status is automatisch de eerstvolgende: Busy. Bij het opslaan van het item vindt dus de overgang plaats van de activiteit Assign naar de activiteit Edit.
8.3.2.3 Het uitgebreide attribuut TransitionMode Een workflow wordt stap voor stap doorlopen. Wanneer het item zich binnen een activiteit bevindt kan het item alleen naar de volgende activiteit springen. Wanneer het item is geopend geeft de lijst van worklow-statussen alleen de huidige status en de eerstvolgende status weer. Als het item wordt opgeslagen en de eerstvolgende workflow-status is geselecteerd wordt er een Transition in gang gezet en zal het item naar de volgende activiteit in de workflow springen. Bij het opnieuw openen van het item ben je dan met die activiteit bezig.
Voorbeeld Stel dat je een workflow hebt met een n-tal activiteiten: AC1, AC2, etc. Deze activiteiten worden verbonden door de overgangen TR0-1, TR1-2, TR2-3, TR3-4, etc. Workflowstatus bij openen item
Huidige activiteit binnen workflow
Te kiezen workflowstatussen
workflowstatus bij opslaan item
Nieuwe activiteit binnen workflow
TR0-1
AC1
TR0-1 TR1-2
TR1-2
AC2
TR1-2
AC2
TR1-2 TR2-3
TR2-3
AC3
TR2-3
AC3
TR2-3 TR3-4
TR3-4
AC4
etc. Tabel 8-5: een workflow doorlopen
Elke keer wanneer het item wordt geopend kun je dus alleen kiezen uit de huidige workflowstatus - waardoor er niets veranderd wanneer het item daarmee wordt opgeslagen - en de eerstvolgende workflow-status - waarmee het item naar de volgende activiteit in de workflow springt.
Je kunt je voorstellen dat het wenselijk zou kunnen zijn om een belangrijke gebruiker (bijvoorbeeld een content-manager) de mogelijkheid te geven om direct van bijvoorbeeld activiteit AC1 naar activiteit AC6 te laten springen. De tussenliggende stappen zijn bijvoorbeeld controles door anderen. De contentmanager is echter zelf het laatste controle-punt en kan daarom besluiten om de tussenliggende controles over te slaan.
Smartsite Content Management Server ®
139
Workflow
Het verspringen naar een activiteit die verderop in de keten van stappen van de workflow ligt, kan alleen als de bij die activiteit behorende workflow-status ook zichtbaar is wanneer het item getoond wordt; de content-manager moet die workflow-status kunnen kiezen en het item daarmee opslaan om in die activiteit terecht te komen. Om dit mogelijk te maken maak je gebruik van het element ExtendedAttribute met de naam TransitionMode. Het ExtendedAttribute TransitionMode kan twee waarden aannemen: • Connectable • Optional Door gebruik te maken van deze ExtendedAttributes laat je de workflowengine verder kijken ‘dan zijn neus lang is’. De workflow-engine ziet nu niet alleen de workflow-status die bij de volgende activiteit hoort, maar - indien die volgende activiteit het ExtendedAttribute TransitionMode = Connectable/ Optional heeft - ook de workflow-status van de daaropvolgende activiteit. Wanneer die volgende activiteit ook het element ExtendedAttribute TransitionMode = Connectable/Optional heeft wordt de workflow-status van de daaropvolgende activiteit ook weer getoond. Dit gaat zo voort totdat er een activiteit komt die niet meer voorzien is van het ExtendedAttribute TransitionMode = Connectable/Optional. ... <ExtendedAttribute Name="TransitionMode" Value="Optional"/> ... Voorbeeldcode 8-5: Het ExtendedAttribute TransitionMode
De beide waarde die het ExtentedAttribute TransitionMode kan aannemen, Connectable en Optional, maken het dus mogelijk om direct naar een verder in de workflow liggende activiteit te springen. Het verschil tussen de waarde Connectable en Optional is, dat in geval van de waarde Connectable, alle acties die in tussenliggende activiteiten zijn geïmplementeerd ook worden uitgevoerd. Wanneer de waarde Optional is worden de binnen de activiteit gedefinieerde acties niet uitgevoerd. Binnen de Default workflow is aan de activiteit Edit voorzien van het ExtendedAttribute TransitionMode = Optional. Wanneer een item wordt aangemaakt bevindt zich het in de activiteit Assign. Omdat de activiteit Assign is voorzien van een ExtendedAttribute TransitionEndPoint = False, zal het item niet meer de workflow-status Assigned laten zien maar alleen de workflow-status Busy. Omdat de activiteit Edit het ExtendedAttribute TransitionMode = Optional heeft wordt ook de workflow-status van de daaropvolgende activiteit (Activate) getoond: Active. Na het aanmaken van een item kan de gebruiker het item dus opslaan met de workflowstatus Busy of met de workflow-status Active.
8.3.3 Acties binnen Activiteiten Binnen een activiteit kunnen een aantal acties worden uitgevoerd. Je kunt hierbij denken aan het sturen van berichten, het aanmaken van taken, het importeren of exporteren van een item etc. In de Default workflow wordt er een actie, UnAssign, uitgevoerd binnen een activiteit Complete: ... ... Voorbeeldcode 8-6: Acties binnen een workflow
Uit Figuur 4-4 -diagram van de activiteiten binnen workflow kun je aflezen dat een een element van het type Action binnen het element Implementation wordt gedefinieerd. Het element Implementation heeft geen attributen. Er kunnen binnen het element Implementation meerdere elementen van het type Action worden gedefinieerd. De opbouw van een action kun je aflezen uit Figuur 4-5 -diagram van het element Action. Het element action heeft een verplicht attribuut Type en kan verschillende elementen bevatten.
Figuur 8-5: diagram van het element Action
Het attribuut Type verwijst naar een entry in het Windows-register: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\POINTER\SmartSite\Sites\[SiteName]\Workflow\Comp onents\UnAssign] "Enabled"="1" "Object"="PS5Workflow.UnAssign" Voorbeeldcode 8-7: Registerinstellingen voor workflow-acties
Smartsite Content Management Server ®
141
Workflow
De registersleutel UnAssign is gekoppeld aan een object dat de IWorflowComponent Interface implementeert. Het object kan worden gevoed met parameters om het resultaat naar je hand te zetten. Parameters worden gedefinieerd in het element Parameter. Alle parameters die je als het element Parameter definieert worden samengevoegd in het element Parameters. Een parameter heeft twee verplichte attributen: Name en Value. Een voorbeeld van zo’n parameter-element is: <Parameter Name="ToGroup" Value="%AssignedGroupId%.parentgroup"/> Voorbeeldcode 8-8: Voorbeeld van een parameter-element
De actie UnAssign, die gekoppeld is aan het object PS5Workflow.UnAssign, wordt gestart wanneer het item in de activiteit Complete komt. De activiteit Complete volgt na de activiteit Activate. Op het moment dat het item is geactiveerd zijn de bewerkingen klaar en kan het item terug naar de grote ‘poel’ van items die actief zijn en niet meer onder de verantwoordelijkheid van iemand vallen. Wanneer een volgende gebruiker met het item aan de slag gaat, en deze gebruiker mag een item openen dat aan niemand is toegekend, dan start het workflow-proces opnieuw op.
Noot Smartsite beschikt al over een groot aantal objecten die kunnen worden gebruikt binnen het element Action. In dit deel wordt de globale werking van de workflow besproken aan de hand van de Default workflow. Daarom wordt er in dit deel niet uigebreid ingegaan op alle mogelijheden van het element Actions. Dit wordt verder besproken in [Hoofdstukverwijzing].
8.3.4 Transitions Transitions bepalen hoe een workflow er uit ziet. Je kunt een heleboel activiteiten definieren waarin allerlei acties zij gedefinieerd, maar wanneer je niet aangeeft hoe en onder welke conditities je naar de volgende activiteit springt, dan zal een workflow niet kunnen werken. De overgangen tussen de verschillende activiteiten binnen de Default workflow zien er als volgt uit: ... ASSIGNEDBUSYACTIVEUNASSIGNED ... Voorbeeldcode 8-9: Transitions binnen de Default workflow
Het element Transitions, dat verder geen attributen heeft, bevat een verzameling elementen van het type Transition. Het Transition-element heeft drie verplichte attributen: Id, From en To, en een optioneel attribuut: Name. Het Id-attribuut zorgt ervoor dat een Transition uniek is. De attributen From en To bevatten een verwijzing naar het Id-attribuut van Activity-elementen waar de Transistion een relatie tussen legt. Het element Transition kan een aantal elementen bevatten: Condition, Description en ExtendedAttribute. De opbouw van het Transition-element is samengevat in een diagram:
Figuur 8-6: Schema van een Transition-element
Op dit moment heeft het Transition-element nog geen ExtendedAttributeelementen die aan een Transition kunnen worden toegekend (in tegenstelling tot bijvoorbeeld het Activity-element). Het Description-element is een optioneel element dat je kan gebruiken om een uitgebreide beschrijving van de overgang tussen elementen toe te voegen.
8.3.4.1 De voorwaarden voor een Transition Een overgang tussen twee activiteiten kan afhangen van bepaalde voorwaarden, bepaalde condities. Wanneer er aan een Transition geen condities zijn gekoppeld dan zal de workflow-engine de Transition zonder meer uitvoeren. In Voorbeeldcode 4-9 -Transitions binnen de Default workflow gebeurt dat bijvoorbeeld bij de Transition met Id=4 van activiteit met Id = 3 (Activate) naar de activiteit met Id = 99 (Complete). Wanneer de activiteit Activate is bereikt ziet de worfklow-engine dat er geen voorwaarden zijn verbonden aan de overgang naar de activiteit Complete en de workflow-engine zal deze stap daarom onmiddelijk uitvoeren. Een belangrijke voorwaarde voor een overgang is de voorwaarde dat deze kan worden geïnitieerd door een gebruiker. Door het kiezen van een workflow-status wordt een bepaalde Transition in werking gesteld. Het element Conditition heeft een verplicht attribuut: Type. Dit attribuut bepaalt onder welke voorwaarden de overgang in werking wordt gesteld. De
Smartsite Content Management Server ®
143
Workflow
voorwaarde dat het gebeurt door interactie van de gebruiker wordt ingesteld door het type STATUSCHANGE. De waarde van het Condition-element bevat in dat geval de code van de workflow-status die aan deze Transition moet worden gekoppeld. Door deze workflow-status te selecteren wordt de betreffende Transition uitgevoerd.
BUSY Voorbeeldcode 8-10: Gebruikers-interactie als voorwaarde voor een Transition
Noot Er zijn andere Conditions die gebruikt kunnen worden om bepaalde overgangen te voorzien van voorwaarden. Deze Conditions komen in een later stadium aan bod.
8.3.4.2 Bijzondere Transitions in de Default workflow De Default workflow kent een tweetal bijzondere elementen van het type Transition: • Transtion id = 1 van Activity id = 1 (Start) naar Activity id = 2 (Assign); • Transition id = 5 van Activity id = 1 (Start) naar Activity id = 99 (Complete).
Over een item in relatie tot workflow kan je twee dingen zeggen: • Er is een workflow aan het item toegekend; • Er is geen workflow aan het item toegekend. Wanneer er een workflow aan het item is gekoppeld zal elke keer als het item wordt geopend, de workflow verdergaan waar deze was gebleven. De informatie hiervoor wordt gehaald uit de velden AssignedUserID en AssignedGroupID van de Contents-tabel en het veld Status uit de tabel ContentVersions. Wanneer er geen workflow aan het item is toegekend zal bij het openen van het item (en natuurlijk bij het aanmaken van een nieuw item) een workflow aan het item worden gekoppeld - gebasseerd op de definitie van het contenttype - en zal het item moeten worden toegekend aan de gebruiker die het item opent cq. aanmaakt. Het toekennen van het item aan de betreffende gebruiker betekent dat er een Transition wordt uitgevoerd. Alleen in dit geval wordt de Transition niet door een gebruiker uitgevoerd, maar door Smartsite. Virtueel gezien ‘klikt Smartsite de workflow-status Assigned aan’. Wanneer deze Transition niet is gedefinieerd in de workflow, dan kan deze ook niet uitgevoerd worden, wat weer betekent dat het item niet geopend of aangemaakt kan worden.
Noot Het virtueel aanklikken van de status Assigned doe je ook wanneer je gebruik maakt van de actie Set Workflow
.
Wanneer je dus een CMS-workflow definieert, een workflow die de controle over een item houdt, zijn de activititeiten Start en Assign en de Transition tussen deze twee activiteiten met de Condititon STATUSCHANGE = ASSIGNED noodzakelijk
De Transtition van de activiteit Start naar de activiteit Complete doet op zich enigszins overbodig aan. Uit de vorige paragrafen blijkt dat Smartsite, in geval van een CMS-worfklow, de Transition uitvoert die gekoppeld is aan de workflow-status Assigned. De Transition met de Workflow-status UnAssigned wordt dus niet uitgevoerd. Toch is deze Transition een belangrijk binnen de opzet van een workflow. De workflow op een item kan worden afgebroken met de actie Set Workflow . Wanneer een workflow wordt afgebroken wordt de workflow-status UnAssigned geselecteerd waarmee de bijbehorende Transition wordt uitgevoerd. In de Default worfklow is dat de Transition met ID = 5. Door deze Transition wordt de activiteit Complete gestart. Binnen de activiteit Complete wordt een actie UnAssign uitgevoerd die er voor zorgt dat het het ontkoppelen van de workflow netjes gebeurt.
Informatie is allang niet meer verbonden aan een bepaald medium. Men heeft steeds meer de wens om dezelfde informatie langs verschillende kanalen te ontvangen, afhankelijk van de plaats en de locatie waar men zich op dat moment bevindt. De content die met behulp van Smartsite wordt beheerd is dus niet meer louter voor publicatie op het internet. De content moet ook gepubliceerd kunnen worden via mobiele telefoons, drukwerk en CD-ROM’s. Voor het publiceren naar deze verschillende mediums maakt Smartsite gebruik van channels en rendertemplates. In dit hoofdstuk wordt uitgelegd hoe een Channel is opgebouwd en hoe de content in de verschillende contenttypes aan de channels wordt gekoppeld door middel van rendertemplates. Verder wordt een simpele macro behandeld die gebruikt kan worden om eenvoudig een overzicht te genereren van alle kinderen van een folder.
Channels, Rendertemplates en Macro’s
9.1 Wat zijn channels Informatie die in een Smartsite database is opgeslagen is door het gebruik van channels op meerdere manieren te ontsluiten. Bezoekers kunnen de informatie benaderen langs verschillende kanalen. Smartsite reageert hierop door de gevraagde informatie zodanig te genereren m.b.v. rendertemplates dat de bezoeker de gevraagde informatie ook daadwerkelijk krijgt in het formaat dat geschikt is voor het medium waarvoor de informatie wordt opgevraagd. Een voorbeeld van zo’n channel zou i-Mode kunnen zijn. Wanneer informatie naar een mobiele telefoon moet worden gestuurd, dan vraagt dat een heel andere opmaak dan wanneer de informatie naar een webpagina moet worden gestuurd. Channels zijn gekoppeld aan contenttypes. Dat betekent dat per channel kan worden aangegeven welke soort content er zichtbaar gemaakt kan worden. Om de informatie van een item van een zeker contenttype weer te geven wordt gebruikt gemaakt van rendertemplates.
9.1.1 Opbouw van een channel Het aanmaken van een nieuw channel is een actie die niet snel door een sitemanager zal worden gedaan. Channels worden in de implementatiefase gedefinieerd en ingesteld. Het aantal channels dat voor de Smartsite edities Standard, Professional en Enterprise beschikbaar is, is beperkt tot respectievelijk 1, 4 en 7 channels. Voor een compleet overzicht wordt echter wel ingegaan op channels en hoe zij zijn opgebouwd. Channels zijn items van het contenttype channel. Dit contenttype is een van de basis-contenttypes van Smartsite en heeft als code CH. Alle eigenschappen van een channel zijn verenigd in het contenttype. Channels kunnen worden gedefinieerd door een nieuw item aan te maken van het contenttype Channel: Name Een naam die gebruikt wordt voor dit channel. Description Een omschrijving die beschrijft wat dit channel doet. ContentTypes Maak een selectie van de contenttypes die door dit kanaal kunnen worden opgevraagd. De keuze betreft natuurlijk alleen contenttypes die informatie weergeven die daadwerkelijk gepubliceerd moet worden. Het contenttype Channel hoeft zelf natuurlijk nooit weergegeven te worden en hoeft derhalve niet aan de lijst te worden toegevoegd.
Code Het request voor bepaalde informatie door een bepaald channel wordt gedaan door middel van de querystring van de URL: www.mysite.nl/smartsite.dws?id=251&ch=DEF In bovenstaande querystring wordt een aanvraag gedaan voor item nummer 251 door het channel met de code DEF. Wanneer dezelfde informatie via een ander kanaal wordt opgevraagd kan men de querystring aanpassen: www.mysite.nl/smartsite.dws?id=251&ch=IMO
Noot Het in dit voorbeeld genoemde item is van een bepaald contenttype. Dat contenttype moet natuurlijk wel een representatie in het channel hebben. Anders zal er een foutmelding verschijnen.
Het standaardkanaal waarlangs informatie wordt opgevraagd is in te stellen in het register van Windows. Hiervoor wordt gebruikt gemaakt van ‘Munging’; het automatisch aanvullen van parameters in querystring met een ingestelde waarde. De querystring-parameters die automatisch moeten worden aangevuld zijn in te stellen als tekstwaarde in de sleutel {Sitenaam}\URLMunging in het Windows register.
Noot Het ‘mungen’ van querystrings kan voor veel meer doeleinden worden gebruikt dan alleen het instellen van een default-channel. Het wijzigen van deze instellingen in het register valt meer in het kader van de site-bouwers dan van de site-managers.
BrowseStartPage Wanneer een ‘redirect’ of een request naar een bepaalde site over een bepaald channel plaatsvindt zonder dat in de querystring een item-parameter is meegegeven dan wordt het item dat is vermeld in dit veld getoond. Wanneer de opzet van een site gebruik maakt van frames, dan wordt verwezen naar de het item dat de frame-definitie bevat. Binnen deze frame-definitie is de verdeling van de informatie over de verschillende frames opgenomen. Locale Wanneer een site meerdere talen ondersteunt aan de ‘voorkant’ van de site dus niet de meertaligheid van de Smartsite Manager - dan kan hier een selectie worden gemaakt welke taal er moet worden getoond. UseServerCache Per Channel kan de servercache worden ingesteld:
Smartsite Content Management Server ®
149
Channels, Rendertemplates en Macro’s
Servercache Omschrijving None
Elke keer dat een item dat wordt opgevraagd wordt dit item door de Smartsite renderengine opnieuw gegenereerd
Normal
Items worden door de Smartsite renderengine gecached. Wanneer een item wordt opgevraagd zal het item niet meer gerenderd hoeven te worden maar is tussenkomst van Smartsite nog wel noodzakelijk. Deze vorm van servercache wordt ook wel Level I cache genoemd.
Both
Items worden door de Smartsite renderengine gecached als ‘platte’ HTML. Alle verwijzingen naar andere items worden hierbij omgezet. Wanneer een item wordt opgevraagd is tussenkomst van Smartsite niet meer nodig. Deze vorm van cace wordt ook wel Level II cache genoemd. Naast Level II cache wordt ook Level I cache gegenereerd. Tabel 9-1: Servercache instellingen
De feitelijke servercache wordt bepaald door de instellingen van de afzonderlijke items. Wanneer een item als servercache instelling Until Item Update heeft dan wordt de servercache van een item verwijderd op het moment dat een item opnieuw actief wordt gemaakt. Waneer een item als servercache instelling Never heeft dan wordt er nooit gebruik gemaakt van servercache voor dat betreffende item. Servercache is een manier om de druk op een site te balanceren. Wanneer items al gecached zijn hoeft Smartsite minder (Level I cache) of geen (Level II cache) werk meer te verrichten als een item wordt opgevraagd. DefaultDocument en IDParameter Standaard ziet de volledige querystring van een pagina er zo uit: www.mysite.nl/smartsite.dws?id=251&ch=IMO Met behulp van de instellingen in de velden DefaultDocument en IDParameter kun je de querystring van een pagina ook op deze manier weergeven: www.mysite.nl/MyDefaultDocument?MyIDParameter=251&ch=IMO of met behulp van twee willekeurige waarden: www.mysite.nl/MyCompany.html?Nr=251&ch=IMO Secure Van afzonderlijke items kun je aangeven dat ze Restricted zijn. Standaard is een item dat niet, maar wanneer je de optie verwerkt in het contenttype dan kunnen gebruikers deze optie aanvinken. Wanneer een pagina als restricted is gemerkt betekent dat dat een bezoeker van dit tot pagina gerenderd item een loginnaam en een wachtwoord nodig heeft. Met de optie Secure maak je in een keer het hele channel afgeschermd. Elke pagina zit nu achter een beveiliging. Deze instelling overheerst de instelling van de afzonderlijke items.
Let op! Wanneer een item in een ander channel ook een representatie heeft dan kan het item daar natuurlijk wel bekeken worden.
!
Let op! LogonHandlerProgID Dit is een verwijzing naar het component waarin de afhandeling van de authenticatie van bezoekers van de site wordt geregeld.
Smartsite Content Management Server ®
151
Channels, Rendertemplates en Macro’s
9.2 Wat zijn Rendertemplates Rendertemplates werden in eerdere versies van Smartsite stijlen genoemd. Zij bepalen de opmaak van de content van de site. Een rendertemplate legt verbinding tussen een channel en een contenttype; wanneer via een bepaald channel informatie van een zeker contenttype wordt opgevraagd zal deze gevraagde informatie van het contenttype worden vormgegeven door de rendertemplate die bij dat channel hoort. Deze vertaalslag wordt het renderen genoemd. De rendertemplate is een verzameling van (X)HTML, XML, Cascading Style Sheets, JavaScript, DHTML, Flash, Smartsite Translations en verwijzingen naar de informatie in de verschillende velden van het contenttype door middel van Smartsite Embedded (SE) Macro’s. Omdat de opmaak op vele manieren te definiëren is staat niets in de weg om de mogelijkheden van een channel te benutten. Door op een slimme manier gebruik te maken van de meta-informatie van items kunnen de rendertemplates ‘intelligent’ gemaakt worden. Er wordt dan gebruik gemaakt van voorwaardelijke opmaak; informatie uit een item wordt alleen getoond wanneer de meta-informatie van een item aan bepaalde voorwaarden voldoet. Ook Translations kunnen gebruikt worden om een rendertemplate dynamisch te maken.
9.2.1 Opzet van Rendertemplates Een rendertemplate definieert hoe een item van een bepaald contenttype wordt weergegeven in een bepaald channel. Het definieren en opzetten van de rendertemplates is een taak die buiten de werkzaamheden van de Smartsite Managers valt, maar die, om een compleet beeld te krijgen van de functionaliteit van Smartsite, hier toch wordt beschreven. Een rendertemplate definieert welke velden uit de database moeten worden weergegeven en hoe dat er uit moet zien. Hierbij wordt gebruik gemaakt van Translations, Cascading Style Sheets, JavaScript, Flash, DHTML etc. etc. Niets staat de ontwerper van de lay-out van de site in de weg om de site vorm te geven. De kern van rendertemplates is dat ze de informatie in de velden van de contents-tabel in de Smartsite database transformeren, opmaken en weergeven in een bepaald channel. Een rendertemplate wordt gecreëerd door een item van het contenttype Rendertemplate aan te maken. Een rendertemplate bevat de volgende eigenschappen: Name Een naam voor de rendertemplate.
Body De definitie hoe, en welke, velden van een item worden weergeven. Afhankelijk van het kanaal waarvoor deze rendertemplate bedoeld is wordt een mark-up language gebruikt (zoals HTML) om de uitvoer vorm te geven. Notes Notities die de werking van deze rendertemplate verduidelijken. XSLT Wanneer de rendertemplate een XML-formaat heeft, dan wordt er m.b.v. van de geselecteerde XSL Transformation, het XML-formaat omgezet naar de uiteindelijke opmaak van de data. Hiervan kan gebruik gemaakt worden door aan een webdesigner een XML-schema te overhandigen. Met de elementen uit het schema kan een webdesigner een opmaak genereren. Door gebruik te maken van een XSL Transformatie zal de XML die resulteert uit de weergave van een item met deze rendertemplate, vertaald worden naar de uiteindelijke opmaak. EditCSS Binnen de WebEditor en de SmartEditor kan in het body-veld vaak gebruik worden gemaakt van stijlen om de tekst te formatteren. Het gebruik van deze in-line stijlen wordt over het algemeen niet aangemoedigd maar er bestaat soms behoefte om de tekst in een item nauwkeuriger te kunnen markeren met stijlen. De hier geselecteerde Cascading Style Sheet wordt gebruikt om de in-line stijlen vorm te geven. Hyperlink Formaat waarmee interne hyperlinks geformatteerd worden. Dit is van belang voor de SmartEmbedding macro Links. Deze macro kan worden gebruikt om links naar de actieve kinderen van een item (folder) snel en eenvoudig af te beelden. Hoe deze links getoond wordt ligt in deze definitie vast. Voor de kop- en voettekst van de hyperlinks wordt gebruik gemaakt van de velden HyperlinkHeader en HyperlinkFooter. HyperlinkHeader Hoort bij Hyperlink. Voordat links naar actieve kinderen worden afgebeeld worden, wordt eerst deze kop afgebeeld. Indien er geen (actieve) kinderen zijn dan wordt deze kop niet afgebeeld. HyperlinkFooter Hoort bij hyperlink. HyperlinkFooter wordt onder de actieve kinderen getoond die met de SE Macro Links worden weergegeven. Ook hier geldt weer dat deze niet wordt weergegeven indien er niets wordt afgebeeld. ContentTypesChannels Rendertemplates koppelen bepaalde contenttypes aan bepaalde channels. Selecteer in deze lijst contenttype/channel combinatie waar de rendertemplate een schakel tussen vormt. Een rendertemplate kan natuurlijk een schakel vormen tussen meerdere combinaties van contenttypes en channels.
Smartsite Content Management Server ®
153
Channels, Rendertemplates en Macro’s
9.2.2 Simpele HTML Rendertemplate Rendertemplates die de inhoud van een item vertalen naar HTML maken veel gebruik van Cascading Style Sheets, Javascript, Translations en SE Macro’s. Een simpel voorbeeld van een HTML Rendertemplate:
<se property=”Title”>
<se property=”Body”> Voorbeeldcode 9-1: Een simpele HTML Rendertemplate
In dit voorbeeld zien we de we de SE Macro Property. Deze macro wordt gebruikt om de velden Title en Body van het bewuste contentitem uit de Contents tabel te halen. Deze twee velden worden ingebed in een stukje HTML-code. In de gerenderde pagina zal de informatie uit het veld Title van het de informatie uit het veld Body gescheiden worden door een horizontale lijn () Binnen de HTML-code wordt gebruik gemaakt van opmaak-tags. In bovenstaand voorbeeld is dat bijvoorbeeld de tag
. De definities van deze opmaak-tags worden vastgelegd in Cascading Style Sheets (CSS). Er is een contenttype voor Cascading Style Sheets: CSS. CSS-bestanden kunnen binnen Smartsite dus als item worden aangemaakt. In de body van de rendertemplate kan dan een verwijzing worden gemaakt naar dit item. Hetzelfde geldt voor script-functionaliteit zoals JavaScript:
Van onze correspondent in [Stadsnaam] <se property=”Body”>
Voorbeeldcode 9-2: voorbeeld van een intelligente stijl
Bovenstaand voorbeeld bevat ook een Translation: [Stadsnaam]. We kunnen de stijl intelligent maken door deze Translation De Global Translation [Stadsnaam] heeft als waarde Delft. Alle nieuwsberichten van de redactie in Delft worden in de folder Nieuws Delft geplaatst. Ech154
ter, er is een correspondent in Groningen die ook af en toe een item toevoegt. Deze correspondent heeft een eigen folder Nieuws Groningen. In deze folder is een Local Translation toegevoegd [Stadsnaam] met de waarde Groningen. Wanneer nu een item van de correspondent wordt opgevraagd dan zal tijdens het renderen van de pagina de Global Translation overschreven woorden door de Local Translation. Op deze manier is er werk uit handen genomen van al de redacteuren, zij hoeven immers niet de standaardzin “Van onze correspondent in....” te typen. Daarmee is de rendertemplate intelligent gemaakt door het gebruik van Global en Local Translations.
9.2.3 Complexe rendertemplates Het voorbeeld van een rendertemplate zoals beschreven in paragraaf 9.2.2 Simpele HTML Rendertemplate staat in geen verhouding tot de mogelijkheden die Smartsite in zich heeft. Naast de traditionele manier van een opmaakdefintie in HTML ondersteunt Smartsite ook een opmaak gebaseerd op de XML in combinatie met XSLT. Deze manier van opmaak maakt het bijvoorbeeld makkelijker om de definitie van de lay-out door een extern bureau te laten doen, zonder dat dit buro enige kennis van Smartsite hoeft te hebben. Ook het gebruik van macro’s biedt legio mogelijkheden om de content en de relaties daartussen weer te geven aan de voorkant van de site. Met behulp van macro’s kan bijvoorbeeld op een eenvoudige manier een sitemap, navigatie tussen pagina’s onderling op basis van hiërarchie of een uittreksel uit de database eenvoudig worden weergegeven aan de ‘voorkant’ van de site.
Smartsite Content Management Server ®
155
Channels, Rendertemplates en Macro’s
9.3 XLinks Macro Smartsite kent veel macro’s die gebruikt kunnen worden om een site intelligent en dynamisch op te zetten. Het zou buiten de scope van deze handleiding vallen om ze allemaal te beschrijven. Toch is er een macro die onder de aandacht gebracht dient te worden omdat deze voor sitemanagers van nut kan zijn: de XLink macro. Een macro is een element dat wordt ingevoegd in, bijvoorbeeld, de body van een item. Een macro heeft een naam een kan door middel van parameters aangestuurd worden. Wanneer een pagina wordt gerenderd zal op de plaats waar de macro is ingevoegd het resultaat van de macro worden getoond. De XLinks macro is een macro die een lijst van items kan tonen; bijvoorbeeld alle kinderen van een folder. Deze macro is voor sitemanagers praktisch omdat folders vaak items zijn die vaak een onduidelijke inhoud hebben. Neem bijvoorbeeld een folder Nieuws. Onder deze folder worden allemaal nieuwsitems aangemaakt. De content van een nieuwsitem is geen probleem maar welke tekst zet je nu in de folder zelf? Feitelijk wil je dat wanneer deze folder wordt gerenderd - wordt opgevraagd aan de voorkant van de site dat er een overzicht wordt getoond van alle nieuwsitems. Daarvoor is de XLinks macro. Deze macro toont dynamisch een lijst van alle kinderen van de nieuwsfolder.
Noot In een goede site is deze dynamiek vaak al aanwezig en vastgelegd in de rendertemplates. Het gebruik van deze macro is dan niet niet nodig.
9.3.1 Een XLinks macro invoegen De XLinks macro kun je invoegen met de optie Macro . Deze optie is onder andere te vinden in de het menu Insert van de webEditor. De macro wordt ingevoegd op de plaats van de cursor.
Een XLinks macro invoegen: 1. Plaats de cursor op de plaats waar de macro moet worden ingevoegd; 2. Klik op de optie Macro opend;
. Er wordt een dialoogvenster ge-
3. Selecteer XLinks in de lijst en klik op Volgende (Next) . Het dialoogvenster verandert en je krijgt een overzicht van alle parameters die
4. Vul die parameters in die noodzakelijk zijn en klik op Voltooien (Finish)
. De macro wordt nu als icoontje ingevoegd:
.
Let op! Er zijn verschillende soorten parameters die kunnen worden ingvuld. Het is echter niet noodzakelijk om alle parameters te kennen. De belangrijkste parameters worden hier toegelicht:
Parameter
Omschrijving
Parent
Het nummer of de code van de folder waarvan de kinderen moeten worden afgebeeld.
UseSecurity Bij het afbeelden van de lijst van items wordt rekening gehouden met de security-instellingen; alleen die items worden getoond waar de bezoeker recht op heeft. Dit geldt alleen voor zogenaamde ‘restricted’ gedeeltes van een site. Header
Geavanceerde parameter voor het bepalen van de opmaak van de lijst van items. Tabel 9-2: Parameters van de XLinks macro
Smartsite Content Management Server ®
157
Channels, Rendertemplates en Macro’s
Parameter Omschrijving Format
Geavanceerde parameter voor het bepalen van de opmaak van de lijst van items.
Footer
Geavanceerde parameter voor het bepalen van de opmaak van de lijst van items. Tabel 9-2: Parameters van de XLinks macro
De eenvoudigste manier om de XLinks macro te gebruiken is door geen enkele parameter toe te voegen. Wanneer deze macro dan geplaatst is in het bodyveld van een folder, dan zal deze macro op de plaats waar deze is ingevoegd een lijst van alle kinderen van die folder weergeven. Wanneer je in een item of een folder de kinderen van een andere folder wilt weergeven als lijst dan gebruik je de Parent parameter. De opmaak van de lijst van items wordt bepaald door de opmaak die is vastgelegd in de rendertemplate. Over het algemeen hoef je hier niets aan te veranderen. Wanneer je van een afwijkende opmaak wilt dan zul je enige kennis van HTML moeten hebben. De opmaak wordt dan bepaald door de Header, Format en Footer parameters. In HTML wordt een lijst als volgt gedefinieerd
listitem
listitem
..etc...
listitem
listitem
Voorbeeldcode 9-3: HTML code van een ongesorteerde lijst
Als we deze HTML zouden toepassen binnen de XLinks macro dan willen we op de plaats van de listitems de titels van de kinderen van een folder zien. Nog beter zou het zijn als deze kinderen als hyperlinks worden weergegeven. Om de resultaten van de XLinks macro als lijst weer te geven zien de parameters Header, Format en Footer er ongeveer zo uit:
Header
Alles voorafgaand aan de lijst van items
Format De opmaak van de afzonderlijke items Footer
Alles na de de lijst van items Tabel 9-3: Header, Format en Footer parameters
Nu gaat het er eigenlijk alleen nog om om de titel van de items op de plaats van de listitems te krijgen. Daarvoor kun je gebruik maken van twee zoge-
Voorbeeldcode 9-5: De items worden als hyperlinks weergegevn in de lijst
Noot Gebruik altijd enkele quotes in de Header, Format en Footer parameters.
Bovenstaand voorbeeld is de standaardmanier zoals die in Smartsite is ingebouwd. Wanneer er geen enkele opmaak voor de XLinks macro is gedefinieerd dan valt Smartsite hier op terug. De Header, Format en Footer parameter kunnen ook per rendertemplate zijn gedefinieerd. Hieronder vind je nog een voorbeeld hoe de resultaten als een tabel kunnen worden weergegeven:
Contenttypes zijn de basis voor het invoeren van nieuwe content aan de site. Elk item dat wordt aangemaakt is van een bepaald contenttype. Door het gebruik van een contenttype kun je de gevraagde informatie structureren zodat het voor een gebruiker helder is welke informatie er wordt verlangd. De manier waarop contenttypes worden weergegeven kun je tot op zekere hoogte aanpassen met de actie Content Manage. ment Configureren (Setup Content Management) De actie Contenttypes Beheren (Manage ContentTypes) gaat daarentegen nog veel verder en geeft je nog meer mogelijkheden om de werking van een contenttype aan te passen.
Contenttype Management
10.1 Weergave van een contenttype aanpassen Wanneer de actie Item Toevoegen (Add Item)
of Item Bewerken
(Edit Item) wordt gestart wordt de interface van een contenttype zichtbaar. De verschillende velden van het contenttype worden weergegeven op verschillende tab-bladen of kunnen zelfs in een apart dialoogvenster zijn ondergebracht. Deze gebruikte indeling wordt de Manager Style van een contenttype genoemd. De Manager Style van een contenttype kan worden aangepast; de verdeling over tabbladen of dialoogvenster van de velden, de namen van de velden, het uiterlijk van de velden, etc. Het is zelfs mogelijk om per rol aan te geven hoe de Manager Style er uit ziet. Er zijn velden die door overerving automatisch gevuld kunnen worden. Deze velden hoeven redacteuren niet te zien, maar een hoofdredacteur moet daar misschien in sommige gevallen wijzigingen in aan brengen. De Manager Style van een contenttype is dan zodanig in gesteld dat de hoofdredacteur deze velden wel ziet en kan wijzigen. Het wijzigen van een Manager Style gebeurt met de actie Content Management Configureren (Setup Content Management) . Deze actie is een wizard die je stap voor stap de verschillende instellingen voor de Manager Style van een contenttype laat instellen.
Om de Manager Style van een contenttype aan te passen: 1. Start de actie Content Management Configureren (Setup Content Management)
;
2. Selecteer in de lijst het contenttype dat je wilt aanpassen en klik op Volgende (Next)
;
3. Kies in het scherm de één of meer rollen waar de aangepaste Manager Style op van toepassing is. Klik op Volgende (Next)
;
Noot De overige rollen zullen de originele Manager Style van het contenttype blijven gebruiken
4. Creëer, hernoem of verwijder tabbladen voor de Manager Style. Sorteer de tabbladen in de juiste volgorde. Klik op Volgende (Next)
;
5. Creëer, hernoem of verwijder tabbladen voor de eigenschappen dialoog. Sorteer de tabbladen in de juiste volgorde. Klik op Volgende (Next)
Noot Wanneer er geen tabbladen voor het dialoogvenster zijn geselecteerd zal de knop Properties ook niet worden getoond in de Manager Style.
6. Verplaats de velden van het contenttype naar het geselecteerde tabblad van de Manager Style of het dialoogvenster. Sorteer vervolgens de velden. Klik op Volgende (Next)
;
Noten • Gebruik de opties om het doel te kiezen; • Selecteer eerst het tabblad waar de velden moeten komen; • Je kunt meerdere velden tegelijk verplaatsen.
7. Wijzig de veld-eigenschappen en klik op Voltooien (Finish) . De wijzigingen in de Manager Style van het contenttype worden nu doorgevoerd;
Noot Het doorvoeren van de wijzigingen kan enige tijd in beslag nemen. Je krijgt een melding wanneer de aanpassingen zijn voltooid.
8. Klik op Close
.
Let op! In stap 7 van de actie Content Management Configureren (Setup Content Management) kunnen eigenschappen van de velden worden aangepast. Dat doe je door telkens een contenttype veld te selecteren en daarna de bij dat contenttype veld behorende eigenschappen aan te passen: Caption Voor het invoerveld staat de veldtitel. Standaard wordt hier de (logische) veldnaam voor gebruikt. Je kunt een veldtitel ook zelf bepalen. De logische veldnamen van contenttypes geven vaak al aan welke informatie er in een veld verwacht wordt. Voor verschillende rollen kan er echter meer duidelijkheid gecreëerd worden door de veldtitel aan te passen. Style Het uiterlijk van een veld kan gewijzigd worden door er in beperkte mate een HTML-opmaak op los te laten. Bijvoorbeeld: Width=50%; Height=300px;
De verschillende HTML opmaak attributen worden van elkaar gescheiden door een punt-komma. Apply in Het al dan niet zichtbaar zijn van velden en het al dan niet kunnen bewerken
Smartsite Content Management Server ®
163
Contenttype Management
van velden kan ingesteld worden voor de acties Add Item, Edit Item en de actie Edit Item wanneer een Item een folder is. Een titel-veld kan bijvoorbeeld in de actie Add Item bewerkbaar zijn, maar in de actie Edit Item niet meer worden gewijzigd. Het body-veld is misschien niet interessant genoeg om te laten zien wanneer een item is geconverteerd naar een folder. De actie Content Management Configureren (Setup Content Management) biedt mogelijkheden om een stuk beheer uit te voeren op de gebruikte contenttypes in de site. De eigenschappen van contenttypes en de contenttype-velden kan op technisch niveau veel meer worden gestructureerd met de actie Contenttypes Beheren (Manage ContentTypes) .
10.2 Eigenschappen van een contenttype De eigenschappen van een contenttype kunnen worden bekeken met de actie Contenttypes Beheren (Manage ContentTypes) deze actie gebruik je de optie Contenttype Properties schappen van een contenttype aan te bekijken.
. Binnen
om de eigen-
Niet alle eigenschappen kunnen zonder ‘gevaar’ gewijzigd worden. Wijzigingen van bepaalde eigenschappen kan betekenen dat de de werking van de site ernstig verstoord wordt en dat er informatie niet meer op de juiste manier wordt opgeslagen, wat tot verlies van deze informatie kan leiden. Daarom worden hieronder alleen die eigenschappen beschreven die zonder gevaar voor de werking van de site gewijzigd kunnen worden: Description een korte omschrijving van het contenttype. Icon Selecteer een icoon dat wordt gebruikt in de boomstructuur in het viewvenster. Contenttypes kunnen als items, gesloten folders en als open folders worden weergegeven: Icoon
Bestandsnaam xml.gif xmlF.gif xmlO.gif
Tabel 10-1: items en folder iconen voor contenttypes
Door de een naamgeving te hanteren zoals in Tabel 10-1:items en folder iconen voor contenttypes wordt getoond kun je er voor zorgen dat wanneer een item van dit contenttype geconverteerd wordt naar een folder er nog steeds gebruik wordt gemaakt van door jou gekozen iconen.
Noten • Het bestandstype voor iconen die gebruikt worden in de boomstructuur moet van het type GIF zijn; • Je selecteert het Item-icoon. De andere twee iconen moeten in dezelfde map op de server staan; • De afmeting van de iconen moet 16x16 pixels zijn. Andere afmetingen zijn wel mogelijk maar Smartsite zal deze afmetingen (nog) niet converteren naar een hanteerbaar formaat. Grote iconen worden ook groot afgebeeld in de boomstructuur, wat een vervormd beeld kan geven.
Default Workflow Selecteer een workflow die standaard op items en folders van dit contenttype
Smartsite Content Management Server ®
165
Contenttype Management
van toepassing is. De workflow op afzonderlijke items kan aangepast worden met de actie Assign Workflow.
Noot Het wijzigen van de standaard workflow voor items van het contenttype verstoort de werking van de site niet. Echter, het kan ten nadele van de kwaliteit van de informtie komen indien een workflow wordt gekozen waarmee redacteuren bijvoorbeeld direct kunnen publiceren.
Inheritance Het is soms wenselijk om onder een folder van een specifiek contenttype een item aan te maken van een heel ander contenttype, bijvoorbeeld een referentie (contenttype Reference) of een afbeelding (contenttype Binary). Selecteer in de lijst Inheritance de contenttypes die onder folders van dit type aangemaakt kunnen worden met de actie Add Specified Item.
Eigenschappen die je met de nodige voorzichtigheid kunt wijzigen zijn Default Workflow en Inheritance. Eigenschappen waarvan een wijziging de werking van de site niet beïnvloeden zijn Description en Icon.
10.2.1Contenttype velden Wanneer je een contenttype met de optie Open zicht van de velden van het contenttype:
Om de werking van de site niet te verstoren mag je geen velden verwijderen of toevoegen. Het toevoegen of verwijderen van velden aan een contenttype kan namelijk veel invloed hebben en kun je daarom beter overlaten aan de site-bouwers. Wanneer je een veld opent met de optie Open tal eigenschappen van zo’n veld wijzigen.
kun je echter wel een aan-
10.2.2Aanpassen van Contenttype veldeigenschappen De eigenschappen van een veld van een contenttype kunnen worden aangepast. De makkelijkste manier voor het aanpassen van de velden is door het gebruik van de actie Content Management Configureren (Setup Content Management) . Een aantal eigenschappen die je met die actie bewerkt zie je vaak ook terug wanneer je de eigenschappen van een veld opvraagt met de actie Contenttypes Beheren (Manage ContentTypes)
.
Het wijzigen van de eigenschappen van een veld loopt van eenvoudig tot zeer complex. Voor nadere informatie over dit onderwerp verwijzen we je daarom ook naar de support-site van Smartsite: support5.smartsite.nl.
Voor een content management systeem is een goede bewaking van de afhankelijkheid tussen objecten van groot belang. Doelen hierbij zijn het bewaken van de relaties die items onderling met elkaar hebben, het bewaken van relaties tusseen items en bestanden op de fileserver en het verkrijgen van inzicht in de structuur van de site. Naast het bewaken van de afhankelijkheid tussen de objecten moet een content management systeem zo min mogelijk onnodig werk verrichten. Een content management systeem kenmerkt zich door de scheiding van inhoud en opmaak en het samenvoegen van deze twee elementen kost rekentijd op de webserver. Er moet een goede balans bestaan tussen de dynamiek van de site en de hoeveelheid rekenkracht die gebruikt wordt om pagina’s elke keer opnieuw te renderen. Hiervoor maakt Smartsite gebruik van een geavanceerd cachemechanisme. Door het inzicht in de structuur van de site op basis van de onderlinge relaties kan het cachemechanisme optimaal worden benut; omdat de afhankelijkheden tussen items bekend zijn weet Smartsite welke items er opnieuw gecached moeten worden nadat er wijzigingen zijn aangebracht in een item.
169
Servercache en AIM
11.1 Active Integrity Maintenance (AIM) Active Integrity Maintenance, kortweg AIM, is het mechanisme dat de onderlinge afhankelijkheid tussen objecten bewaakt. Het is een systeem dat op de achtergrond items doorzoekt op verwijzingen naar andere items, bestanden op de server of verwijzingen naar externe bronnen.
Figuur 11-1: Relaties van een item met andere items
11.1.1Overzicht van verwijzingen Op het tabblad References van de actie Details (Details) overzicht van verwijzingen:
Type verwijzing
Omschrijving
Outgoing links
Verwijzingen in het item naar andere items.
Incoming links
Andere items die naar het item verwijzen
File references
Verwijzingen in het item naar bestanden op de server
External references Verwijzingen naar externe adressen Tabel 11-1: Overzicht van verwijzingen
De verwijzingen kunnen worden verdeeld in twee soorten: ‘softlinks’ en ‘hardlinks’. Een ‘hardlink’ is een directe verwijzing naar een ander item of een bestand op de server in bijvoorbeeld het bodyveld. Wanneer het item, waarnaar verwezen wordt, wordt verwijderd zal de link in het bodyveld resulteren in een foutpagina met de melding dat de pagina niet gevonden kan worden. Er bestaat dus een directe relatie tussen de twee items. Evenzo geldt dat voor verwijzingen naar bestanden op de server. Een ‘softlink’ is een relatie waarin het verwijderen van een van de gerelateerde items niet in een conflict resulteert voor de bezoekers van de site. Een voorbeeld hiervan is een dynamisch gegenereerde lijst van kinderen onder een folder. Wanneer een van de kinderen in die folder wordt verwijderd dan betekent dat dat de lijst moet worden aangepast. Omdat dit dynamisch gebeurt ontstaat er geen verwijzing naar een niet bestaande pagina.
11.1.2AIM in de praktijk Smartsite gebruikt deze informatie over het soort verwijzing bijvoorbeeld bij de actie Verwijderen (Delete) . Wanneer een item wordt verwijderd dan controleert Smartsite eerst of er geen harde verwijzingen bestaan naar dit item. Is dat wel het geval dan kan het item niet verwijderd worden en zul je eerst de link in het andere item moeten aanpassen. Dit geldt ook voor bestanden op de server. Een bestand kan niet verwijderd worden als er een relatie bestaat tussen dat bestand en een item. Op deze manier wordt de integriteit van een site bewaakt en wordt de kans op niet bestaande verwijzingen voor de bezoekers van een site geminimaliseerd. Daarnaast krijg je door AIM een goed overzicht van de structuur van de site. Het is eenvoudig na te gaan welke items bijvoorbeeld een bepaalde Translation gebruiken of welke items verwijzen naar een item van het contenttype Image. AIM is tegelijkertijd een synchroon proces als een achtergrondproces. Elke keer dat een item wordt bewerkt zal bij het opslaan van een item gekeken worden naar de relaties met andere items, bestanden of externe bronnen. Tegelijkertijd wordt op de achtergrond continu gescand of de relaties nog valide zijn - de publicatiedatum van een item kan bijvoorbeeld verlopen waardoor er een verbroken verwijzing in een ander item kan ontstaan of een externe site bestaat niet meer. De actie AIM (AIM) in de actie System Panel (System Panel) geeft een overzicht van de status van verwijzingen in de site. Met deze actie kun je het achtergrondproces stoppen en je kunt een compleet nieuwe scan van alle items afdwingen. Deze opties zul je in principe nooit nodig hebben.
Smartsite Content Management Server®
171
Servercache en AIM
11.2 Servercache Servercache is het bewaren van gerenderde pagina’s zodat, bij een nieuw verzoek van een bezoeker van de site voor dezelfde pagina, de complete pagina niet opnieuw gerenderd hoeft te worden. Per item kan worden ingesteld wat de servercache van dat item is; deze kan variëren van ‘Never’, een bepaalde tijdsduur tot ‘Until Item Update’. Het resultaat van goed gebruik van servercache is dat een webserver de vezoeken sneller kan afhandelen waardoor de ‘peformance’ van een site zo optimaal mogelijk wordt. Om een nog betere respons te genereren wordt er gebruik gemaakt van een precaching. Op de achtergrond worden pagina’s gerenderd zodat deze al klaar staan op het moment dat de eerste bezoeker die pagina opvraagt.
Voorbeeld De servercache van een item is ingesteld op ‘Never’. Dat betekent dat bij elk verzoek voor dat item Smartsite de pagina moet renderen. Stel dat deze pagina 6000 keer in een uur wordt opgevraagd. Smartsite moet dan 6000 keer een deel van zijn capaciteit gebruiken om het gevraagde item te renderen. Wanneer de servercache van het item op 10 minuten wordt ingesteld zal deze pagina nog maar 6 keer per uur gerenderd worden. De eerste bezoeker na elke 10 minuten dat een pagina gerenderd is krijgt een pagina die opnieuw gerenderd wordt. De overige bezoekers binnen een tijdspanne van 10 minuten krijgen de pagina direct uit de servercache. Smartsite hoeft nu maar 6 keer per uur het item samen te voegen met zijn opmaak.
11.2.1Servercache instellen De servercache kan per item worden ingesteld. Over het algemeen zal de servercache van een item worden geërfd van zijn ‘ouder’. Hierdoor hoeven redacteuren zelf geen instellingen te doen. Wat is nu een goede instelling voor servercache? Voor veel items in een site is de optie ‘Until Item Update’ de ideale instelling. De inhoud van het item is niet afhankelijk van andere bronnen en elke keer dat een item wordt bewerkt en geactiveerd zal de servercache van het item worden weggegooid. De eerste bezoeker die het item opvraagd zal dan een opnieuw gerenderde pagina krijgen waarin de laatste wijzigingen direct zichtbaar zijn. Er zijn echter items die gebruik maken macro’s. Een macro wordt uitgevoerd op het moment dat het item gerenderd wordt. Stel dat een XLinks macro in een item wordt gebruikt. De eerste keer dat het item wordt gerenderd tot een pagina, wordt een lijst van alle kinderen samengesteld. Wanneer de servercache van dit item op ‘Until Item Update’ wordt gezet zal elke bezoeker
die deze pagina opvraagd de versie uit de servercache krijgen. De pagina wordt niet gerenderd en derhalve wordt de macro niet opnieuw uitgevoerd. Eventuele items die later onder deze folder als nieuwe kinderen worden toegevoegd zullen dus niet in de lijst verschijnen. Er zal dus een andere servercache moeten worden ingesteld. De vraag wat nu een goede instelling is voor de servercache van een item kan in dit geval dus beantwoord worden met de wedervraag hoe actueel je wilt zijn. Indien de servercache van het item dat de macro bevat ingesteld wordt op ‘2 hours’ dan zullen alle items die in het tijdsbestek van twee uur worden toegevoegd in de lijst verschijnen nadat de pagina opnieuw wordt gerenderd. De maximale ‘vertraging’ is dus twee uur.
Noten • De nieuw aangemaakte items zijn natuurlijk wel direct beschikbaar op het moment dat ze worden aangemaakt. Alleen de lijst die in de folder staat wordt niet direct bijgewerkt omdat die pagina niet veranderd is en daarom niet wordt gerenderd. • Sommige macro’s hebben een ‘postprocess’ parameter. Dat betekent dat Smartsite dat deel van het item dat de macro bevat wel opnieuw rendert.
De actie Cache Status Bekijken (View Cache Status) geeft een goed overzicht de servercache van items. Door een aantal items in de boom te selecteren en deze actie te starten krijg je een overzicht:
Figuur 11-2: Overzicht servercache instellingen van items
Smartsite Content Management Server®
173
Servercache en AIM
Met de actie Meerdere Items Aanpassen (Update) kun je de servercache instellingen van een groot aantal items direct aanpassen.
11.2.2Servercache en AIM De noodzaak tot het beheren en monitoren van de servercache door sitemanagers is afgenomen met de introductie van Active Integrity Maintenance (AIM). AIM zorgt ervoor dat er de onderlinge relaties van items bekend zijn. Wanneer nu een item wordt bijgewerkt kan op basis van deze onderlinge relaties ook bepaald worden voor welke items nieuwe servercache gegenereerd moet worden; van alle items die een zogenaamde ‘softlink’ onderhouden met het item dat is bijgewerkt, die dus bijvoorbeeld het item afbeelden in een lijst met behulp van een macro, moet de servercache worden weggegooid.
Voorbeeld Folder A gebruikt de XLinks macro om een lijst van alle kinderen af te beelden. Wanneer onder Folder A een nieuw item B wordt toegevoegd dan zal AIM een relatie detecteren tussen item B en folder A. Op het moment dat item B actief wordt gemaakt, moet de servercache van folder A worden weggegooid, zodat bij een volgende rendering van die folder A een nieuwe complete lijst van kinderen wordt gegenereerd.
Op basis van dit voorbeeld zou je kunnen stellen dat het nu niet meer uitmaakt wat de servercache instelling van een pagina is - door het gebruik van AIM worden toch alle gerelateerde gecachte items weggegooid dus elk item zou de waarde ‘Until Item Update’ kunnen krijgen. Dit is niet helemaal waar. Naast de genoemde XLinks macro zijn er nog veel meer macro’s die gegevens kunnen verzamelen en afbeelden. Deze gegevens hoeven niet alleen uit andere items te komen maar kunnen ook verzameld worden uit externe databases of van externe websites. Wanneer er bijvoorbeeld mutaties in de externe database plaatsvinden dan kan Smartsite daar niet van op de hoogte zijn. Pas op het moment dat een pagina gerenderd wordt zullen de laatste gegevens uit de database worden gelezen. een servercache instelling van ‘Until Item Update’ is hier dus geen juiste waarde. Echter, dit soort items worden vaak bij de opzet van de site aangemaakt. De juiste cache instellingen worden op dat moment aan het item meegegeven en deze zullen daarna over het algemeen ook niet meer veranderd hoeven worden. Servercache wordt dus door overerving ingesteld. Redacteuren hoeven zich, door de verbeterde cachemogelijkheden van Smartsite, helemaal niet meer druk te maken over servercache. Voor sitemanagers is het van belang dat ze het mechanisme begrijpen. Veranderingen aanbrengen in de instellingen is niet tot nauwelijks nodig.
11.2.3Level I en Level II cache Het oorspronkelijke servercache mechanisme van Smartsite bewaart een kopie van een gerenderd item. Wanneer een pagina opnieuw wordt opgevraagd en de servercache van het achterliggende item is nog niet verlopen dan wordt het item uit de servercache gehaald en weergegeven; het item hoeft niet opnieuw gerenderd te worden. Echter, ondanks het niet hoeven renderen is tussenkomst van Smartsite nog steeds noodzakelijk. Deze vorm van servercache wordt Level I cache genoemd. Met de komst van Smartsite 5.1 hebben de Professional Edition en de Enterprise Edition van Smartsite een tweede vorm van servercache gekregen: Level II cache. Level II cache onderscheidt zich van Level I cache door het feit dat er geen tussenkomst van Smartsite meer nodig is wanneer een pagina wordt opgevraagd; de pagina’s worden nu als ‘platte’ HTML bestanden opgeslagen en een bezoeker springt van HTML pagina naar HTML pagina. Welke vorm van cache gebruikt wordt hangt af van de instellingen van het Channel (zie 9.1.1 Opbouw van een channel). Er zijn drie mogelijkheden: • Geen cache • Level I cache • Level I en Level II cache Om ook daadwerkelijk Level II cache te genereren moet dit per item worden ingesteld door de optie UseExternalServercache aan te vinken.
Noot De optie UseExternalServercache is een contenttypeveld. Deze optie bestaat dus alleen binnen het contenttype als het daar ook daadwerkelijk is gedefinieerd. In meest voorkomende gevallen staat deze optie altijd aan en wordt het door overerving gevuld.
Wanneer een item aan de voorkant van de site wordt opgevraagd dan ziet de querystring van het item er bijvoorbeeld als volgt uit: www.mysite.nl/smartsite.dws?id=251&ch=DEF Wanneer items als Level II cache gegenereerd worden dan zal dat anders zijn: www.mysite.nl/eCache/DEF/251.html Elk item dat als Level II cache wordt gegenereerd zal als {itemnummer}.html bestand worden aangemaakt. Alle verwijzingen naar andere items worden ook omgezet naar dit formaat.
Noot Dit geldt alleen als het item waarnaar wordt verwezen ook als Level II cache wordt gegeneerd. Indien dat niet gebeurt dan wordt de referentie in de standaard Smartsite notatie gehouden.
Smartsite Content Management Server®
175
Servercache en AIM
Alle verwijzingen naar HTML bestanden kunnen nu louter door de webserver worden afgehandeld en tussenkomst door Smartsite is niet meer noodzakelijk. Smartsite houdt echter wel in de gaten of de servercache van items verloopt. Indien dat het geval is genereert Smartsite automatisch nieuwe Level II cache. Het Level II cache mechanisme biedt enorm veel mogelijkheden: betere ‘performance’, betere balans tussen de CMS-kant en de publicatiekant van een site, het invoegen van ASP en het publiceren op een webserver waar Smartsite niet voorhanden is. In alle gevallen zal in een lopende site veel door Smartsite, geheel geautomatiseerd, worden afgehandeld zonder dat enige tussenkomst van de sitemanager noodzakelijk is.
In deze bijlage wordt de werking van de Smartsite Management Information (SMI) module versie 1.4 toegelicht. SMI wordt gebruikt om gedetailleerde informatie te krijgen over bezoekers op een Smartsite website. Hierbij gaat het zowel om welke pagina’s worden opgevraagd als om kenmerken van de bezoekers (zoals de gebruikte webbrowser). Met behulp van SMI kan een groot aantal gegevens door middel van grafieken inzichtelijk worden gemaakt. Bovendien is het mogelijk bezoekers over een langere periode te volgen. Deze bijlage bestaat uit drie delen. Het eerste deel geeft achtergrond-informatie over het meten van bezoekers op Internet. Het tweede deel beschrijft de architectuur van SMI. Vervolgens wordt in het derde deel de opbouw van SMI rapportages inclusief beschrijvingen van alle menu opties besproken.
A.1 Meten van bezoekers Het bepalen van het aantal bezoekers op een website komt altijd neer op het maken van een schatting. Tijdens het uitvoeren van de metingen ben je namelijk altijd afhankelijk van een aantal technische zaken waarover geen controle mogelijk is. Dit komt door de opbouw van het Internet; niemand heeft daar volledige controle over. Zo is het bijvoorbeeld niet mogelijk om afzonderlijke bezoekers altijd te identificeren. Het gevolg hiervan is dat verschillende meetmethoden ook verschillende uitkomsten kunnen opleveren. Het gemeten aantal bezoekers is dan ook altijd een benadering. SMI staat in directe verbinding met Smartsite. Daardoor is SMI in staat te tellen hoe vaak een pagina door Smartsite naar een browser wordt gestuurd. Dit levert een bijzonder nauwkeurige indicatie van het bezoek van een pagina op. In de onderstaande grafiek (voor het grootste deel afkomstig uit de Site Management Handleiding) is aangegeven op welke plaats in de webserver SMI precies meetgegevens verzamelt.
Stijlen in geheugen Servercache
HTML
ASP
* * Internet / Extranet / Intranet
Response Request
Webserver
Smartsite
Content / tree Style Security
SMI Meetpunt
*
= Mogelijk SMI meetpunt (image/include)
Externe databases
Figuur A-1: Het SMI meetpunt en twee alternatieve meetpunten
Tevens zijn in figuur 1 twee alternatieve meetpunten aangegeven. Op deze punten kan met behulp van een “include” of met een “image” vanuit Smartsite statistische informatie worden verzameld. In geval van een include wordt een bepaald JavaScript aan een pagina toegevoegd om gegevens over het bezoek te registreren. In geval van meten met een image wordt een kleine afbeelding aan een pagina toegevoegd. Door te bepalen hoe vaak deze afbeelding is opgevraagd ontstaat een beeld van het bezoek van de pagina. SMI registreert het aantal verzoeken dat aan Smartsite wordt gedaan om een pagina op te leveren (in figuur 1 is dit aangegeven met SMI meetpunt). Dit aantal is in principe gelijk aan het aantal pagina's dat door bezoekers is opgevraagd. Door het gebruik van bepaalde vormen van cache kan deze indicatie
helaas minder nauwkeurig worden. Dit wordt in het vervolg van deze bijlage toegelicht.
A.1.1 Cache Een cache is een tijdelijk geheugen waarin veelgebruikte gegevens worden opgeslagen. Het gebruik van cache verlaagt de belasting van een systeem; informatie die al eens is opgevraagd wordt uit de cache gehaald als de gegevens nog actueel zijn. Hoe lang informatie nog als actueel wordt gezien verschilt per browser. In het geval van Smartsite statistieken zijn twee soorten cache van belang, de clientcache en de cache in een proxyserver. De clientcache bevindt zich op de harde schijf van de bezoekers van een website. Wanneer de bezoeker een pagina oproept en deze wordt volledig opgehaald uit de clientcache dan wordt er geen verzoek naar Smartsite gestuurd. Dit komt soms voor wanneer een bezoeker op de back knop van de browser klikt. In zo’n geval zal SMI het verzoek om de pagina ook niet kunnen tellen. SMI telt alleen het aantal verzoeken om pagina's die Smartsite werkelijk bereiken. Wanneer een bezoeker een pagina uit een cache haalt wordt er geen verzoek naar Smartsite gestuurd en zal SMI niets registreren. De servercache van Smartsite zelf heeft geen invloed op de statistische gegevens. Het opvragen van een pagina wordt ook door SMI geteld wanneer een pagina uit de Smartsite servercache wordt gehaald. Hieronder wordt uitgelegd wat een proxyserver is. In geval van een proxyserver kan een vergelijkbaar cache probleem optreden.
A.1.2 Proxyserver Een proxyserver wordt gebruikt als poort tussen twee netwerken. Meestal gaat het hier om een intern bedrijfsnetwerk en het Internet. De proxy maakt het mogelijk dat meerdere gebruikers één Internet verbinding delen. De proxyserver vormt een schakel tussen de PC van de gebruiker en het Internet zelf. Meestal is een proxyserver ook uitgerust met een cache. Hierin worden vaak opgevraagde gegevens tijdelijk bewaard. Een proxyserver ontvangt een verzoek (ook wel request genoemd) voor een Internet pagina van een gebruiker. Wanneer dit verzoek aan een aantal voorwaarden voldoet kan de proxyserver in 'zijn' eigen cache zoeken naar de gevraagde pagina. Als deze beschikbaar is zal de proxyserver de pagina naar de gebruiker sturen. Op dat moment is er geen communicatie geweest tussen de gebruiker en de server. Daardoor is er geen enkele mogelijkheid waarop de server dit verzoek kan opnemen in statistieken.
Smartsite Content Management Server ®
A-3
Een bezoeker van een site die een proxyserver met cache gebruikt zal merken dat voor de tweede keer gevraagde informatie veel sneller wordt geleverd. Verder is de proxy onzichtbaar voor de eindgebruiker. Een groot voordeel van een proxyserver is dat er meerdere personen gebruik van kunnen maken. Zo kan de belasting van een Internetverbinding aanzienlijk worden verlaagd doordat veelgevraagde gegevens slechts één keer echt van Internet worden gehaald. Het gebruik van een cache is altijd een afweging tussen performancewinst en actualiteit. Het is mogelijk om voor iedere Internet pagina (en zelfs voor afzonderlijke elementen van een pagina) aan te geven hoe een cache ermee moet omgaan. Dit is echter een verzoek, geen opdracht. Of een cache werkelijk op de gevraagde manier met de gegevens omgaat is niet met zekerheid te zeggen. Het is afhankelijk van de instellingen van de cache zelf. Een proxyserver (met of zonder eigen cache) wordt vaak aangevuld met een firewall. Een firewall is een filter dat meestal vlak voor een proxyserver wordt geplaatst. Al het binnenkomende en uitgaande verkeer wordt in de firewall vergeleken met een aantal regels. Verkeer dat niet aan de regels voldoet wordt niet doorgelaten. De set regels kan per firewall anders zijn. Wanneer een firewall teveel verkeer doorlaat of blokkeert is het noodzakelijk deze regels aan te passen. Het is mogelijk dat een firewall bepaalde informatie wegfiltert of aanpast waardoor deze niet in de statistieken kan worden opgenomen. Het is gebruikelijk dat de proxy, cache en firewall functies op één computer of op een aantal computers die vlak naast elkaar staan worden uitgevoerd. Het gaat hierbij om processen die in principe dag en nacht operationeel zijn.
A.1.3 Cookies Cookies worden door SMI gebruikt om afzonderlijke gebruikers te herkennen. Een cookie is een klein bestand dat vanaf een webserver op de computer van een bezoeker kan worden opgeslagen. Het cookie kan allerlei informatie bevatten zoals een klantnummer, een E-mail adres of een aantal voorkeuren van de site bezoeker. Smartsite plaatst altijd een cookie met de sitenaam en een uniek nummer bij de bezoekers. Dit cookie blijft een maand geldig. Deze informatie uit een cookie wordt zonder dat een bezoeker het merkt meegestuurd in de verzoeken om pagina's die door de browser naar de webserver worden gestuurd. De informatie uit een cookie kan alleen worden uitgelezen door de site die het cookie ook heeft geplaatst. Er bestaan twee verschillende soorten cookies. Een sessie cookie wordt gewist wanneer de gebruiker zijn browser afsluit. Daarbij gaan de gegevens in het cookie verloren. Een normaal cookie blijft ook bestaan wanneer de gebruiker de browser afsluit.
A.1.4 Cookie instellingen Een browser is zo in te stellen dat cookies niet worden geaccepteerd. Het gevolg daarvan voor de Smartsite Management Information is dat de bezoeker niet meer aan de hand van een cookie kan worden herkend. In dat geval zal SMI het IP adres van de bezoeker gebruiken voor het herkennen van de bezoeker. Als meerdere bezoekers hetzelfde IP adres gebruiken kan het onderscheid in afzonderlijke bezoekers niet meer worden gemaakt. Als een browser zo wordt ingesteld dat cookies worden gedegradeerd tot sessie cookies worden alle geplaatste cookies tijdens het afsluiten van de browser verwijderd. Het gevolg hiervan is dat SMI de bezoeker wel kan herkennen aan een cookie, maar dat de bezoeker na het afsluiten van de browser zijn toegekende unieke nummer verliest. Daardoor is het niet mogelijk de bezoeker over een langere tijd te volgen. De bezoeker wordt iedere keer gezien als een bezoeker die de site nog nooit heeft bezocht. Het is met andere woorden dan niet mogelijk om de bezoeker over een langere tijd te volgen.
A.1.5 Methode van tellen De werking van de Smartsite Management Information module is gebaseerd op het tellen van de paginaverzoeken aan Smartsite. Er bestaan andere statistische tools die veelal zijn gebaseerd op het laden van een bepaalde kleine afbeelding. Deze afbeelding wordt vervolgens op iedere pagina opgenomen. Door het aantal verzoeken voor de afbeelding in kaart te brengen ontstaat via een omweg een beeld van het aantal pagina's dat is opgevraagd. Aangezien op iedere pagina dezelfde afbeelding wordt opgevraagd bestaat het gevaar dat de afbeelding ergens in een cache wordt opgenomen. Daarom wordt deze telmethode vaak in combinatie met een klein JavaScript programma uitgevoerd. Het JavaScript programma zorgt ervoor dat de afbeelding telkens een iets andere naam heeft. Uiteraard moet de server waar de afbeelding opstaat hier mee om kunnen gaan. Deze methode van tellen werkt minder goed (en soms helemaal niet) wanneer een bezoeker de JavaScript functie in zijn browser heeft uitgezet. In het algemeen geldt dat verschillende methoden van tellen een iets andere uitkomst zullen geven. Dat is niet te voorkomen en heeft ermee te maken dat je als eigenaar van een site niets te zeggen hebt over de gebruikte proxyserver of over de instellingen van de browser waar de sitebezoeker mee werkt.
A.1.6 Referrer De referrer is de pagina waarvan het bezoek aan een pagina afkomstig is. Bij ieder verzoek om een pagina wordt de referrer meegegeven. Alleen als de bezoeker een URL in de browser intikt of wanneer hij kiest voor een eerder opgeslagen bookmark zal geen referrer met het verzoek worden meege-
Smartsite Content Management Server ®
A-5
stuurd. Als een bezoeker van pagina A klikt op een link naar pagina B dan wordt in het verzoek aan de server A als referrer aangegeven. Een firewall of bepaalde andere software kan de referrer wegfilteren zodat deze niet wordt doorgegeven.
A.1.7 Algemene issues Wanneer één pagina een groot aantal keren is bezocht in een bepaalde periode kan het zijn dat: • de pagina opgevraagd is met een script • de pagina een frameset bevat Wanneer er een groot aantal browsers voorkomt met de omschrijving ‘Unknown browser’ dan betekent dat meestal dat de site bezocht is door een spider (zoals Google) die uw pagina’s regelmatig scant. Het is daarnaast mogelijk de inhoud van de SMI database aan te passen zodat de laatste browser versies ook goed worden weergegeven. Ook bestaan er diensten die controleren of uw webserver nog in de lucht is. Deze generen vaak ook een groot aantal pageviews op uw webserver, maar geven niet aan welke browser of welke taalinstelling ze gebruiken. Daardoor verschijnt er een 'Unknown' browser in het overzicht. Vaak kunt u deze gebruiker onder Visitor tracking terugvinden.
Noot Paginaverzoeken worden door Smartsite ook geteld als deze pagina uit de Smartsite servercache kan worden gehaald. De servercache van Smartsite zelf heeft geen enkele invloed op SMI.
A.1.8 Conclusie Als eigenaar van een server heb je geen controle over client side cache, proxy cache, cookies en JavaScript. Daardoor is het goed mogelijk dat verschillende telmethoden andere uitkomsten geven. Bovendien kan niemand exacte aantallen unieke bezoekers geven. Welke techniek daarbij gebruikt wordt, maakt niet uit. SMI levert een zeer goede benadering van de bezoekersaantallen, uitgaande van het aantal door Smartsite opgebouwde pagina's. In het tweede deel van deze bijlage worden alle SMI menuopties toegelicht.
A.2 Hardware en software eisen SMI bestaat uit verschillende componenten die op verschillende werkstations kunnen worden uitgevoerd (Zie de paragraaf over de SMI architectuur voor meer informatie). Elk van deze componenten stelt andere eisen aan de gebruikte hard- en software. SMIServer vereist: • Windows NT 4 of een latere versie • Het .Net Framework • MDAC 2.7 of een latere versie • Microsoft SQL Server versie 7 of 2000. Oracle 8.1.7 wordt ondersteund vanaf SMI 1.2. SMIConfig vereist: • Windows 98 of later. PS4SMI vereist: • SMI 1.0 eist Smartsite 4.5 (de release van 29 mei 2002 of een latere versie) • SMI 1.1 of hoger eist Smartsite 4.5 Service Release 1.
A.2.1 SMI Architectuur SMI bestaat uit de volgende componenten: • SMIServer SMIServer is een op zichzelf staande applicatie die de verzamelde informatie opslaat en ook weer uit de database opvraagt voor het genereren van rapportages over de website. • SMIConfig SMIConfig maakt het mogelijk een site aan de SMIServer toe te voegen en deze site te configureren. • PS4SMI PS4SMI is een Smartsite component met verschillende taken. Deze worden hieronder toegelicht. SMI is ontworpen om te werken op een andere server dan de server waarop Smartsite werkt. Dit maakt het mogelijk Smartsite in een gedistribueerde configuratie te gebruiken waarbij slechts één SMIServer wordt ingezet. Tevens is het mogelijk de database op weer een andere server onder te brengen. Dit leidt tot de situatie die op de volgende pagina in figuur 2 is getekend.
Smartsite Content Management Server ®
A-7
Het Internet
Smartsite
DBMS SMIServer
Smartsite
DBMS
Figuur A-2: Een mogelijke architectuur voor het gebruik van SMI
In deze situatie zijn twee Smartsite webservers geconfigureerd om pagina’s naar bezoekers te sturen. Beide webservers sturen informatie over de gevraagde pagina’s naar de SMIServer over een TCP/IP verbinding. Uiteraard is het ook mogelijk alle componenten op dezelfde server onder te brengen. Het PS4SMI component is verantwoordelijk voor drie taken: • PS4SMI verstuurt de informatie (pagina verzoeken etc.) gegenereerd door Smartsite naar SMIServer. • PS4SMI is verantwoordelijk voor het genereren van rapportages over bezoekers. PS4SMI haalt de benodigde data van SMIServer op. Deze data wordt vervolgens gebruikt voor het opbouwen van de rapportages. Deze rapportages zijn beschikbaar binnen de Smartsite Manager. De standaardnaam van de actie is ‘Management Information’ . • In bepaalde gevallen is het wenselijk om het bezoek van bepaalde pagina’s niet door SMI te laten tellen. De ‘Manager Information Setup’ actie wordt gebruikt voor het aanmaken van de lijst van niet getelde pagina’s. Deze functie maakt ook deel uit van PS4SMI. SMIConfig is een apart programma dat gebruikt wordt voor het configureren van SMIServer. Met behulp van SMIConfig is het mogelijk sites toe te voegen, te verwijderen en in te stellen. Ook is het hiermee mogelijk SMIServer zelf in te configureren.
A.2.2 SMI Database model Voordat de inhoud van de SMI database wordt besproken is er één belangrijke zaak die duidelijk moet zijn: Verander nooit iets in de database wanneer de SMIServer werkt (runt). Het is alleen de bedoeling informatie uit deze database te lezen, niet om er informatie in terug te schrijven. SMIServer heeft een kopie van bepaalde gegevens uit de SMI database in het geheugen. Wanneer gegevens worden toegevoegd of verwijderd terwijl de SMIServer werkt kan
dat leiden tot het verbreken van de verbinding tussen het SMI systeem en de Smartsite server. SMI gebruikt een eigen database voor het opslaan van de data. Hierna wordt de indeling van deze database in detail besproken. In figuur 3 zijn de volgende tabellen zichtbaar: • Page • Pageviews • Visitors • Visitor • Category • Item • ItemPerDay • ReferrerPerDay • ExtendedLog • Configuration • SearchEngines
Figuur A-3: Het datamodel dat door SMI wordt gebruikt
Page In de Page tabel slaat SMI informatie op over alle bezochte pagina’s van de site. Pagina’s die voor SMI nieuw zijn worden vanzelf aan de database toegevoegd. Op het moment van toevoegen wordt de titel uit de Smartsite database gehaald. Omdat dit in de achtergrond gebeurt is het mogelijk dat de het Smartsite Content Management Server ®
A-9
titel veld een korte periode leeg is. Het wordt na enkele minuten automatisch gevuld. Het UpdateTimestamp veld wordt gebruikt door het systeem om na 24 uur de titel opnieuw op te halen. Pageviews De pageviews tabel wordt gebruikt om het moment van bezoek van pagina’s op te slaan. Het PageID veld verwijst naar het PageID in de Page tabel. Op deze manier wordt aangegeven van welke pagina de bezoekmomenten worden opgeslagen. Het jDay veld bevat de datum waarop de pageviews zijn voorgekomen. Het Total veld bevat het totale aantal pageviews voor die pagina voor één bepaalde dag. In de velden Hour0 tot en met Hour23 worden de pageview uitgesplitst per uur. Het Weekday veld slaat op welke dag van de week het betreft. 0=Zondag, 1=Maandag enz. Visitors De Visitors komt voor een groot gedeelte overeen met de Pageviews tabel; de Visitors tabel bevat echter geen aantal pageviews maar het aantal unieke bezoekers op die dag. Een bezoeker wordt als uniek gezien wanneer hij voor de eerste keer die dag een pagina opvraagt. Ook een bezoeker die langer dan 20 minuten niets doet en vervolgens een pagina opvraagt wordt als een nieuwe bezoeker gezien. Wanneer een bezoeker de laatste 20 minuten geen pagina op de site heeft opgevraagd gaat SMI ervan uit dat de bezoeker de site heeft verlaten. Het verlaten van de site wordt ook gezien als het bezoek van een nieuwe pagina. Visitor In de Visitor tabel worden details over bezoekers van de site opgeslagen. Het IP adres en de informatie uit het cookie worden opgeslagen in de velden IP en cookie. Het betreffende cookie wordt door Smartsite opgeslagen op de computer van de site bezoeker. Het wordt gebruikt om de gebruiker te kunnen onderscheiden van andere gebruikers. Wanneer de bezoeker geen toestemming geeft voor het gebruik van cookies wordt hij aan de hand van het IP adres geïdentificeerd. Het SmartsiteUserid veld wordt alleen gevuld wanneer de bezoeker een Smartsite account (naam en wachtwoord) gebruikt voor het bezoeken van restricted pagina’s. Het veld DNSName bevat de domeinnaam die bij het IP adres van de bezoeker hoort. Wanneer het zoeken naar een domeinnaam van een IP adres geen resultaat heeft wordt de waarde “Unknown” in het veld gezet. LastPageId verwijst naar de laatste PageID die deze bezoeker heeft opgevraagd. LastVisitTime bevat de timestamp (tijd en datum) van dit laatste verzoek. Het LastVisitTime veld wordt intern door SMI gebruikt; de waarde is het aantal seconden dat verstreken is sinds 1/1/1980 om 0:00 uur. Dit is vrijwel analoog aan de jDays definitie. Category Voor het opslaan van de meeste andere gegevens over pageviews gebruikt SMI de tabellen Category, Item en ItemPerDay. Het gebruik van deze tabellen wordt uitgelegd aan de hand van een voorbeeld van een bezoeker die met een browser pagina’s opvraagt. Stel dat een bezoeker een pagina opvraagt met Internet Explorer versie 6. In dat geval bewaart SMI de tekst “Browser” in het Name veld van de Category tabel. Als de waarde “Browser” niet al bestaat wordt het automatisch aan de tabel toegevoegd.
Item Hierna slaat SMI de tekst “Microsoft Internet Explorer 6.0” op in het Name veld van de Item tabel. Het CategoryId verwijst naar de rij in de Category tabel waar het veld Name de waarde “Browser” heeft. Op deze manier is het eenvoudig alle browser types te achterhalen waarmee de site bezocht is. ItemPerDay Uiteindelijk verbindt de ItemPerDay tabel de rij met de naam “Internet Explorer 6“ uit de Item tabel met een pagina en dag. ItemId verwijst naar de rij met de naam "Microsoft Internet Explorer 6.0" in de Item tabel. De PageId verwijst naar de pagina die bezocht is door deze browser. jDay bevat de dat waarop dit is gebeurd. Itemcount bevat het aantal pageviews voor deze browser, voor deze pagina, op deze dag. ReferrerPerDay ReferrerPerDay werkt vrijwel op dezelfde manier als ItemPerDay. Deze tabel is echter alleen gekoppeld aan de Category tabel. In de Category tabel bestaan items die verwijzen naar deze tabel, zoals “Page entry page” en “Page exit page”. "Page entry page" geeft aan van welke pagina de bezoeker kwam op het moment dat hij naar deze pagina ging. De "Page exit page" geeft aan naar welke pagina de bezoeker ging op het moment dat hij deze pagina verliet. In de tabel verwijst de PageId naar de huidige pagina en de Page2Id naar de pagina waar de bezoeker van kwam of naar toe ging. jDay bevat de dag waarop dit is gebeurd. ReferrerCount bevat het aantal keer dat dit is gebeurd op die dag. ExtendedLog De ExtendedLog tabel wordt normaalgesproken niet gebruikt door SMI. Het is wel mogelijk deze optie aan te zetten met SMIConfig. Wanneer de instelling aanstaat zal SMI deze tabel gebruiken om elke afzonderlijk paginaverzoek op te slaan. Dit zal een grote negatieve invloed hebben op de performance van de site. Deze optie moet alleen gebruikt worden in het geval dat de gegevens die SMI levert onvoldoende blijken te zijn voor een speciale analyse. Het wordt sterk aanbevolen deze optie uit te laten staan. Configuration De Configuration tabel wordt intern door SMI gebruikt voor het opslaan van de site instellingen. Waarschijnlijk is het nooit nodig de inhoud van deze tabel te gebruiken voor andere doelen. SearchEngine SMI detecteert pageviews afkomstig van zoekmachines door de referrer te vergelijken met de in SMI van tevoren opgeslagen lijst met URL’s van zoekmachines. Als één van de URL’s deel uitmaakt van de referrer zal de telling van die zoekmachine met één worden verhoogd in de SMI database. De querystring kolom bevat de naam van de querystring waarde die de keywords waarop gezocht is bevat. Deze keywords worden ook opgeslagen in de SMI database. Het is mogelijk de SearchEngine tabel aan te vullen met nieuwe zoekmachines zodat meer zoekmachines worden herkend. Het is wel noodzakelijk SMI te herstarten voordat de nieuwe zoekmachines werkelijk worden herkend.
Smartsite Content Management Server ®
A-11
A.2.3 jDays SMI gebruikt een wat afwijkende manier van het opslaan van een datum. In plaats van de standaard manier te gebruiken wordt een datum als een integer bewaard. Deze integer is een variant van de Juliaanse kalender. In deze kalender heeft elke dag een nummer; het nummer van morgen is het nummer van vandaag plus één. Deze kalender maakt het mogelijk op een makkelijke manier data te vergelijken en te converteren naar een ander formaat. Tevens is het mogelijk de datum onafhankelijk van de landinstellingen van Windows op te slaan. SMI gebruikt niet de standaard Juliaanse kalender waar dag 1 overeenkomt met 1 januari 4713 voor Christus. In het geval van SMI komt dag nul overeen met 1 januari 1980. Dit is zo gekozen om het converteren van een datum makkelijker te maken. Het converteren van een jDays veld is eenvoudig in Visual Basic 6 en in talen gebaseerd op het .Net framework. Hieronder wordt alleen de conversie in Visual Basic 6 getoond. Het converteren van een datum naar jDays wordt gedaan met het volgende statement:
jDays = DateDiff ("d", #1/1/1980#, MijnDatum) Voorbeeldcode A-1: conversie datum naar jDays
Een jDays waarde wordt op de volgende manier omgezet in een DateTime waarde uit Visual Basic 6:
A.3 Applet beschrijving Wanneer SMI is geïnstalleerd zijn de twee acties Management Information en Management Information Setup aan het Admin menu toegevoegd. De Management Information actie wordt gebruikt om de door SMI verzamelde gegevens op diverse manieren in rapportages weer te geven. De Management Information Setup actie wordt gebruikt om aan te geven van welke pagina’s geen gegevens hoeven te worden verzameld. Binnen alle rapportages van SMI wordt gebruik gemaakt van hetzelfde Java applet. Een applet bestaat uit een Java programma dat is gecompileerd. Het kan daardoor niet door Value Added Resellers (VAR’s), System Integrators of eindgebruikers worden aangepast. Het applet maakt het mogelijk grafieken weer te geven.
Figuur A-4: Een grafiek gemaakt door het SMI applet
Het applet is in staat een aantal verschillende grafieken te tekenen: • Een staafgrafiek • Een staafgrafiek met een indeling per dag • Een taartdiagram • Een lijngrafiek • Een absoluut gestapelde grafiek • Een relatief gestapelde grafiek (deze vult altijd aan tot 100%) Smartsite Content Management Server ®
A-13
Het verschil tussen een absoluut gestapelde grafiek en een relatief gestapelde grafiek is dat alle relatief gestapelde grafieken uitvullen tot aan 100% van de grafiekhoogte. Alle relatief gestapelde grafieken zijn dus altijd even hoog. Het applet is altijd opgenomen in een HTML pagina waarin scriptcode is verwerkt. Deze HTML pagina’s (en ook de scripts) zijn door de VAR aan te passen of toe te voegen. Over de opbouw van de pagina’s is documentatie beschikbaar op de Smartsite supportsite. De pagina wordt in dit geval een SMI template genoemd. Over het maken van SMI templates wordt door Smartsite Software B.V. een cursus gegeven. Tevens is het mogelijk de grafieken te vergroten en de grafieken in een apart pop-up venster te tonen. Het vergrootglas links naast een rij in het rapport onder de grafiek geeft toegang tot detail informatie. Alle menu opties van SMI zijn gekoppeld aan een template.
A.3.1 De buttons van het applet Onderstaande tabel toont de verschillende buttons waarmee het grafiektype binnen de applet wordt gekozen:
Omschrijving Staafgrafiek van de gevraagde gegevens. Staafgrafiek per dag van de gevraagde gegevens. Taartgrafiek van de gevraagde gegevens. Lijngrafiek per dag van de gevraagde gegevens. Gestapelde staafgrafiek van de gevraagde gegevens. Relatieve gestapelde staafgrafiek van de gevraagde gegevens. Vergroot de grafiek in een aantal stappen tot maximaal 500%. De grafiek wordt hierdoor voorzien van scrollbalken. Laat de grafiek zien in een pop-up venster. Tabel A-1: SMI buttons
A.3.2 De SMI menubalk Met behulp van de SMI menubalk wordt bepaald welke gegevens uit welke periode gebruikt worden voor het tonen van de rapportage.
Met behulp van de buttons Site, View en Selection kan de scope van de rapportage worden aangegeven. De scope geeft aan over welke pagina’s informatie wordt getoond: • Site: De scope bestaat uit de hele site • View: De scope bestaat uit alle pagina’s binnen een gekozen view • Selection: De scope bestaat uit alle geselecteerde pagina’s. De knoppen From en Until worden gebruikt om de periode aan te geven die door SMI wordt gebruikt. De knoppen met de getallen 1, 7 en 31 worden gebruikt om een periode van respectievelijk één dag, zeven dagen en eenendertig dagen te kiezen. Met behulp van de Refresh button wordt de rapportage opnieuw ingeladen.
A.3.3 Management Information Setup De Management Information Setup actie wordt gebruikt voor het opbouwen van de exclude list. Met behulp van de exclude list wordt aangegeven welke items niet in de statistieken mogen worden opgenomen. In de exclude list worden bijvoorbeeld stijlen, framesets, banners, footers en het menu opgenomen. Hierdoor wordt voorkomen dat items zonder content in de statistieken worden weergegeven.
Figuur A-6: Het aanpassen van de exclude list
Smartsite Content Management Server ®
A-15
Met behulp van de Load in view knop is het mogelijk de items die op dit moment in de exclude list zijn opgenomen in de view (boom) te tonen. Zie figuur 6 voor een mogelijk resultaat van het klikken op deze knop. Met behulp van de Remove from list knop is het mogelijk een item uit de exclude list te verwijderen. Het item dat je wilt verwijderen moet dan wel geselecteerd zijn in de view. Met behulp van de Add to list knop worden in de view geselecteerde items aan de exclude list toegevoegd. De optie Include All children werkt zowel bij het toevoegen als het verwijderen van items. Wanneer de optie is aangevinkt worden ook de kinderen van de items toegevoegd of verwijderd.
A.4 SMI menu opties In het onderstaande overzicht zijn alle menu opties van SMI versie 1.3 opgenomen. SMI bevat vijf verschillende hoofdmenu’s: • Scope • Site • Visitor • Referrers • Server Het is mogelijk verschillende SMI acties anders in te stellen door het opgeven van verschillende actie parameters. Door de verschillende acties aan afzonderlijke gebruikers toe te kennen krijgt SMI een andere werking voor andere gebruikers.
A.4.1 SMI templates Alle acties die binnen SMI worden uitgevoerd staan in de vorm van HTML bestanden op de harddisk van de Server. Deze HTML bestanden worden templates genoemd. Het zijn geen gecompileerde programmaonderdelen (dll’s) die op de server worden uitgevoerd. De HTML bestanden bevatten scriptcode. Door de scriptcode aan te passen is het voor een VAR relatief eenvoudig mogelijk de functionaliteit van SMI aan te passen. Smartsite Software B.V. heeft tevens een cursus ontwikkeld waarin het maken van SMI templates wordt besproken. Het is mogelijk met de manager van site A gegevens in SMI te laden over site B. Dit is vooral handig in geval er sites worden gebruikt met een runtime licentie (in dat geval is er geen Smartsite Manager beschikbaar).
A.4.2 Scope Menu De scope geeft de bron van de meetgegevens aan die SMI gebruikt om een grafiek te tekenen. Wanneer je bijvoorbeeld informatie afkomstig van alle items op de site wilt zien moet de Scope op Entire site worden ingesteld. De volgende opties zijn beschikbaar voor het instellen van de Scope. • Entire site. Wanneer Entire site is gekozen is de getoonde informatie afkomstig van alle pagina's in de website. Het aantal geselecteerde items kan bijzonder groot worden bij gebruik van deze optie. Daardoor kan het opbouwen van de rapportage enige tijd in beslag nemen. • Current view. Wanneer Current view is gekozen is de getoonde informatie afkomstig van de pagina's in de huidige view. • Selected items. Wanneer Selected items is gekozen is de getoonde informatie afkomstig van de pagina's die u op dat moment hebt geselecteerd in de view. Smartsite Content Management Server ®
A-17
• Selected items with children. Wanneer Selected items with children is gekozen is de getoonde informatie afkomstig van de pagina's die u op dat moment hebt geselecteerd in de view en van alle kinderen van deze pagina's (en ook weer van alle kinderen van deze pagina’s, en zo recursief verder). Naast het instellen van de scope bevat dit menu tevens de volgende mogelijkheden: • Report length. Met Report length kunt u de lengte van een rapport aangeven. Standaard worden alleen de 25 bovenste regels van het rapport getoond, dit is instelbaar variërend van 1 tot en met 500 regels. • Find. Find stelt u in staat om zelf een willekeurige set pagina's te kiezen waarover u informatie wilt zien. U kunt bijvoorbeeld de informatie opvragen over de pagina's die u zelf hebt gemaakt of over alle pagina's waarin het woord 'tulp' voorkomt. • Flush. Met de optie flush kunt u de informatie die SMI Server tijdelijk in de SMI cache heeft geplaatst direct opslaan in de database. Normaal is het gebruik van deze optie niet nodig omdat SMI alle informatie op regelmatige tijden in de database onderbrengt. De informatie die u ziet is in de meeste gevallen slechts enkele minuten oud.
!
Let op! Gebruik de Flush actie niet onnodig. Het levert een relatief grote belasting van de SMIServer op.
Let op! • Print mode. Wanneer u Print mode aanvinkt verschijnt de pagina in een iets andere opmaak die duidelijker overkomt wanneer u de pagina afdrukt. • Print. Drukt de pagina af in de huidige opmaakstijl. • Refresh. Refresh laadt de huidige pagina opnieuw in.
A.4.3 Site menu Met behulp van het Site menu wordt een overzicht van het bezoek van de site, uitgedrukt in aantallen pageviews en aantallen visitors, opgevraagd. Telkens wanneer Smartsite een verzoek krijgt voor het genereren van een pagina wordt een pageview geteld. Ook wanneer een bezoeker per ongeluk op een verkeerde link klikt, of de pagina maar één seconde bekijkt wordt dezelfde pageview geregistreerd. Iedere bezoeker die de afgelopen twintig minuten geen pagina van de site heeft opgevraagd wordt gezien als nieuwe bezoeker. Het site menu geeft toegang tot de overzichten van pageviews en visitors per gekozen periode. Hieronder worden alle menu opties kort toegelicht. • Pageviews per day. Pageviews per day geeft een grafiek van het aantal pageviews per dag voor de periode en binnen de gekozen scope.
• Pageviews per page. Pageviews per page geeft een grafiek van het aantal pageviews per pagina voor de periode en binnen de gekozen scope. • Pageviews per hour. Pageviews per hour geeft een grafiek van het aantal pageviews per uur van de dag, voor de periode en binnen de gekozen scope. • Pageviews per weekday. Pageviews per weekday geeft een grafiek van het aantal pageviews per weekdag voor de periode en binnen de gekozen scope. • Visitors per day. Visitors per day geeft een grafiek van het aantal visitors per dag voor de periode en binnen de gekozen scope. • Visitors per page. Visitors per page geeft een grafiek van het aantal visitors per pagina voor de periode en binnen de gekozen scope. • Visitors per hour. Visitors per hour geeft een grafiek van het aantal visitors per uur van de dag, voor de periode en binnen de gekozen scope. • Visitors per weekday. Visitors per weekday geeft een grafiek van het aantal visitors per weekdag voor de periode en binnen de gekozen scope.
Let op! Een visitor wordt alleen geteld als hij nieuw aankomt op de site en niet telkens als hij aankomt op een pagina. Als een bezoeker dus naar een nieuwe pagina gaat wordt het aantal visitors niet verhoogd met één, het aantal pageviews wordt dat wel.
!
Let op!
A.4.4 Visitor menu Het visitor menu biedt toegang tot de overzichten van diverse eigenschappen van de verschillende bezoekers. De menu opties worden hieronder alle kort toegelicht. Voor het registreren van de gegevens voor Timezone, Resolution, Colordepth en Java enabled is het noodzakelijk een klein JavaScript op de pagina’s te plaatsen. Dit JavaScript plaatst de informatie in een cookie dat vervolgens door SMI wordt uitgelezen. • Language. In Language ziet u de taalinstelling van de browser van uw bezoekers. Dit hoeft niet noodzakelijk ook de taal van eindgebruiker te zijn. Sommige Nederlandse gebruikers gebruiken bijvoorbeeld een Engelstalige browser. • Country. In Country ziet u de landinstelling van de browser van uw bezoekers. • Timezone. Geeft de tijdzone aan waarin de bezoeker zich bevindt. • Browser. In Browser ziet u welk type browser uw bezoekers gebruiken. • Operating system. Deze optie geeft een overzicht van de verschillende besturingssystemen die de bezoekers van uw site gebruiken. • Resolution. In Resolution ziet u, mits uw site goed is geconfigureerd, de resolutie die uw bezoekers gebruiken. • Colordepth. Het aantal kleuren dat het scherm van de bezoekers kan weergeven. De kleurdiepte wordt aangegeven in bits. Acht bits komt overeen met 256 kleuren, 16 bits met 65536 kleuren en 24 bits met ongeveer 16,7 miljoen kleuren. Smartsite Content Management Server ®
A-19
• Java enabled. Geeft aan of de bezoeker de Java ondersteuning van zijn browser aan of uit heeft geschakeld. • Visit duration. Visit duration laat de tijd zien die de bezoekers verblijven op een enkele pagina. • Visitor domains. Hier kunt u de domeinen zien waar uw bezoekers vandaan komen. Als hier 'Unknown' wordt aangegeven betekent dit dat het IP adres van de gebruiker niet herleid kon worden tot een domeinnaam. Niet aan ieder IP adres is een domeinnaam toegekend. Visitor tracking. Visitor tracking stelt u in staat om van individuele bezoekers over een langere tijd na te gaan welke pagina's zij hebben bezocht.
A.4.5 Referrers Menu Binnen het referrers menu staan overzichten betreffende de navigatie van bezoekers. Het gaat er hierbij om waar bezoekers vandaan komen en waar ze naar toe gaan. Het is mogelijk dat bezoekers een door Smartsite aangedreven website vinden door eerst een aantal termen in te voeren bij een zoekmachine. Dit menu geeft toegang tot overzichten van gebruikte zoekmachines en gebruikte zoektermen. • Referrers. Referrers laat voor alle pagina's in de scope de URL zien van de Internetpagina's die naar uw website hebben verwezen. Wanneer hier Bookmark staat betekent dit dat de bezoeker of via een bookmark op uw site is gekomen, het adres van uw website (de URL) zelf heeft ingetikt of uw pagina heeft gebruikt als startpagina van de browser. • Referrer domains. Referrer domains laat de domeinnamen zien van de Internetpagina's die naar uw website hebben verwezen. • Entry page. Entry page laat zien op welke pagina's bezoekers uw site binnen kwamen. • Exit page. Exit page laat zien welke pagina als laatste werd bezocht door een bezoeker. • Incoming clickpath. Bij het Incoming clickpath overzicht wordt getoond van welke pagina de bezoekers kwamen toen ze een pagina in de scope bezochten. Wanneer de scope slechts uit één pagina bestaat wordt aangegeven via welke pagina's de bezoekers bij die ene pagina terechtkwamen. Voor grotere selecties wordt het al gauw minder overzichtelijk doordat niet meer duidelijk is welke pagina's met welk item in de boom corresponderen. Hierbij moet worden opgemerkt dat de getoonde resultaten niet altijd kloppen. Zo kunnen er pagina's tussen staan die helemaal geen link hebben naar die ene pagina die in de boom is geselecteerd. Hier is een aantal oorzaken voor aan te wijzen. Ten eerste het gebruik van frames. Van een pagina met frames is de volgorde waarin de frames worden geladen onbepaald. Hierdoor kan een frame zonder links worden geladen na een frame met links. Ten tweede kan de gebruiker met behulp van de 'Back' knop in zijn browser door zijn history stappen waardoor een link van een pagina lijkt te komen waar hij helemaal niet vandaan komt. Dit verhaal geldt ook voor de optie 'outgoing clickpath'. A-20
• Outgoing clickpath. In het outgoing clickpath ziet u naar welke pagina de bezoekers toegingen toen ze een pagina in de scope bezochten. Als je dus één pagina in je scope selecteert kan je zien naar welke pagina's ze vertrokken vanaf die pagina. • Search engines. Als SMI een referrer heeft herkend als zoekmachine zal de naam van de zoekmachine aan deze lijst worden toegevoegd. • Keywords. Als SMI een zoekmachine heeft herkend zal het de woorden waarop is gezocht door de gebruiker hier weergeven. Zo kunt u zien welke woorden bezoekers gebruiken om u te vinden. • Aquabrowser keywords. Aquabrowser keywords geeft de woorden waarop gezocht is door de gebruiker met de Aquabrowser op uw website. Deze optie werkt alleen wanneer de Aquabrowser is geïnstalleerd.
A.4.6 Server Menu Diverse status gegevens van de server: • Server response time. Dit geeft aan hoelang Smartsite nodig had voor het genereren en verzenden van de pagina’s in de scope. • Server cache usage. Server cache usage laat zien hoeveel procent van de pageviews uit de Smartsite servercache afkomstig is en hoeveel direct gegenereerd wordt. Deze informatie kan gebruikt worden om de performance van Smartsite te verbeteren. • Manager sessions. Manager sessions geeft aan hoeveel manager sessions per dag zijn gestart op de webserver in de gekozen periode. Dit getal geeft niet het aantal op dit moment werkende sessies weer, het gaat hier om het totaal aantal sessies dat gestart is. • Content changes. Content changes geeft het aantal wijzigingen, toevoegingen, verwijderingen, archiveringen en unarchiveringen er plaats vinden op uw website. Zo kan de activiteit van de redacteuren gevolgd worden. • Errors. Errors geeft aan welke macrofouten er optreden in zelfgeschreven componenten.
A.4.7 Eigen events meten Naast het meten van webactiviteit is SMI ook in staat om uw eigen events te meten. Vanuit zelfgemaakte componenten kunt u een event opwerpen dat door SMI afgevangen kan worden. Zo kunt u bijvoorbeeld SMI laten meten hoe vaak uw eigen componenten worden aangeroepen. Daarnaast is het mogelijk om eigen rapportages te maken, eventueel in Word of Excel en om rapportages te mailen op gezette tijden of informatie over het aantal bezoekers te verwerken in uw site. Te denken valt aan een teller op de homepage met daarin de tekst "Er zijn vandaag xxxx bezoekers geweest". Vraag uw VAR naar de mogelijkheden.
Smartsite Content Management Server ®
A-21
A.4.8 Personalisatie SMI is ook te gebruiken voor personalisatie doeleinden. Een Smartsite paginacomponent kan namelijk vragen stellen aan de SMI database. Daardoor is het mogelijk te bepalen welke pagina’s een bezoeker heeft bezocht. Aan de hand van de pagina’s die zijn bezocht kan je de gebruiker indelen in een bepaalde categorie. Dan kan je ervoor zorgen dat er links worden afgebeeld die juist voor deze categorie gebruikers interessant zijn. Wanneer iemand bijvoorbeeld veel pagina’s bezoekt over ski’s en snowboards worden dan automatisch de link naar wintersportvakanties en bergsportverzekeringen getoond.
Aanvullende informatie Aan de tekst en de afbeeldingen in deze handleiding is grote zorg besteed. Mocht u na het lezen van deze handleiding echter nog aanvullende informatie wensen dan kunt u ook kijken op onze website http://manual.smartsite.nl
Opmerkingen en suggesties Heeft u commentaar of suggesties ter verbetering van deze handleiding dan kunt u een e-mail sturen naar [email protected]
Deze handleiding is een uitgave van: Smartsite Software B.V. Elektronicaweg 33 2628 XG DELFT T: +31 (0)15 - 251 37 20 F: +31 (0)15 - 251 37 21 W: www.smartsite.nl E: [email protected]