Ik ben bezig met die

Ik ben bezig met die offerte, maar ik vraag mij soms af of de hele Backbone/Content Manager-historie te ingewikkeld om uit te leggen is, of of ik die niet goed duidelijk maak of zo, want wat Peter er van gemaakt heeft in zijn versie van de offerte is niet je dat.

Even mijn gedachten ordenen:


  • “Backbone” is de naam van het systeem waarin wij werken. Het gaat om een ontwikkeling in ColdFusion, van scope en ambitie een (klein) beetje te vergelijken met Allaire Spectra: Backbone is een platform waarin ontwikkelaars modules kunnen schrijven.

  • Onwtikkelaars moeten daarbij niet telkens het hele wiel opnieuw uitvinden: Backbone biedt hen een aantal basisingrediënten aan, zoals daar onder meer zijn:

    • een overkoepelende boomstructuur
    • meertaligheid
    • een systeem van objecttypes, objecten, items en categorisatie
    • een systeem van gebruikers, gebruikersgroepen en permissies
    • een systeem van scheiden van inhoud en presentatie (templates)

  • Al deze basisingrediënten zijn aanroepbaar door ontwikkelaars in de vorm van web services. Het maakt hierbij voor de applicatie niet uit of de Backbone aangesproken wordt vanuit de Backbone zelf, vanop een andere website, of vanuit bijvoorbeeld een Windows-programma.

  • “Modules” zijn min of meer afgesloten, min of meer onafhankelijke stukken applicatie die gebruik maken van de ingrediënten aangereikt door de Backbone. Voorbeelden van modules zijn:

    • Content Manager* waarmee een gebruiker de structuur van de website, de inhoud van pagina’s, etc. mee kan beheren
    • Template Manager*: een template-parser
    • News and Events Manager* om nieuwsitems en een evenementenkalender mee te beheren
    • Form Manager om formulieren mee te beheren, automatisch te laten valideren en naar databases te laten schrijven etc.
    • User Manager om gebruikers, groepen en permissies mee bij te houden
    • Forum Manager waarmee forums (discussiegroepen) kunen mee opgezet en beheerd worden
    • Shop Manager om een productcatalogus met e-commercemogelijkheden op een site te zetten
    • Poll Manager om polls te organiseren (duh)
    • etc. etc. etc. etc. etc. (de modules met een [*] zitten standaard bij de Backbone)

  • For the record: Backbone is geschreven in ColdFusion MX, een J2EE-dinges, en draait op Windows en wellicht ook alle andere J2EE platformen als we dat echt zouden moeten doen.

