© 2008 Hein Pragt
Deze pagina's gaan over het Tridion web content management systeem met documentatie, voorbeeld code en tips.
Wat is het Tridion webcontent management systeem?
Tridion is een web content management systeem voor grote organisaties, het is gebouwd om content te beheren en te structureren. Met behulp van Tridion kan een bedrijf volledig alle facetten van de digitale communicatie beheren:
• Informatie (documenten, afbeeldingen, audio, video)
• Vormgeving (templates voor internet, imode, wap)
• Broncode (broncode van bedrijfsapplicaties)
• Bezoekers (profielen en personificatie)
Een unieke eigenschap van Tridion is de "blueprinting" mogelijkheden, dit maakt beheer van websites in vele talen mogelijk wat voor grote bedrijven met divisies en locaties wereldwijd een enorm voordeel is. Door middel van blueprinting is het zeer eenvoudig content te beheren in verschillende talen en voor verschillende brands. Tridion is gebouwd op een open (XML, SOAP, COM+, JAVA) en op componenten gebaseerde architectuur van 4 lagen. Binnen Tridion R5 kunnen het content management systeem (de redactieomgeving) en het presentatiesysteem (de gepresenteerde site) volledig van elkaar worden gescheiden.
Mijn naam is Hein Pragt, ik werk sinds 2002 met Tridion en heb ruime ervaring met Tridion en web content management systemen in het algemeen. Ik ben tevens webmaster en eigenaar van diverse sites en heb de laatste jaren voor grote bedrijven Tridion oplossingen ontworpen en gebouwd.
Wat is een contentmanagementsysteem?
(c) 2009 Hein Pragt
Een contentmanagementsysteem (CMS) is een softwarepakket waarmee mensen (auteurs en redacteuren) eenvoudig en zonder veel technische kennis, artikelen en documenten op een internet of intranet kunnen publiceren. In de meeste CMS systemen kunnen gegevens en artikelen zonder opmaak of met beperkte opmaak worden ingevoerd, terwijl de eindgebruiker (bezoeker van de website) deze met (door sjablonen) toegevoegde opmaak en navigatie gepresenteerd krijgt. De meeste grote bedrijven gebruiken voor hun internet en intranet websites tegenwoordig een contentmanagementsysteem. Wanneer we over grote bedrijven spreken met grote, en vaak meertalige websites spreken we over Enterprise Content Management (ECM).
Bij Enterprise Content Management (ECM) gaat het vaak niet alleen om web content maar ook om Document Management, Records Management, Digital Asset Management, Workflow management en Scanning. Al deze onderdelen hebben gemeen dat men op een gestructureerde en uniforme wijze wil omgaan met ongestructureerde informatie. Het kan dan gaan over het beheren van een website maar ook het digitaal beheren van postverwerking en contracten, brochures, specificatie verkoopgegevens, statistieken offertes enz. Hoewel er nog steeds specifieke systemen zijn voor Document Management zoals Documentum en Alfresco zien we deze meestal ook de richting van webcontentmanagement op gaan. Veel bedrijven proberen tegenwoordig het Document Management systeem en het Webcontentmanagement systeem te koppelen of deze systemen met elkaar te integreren.
ECM kan met verschillende doelstellingen worden ingezet maar meestal gaat het om het terugdringen van de papieren informatiestromen binnen een organisatie en het beter structureren en versnellen van processen binnen een organisatie. Ook kan een ECM systeem er voor zorgen dat de processen binnen het bedrijf voldoen aan wet- en regelgeving. Door middel van workflows kunnen verschillende mensen en afdelingen binnen een bedrijf vaak beter en sneller samenwerken omdat documenten zich als het ware automatisch van de ene inbox met een aantal handelingen naar de andere verplaatsen waardoor er een betere en snellere afhandeling mogelijk is. Ook is er beter overzicht over de status van gegevens en documenten, kunnen deze eenvoudiger teruggevonden worden en is er beter inzicht in de historie (versiebeheer) van gegevens en documenten.
ERP (Enterprise Resource Planning) systemen zijn ook steeds belangrijker voor bedrijven en ook hier zien we steeds meer integratie met Document Management en Webcontentmanagement systemen. ERP systemen zijn belangrijk voor de gebieden financiën, productie, planning, verkoop, inkoop, logistiek, personeel, urenverantwoording waar we meestal over vrij gestructureerde data kunnen spreken. Steeds meer bedrijven zien dat hun ERP systeem de grenzen van het bedrijf moet overschrijden en dat er online koppelingen met klanten, leveranciers en personeel noodzakelijk zijn. Dus ook hier zien we vergaande integratie tussen voorheen gescheiden en veelal gesloten informatiesystemen ontstaan.
Veel bedrijven realiseren zich dat de bedrijfsprocessen zich niet alleen binnen de muren van het bedrijf afspelen maar dat een online koppeling naar de rest van de wereld noodzakelijk is waarvoor vaak het Internet ingezet zal worden en we dus weer terug zijn bij webcontentmanagement systemen.
Tridion tips en code voorbeelden
(c) 2009 Hein Pragt
Vaak is het een probleem dat bij de preview de css opmaak niet zichtbaar is, met deze code kunt u er voor zorgen dat de css code bij het publiceren een Include css link is en letterlijk in de html opgenomen zal worden bij preview.
[%
#include "tcm:xx-xxxx-xxxx" ' Default TBB
Sub DisplayComponent(ByVal iComp)
If RenderMode = "Publish" Then
WriteOut "<link rel='stylesheet' href='/style.css' type='text/css'></link>" & vbCrLf
Else
WriteOut "<style type='text/css'>" & vbCrLf
WriteOut iComp.Fields("css").Value(1)
WriteOut "</style>" & vbCrLf
End If
End Sub
Call DisplayComponent(ComponentPresentation.Component)
%]
Een plaatje vanuit de component template publiceren, het volgende stukje Tridion template code renderd een multimedia link van het veld 'image' en zend de binaire data naar de publication target en returnt het pad naar de gepubliceerde bestand. Het pad zal worden uitgeschreven als tag.
[%
'----------------------------------------------------------------------------------------------------------
'This renders a multimedia link from the 'field 'image' and outputs the binary as an image
'----------------------------------------------------------------------------------------------------------
Dim oImgComp
Dim strImgURL
'Get the image Component
Set oImgComp = Component.Fields("image").Value(1)
'Get the URL of the binary
strImgURL = PublishBinary(oImgComp)
WriteOut "<img src='" & strImgURL & "'>"
Set oImgComp = Nothing
%]
Render component en zet schrijf gepubliceerd pad terug in het component zelf in het pagina veld. Hierdoor staat er in het component zelf het pad en de bestandsnaam waar het component gepubliceerd is. Dit kan gebruikt worden door redacteuren om te zien waar de pagina op de webserver staat maar ook door een ander script dat bijvoorbeeld een statisch link moet maken naar deze content. Dit is anders aan de kant van het content managementsysteem niet mogelijk.
[%
#include "tcm:xx-xxxx-xxxx" ' Default TBB
Call DisplayComponent(Component)
' ====== STORE PAGE IN COMPONENT (Hein Pragt) =========
If isObject(Page) Then
Dim lObjInfo
Set lObjInfo = Page.Info
fpath = Mid(lObjInfo.PublishPath,9)
If (fpath = "") Then
pagefname = "/" & Page.Filename & "." & Page.Fileextension
else
pagefname = "/" & fpath & "/" & Page.Filename & "." & Page.Fileextension
End If
Dim lObjComponent
Id = Component.ID
' To refrain from updating the component over and over again although nothing changed we implement a check here
If component.Fields.Item("pagina").Value(1) <> pagefname Then
Set lObjComponent = TDSE.GetObject(Id, 3) ' open for edit with fallback
If lObjComponent.isEditable = false Then
' Try to check it out
If lObjComponent.Info.isCheckedOut = false Then
lObjComponent.checkOut()
End If
End If
If lObjComponent.isEditable Then
lObjComponent.Fields.Item("pagina").Value(1) = pagefname
Call lObjComponent.Save(True)
Set lObjComponent = Nothing
Set lObjInfo = Nothing
End If
End If
End If
%]
Schrijf de structure groups recursief uit als links, om navigatie te genereren.
[%
' De root structuregroup
Set sgRoot = Page.Publication.RootStructureGroup
For each objSG in sgRoot.GetItems(4)
WriteOut objSG.Title & "<br>"
Next
WriteOut "<hr>"
call loopSG(sgRoot, 0, "")
Function loopSG (objSG, iLevel, strPath)
Dim sg
For each sg in objSG.GetItems(4)
WriteOut string(iLevel * 4, "-") & "<a href='" & strPath & "/" & sg.directory & "'>" & sg.Title & "</a><br>"
Call loopSG(sg, iLevel + 1, strPath & "/" & sg.directory)
Next
End Function
%]
VBscript funtie om datum in vast formaat om te vormen.
'-------------------------------------------------------
' Format a Tridion date to Mon, day, year
'-------------------------------------------------------
Function FormatTheDate(dt)
Dim Out
Select Case Month(dt)
Case 1:Out="Jan"
Case 2:Out="Feb"
Case 3:Out="Mar"
Case 4:Out="Apr"
Case 5:Out="May"
Case 6:Out="Jun"
Case 7:Out="Jul"
Case 8:Out="Aug"
Case 9:Out="Sep"
Case 10:Out="Oct"
Case 11:Out="Nov"
Case 12:Out="Dec"
End Select
Out = Out & " " & Day(dt) & ", " & Year(dt)
FormatTheDate = Out
End Function
VBscript funtie, escape een URL en vervang alle niet toegestane tekens.
Function EscapeURL(ByVal URL)
Set WordChar = CreateObject("Scripting.Dictionary")
WordChar.RemoveAll
For I = 65 To 90
WordChar.Add Chr(I), 1
Next
For I = 97 To 122
WordChar.Add Chr(I), 1
Next
For I = 48 To 57
WordChar.Add Chr(I), 1
Next
WordChar.Add Chr(45), 1
WordChar.Add Chr(46), 1
WordChar.Add Chr(95), 1
EscapeURL = ""
For I = 1 To Len(URL)
If WordChar.Exists(Mid(URL, I, 1)) Then
EscapeURL = EscapeURL & Mid(URL, I, 1)
Else
StrHex = CStr(Hex(Asc(Mid(URL, I, 1))))
If Len(StrHex) = 1 Then
EscapeURL = EscapeURL & "%0" & StrHex
Else
EscapeURL = EscapeURL & "%" & StrHex
End If
End If
Next
End Function
Last update: 03-12-2009
Disclaimer.
Hoewel de heer Hein Pragt de informatie beschikbaar op deze pagina met grote zorg
samenstelt, sluit de heer Pragt alle aansprakelijkheid uit met betrekking tot
de informatie die, in welke vorm dan ook, via zijn site wordt aangeboden. Het
opnemen van een afbeelding of verwijzing is uitsluitend bedoeld als een mogelijke
bron van informatie voor de bezoeker en mag op generlei wijze als instemming,
goedkeuring of afkeuring worden uitgelegd, noch kunnen daaraan rechten worden
ontleend. Op de artikelen van de heer Pragt op deze Internet Site rust
auteursrecht. Overname van informatie (tekst en afbeeldingen) is uitsluitend
toegestaan na voorafgaande schriftelijke toestemming van de rechthebbende. Voor vragen
over copyright en het gebruik van de informatie op deze site kunt u contact opnemen
met: (email: copyright@heinpragt.com)
Webdesign: © Hein Pragt
Fotografie: © Hein Pragt
Auteur: © Hein Pragt (Veenendaal - Utrecht - Nederland)
Privacy beleid
Wij maken gebruik van externe advertentiebedrijven om advertenties weer te geven wanneer u onze website
bezoekt. Deze bedrijven gebruiken mogelijk informatie (niet uw naam, adres, e-mailadres of telefoonnummer)
over uw bezoek aan deze of aan andere websites om advertenties weer te geven over goederen en services
waarin u wellicht geďnteresseerd bent. Als u hierover meer informatie wenst of als u wilt voorkomen dat
deze bedrijven deze informatie gebruiken, klikt u op
deze link.
|