Drupal CMS

Drupal is een open-source content management systeem (CMS) dat wordt gebruikt voor het bouwen en beheren van websites en webapplicaties. Het is gebaseerd op PHP en biedt een scala aan functies en tools voor het maken van aangepaste websites en webapplicaties.

Het is dan ook één van de grootste spelers in CMS-land en dient voor meer dan duizenden bedrijven als platform voor websites. Al overtuigd van deze CMS-krachtpatser? Wij alvast wel.

Wat is Drupal?

Drupal is een open-source content management system (CMS) met Belgische roots. Het is een zeer veilig, flexibel en betrouwbaar platform en wordt ondersteund door een wereldwijde community van ontwikkelaars. Drupal is erg geliefd doordat ze eenvoudig aan te passen is en daarom uitmuntend geschikt is voor maatwerk. Denk maar aan het koppelen van je eigen CRM of software.

Omdat Drupal open-source is, wordt het actief onderhouden en ontwikkeld door een grote gemeenschap van ontwikkelaars en gebruikers, waardoor het voortdurend wordt verbeterd en geüpdatet met nieuwe functies en mogelijkheden.

Is Drupal de beste keuze voor jou?

Deze Belgische trots is een geweldig CMS voor uiteenlopende type projecten. Ben je niet zeker of Drupal wel de beste keuze voor jouw einddoel is? Geen nood. Nadat we bij onze verkennende gesprekken jouw business en klanten volledig uit de doeken hebben gedaan, bekijken we samen met jou welke technologie het beste bij jouw wensen en noden past.

make it fly - Drupal

Drupal als CMS

Drupal is een CMS dat al enkele jaren aan een steile opmars bezig is. Dagelijks werken er wereldwijd duizenden developers aan de uitbreiding van dit platform waardoor er ondertussen meer dan 15.000 (!) extra modules beschikbaar zijn. Drupal is een veelgebruikt CMS voor web en web app development.

Bij Duo zijn we overtuigd van de kracht die in het Drupal content management systeem schuilt en daarom gebruiken we dit vaak als basis voor onze web development. Hierop bouwen onze Drupal developers dan verder en programmeren modules op maat waarmee unieke, interactieve en gebruiksvriendelijke websites en webshops worden gecreëerd.

Enkele reden waarom je zou kiezen voor Drupal, op een rijtje:

  • je geniet van technologie dat met je meegroeit

  • garandeer de meest gebruiksvriendelijke ervaring

  • integreer eenvoudig interne systemen en externe tools

  • beheer centraal je inhoud en verspreidt via diverse kanalen (omnichannel)

  • profiteer van de flexibiliteit, vrijheid en mobielvriendelijkheid van je Drupal website

make it fly - Drupal

De voordelen van Drupal CMS

Deze krachtpatser brengt natuurlijk tal van voordelen met zich mee:

Gebruiksvriendelijk

Drupal zorgt ervoor dat je als eindgebruiker, die misschien niet over alle technische kennis beschikt, zelf gemakkelijk inhoud kunt wijzigen of toevoegen met behulp van een overzichtelijk en gebruiksvriendelijke gebruikersinterface.

Flexibel

Drupal is een zeer flexibel content management systeem, omdat het in staat is de inhoud van de website op basis van tags te organiseren in vooraf bepaalde categorieën. Elke node of content type kan bestaan uit uiteenlopende types inhoud: tekst, afbeeldingen, video, formulieren… Drupal - in tegenstelling tot vele andere content management systemen - kunnen we inzetten voor:

Een eenvoudige website die je huisstijl omarmt en je identiteit uitstraalt? Dan is een Drupal website iets voor jou. Overzichtelijk en makkelijk vindbaar.

Drupal biedt een krachtige en uitgebreide set functies voor e-commerce websites, zoals geavanceerde zoekfunctionaliteit, productcatalogi, winkelwagentjes, betaalgateways, en integratie met externe systemen zoals ERP en CRM.

  • Campagnewebsites of miniwebsites

Je merk echt in de kijker zetten doe je met je identiteit, positionering én een brand of campagne website. Alles wat je nodig hebt om je consumenten te informeren en met hen te communiceren heb je in handen. Daarbovenop geeft het je merk online een unieke look.

Uitbreidbaar

Drupal CMS heeft een modulair ontwerp. Door modules toe te voegen of op maat te schrijven kunnen onze developers handige functies aan je website toevoegen Deze modules kunnen eenvoudig geïmplementeerd worden en maken je website uniek.

Mobielvriendelijk

Het is natuurlijk belangrijk dat je website zich ook op mobiele toestellen perfect aanpast. Dit gaat het best als je website zich aan de grootte van het scherm aanpast, in het zogenaamde responsive webdesign. Drupal zorgt dat we op een vlotte manier een responsive design kunnen integreren. Op deze manier kunnen we je website op alle toestellen (smartphones, tablets en desktops) perfect weergeven.

Externe integratiemogelijkheden

Moeten bepaalde acties op je website ook met een bestaand systeem, zoals een ERP- of CRM-pakket, gekoppeld worden? Met Drupal is het perfect mogelijk om die koppeling te maken. Onze ervaring met diverse systemen zorgt ervoor dat de integratie met externe tools of applicaties, web services of backend-systemen steeds feilloos in je website geïntegreerd wordt.

