Training voor Webmasters Bewerkt door Ing. Hans A. Olthoff,
Meer informatie: Ing. Hans A. Olthoff AlterNET Internet B.V. Archimedesstraat 2 3316 AB Dordrecht T (078) 635 1200 F (078) 635 2010 www.alternet.nl
Dit document wordt gepubliceerd onder de voorwaarden van Open Content License, beschikbaar op http://www.opencontent.org/opl.shtml De inhoud van dit document heeft betrekking op TYPO3 - een GNU/GPL CMS/Framework beschikbaar op www.typo3.com
Training voor Webmasters - 1
Inhoudsopgave Training voor Webmasters........................................................................................................ 1 Inhoudsopgave ................................................................................................................................................................................................. 2 Introductie.............................................................................................................................................................................. 4 Wat is Typo3?.................................................................................................................................................................... 4 Screenshot........................................................................................................................................................................ 4 Met dank aan:.................................................................................................................................................................... 5 Pagina’s met wachtwoordbescherming............................................................................................................................... 6 Log in...................................................................................................................................................................................... 6 Gebruikers/groep creëren.................................................................................................................................................. 7 Frontend en backend gebruikers......................................................................................................................................... 7 Een gebruiker of groep bewerken........................................................................................................................................ 8 Een gebruiker aanmaken...................................................................................................................................................... 9 Login formulier aanmaken.............................................................................................................................................. 10 Een pagina met beperkte toegankelijkheid aanmaken...................................................................................................11 Oeps!..................................................................................................................................................................................... 12 Toegankelijkheidsopties..................................................................................................................................................... 12 Bijzondere content elementen........................................................................................................................................... 14 E-mail formulier............................................................................................................................................................... 14 Een “selector box” toevoegen........................................................................................................................................... 15 Een paar aantekeningen..................................................................................................................................................... 16 Zoekvenster..................................................................................................................................................................... 17 Een zoekopdracht uitvoeren.............................................................................................................................................. 17 Site plattegrond............................................................................................................................................................... 18 De backend taal veranderen .......................................................................................................................................... 20 De List module en het Klembord........................................................................................................................................ 21 Effectief gebruik van de List module............................................................................................................................... 21 De numerieke klembordblokken – veel elementen onderhouden.................................................................................. 21 Bestandsonderhoud............................................................................................................................................................ 23 Selectief bewerken ......................................................................................................................................................... 23 Het bewerken van alle headers.......................................................................................................................................... 24 Gebruikersonderhoud ....................................................................................................................................................... 26 Gedistribueerd onderhoud............................................................................................................................................... 26 Backend gebruikers......................................................................................................................................................... 26 "christine"............................................................................................................................................................................ 26 "jonathan"............................................................................................................................................................................ 27 Gebruikerstoestemming instellen................................................................................................................................... 27 File Mounts........................................................................................................................................................................... 28 DB mounts............................................................................................................................................................................ 29 Paginatoestemming............................................................................................................................................................. 29 Groepen........................................................................................................................................................................... 30 Modules................................................................................................................................................................................ 31 “Tables” (modify)................................................................................................................................................................. 31 Pagina types........................................................................................................................................................................ 32 Toegestane “Exclude” velden............................................................................................................................................ 32 Record blokkering?............................................................................................................................................................. 34 Een nieuwe gebruiker voor de Fan Club site aanmaken................................................................................................ 34 Stap 1: Maak de gebruiker aan........................................................................................................................................... 34 Stap 2: Controleer de nieuwe gebruiker............................................................................................................................ 34 Stap 3: Stel de juiste "Page Permissions" in.................................................................................................................... 35 Stap 4: Laatste controle ..................................................................................................................................................... 36 Stap 5: Test de nieuwe gebruiker....................................................................................................................................... 36 Eenvoudige nieuws “workflow” ....................................................................................................................................... 37 Een workflow opstarten................................................................................................................................................... 37 Taak aanmaken.................................................................................................................................................................... 37 Taak accepteren.................................................................................................................................................................. 39 De workflow afsluiten.......................................................................................................................................................... 41 "Done".................................................................................................................................................................................. 42 Een workflow configureren.............................................................................................................................................. 43 De "Draft Page"................................................................................................................................................................... 45 Doelgroepen en controlerende gebruikers....................................................................................................................... 45 Vereisten ........................................................................................................................................................................ 46 Training voor Webmasters - 2
Groepslidmaatschap .......................................................................................................................................................... 46 De toestemmingen van de Draft page................................................................................................................................ 46 De DB mount........................................................................................................................................................................ 46 Nawoord............................................................................................................................................................................... 47
Training voor Webmasters - 3
Introductie Wat is Typo3? TYPO3 is een onderhoudssysteem voor websites, ook wel een content management systeem of cms genoemd. Door een strikte scheiding van inhoud (content), grafische vormgeving en onderliggende techniek (PHP programmeertaal en MySQL database) wordt het onderhouden van een of meer websites sterk vereenvoudigd. In deze training leer je de basis principes van TYPO3. De training is hands-on en je gaat direct beginnen met je eerste website in TYPO3. Na het volgen van deze training heb je een idee van de mogelijkheden van TYPO3 en de daaraan ten grondslag liggende concepten. Voor deze training heb je nodig: het adres van de oefenwebsite van AlterNET en een inlogcode om jezelf toegang te verschaffen. De docent zal je deze informatie verstrekken. De creatie van templates en het ontwikkelen van websites in TYPO3 komen in deze cursus niet aan de orde! Deze onderwerpen worden behandeld in de vervolgcursus Modern Template Building , deel 1.
Screenshot De oefenwebsite in deze training is van een voetbalclub met de naam "FC Bigfeet". De website ziet er zo uit:
Met deze eenvoudige website zul je leren om: •
Door een wachtwoord beschermde gebieden van de website te creëren.
•
Bijzondere content in te voegen, zoals e-mail formulieren, zoekvensters, site plattegronden etc.
•
Backend gebruikers, die verschillende delen van je website onderhouden, te beheren
•
Een “workflow” te creëren voor nieuwsberichten voor op de voorste pagina
•
Te begrijpen hoe TYPO3 pagina’s in een boomstructuur plaatst en content opslaat.
Training voor Webmasters - 4
Met dank aan: Dankbaar heb ik uitgebreid gebruik gemaakt van de volgende brondocumenten: •
Getting Started, Engelstalige handleiding geschreven door Kasper Skårhøj
•
Handbuch für Redakteure, Duitstalige handleiding geschreven door Werner Altmann
•
MTB/1, Engelstalige handleiding geschreven door Kasper Skårhøj
Deze documenten zijn gepubliceerd onder de voorwaarden van de Open Content License. Meer informatie hierover is te vinden op http://www.opencontent.org/opl.shtml De inhoud van deze training is gerelateerd aan TYPO3, een GNU/GPL gelicenseerd CMS/Framework, beschikbaar gesteld op www.typo3.com De hoofdstukken uit de brondocumenten zijn opnieuw gerangschikt, zodat ze beter aansluiten bij de opleidingsbehoeften van mensen die aan de slag willen met TYPO3. Op basis van de brondocumenten is door AlterNET een drietal Nederlandstalige TYPO3 Trainingen beschikbaar gesteld om de kennis op het gebied van TYPO3 te vergroten. Dit zijn: •
TYPO3 Training voor Editors
•
TYPO3 Training voor Webmasters (dit document)
•
TYPO3 Training voor Ontwikkelaars
Veel leesplezier! Ing. Hans A. Olthoff [email protected]
Training voor Webmasters - 5
Pagina’s met wachtwoordbescherming Je weet nu hoe je pagina’s kunt aanmaken en bewerken! Dat was toch niet zo moeilijk? Lekker makkelijk om met TYPO3 een webmaster te worden. Verderop laat ik je zelfs zien hoe je dit werk kunt delegeren! Één van de redenen om over te gaan op een CMS is dan ook dat je ervoor kunt kiezen veel verschillende gebruikers content op dezelfde website te laten onderhouden! Met volledige controle over toegankelijkheid etc. Maar daar gaat het einde van dit document over. Zo, je kunt dus webpagina’s maken die overal ter wereld kunnen worden gezien. Maar hoe zit het als we alleen maar willen dat een gedeelte van de wereld ze ziet – onze voetbalclub maatjes? Kunnen we ze beschermen met een wachtwoord? Dit is alvast voor je gedaan op de website voor "FC Bigfeet":
Deze pagina’s in de paginaboom kunnen in feite alleen maar worden bereikt via de frontend, als je een “username” en “password” hebt.
Log in Als je wilt inloggen, ga naar de pagina "Log in":
Voer vervolgens de username "john" en het password "football" in (voor jouw gemak hebben op dit moment ALLE gebruikers van de website hetzelfde wachtwoord). Je moet het precies zo invoeren – hoofdletters en kleine letters maken verschil. "John" zal niet werken – het is "john"...
Klik op de "Login" knop – je wordt nu naar de "Team pages" geleid (tenzij je iets fout hebt gedaan...)
Training voor Webmasters - 6
Je ziet ook dat de pagina’s in het menu, die eerst verborgen waren, nu zichtbaar zijn:
Gebruikers/groep creëren Voordat je pagina’s met beperkte toegankelijkheid kunt creëren, moet je allereerst één of meer frontend gebruikers en groepen hebben. Deze kunnen vòòr, gedurende of nadat je je website bouwt worden gecreëerd, dat maakt niet uit.
Frontend en backend gebruikers Hé, wacht eens even! Hoeveel soorten gebruikers zijn er? Er zijn maar twee soorten. Herinner je je nog dat we twee gedeeltes van TYPO3 hebben – de frontend (website) en de backend (onderhoud). Een frontend gebruiker (oranje icoontjes) kan natuurlijk op de website inloggen. Zij kunnen de content niet veranderen (want zij hebben niets te maken met de backend!), maar zij zijn er alleen maar zodat wij de toegankelijkheid van informatie op de website kunnen beperken! Frontend gebruikers (tevens "Website gebruikers" genoemd) worden gecreëerd op die plek in het systeem waar we ze willen creëren. In ons geval hebben we een mooie sysFolder gemaakt onder de naam "Users", voor zowel gebruikers als groepen. De enige vereiste voor deze opslagplek voor frontend gebruikers is dat we het template vertellen dat dit de plek is om gebruikers in op te zoeken, wanneer een login verzoek wordt verstuurd.
Training voor Webmasters - 7
Als je webapplicaties met gebruikersprofielen in TYPO3 wilt maken, zul je waarschijnlijk uitgaan van de frontend gebruikers als basis voor een uitbreiding, die extra database velden aan de gebruikerstabel kan toevoegen – op deze manier kun je informatie over website gebruikers op maat bewaren en beheren!
Een backend gebruiker (blauw icoon) werkt in de backend en houdt zich achter de schermen bezig met informatieverandering. Omdat backend gebruikers een website onderhouden, hebben zij niets te maken met de toegankelijksheidsbeperking op de website zelf (dit is natuurlijk maar gedeeltelijk waar, omdat backend gebruikers verborgen frontend pagina’s met “preview” kunnen zien). Backend gebruikers kunnen op slechts één plaats worden gecreëerd – in de paginaboom root (pid = 0) – en alleen door backend gebruikers die "admin" gebruikers zijn (waarbij admin is aangevinkt, waardoor het icoon rood wordt!) omdat zij de enige gebruikers zijn met toegang tot records in de paginaboom root:
De configuratie van de drie blauwe backend gebruikers (#1) is dusdanig dat zij elk een klein gedeelte van de website kunnen onderhouden. De backend gebruikersgroepen (#2) zouden ook blauw geweest zijn als "Access lists" niet aangevinkt was –vergeef me... Tenslotte is de "admin" gebruiker (#3) - het niveau dat AlterNET gebruikt voor installatie en configuratie – rood omdat hij totale en onbeperkte toegang heeft tot elk onderdeel van het systeem!
Een gebruiker of groep bewerken Zoals je ziet hebben we al een sysFolder met een gebruikersgroep en twee gebruikers. De gebruikersgroep "Team" is eigenlijk niets behalve een naam. Er zijn helemaal geen instellingen aan verbonden. De configuratie van de gebruikers "john" en "irene" is min of meer hetzelfde – alleen een gebruikersnaam, wachtwoord en lidmaatschap van een groep:
(Oh ja, dat is ook zo! Je hebt de “List” module nog niet gebruikt – maar dat is toch niet zo moeilijk? Klik gewoon op het icoon en het vertrouwde contextmenu verschijnt. Terug op bekend terrein. Ik zei toch – let op consistent toegepaste concepten!) En hier is het profiel van John:
Training voor Webmasters - 8
Een gebruiker aanmaken Laten we proberen een gebruiker aan te maken. Omdat frontend gebruikers (net zoals pagina’s, pagina content elementen, nieuwsartikelen etc.) volgens TYPO3 gewoon database elementen zijn, kan een frontend gebruiker op dezelfde manier worden aangemaakt als elk ander element. Dus is dit zelfs een inleiding in het maken van nieuwe elementen! Klaar? Het is eenvoudig. Klik eerst op het pagina icoon van de pagina waar je een nieuw element wilt aanmaken:
Selecteer dan het "Website user" element:
... en voer de informatie in. In dit geval de gebruikersnaam, het wachtwoord en de velden benodigd voor de groep:
Training voor Webmasters - 9
Bewaar de gebruiker. Als je op de pagina titel van de "Users" sysFolder klikt, zou je deze lijst moeten zien (mits de "List" module natuurlijk de laatste backend module was die je gebruikt hebt).
Ga weer naar de login formulier pagina en kijk of het werkt:
Login formulier aanmaken We hebben al een login formulier. Maar wat als we er op de eerste pagina nog één willen? Is dat een probleem? Nee, omdat TYPO3 pagina content maakt door een serie van pagina content elementen zoals je geleerd hebt, kunnen we gewoon een login venster invoegen, als één van de content elementen op de eerste pagina! De enige vraag is waar tussen de andere elementen. Zet de volgende eenvoudige stappen: “Page” module -> Klik "FC Bigfeet" -> "New content"
"Login form":
Kies een positie:
Training voor Webmasters - 10
Nu nog een naam geven en bewaren:
Als je een pagina referentie in het "Send to page" venster invoert, zal de login naar die pagina worden geleid. Dit wordt met het andere venster gebruikt, zodat de gebruiker direct naar het gedeelte met beperkte toegankelijkheid wordt geleid. In dit geval zullen we het leeg laten waardoor het formulier naar dezelfde pagina geleid wordt – de eerste pagina. Aan de frontend zul je dit zien:
Zoals je ziet zijn we al ingelogd –als "newuser". Je kunt zo vaak in en uit loggen als je zelf wilt. Het zou moeten werken.
Een pagina met beperkte toegankelijkheid aanmaken Je hebt nu: •
Gebruikers en groepen opgezet
•
Een login formulier opgezet
•
Je moet nu . . . een deel van de toegankelijkheid beperken!
Laten we de hele sectie die "Youth Section" heet, beperkt toegankelijk maken:
Training voor Webmasters - 11
Kies ervoor dat de toegankelijkheid beperkt wordt tot de leden van de "Team" groep:
En bewaar dat. De pagina icoon verandert. Houdt de muis maar eens op het icoon:
Zie je! De toegankelijkheid is beperkt tot de “Team" groep. Probeer maar in en uit te loggen. Werkt het? Dat zou wel moeten.
Oeps! Nu even uitloggen en bekijk vervolgens één van de subpagina’s van de "Youth Section" pagina. Je zult merken dat die pagina’s gezien kunnen worden! Dus alleen de "Youth Section" was beschermd? Ja, dat klopt – want je moet nog een vakje aanvinken - "Include subpages". Bewerk de pagina header en vink het vakje aan (onderin formulier):
Het pagina icoon verandert en krijgt een dubbele voorwaartse pijl – dit betekent dat alle subpagina’s nu in feite ook beschermd zijn!
Tip: "Include subpages" is niet beperkt tot de toegankelijkheid – het werkt ook als een pagina verborgen is of als er een Start- of Stoptijd op zit. Met deze instelling kun je dus ook de tijd en de zichtbaarheid van een hele sectie bepalen!
Toegankelijkheidsopties Je hebt nu de essentie van toegankelijkheidsbeperking te pakken – selecteer gewoon een website gebruikersgroep, en dat is alles. Vanaf dat punt hoef je alleen maar te bepalen welke gebruikers lid zijn van welke groep. Groepen... oh ja, we hebben op dit moment maar één groep! De "Team" groep. Als je meer groepen toevoegt, kun je Training voor Webmasters - 12
verschillende toegankelijkheidsregels voor verschillende gebruikers maken! Bijvoorbeeld, "john" kan een lid van "Team" zijn en in de "Team" sectie mogen. "irene" kan lid zijn van een nieuwe groep, die wordt gebruikt om de toegankelijkheid van de "Youth section" te beperken, en zij kan erbij! De "newuser" (die we hebben aangemaakt) zou lid van beide groepen kunnen zijn - en toegang hebben tot beide secties! Probeer maar eens! Stoei er eens mee. Tenslotte betekent de optie "Hide at login" dat een pagina niet zichtbaar zal zijn wanneer een gebruiker inlogt! Dit is nuttig als je pagina's hebt met informatie die alleen relevant is voor gebruikers die nog niet ingelogd zijn. De optie "Show at any login" doet natuurlijk het tegenovergestelde - hiermee kan de pagina worden weergegeven voor elke gebruiker die ingelogd is. Het is niet noodzakelijk om lid van een bepaalde groep te zijn – als je ingelogd bent, zie je de pagina.
Training voor Webmasters - 13
Bijzondere content elementen Tot nog toe heb je kennis gemaakt met pagina content elementen in het algemeen. Je weet dus hoe ze werken. In dit gedeelte wil ik je een paar voorbeelden laten zien van bijzondere content elementen, die niettemin erg populair zijn. Hoe kun je bijvoorbeeld een e-mail formulier maken? Of een zoekvenster om je site content te doorzoeken? Of een gastenboek? Als je doorleest, kom je daar achter.
E-mail formulier We hebben al een e-mail venster op de website. Als je naar de pagina "Contact" gaat, zie je zo’n formulier:
In de backend ziet het content element, dat dit formulier aanmaakt, er in de Page module zo uit:
Zie je trouwens dat de "Thank you" pagina een subpagina van de "Contact" pagina is? Bewerk nu het element. Dit is het formulier dat je zult zien:
Training voor Webmasters - 14
De content heeft kennelijk nog meer "code-style" dan het "Table" type content element! Maar zoals gewoonlijk – klik op het wizard icoon en je bewerkt de content met een hulpmiddel waarmee het allemaal veel gemakkelijker wordt!
Zoals je ziet worden de codes omgezet naar dit mooie formulier. Hier wordt elk veld van het formulier gemaakt door controlepaneeltjes. Op een veld moet je natuurlijk een label (#1) en een veld type (#2) invoeren. Dit zijn de zichtbare gedeeltes. Je moet het veld ook een interne naam (#3) geven, die wordt weergegeven in de e-mail die de ontvanger krijgt. Bij de "Input field" types kun je ook een default waarde invoeren (#4). Op drie punten moeten alle e-mail formulieren dezelfde waarden krijgen: De naam van de “send” knop (#5), de onderwerp regel van de e-mail die verstuurd wordt (#6) en tenslotte het e-mail adres van de persoon die de e-mail zou moeten ontvangen (#7). Meestal ben jij dat! Of degene van je team die op feedback zou moeten reageren.
Een “selector box” toevoegen Laten we nu eens een “selector box”, waarin mensen een te ontvangen artikel kunnen uitkiezen, proberen toe te voegen. Bij "FC Bigfeet" hebben we jaarkalenders, het clubblad en potloden om naar mensen te versturen. Selecteer gewoon het "Selector box" type:
Vervolgens de "Refresh without saving" knop (hiermee wordt de content niet bewaard - de content wordt alleen geplaatst en het formulier wordt opnieuw getekend!)
Training voor Webmasters - 15
Voer vervolgens deze informatie in:
Het label is duidelijk (#1). De veldnaam "item_to_send" (#2) is op de webpagina niet te zien, maar, zoals ik al eerder schreef – dat is de naam die de e-mail ontvanger te zien krijgt om deze selectie te herkennen! Tenslotte is elke waarde die je in de selector box wilt een regel in dit text veld (#3) – zo simpel is het. Bewaar de content van de wizard en bekijk de pagina:
Zo gemakkelijk is het!
Een paar aantekeningen Nu dan, in de backend werd de nieuwe selector box toegevoegd aan de coderegels in het "Configuration" veld: Als je hier nieuwsgierig naar bent, kijk dan eens naar de regel, dan zou je zelfs de syntax van het aanmaken van formuliervelden zonder de wizard kunnen ontdekken:
Ook belangrijk is de "Jump to page" – dit veld vertelt TYPO3 gewoon naar welke pagina te springen, wanneer het formulier verstuurd is.
In andere woorden – zodra de gebruiker het formulier heeft ingevuld en op de "Send form!" knop heeft gedrukt, zal hij deze pagina te zien krijgen met ... een gewoon pagina content element met deze groet:
Training voor Webmasters - 16
Makkelijk, hè! Heel flexibel.
Zoekvenster Het volgende project is de implementatie van een zoekvenster. Dat is nog gemakkelijker en er is er al één gemaakt op de pagina "Search":
Het element zelf is uiterst eenvoudig:
In feite hoeft alleen maar het content element type op "Search" te worden gezet – dat is alles. In dit geval is er ook een "Send to page" veld, maar leeg. Doet hetzelfde als het "Jump to page" veld voor e-mail formulieren – het vertelt het element welke pagina de zoekopdracht moet ontvangen (die een ander "Search" content element moet bevatten om resultaten te laten zien!). Als dat niet wordt aangegeven, is het de huidige pagina. Dit is heel gebruikelijk voor zoekvensters.
Een zoekopdracht uitvoeren Als je op het woord “results” zoekt, verschijnen er twee pagina’s:
Training voor Webmasters - 17
Klik maar eens op het kopje "Report results":
Je wordt dan naar de pagina geleid en de zoekwoorden worden mooi rood gemaakt. Geinig hè...
Site plattegrond Ik zal niet veel tijd besteden aan de opgenomen site plattegrond – waarschijnlijk ken je het principe al. Een content element van een bepaald type waaraan een aantal extra instellingen zijn toegevoegd:
Kijk wel naar het "Starting point" veld – dat bepaalt op basis van welke pagina de site map wordt getekend! Op eenzelfde manier gebruiken andere "Menu type" instellingen deze waarde. In plaats van de site plattegrond kun je ook andere soorten "link lists" invoegen, gebaseerd op de paginastructuur en content elementen op pagina's:
Training voor Webmasters - 18
Ik nodig je uit hier nu mee te stoeien. Denk erom - even klikken en je hebt hulp:
Training voor Webmasters - 19
De backend taal veranderen We kunnen er tussendoor wel eventjes bij stilstaan hoe je de taal van de backend verandert! Dat is heel simpel. Gebruikers kunnen dat zelf, als ze toegang hebben tot de "Setup" module:
Selecteer gewoon een andere taal dan Engels en druk op de "Save Configuration" knop onderaan de pagina. Herlaad de backend interface en dan zul je de modules in plaats daarvan in het Deens zien:
TIP: Het Nederlands is één van de talen die ook standaard ondersteund wordt.
Training voor Webmasters - 20
De List module en het Klembord De List module heeft een aantal hele krachtige mogelijkheden om databases content te onderhouden. Laten we er een moment bij stil staan. Alle pagina en aan een pagina verbonden zaken vonden plaats in de Page module - daar was het voor ontworpen! Maar op een lager niveau, achter de schermen, is de List module de plek bij uitstek om zowel pagina's, pagina content elementen, gebruikers als groepen te onderhouden en elk ander element dat TYPO3 kan onderhouden!
Effectief gebruik van de List module Misschien heb je het klembord al gebruikt om een content element van één pagina naar een andere pagina te verplaatsen. Maar laten we eens een blik achter de schermen werpen:
We hebben drie content elementen op de "This week" pagina. Bekijk de pagina content met de List module, vink het "Clipboard" hokje aan en selecteer "Copy" als element. Je kunt zien dat dit element op het nu te voorschijn gekomen klembord wordt weergegeven! (Je zult de List module moeten vernieuwen voordat het zichtbaar is). Als je een ander element selecteert, wordt het eerste weggehaald. Het "Cutting" element is hetzelfde – met het verschil dat het in plaats daarvan als "Cut" wordt weergegeven. Als je het "Extended view" hokje aanvinkt, krijg je een heel paneel met geinige knopjes die allemaal geweldige shortcuts zijn zodat ze niet telkens het contextmenu hoeft te activeren:
Stoei maar eens met deze knoppen!
De numerieke klembordblokken – veel elementen onderhouden Terug naar het klembord – selecteer nu één van de "numerieke klembordblokken":
Training voor Webmasters - 21
Nu kun je de elementen voor het klembord aankruisen – op deze manier kun je dus niet slechts één, maar meerdere elementen tegelijk selecteren! Selecteer de eerste twee elementen en druk op de "Transfer..." knop:
De elementen zijn nu voor "cut" op het klembord weergegeven:
Ze op een andere pagina plakken is niet alleen maar een kwestie van naar die pagina gaan en op het "Paste into" icoon drukken:
Nadat je de waarschuwing bevestigd hebt...
... zul je zien dat de twee elementen naar het begin van de pagina worden verplaatst en dat het klembordpaneel #1 geleegd Training voor Webmasters - 22
wordt:
Bestandsonderhoud Je kunt hetzelfde doen met bestanden in de “Filelist” module. Alleen even een kort overzicht - en je zult zien dat de principes hetzelfde zijn:
Selectief bewerken De list module gebruikt de aanvinkhokjes voor elementen ook voor een ander doel – selectief multi-bewerken. Om dit te activeren moet je allereerst de naam van de tabel in de List module (#1) aanklikken:
Training voor Webmasters - 23
Hiermee wordt de uitgebreide modus geactiveerd. Hier kun je extra velden van de tabel die je ook wilt inzien selecteren (#2). Selecteer nu het "Type" veld. Hierdoor zal naast het reeds aanwezige “Header” veld, het “Type” veld verschijnen.
Het bewerken van alle headers Je hoeft alleen maar het potloodje naast het "Header" label aan te klikken:
Je zult vervolgens dit zien:
Dit biedt de mogelijkheid om van een groot aantal records hetzelfde veld in één keer te bewerken! Heel aangenaam! Je kunt voor zowel het Header als het Type veld tegelijkertijd hetzelfde doen – alleen maar door nog een bewerkingspotlood te gebruiken:
Hiermee krijg je vrijwel hetzelfde formulier – alleen met een extra veld:
Training voor Webmasters - 24
Het wordt echt gaaf als je alleen maar sommige van de aangegeven records selecteert:
Dan bewerk je – had je het al geraden? – alleen die twee!
Krachtig spul. Ga zelf na wat de rest van de knoppen doen! Stoei er wat mee, nu je de kans hebt met deze proef website.
Training voor Webmasters - 25
Gebruikersonderhoud Gedistribueerd onderhoud De laatste stap in onze pogingen om deze website voor "FC Bigfeet" draaiend te krijgen, is het kijken naar gedistribueerd onderhoud - een essentiële vereiste van een CMS. We hebben het verschil tussen frontend en backend gebruikers al besproken en hoe backend gebruikers in de root van de paginaboom worden geplaatst:
Backend gebruikers Er zijn al drie gebruikers. Laten we eens kijken wat ze kunnen. Dit kan het beste door uit te loggen als admin en in te loggen als één van deze gebruikers, één tegelijk. Alle wachtwoorden zijn vooralsnog “football”.
"christine"
Als je als "christine" inlogt, zul je het volgende zien wanneer je de Page module activeert om een bewerking uit te voeren:
Maar één pagina! Ja, "christine" mag maar één pagina bewerken, de “This week” pagina. Die is haar verantwoordelijkheid. We willen niet dat ze aan iets anders kan komen – alleen die pagina. Training voor Webmasters - 26
Dit is best gaaf – ze krijgt alleen de pagina te zien, die ze moet zien. Het is dus niet alleen maar toestemmingsbeheer – hiermee wordt het systeem ook voor de hand liggender en gebruikersvriendelijker. Zoals je kunt zien, kan Christine de meeste backend modules ook niet zien. Het menu links bevat naast de “Help” hoofdmodule, waarvoor geen bijzondere toestemming nodig is, alleen de "Page" en "View" modules.
"jonathan" Log nu in als "jonathan":
Jonathan is de trainer van de Jeugdafdeling van de club. Hij is dus verantwoordelijk voor de hieraan verbonden pagina’s! Net als Christine, kan hij alleen maar de dingen zien die hij zou moeten zien.
In tegenstelling tot Christine heeft hij ook toegang tot de Filelist module gekregen: Als je daarin kijkt, krijg je iets te zien dat een beetje anders is dan wat je te zien krijgt als “admin” gebruiker:
De root map is niet "fileadmin/" maar direct de “Image Archive” map!
Gebruikerstoestemming instellen We willen nu weten wat de instellingen van de gebruikers "jonathan" en "christine" zijn! Hoe heeft hij dat gedaan, de man die achter dit alles zit. Goed, log weer in als "admin" en laten we eens kijken! Training voor Webmasters - 27
Kies "Edit" voor de twee gebruikers, "jonathan" en "christine". Je zult zien dat hun profielen op twee gebieden “identiek” zijn: Ze hebben het zelfde groepslidmaatschap (#1) en ze hebben allebei een "DB mount" (#2, de startpagina voor hun individuele paginabomen). Maar jonathan heeft ook toegang gekregen tot de "file" en "file_list" modules (#3) en daarnaast is de “file” mount "Image Archive" (#4) aan hem toegekend. Dit is eigenlijk heel logisch als je erover nadenkt, omdat dit de mogelijkheden waren die we opmerkten toen we als hem waren ingelogd!
File Mounts De aan toegekende "jonathan" file mount is een verbinding met een eenvoudige record die ook in de paginaboom root zit:
Als je het bewerkt, zul je zie hoe logisch de configuratie is:
Training voor Webmasters - 28
De map "Image_Archive/" (#1) is eenvoudigweg ingevoerd als "PATH" en het "BASE" veld is zodanig geconfigureerd dat dit pad wordt gezien als volgend op de "fileadmin/" map (#2). Zo eenvoudig is het. Als voor Jonathan als instelling een relatie met deze record wordt ingevoerd, zal deze map voor hem worden gemounted in zijn Filelist module!
DB mounts De DB mounts (database mounts) zijn heel gemakkelijk te begrijpen – in wezen verwijzen zij naar de pagina in de hele paginaboom waarvan jij wilt dat het de voor de gebruiker zichtbare root pagina wordt in de paginaboom! Zoals je ziet, kan het niet eenvoudiger zijn om een bepaalde gebruiker toegang tot een bepaald deel van de paginaboom te geven – je hoeft alleen maar de veldwaarden op die pagina in te stellen. Of zelfs voor twee pagina's! Je kunt net zoveel "DB mounts" toevoegen als je zelf wilt!
Paginatoestemming Oh ja! Eén kanttekening over "DB mounts" – als de gebruiker geen leestoegangtoestemming heeft voor de pagina en subpagina’s van de DB mount, dan doet het er niet toe hoe je de configuratie ook hebt ingesteld – het zal niet werken! En wat is leestoegang dan wel? Elke pagina heeft een toestemmingsinstelling voor toegang zoals het bestandssysteem op een UNIX server – er is een eigenaar-gebruiker, een eigenaar-groep en verder toestemmingsinstellingen voor elk binnen de vijf verschillende categorieën; lees pagina, bewerk pagina, wis pagina, nieuwe subpagina en pagina content. Gewoonlijk zijn de default instellingen goed genoeg en DB mounts gebruiken om toegang toe te kennen is waarschijnlijk de gemakkelijkste weg. Als je problemen krijgt, zet je alle toestemmingen gewoon op “on” – hierdoor krijg je over de hele regel groene sterren (zie onderstaande afbeelding). Waarschijnlijk de beste manier om je te laten zien hoe toestemmingen moeten worden ingesteld, is kijken naar de huidige toestemmingen van de paginaboom. Dit doe je met de "Access" module.
Training voor Webmasters - 29
Als je naar het eigendom van de pagina's kijkt, kun je zien dat "jonathan" in feite de eigenaar is van een aantal pagina's. Misschien heeft hij die gemaakt. Als je een pagina maakt, word je automatisch de eigenaar. Maar de hoofdzaak is dat de groep "GENERAL" de eigenaar is van de pagina's waar Jonathan en Christine toegang tot hebben - en omdat ze allebei lid zijn van deze groep, hebben ze alleen hierom al toegang tot de pagina's (ze zijn nog steeds altijd beperkt tot het werken binnen hun DB mounts!). Het enige wat ze niet kunnen - althans "christine" niet omdat zij niet de eigenaar is van de "This week" pagina - is de pagina wissen met het lidmaatschap van de GENERAL groep. Dat kun je zien als je op één van de potloden drukt:
Zoals je kunt zien is het recht "Delete page" niet voor de eigenaarsgroep van één van die pagina's ingesteld. Dat kun je doen als je wilt dat Christine er één kan wissen – maar waarschijnlijk wordt ze dat niet te kunnen. Je zou zelfs de toegang verder kunnen beperken door haar niet toe te staan subpagina’s te maken of de pagina titel te bewerken:
In het toegangsoverzicht krijg je dan het volgende resultaat:
Groepen Laten we eens naar de groep “GENERAL” kijken, waar “jonathan" en "christine" allebei lid van zijn – hoe ziet die er van binnen uit?
Training voor Webmasters - 30
De "Include Access Lists" is het belangrijkste om hier op te merken, omdat deze de reden is waarom we een lijst krijgen van al deze opties! Daarnaast kan de groep ook DB mounts en File mounts bevatten, die dan van toepassing zijn op alle gebruikers die leden zijn.
Modules Als je naar de toegangslijsten kijkt, zie je dat (#1) lidmaatschap van deze groep toegang geeft tot de Web, Page en List module (helaas zul je moeten weten dat deze codes de equivalenten zijn van de namen die je kent van het menu...).
“Tables” (modify) Ten tweede zijn er lijsten van de tabellen die "jonathan" en "christine" mogen bewerken (#2). Klopt dit wel? Kunnen zij echt alleen de pagina’s en pagina content tabellen zien? Laten we weer eens als "jonathan" inloggen en dan een nieuw element proberen te maken:
Training voor Webmasters - 31
Wat interessant – alleen pagina’s en pagina content elementen kunnen worden aangemaakt. Geen gebruikers, geen gastenboek elementen, geen nieuwselementen. Alleen pagina's en content elementen. Hoe dat zo? Omdat Jonathan zich nergens anders druk over moet maken! Hij gaat toch immers niet over het nieuws!
Pagina types Dit veld (#3) dicteert welke pagina types Jonathan en Christine – of leden van de GENERAL groep – moeten kunnen selecteren. Laten we de "Jonathan-test" weer doen en een pagina header bewerken:
We zullen proberen een sysFolder te maken met de login van Jonathan. Zal ons dit lukken?
Niet dus. Sorry, Jonathan. Het gaat niet.
Toegestane “Exclude” velden Dit is een oh zo lange lijst. Maar belangrijk. En krachtig! Maar je hebt wat achtergrond nodig om dit te begrijpen: Wanneer tabellen en velden in TYPO3 geconfigureerd worden (in de interne globale PHP array, $TCA), worden sommige velden gemarkeerd als "excludeFields". Dit betekent dat het niet toegestaan is de velden te bewerken, tenzij je speciale toestemming hebt gekregen - hier voor zorgt de "Allowed Excludefields" lijst! Dit is gemakkelijk te begrijpen als je kijkt naar wat "jonathan" ziet wanneer hij een pagina header bewerkt:
Training voor Webmasters - 32
Niet bepaald een indrukwekkend aantal velden. Zeker niet als je het vergelijkt met wat jij ziet - de "admin" gebruiker:
De reden voor het verschil is dat •
a) de meeste velden in de pagina tabel zijn gemarkeerd als "excludeFields" – met de default dat bewerken niet kan - en
•
b) dat de GENERAL groep alleen maar toegang geeft tot sommige van deze "excludeFields" – waaronder, volgens de lijst, de "Type", "Hide page", "Start" en "Stop" velden!
We moeten dus eigenlijk blij zijn dat Jonathan de velden "Type", "Hide page", "Start" en "Stop" kan bewerken, omdat hij dat Training voor Webmasters - 33
niet zou kunnen doen als de GENERAL groep niet die speciale toestemming toekende!
Record blokkering? Misschien heb je tijdens het in en uitloggen als verschillende gebruikers gemerkt dat het volgende icoontje kan verschijnen:
Dit is alleen maar een waarschuwing aan gebruikers, dat iemand anders op dit moment het record aan het bewerken is – records worden niet echt geblokkeerd in TYPO3, omdat toegang tot een record toegestaan moet worden als mensen toegang hebben. Maar deze waarschuwing is een leuke toevoeging, omdat dit mensen helpt conflicten te voorkomen.
Een nieuwe gebruiker voor de Fan Club site aanmaken Dankzij al je briljante kennis kunnen we nu een gebruiker aanmaken, die de verantwoordelijke moet worden voor de tweede website in onze database – de Fan Club site.
Stap 1: Maak de gebruiker aan Gebruikers zijn gewoon records – maak een "Backend user" record aan:
Voer de gebruikersnaam, het wachtwoord (“football”), groepslidmaatschap en de DB mount in:
Bewaar "phil".
Stap 2: Controleer de nieuwe gebruiker Controleer in de “User Admin” module, dat "phil" op de juiste manier toegang tot de "Fan Club" site heeft gekregen:
Training voor Webmasters - 34
Oeps – een typische fout. We hebben hier niet de paginatoestemmingen! Maar dat is gemakkelijk te verhelpen – ga naar de Access module:
Stap 3: Stel de juiste "Page Permissions" in Bewerk de toestemmingen voor de root pagina van de site:
Stel dan de eigenaar en de groep in en verzeker je ervan dat de “recursive” keuze wordt geselecteerd – hierdoor zullen de veranderingen voor de root pagina tot het niveau van één subpagina eronder worden ingesteld:
Leuk:
Training voor Webmasters - 35
Stap 4: Laatste controle In de "User Admin" module ziet "phil" er nu prima uit:
Stap 5: Test de nieuwe gebruiker Log tenslotte in als "phil". Een leuke truc is om alleen op de "SU" (Switch User) knop in de User Admin module te drukken -hiermee log je in zonder een wachtwoord te gebruiken (natuurlijk alleen maar voor "admin" gebruikers...):
En "phil" ziet er echt goed uit - hij heeft toegang tot de pagina's van de nieuwe website!
Zo gemakkelijk.
Training voor Webmasters - 36
Eenvoudige nieuws “workflow” Soms heb je meer nodig dan alleen het toekennen van toestemmingen aan gebruikers om delen van een website te bewerken - het kan zijn dat je moet zorgen voor een bepaalde cyclus waarin de opdracht om content te leveren wordt gegeven aan een gebruiker die dat doet, maar dat deze content niet gepubliceerd mag worden zonder controle door de eindverantwoordelijke. Juist voor dit soort goedkeuringscyclussen zijn er “workflows”. In andere situaties zijn ze gewoon een nuttige manier om aan content te werken, omdat je deze heen en weer kunt laten gaan tussen leden van een werkgroep. Nou, hoe werkt dit in de praktijk? Op de "FC Bigfeet" site kun je al een eenvoudige workflow vinden. De workflow is ontworpen om een gebruiker genaamd "news" de taak (“To-Do” opdracht) om een nieuwsbericht voor de website te maken te laten ontvangen. Zodra hij klaar is, stuurt hij de To-Do taak terug naar de afzender die de content zal controleren en als alles goed is, zal deze het proces afsluiten waardoor het stuk automatisch in het nieuwsarchief geplaatst wordt en misschien zelfs wel op de voorpagina! Laten we eerst eens kijken naar de gebruiker die "news" heet. Log eens in als "news" (wachtwoord "football"):
Je bent eraan gewent de Page module en wat andere dingen te zien – maar de "news" gebruiker is beperkt tot alleen maar de "Task Center" module! Dat is voor hem genoeg, omdat hij alleen maar bij zijn Inbox met taken hoeft te kunnen. Die is op dit moment leeg, dus zijn er op dit moment nog geen taken aan hem toegekend.
Een workflow opstarten Log nu maar weer uit en ga terug naar de backend als de "admin" gebruiker. Je gaat nu een nieuwe workflow opstarten door een “To-Do” taak aan de "news" gebruiker toe te kennen.
Taak aanmaken Ga dus naar de Task Center module, klik op "Tasks"...
Maak dan een nieuwe workflow. Nu is er slechts één soort (later leer je andere workflows configureren):
Nu zul je het volgende formulier moeten invullen:
Training voor Webmasters - 37
Het belangrijkste is dat je een “target” (#1) moet selecteren. Dit kan een groep of een bepaalde gebruiker zijn. Wij hebben de gebruiker "news" geselecteerd, zoals we van plan waren. Een titel (#2) en een beschrijving (#4) zouden verder geen kwaad kunnen – dat is gewoon de opdrachtomschrijving die de beoogde gebruiker zal zien - zorg dus dat je zeker weet dat hij weet wat te doen als hij dit leest. Met de deadline (#3) stel je de deadline van de taak in, en het zal je later helpen na te gaan voor welke To-Do de deadline verstreken is (hopelijk natuurlijk geen één). Tenslotte kun je door het systeem een e-mail (#5) laten sturen naar de beoogde gebruiker door op de "Create" knop te drukken - gaaf, als de beoogde gebruiker niet bepaald een TYPO3 junkie is die de hele tijd is ingelogd - dan is het waarschijnlijk een goed idee hem een e-mail te sturen! (Hiervoor moet de PHP functie mail() werken!) Als je klaar bent met aanmaken keer je terug naar je overzicht van To-Do elementen:
De "Outgoing To-Do items" zijn degenen die door jou zijn aangemaakt en die wachten op een actie van een andere persoon. In dit geval de "news" gebruiker. Klik op de titel als je de details wilt zien:
Training voor Webmasters - 38
Zoals je ziet staat hier alle informatie. Op dit moment is aan de "news" gebruiker geen status toegekend.
Taak accepteren Log in als de "news" gebruiker: Tip: Als je een nieuw browser venster van Microsoft Internet Explorer opent via het icoon op je desktop (in tegenstelling tot het gebruik van CTRL+N), dan kun je als een andere gebruiker inloggen - de "news" gebruiker – en zo twee verschillende vensters open hebben met één gebruiker per venster. Dit is mogelijk omdat Internet Explorer geen cookies tussen deze twee vensters uitwisselt. In de Task Center zal de "news" gebruiker dit zien:
Leuk. De "News" taak staat er! Klik er op in het linkervenster. Je zult nu de details zien, net als eerder als "admin" gebruiker:
Training voor Webmasters - 39
Als de "news" gebruiker stel je de "Add Status" in op "Begin task now", voer dan een status notitie in zoals “OK!" en druk op de knop. Nu zul je een formulier voor een nieuwsbericht zien verschijnen:
Dit is net voor je aangemaakt als onderdeel van de door jou toegevoegde "Begin task now" status. Dit element is nu een attachment van de taak en je hoeft alleen maar de content toe te voegen. Als dat klaar is en je op "Save document and close" drukt, keer je terug naar de Task Center. Door weer op de titel van de To-Do opdracht te drukken zie je de bijgewerkte details:
Training voor Webmasters - 40
Zoals je kunt zien is het element hier een attachment en door op het bewerkingspotlood te drukken kun je het weer bewerken - totdat je klaar bent om de "admin" gebruiker te laten weten dat het nu helemaal klaar is!
Als het bericht gecontroleerd is en klaar voor publicatie (volgens jou) kun je de status veranderen in "Pass on to another user/group" (dit had ook gebruikt kunnen worden om de taak aan een collega door te geven, als het beter is als iemand anders de taak uitvoert!), selecteer de ontvanger (in dit geval de "Sender"), schrijf er wat bij als je dat noodzakelijk vindt en druk op "Send new status". En nu is je To-Do lijst leeg, klaar voor de volgende klus.
De workflow afsluiten Terug als de "admin" gebruiker, zul je zien dat de To-Do taak nu aan je is teruggestuurd:
Als je hier de titel ervan aanklikt, zul je de details zien. Klik op het bewerkingspotlood om de content te beoordelen:
Training voor Webmasters - 41
Behalve een controle van de content van het nieuwsbericht (dit is nogal saai hè...) zou je ook moeten bepalen of dit element een vermelding op de voorpagina waard is. Dat veld was niet toegankelijk voor de "news" gebruiker - het is een excludeField. Als je tevreden bent met het bericht, activeer je de laatste fase door "Finalize workflow" in de "Add Status" selector te kiezen:
Dat is het. Deze stap heeft eindelijk het nieuwselement naar het nieuwsarchief verplaatst en nu is het online op de voorpagina:
"Done" Het allerlaatste is de To-Do opdracht weg te gooien in de prullenbak: Vink gewoon "Done" aan en selecteer de actie "Delete marked To-Do items":
Training voor Webmasters - 42
Een workflow configureren De cyclus van een workflow, zoals we die net hebben afgerond, heeft in de paginaboom root de configuratie van een record. Zoals met alle records in de paginaboom root, zul je "admin" moeten zijn om deze te kunnen bewerken en aan te maken:
Een dergelijke record heeft de volgende velden:
Training voor Webmasters - 43
Los van een voor de hand liggende titel en beschrijving (#1) definieert het record allereerst de tabel (#2) in TYPO3 op basis waarvan elementen moeten worden aangemaakt! Dit betekent dat het workflow systeem gebruikt kan worden om niet alleen het aanmaken van pagina’s en pagina content elementen in goede banen te leiden – maar van elk onderdeel!
Natuurlijk zijn in deze context sommige tabellen interessanter dan anderen, maar hetzelfde principe geldt overal. Zoals je Training voor Webmasters - 44
maar wilt.
De "Draft Page" Het volgende beginsel dat heel belangrijk is, is de "Draft Page" (#3). De sysFolder "News items draft page" is aangemaakt als een veilige repository waar de "news" gebruiker kan maken wat hem leuk lijkt zonder dat het kwaad kan. Deze sysFolder werkt als de Draft page. Als de "news" gebruiker de status "Begin task now" aanzet, wordt het News element dat een attachment is van deze taak automatisch in deze map aangemaakt!
Het nieuwsbericht blijft in deze map totdat de workflow door de afzender wordt afgesloten - dan wordt het hier weggehaald en op de “News” pagina geplaatst - zoals het "Move to page when finalizing" veld (#6) duidelijk aangeeft.
Doelgroepen en controlerende gebruikers Tussen de "Draft page" en de "Final page" kun je de veldinstelling "permissions" voor de workflow vinden. Onder "Target groups for workflow" geef je aan welke gebruikers een taak kunnen ontvangen voor het aanmaken van dit onderdeel. In dit geval kunnen alleen gebruikers die leden zijn van de "News editor" groep de taken ontvangen. Deze workflow is een eenvoudige "[Editor] -> [Author] -> [Editor]" workflow. Soms zul je er nog iemand bij willen hebben. Dan zou de procedure er als volgt uitzien "[Editor] -> [Author] -> [Reviewer] -> [Editor]". Als dat zo is, dan creëer je een relatie met een controlerende gebruiker in veld #5. Tenslotte betekent het aanvinken van "Unhide when finalizing" dat aan het afsluitende proces wordt doorgegeven of, indien mogelijk, een “un-hide” op het element moet worden toegepast bij het afsluiten. Hebben we iets vergeten? Oh ja, het "Groups allowed to assign workflow" veld – dat is nog niet behandeld. Laten we het ons dus gemakkelijk maken en het funky "?" laten spreken:
Training voor Webmasters - 45
Denk eraan...
Vereisten De werking van deze workflow is afhankelijk - wat betreft de toestemmingen voor de "news" gebruiker - van een aantal zaken.
Groepslidmaatschap De "news" gebruiker is een lid van de "News editor" groep. Voor die groep is "Access Lists" geactiveerd, net zoals voor de "GENERAL" groep die we al kennen. Maar de instellingen zijn natuurlijk anders:
Zoals je (hieronder) ziet zijn alleen de User en Task Center modules geactiveerd, de News tabel is de enige die bewerkt mag worden en de Allowed Excludefields worden natuurlijk alleen geselecteerd in relatie tot de News tabel:
De toestemmingen van de Draft page Die moeten natuurlijk correct worden ingesteld. In dit geval – omdat we elementen op een pagina aan het aanmaken zijn -kunnen we de volgende instelling (hieronder) gebruiken; de "News editor" groep als eigenaar met toestemming voor het creëren van nieuwe pagina content:
De DB mount Daarnaast – ook als er geen paginaboom beschikbaar is voor de "news" gebruiker – moet voor hem de DB mount ingesteld zijn:
Dit is omdat het default toestemmingssysteem van TYPO3 ook controleert of een pagina waarop een record wordt aangemaakt binnen de DB mounts van de gebruiker valt.
Training voor Webmasters - 46
Nawoord Ben je na het volgen van deze training geïnteresseerd in andere trainingen in TYPO3, ga dan verder met de twee andere beschikbare trainingen: TYPO3 Training voor Editors en TYPO3 Training voor Ontwikkelaars. Vragen? Neem dan contact op via mijn e-mail adres [email protected] of op het telefoonnummer (078) 635 1200. Hartelijk dank voor het volgen van deze training! Ing. Hans A. Olthoff AlterNET Internet B.V.
Training voor Webmasters - 47