Pragt.info
Partner site van: www.heinpragt.com
(c) Hein Pragt
logo pragt.info
Zoeken op deze site!
 
 

Themapagina Tridion CMS
© 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 deze 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)

Webdedesign: © Hein Pragt
Fotografie: © Hein Pragt
Auteur: © Hein Pragt

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.