De Backbone is dus een algemeen systeem waarmee websites gemaakt kunnen worden. Daarnaast, omdat wij bij Amercome België beseffen dat het editeren van een complexe website enkel en alleen met een web-interface echt niet handig is, hebben we een Windows-toepassing gemaakt die spreekt met de Backbone: Amercom Content Manager. In de Content Manager kan een beheerder op een gebruiksvriendelijke en snelle manier een aantal taken doen die ook wel zouden kunnen on-line, maar daar veel omslachtiger zijn. De Content Manager bestaat uit een aantal verschillende onderdelen, die nauw met elkaar geïntegreerd zijn:


  • Web Editor: een boomstructuur waar de gebruiker knopen aan kan toevoegen, knippen, plakken, verplaatsen, verwijderen, etc. Een knoop in die boom kan één object zijn, of een lijst van objecten:

    • In eerste instantie zal een knoop vaak een gewone “pagina” van de content manager-module zijn: de gebruiker kan die pagina dan ook meteen met een WYSIWYG-editor wijzigen, beelden toevoegen, links intern in de bommstrctuur of naar andere sites toevoegen, etc.
    • Ook andere objecten kunen gekoppeld worden aan een knoop: een nieuwsitem, een evenement, een poll, een formulier, …
    • Lijsten van objecten (pagina’s, nieuws, produkten, …) kunnen gekoppeld worden aan een knoop in de boom op basis van een categoriseringssysteem (“alle produkten van de ‘terracotta’-categorie”, “de vijf meest recente nieuwsitems”, “evenementen die tegelijk in de categogorie ‘klanten’ én de categorie ‘België’ zitten”, …). Gebruikers kunnen zelf een categorisering uitwerken.

  • Nieuws- en Eventeditor: gebruikers kunnen met deze editor nieuwsitems en evenementen aanmaken. Ze hoeven ze daarom nog niet te koppelen aan een plaats in de boom: dat kan automatisch gebeuren door de categorisering die zij (of een eindredacteur) aande de aangemaakte items geeft.

  • Template Editor: hier zijn we bijzonder trots op. Templates bepalen hoe iets zal getoond worden op de website. Zo kun je in een template bepalen dat een bepaalde pagina navigatie bovenaan en links heeft, dat de achtegrond blauw is en de letters wit, dat de titel van een evenement in het groot zal staan en net eronder de locatie, met daarna de datum en tijd in het klein.
    Je kan ook bijvoorbeeld zeggen dat een artikellijst voor elk artikel telkens een beeld van het artikel, de naam, de prijs en een knop ‘voeg toe aan boodschappenmand” zal bevatten.


    • Templates kunnen gemaakt worden door iedereen die genoeg van HTML afweet. Je hoeft geen programmeur te zijn om bijvoorbeeld het uitzicht van een winkelwagentje te bepalen: al wat je doet is een ontwerp maken, gewoon in Dreamweaver bijvoorbeeld, en ervoor zorgen dat het resultaat XHTML-compliant is.

    • Eens je het ontwerp hebt, moet je twee dingen doen:

      1. Dingen die dynamisch zullen gegenereerd worden (bijvoorbeeld de titel van de pagina, de navigatie, de plaats waar de tekst van de pagina zal komen, …) vervang je door een Content Manager-code (de titel wordt bijvoorbeeld <mws-title/> in plaats van <title>Titel</title>)
      2. Dingen waarvan de ontwerper beslist dat een gebruiker ze mag wijzigen, moeten aangeduid worden. Stel dat ergens een tabel staat waarvan de achtergrondkleur van gewijzigd worden, dan zet je in plaats van <table> iets als  <mws-table modify=”bgcolor”>, als je als ontwerper bijvoorbeeld een beeldje in het template wijzigbaar wilt laten maken, zet je <mws-image/> in plaats van <img>.

    • En eens dat gedaan is, kan je van de template een pakketje maken en installeren met behulp van de Backbone, en de volgende keer dat een gebruiker via de Content Manager met de Backbone “spreekt” krijgt hij die template erbij.

    • De gebruiker krijgt in de Template editor een preview van de template te zien, exact zoals hij op de website eruit zal zien. Als hij op een wijzigbaar element klikt, of zo’n element kiest uit de drop-down, kan hij, naargelang de instellingen van de template, meer of minder wijzigen: elementen kunnen veranderd worden in voorgrondkleur, achtergrondkleur, lettertype, lettergrootte, afbeelding, tekst, vet of schuingedrukt, eventueel zelfs zichtbaar of onzichtbaar gemaakt worden

  • Artikeleditor: laat de gebruiker toe om artikelen  te beheren (naam, prijzen, voorraad, beschrijving(en), afbeelding, verpakkingswijze, … tot vrije velden toe). De artikelen zelf zitten in een artikelgroepenboom, en kunnen eventueel uit een extern pakket komen.

  • Orderbeheer: als op de website orders mogelijk zijn, kan dat op twee manieren gebeuren:


    • Business-to-Consumer (B2C): klanten vullen op de website een boodschappenmandje, geven hun gegevens in, en rekenen meteen on-line af via kredietkaartbetaling. In het orderbeheer van de Content Manager ziet de beheerder een overzicht van de geplaatste orders.

    • Business-to-Business (B2B): klanten vullen op de website een boodschappenmandje, geven hun gegevens in (of als ze al bekend zijn: hun naam en paswoord), en de order wordt in de Content Manager ingelezen. Daar kan de order automatisch afgehandeld worden, of kan hij nog manueel nagekeken worden en gefiatteerd worden vooraleer eventueel naar een boekhoudprogramma voor verdere verwerking gestuurd te worden.

  • Rapportering: als op de website zaken aanwezig zijn die feedback genereren (formulieren, polls, quizzen, …), dan komt de ingevulde inhoud daarvan in de rapporteringsmodule van de Content Manager terecht. Van daaruit kan de beheerder rechtstreeks outputten naar bvb. Excel voor mailings en dergelijke.

En dan moet ik nog iets zeggen over syndicatie, over XML, over beveiliging, over workflows, userbeheer en goedkeuringen, over referenties, en ik vergeet wellicht nog dingen.