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. Add Site settings menu to Navigation module content block

    Sven Decabooter

    Problem/Motivation

    When enabling the setting `show_groups_in_menu`, in combination with admin_toolbar, the `Admin > Content > Site Settings` link gets children for each configured site settings group.

    When using the Navigation menu instead, a user needs to select "Content" in the navigation, and then use the "Site settings" tab on that page.

    We would like to more easily reach the site settings, including group child links, if enabled.

    Moreover, when the `show_groups_in_menu` setting is enabled, the group menu items are added randomly in the main navigation tree (between "Structure", "Appearance", etc.. links), which looks clunky.

    Steps to reproduce

    - Install navigation core module - No site settings are available.

    Proposed resolution

    The Navigation module provides a "Content" menu, where it places the default content links ("Create", "Content", "Media", ... When this menu exists, add the "Site settings" + optional group children to it.

    Remaining tasks

    Create MR

    User interface changes

    Before:

    After

  2. Error on "Add block" link

    Sven Decabooter

    Problem/Motivation

    Alter logic does not seem to work anymore in Drupal 11.1, since hooks are now OOP.

    Steps to reproduce

    - Install Drupal 11.1 (I used 11.1.2) - Go to `/admin/config/user-interface/navigation-block` - Click "Add block" in sidebar - Error is triggered, because `navigation_plugin_filter_block__layout_builder_alter()` no longer exists.

    Proposed resolution

    Call `\Drupal\navigation\Hook\NavigationHooks::pluginFilterLayoutLayoutBuilderAlter()` for newer Drupal versions

    Remaining tasks

    - Update code with backwards compatibility layer

  3. Invalid entity.site_setting_group.settings route

    Sven Decabooter

    Problem/Motivation

    site_settings.routing.yml contains a route `entity.site_setting_group.settings`, with path `admin/structure/site-setting-group` which triggers a fatal error when called in the browser. I suppose this is a leftover route that is no longer in use?

    Steps to reproduce

    Go to `admin/structure/site-setting-group` and see error.

    Proposed resolution

    Remove the route, if it's no longer in use.

  4. Improve admin menu links configuration - for navigation module

    Sven Decabooter

    @scott_euser: ah thanks for the link to the core issue. It would indeed be better if this could be fixed in core itself.

    I didn't notice your reply until I started working on an MR.

    But I guess the grouping of multiple Site Settings routes under /admin/structure/site-settings could also be useful for sites that do not use Navigation module, as per my screenshots above? Or is that not desired?

  5. Improve admin menu links configuration - for navigation module

    Sven Decabooter

    Problem/Motivation

    When using the core Navigation module, the menu item "Manage site settings" is not reachable. Because it has a child menu item, it is considered a grouping menu item, and is not clickable. To reach it, you would need to click the "Manage Site Settings Group" link first, then through the breadcrumb go to its parent.

    See screenshot:

    Steps to reproduce

    Install core Navigation menu, and try to go to "Manage site settings"

    Proposed resolution

    Use a generic grouping parent item that uses `'\Drupal\system\Controller\SystemController::systemAdminMenuBlockPage'` and add 2 child items under it, one for managing site setting entities, and the other for managing site setting entity groups. Both will then be reachable via the Navigation module.

    Remaining tasks

    Create a MR

    User interface changes

    The "Structure > Manage site settings" breadcrumb will become "Structure > Manage site settings > Site settings" or similar.

    API changes

    /

    Data model changes

    /

  6. Content translation support does not work for non-nodes

    Sven Decabooter

    Problem/Motivation

    I have an entity type that uses form modes, and is translatable. In version 3.0.0 I was able to translate these entities, by loading them in the appropriate language, and clicking the right form mode manager tab.

    E.g. when my original entity has a form mode "Advice", I could go to `/en/{entity_type}/123/edit/advice` and configure the original entity. When I want to set up a translation in Dutch, I'd go to `/nl/{entity_type}/123/edit/advice` and edit the translation of that entity.

    In version 3.1.0 that no longer seems to work.

    Upon inspecting the changes between 3.0.0 and 3.1.0, I saw a commit related to content translation, which seems to break this functionality. Upon inspection of the code, I noticed the following:

    - It seems node-specific in some parts of the code, so wouldn't work with my custom entity - It only adds a "content translation add" route, not an edit route. I'm not sure if that is by design, because the edit path should keep working as I mentioned above (it doesn't for me at least), or if that's been forgotten.

  7. Some twig functions aren't aware of the currently active language

    Randal

    A little correction from my end, all the functions that call the "renderSiteSettings"-method in the extension class do seem to render with the correct language context, but the other two functions (`site_setting_field` && `site_setting_entity_by_name`) specifically check for a langcode and load that translation, so those should be altered I think.

    I'll add a MR for it.

  8. Some twig functions aren't aware of the currently active language

    Randal

    Hi,

    First of all thanks for a great module, it works like a charm. I do have a small feature request, it would be nice if the twig function 'site_setting_field(..)' was aware of the current language by default if no language code was provided.

    Problem/Motivation

    Some twig functions aren't aware of the current language right now. Currently I have to inject the langcode to use it as follows: {{ site_setting_field('[id]', '[field]', '[view_mode]', langcode) }} Instead of ideally just: {{ site_setting_field('[id]', '[field]') }}

    That's because Drupal\site_settings\Twig\TwigExtension::singleSiteSettingsByNameAndField does the following:

    if ($langcode && $site_setting->hasTranslation($langcode)) {
      $site_setting = $site_setting->getTranslation($langcode);
    }

    Proposed resolution

    Let's make it so that if no langcode was provided, the current language id is given. I suppose the above code snippet would have to become:

    $langcode = $langcode ?? $this->languageManager->getCurrentLanguage()->getId();
    if ($site_setting->hasTranslation($langcode)) {
      $site_setting = $site_setting->getTranslation($langcode);
    }

    (The language manager will need to be injected in the class still)

  9. Responsive menu possible?

    Sven Decabooter

    Thanks, I can look into my own implementation of the navbar then, to better suit my needs. Will have a look at the 5.0.x branch as well - thanks for the heads up

  10. Clean-up constructors

    Sven Decabooter

    Thanks for the fixes! Can this be rolled into a new release soon, since it's not very user friendly to get fatal errors when trying to configure the module :)

  11. Responsive menu possible?

    Sven Decabooter

    I'm testing out the possibilities of this theme currently. I'm wondering if there is support by default for a responsive menu, because I can't seem to get it working.

    I've placed a regular Menu block in the navbar_center region, as well as a "Menu" block provided by UI Patterns module.

    From config alone I can't seem to get a responsive menu working, so I might have to strip out and replace some things in the template - but I'm checking first if I'm not missing something obvious.

    It looks like the whole navbar component doesn't seem to be very responsive as a whole. I've placed a logo in navbar start, menu in navbar center and language switcher in navbar end, but in mobile view I only see part of the main menu..

    Thanks for all your hard work in integrating Daisy UI with UI Suite!

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.