Zoekmachinevriendelijk (of SEO-vriendelijk)

Een parel van een website moet kunnen gevonden worden door zoekmachines om organisch verkeer naar de website te brengen. Drupal behaalt telkens opnieuw zeer mooie resultaten bij zoekmachines door de uiteenlopende SEO-modules en optimalisatiemogelijkheden.

  1. sourceEditing plugin no longer gets enabled automatically in 1.1.x

    Sven Decabooter

    Problem/Motivation

    Issue #3499702: AI CKEditor requires the Source CKEditor button added logic to automatically enable the CKEditor5 'sourceEditing' plugin, in the response text textarea, since this is needed for the Completion plugin to work.

    However, in branch 1.1.x most of the logic is still there, except the flag to enable this functionality on the response_text text_format form element. This seems to be missing, probably because this is now handled in the generic AiCKEditorPluginBase class.

    Steps to reproduce

    - Use AI module 1.1.x - Enable the AI CKeditor module - Enable the Completion ("Generate with AI") plugin - Do NOT add the source code button to your CKEditor5 toolbar by default - Try using the Completion plugin in your CKEditor5-powered text area - this will fail (as described in #3499702: AI CKEditor requires the Source CKEditor button).

    Proposed resolution

    - Re-add the logic from #3499702: AI CKEditor requires the Source CKEditor button to active this for the Completion plugin.

  2. Site Settings Domain

    Randal

    This module provides domain context to site setting entities. (Via the domain-module)

    You can add a "fallback" (no domain context), meaning that if no site setting with a more specific domain context exists, there's always some value to show. You can also choose to not add a fallback, then only the site setting specific to that domain will be returned via the site setting loaders with domain context.

    On that note, it's important to choose the correct site setting loader (one with domain context enabled), and also use the newly created site setting blocks with domain context instead of the default site setting loaders and blocks.

    If the domain access module is enabled, then editor access is also checked.

    Important note This module is still in alpha, not all functionality has been thoroughly tested and bugs certainly will come up, feel free to let me know about them and I'll try to fix it all ASAP.

  3. PostStreamingResponseEvent never gets triggered

    Sven Decabooter

    @sarvjeetsingh:

    I'm not sure if that would work - I'm still tipping my toes into how all of this works...

    It would be something like this, in the ChatOutput constructor?:

        if ($normalized instanceof StreamedChatMessageIteratorInterface) {
          $normalized->triggerEvent();
        }
    

    In my initial testing, that doesn't seem to work. I then get the same error as in the tests: TypeError: Drupal\ai\Event\PostStreamingResponseEvent::__construct(): Argument #1 ($request_thread_id) must be of type string, null given

    Not sure if that's something that also needs to be fixed, or if this means this approach is not workable...

  4. Add provider_id context to PostStreamingResponseEvent

    Sven Decabooter

    Problem/Motivation

    Currently, the PostStreamingResponseEvent only contains some basic data regarding output and metadata. It does not store information about which provider ID the post streaming response is coming from, in contrary to \Drupal\ai\Event\PostGenerateResponseEvent, which does provide a getProviderId method.

    For the AI Usage Limits module, and probably others reacting to this event as well, it would be essential information to know which AI provider has triggered this event exactly.

    Proposed resolution

    - Add optional setProviderId() and getProviderId() methods to the event, and make sure implementing logic is able to provide a value for it.

  5. PostStreamingResponseEvent never gets triggered

    Sven Decabooter

    Test PromptJsonDecoderTest seems to fail now, because \Drupal\ai\Event\PostStreamingResponseEvent::__construct doesn't receive a request_thread_id string in its constructor. Not sure if this value is NULL in this test by design, or by accident. If by design, then the PostStreamingResponseEvent $request_thread_id parameter should be allowed to be nullable?

  6. Site Settings Extended

    Randal

    This module provides some different layouts/functionality to the excellent Site Settings module.

    Mainly, a complete overhaul of the layout is added.

    There are two options:

    • Single form
    • Core config pages

    Single form

    The single form layout adds all options in vertical tabs, this can however become quite a big form and is usually only recommended for smaller collections of settings.

    Core config pages

    The core config pages layout uses a page with links like a core config overview page. You can add more information by setting up the "menu_description" view mode, this will be rendered as the description (useful for "multiple" items, for example social links: "facebook", "instagram", ... labels could be rendered as the description). Then you can choose to either open settings in modals or open them in new pages.

    When opening settings forms in modals, you should definitely make use of the patch in the issue linked below, otherwise media library modals will wreck functionality. #2741877: Nested modals don't work

  7. Abstract token usage support

    Sven Decabooter

    Added related issues in AI module, that need to be fixed first, before both token usage for both regular chat and streamed chat can be captured.

Fons Vandamme

Gebruik Drupal als CMS voor een veilige en betrouwbare website die altijd up-to-date is.

Fons Vandamme
Drupal Architect & Sales manager

Met doordachte positionering scheppen we met Drupal een optimale visuele hiërarchie, cohesie en gebruiksvriendelijkheid.