Deel dit artikel:

Blog
Aug 07, 20244 min read

Single Directory-onderdelen in Drupal core: Een uitgebreid overzicht

Nikolay Tsekov

Hoofd bedrijfsvoering

Single Directory-onderdelen in Drupal core: Een uitgebreid overzicht

Gekend om zijn robuustheid en flexibiliteit, blijft Drupal evolueren en biedt het ontwikkelaars innovatieve tools om hun workflow te stroomlijnen. Een van de belangrijkste toevoegingen in recente releases is de introductie van Single Directory Components (SDC) in Drupal Core. Deze functie belooft het ontwikkelproces te vereenvoudigen, de herbruikbaarheid van componenten te verbeteren en de algehele thema-ervaring te verbeteren. In dit artikel wordt bekeken wat SDC's zijn, wat de voordelen ervan zijn en hoe je ze kunt implementeren in je Drupal-projecten.

Wat zijn Single Directory Components?

Single Directory Components in Drupal zijn een manier om alle benodigde bestanden voor een component in één enkele map onder te brengen. Dit omvat de sjablonen, stijlen, JS en configuratiebestanden van het component. Door componenten op deze manier te organiseren, kunnen ontwikkelaars ze efficiënter beheren, hergebruiken en onderhouden.

Voordelen van individuele directory-componenten

Modulariteit en herbruikbaarheid

  • SDC's bevorderen een modulaire architectuur waarbij componenten eenvoudig kunnen worden hergebruikt in verschillende delen van de site, waardoor redundantie en onderhoud worden verminderd.

Betere onderhoudbaarheid

  • Als alle componentgerelateerde bestanden in één map staan, zijn ze eenvoudiger te vinden en bij te werken, wat resulteert in een betere onderhoudbaarheid.

Stroomlijnde ontwikkelworkflow

  • SDC's vereenvoudigen de ontwikkelworkflow doordat bestanden minder verspreid over verschillende mappen staan.

Consistentie

  • Door stijlen, scripts en sjablonen samen in te kapselen, kunnen ontwikkelaars zorgen voor een consistente implementatie van componenten op de hele site.

Implementatie van Single Directory Components in Drupal

Elk component heeft één map nodig voor de assets. Deze map moet bestaan in een components/ submap van de map van uw thema of module (zodat Drupal deze kan vinden). Een {NAME}.component.yml bestand met metadata over het component. Het maken van een schema in je {NAME}.component.yml is verplicht voor modules, maar optioneel voor themes.

Kies een naam voor je component. In ons voorbeeld gebruiken we button. De naam moet uniek zijn binnen het thema. Componenten zijn naamspecifiek, dus verschillende thema's kunnen een knop component declareren.

button.component.yml

$schema: https://git.drupalcode.org/project/drupal/-/raw/10.1.x/core/modules/sdc/src/metadata.schema.json
naam: Oproep tot actie
beschrijving: Knop oproepen tot actie
rekwisieten:
  type: object
  verplicht:
    - tekst
  eigenschappen:
    text:
      type: string
      titel: Tekst knop
    modifiers:
      type: array
      items:
        type: string
      titel: Class names

Daarna moeten we de HTML-structuur van uw component definiëren in het Twig-sjabloonbestand.

button.twig


  {{ tekst }}

Laten we wat CSS toepassen op deze knop om hem een aantrekkelijker uiterlijk te geven. Het enige wat je hoeft te doen, is een CSS-bestand maken in de componentmap met de naam van je component.

button.css

.btn {
  achtergrondkleur: #007bff;
  kleur: wit;
  opvulling: 10px 20px;
  rand: geen;
  omtreklijn: 4px;
  cursor: aanwijzer;
  &.primary {
    achtergrondkleur: #0056b3;
  }
  &.secondary {
    achtergrondkleur: #6c757d;
  }
}

We hebben de volgende bestandsstructuur voor de nieuwe knop component in ons thema:

Image
button component

Om een component te kunnen gebruiken, moeten we de component-ID weten. Dit is de machinenaam van de module of het thema dat het component levert, plus de naam van het component zelf, gescheiden door een dubbele punt. Voorbeelden:

{module}:{component} 
some_custom_module:button: waarbij some_custom_module de modulenaam is en button de componentnaam
olivero:teaser: waarbij olivero de themanaam is en teaser de componentnaam

In ons geval gebruiken we de component rechtstreeks in het Twig-sjabloon en gebruiken we het sleutelwoord {% include %}. Bewerk het bestand node.html.twig en voeg onderaan eenvoudig de volgende code toe:

 {% include 'theme_name:button' with {tekst: 'Klik op mij', modifiers: ['primary'] } only %}

Hiermee wordt onze knopcomponent opgenomen op de nodepagina. Hier is het resultaat.

Image
example button component

 

Lees meer over de andere nieuwe functies van Drupal 11 hier.

Conclusie

De introductie van Single Directory Components in Drupal Core betekent een belangrijke stap in de modernisering van de front-end ontwikkelworkflow in Drupal. Door alle componentgerelateerde bestanden in een enkele map te consolideren, kunnen ontwikkelaars meer modulariteit, onderhoudbaarheid en consistentie bereiken. Het gebruik van SDC's stroomlijnt niet alleen het ontwikkelproces, maar brengt Drupal ook op één lijn met moderne webontwikkelpraktijken, waardoor het een krachtiger en gebruiksvriendelijker CMS wordt.

Als Drupal zich blijft ontwikkelen, zullen functies als SDC's ongetwijfeld een cruciale rol spelen bij het verbeteren van de ervaring van ontwikkelaars en de algehele kwaliteit van Drupal-websites. Ons Drupal-bureau is er om u te helpen de Single Directory Components te ontdekken en vandaag nog te beginnen met het bouwen van meer modulaire en onderhoudbare Drupal-sites!

ABONNEER U OP ONZE NIEUWSBRIEF

Deel dit artikel:

ABONNEER U OP ONZE NIEUWSBRIEF

Verwante Blog Artikelen

    Drupal 11: Wat kunt u verwachten? Uitgebreide gids voor nieuwe functies en verbeteringen

    Blog

    Drupal 11: Wat kunt u verwachten? Uitgebreide gids voor nieuwe functies en verbeteringen

    Drupal 11 is uit! Ontdek in dit artikel de spannende functies en verbeteringen. Upgrade nu en herdefinieer je digitale strategie met de deskundige ondersteuning van Bulcode.

    Geschreven door Svetoslava Angelova
    Aug 05, 20247 min read
    Config split module tutorial voor Drupal

    Blog

    Config split module tutorial voor Drupal

    Heel vaak moeten wij als ontwikkelaars met verschillende omgevingen werken. Dit kan soms leiden tot (on)verwachte problemen. In Drupal 8 gebruiken we het configuratiesysteem dat aardig goed werkt, maar er zijn gevallen waarin de instellingen voor de lokale en een andere omgeving anders zouden moeten zijn.

    Geschreven door Ivaylo Tsandev
    Aug 22, 20237 min read
    Config ignore module tutorial voor Drupal

    Blog

    Config ignore module tutorial voor Drupal

    Soms willen we niet dat onze configuraties worden gedeeld in de codebase. Wat kunnen we in zulke gevallen doen?

    Geschreven door Ivaylo Tsandev
    Aug 22, 20237 min read
    Drupal-versies begrijpen en een migratiestrategie plannen

    Blog

    Drupal-versies begrijpen en een migratiestrategie plannen

    Herken de verschillende Drupal-versies en houd je website up-to-date.

    Geschreven door Svetoslava Angelova
    Aug 22, 20234 min read
    Drupal 9 afbeelding converteren naar WebP formaat

    Blog

    Drupal 9 afbeelding converteren naar WebP formaat

    WebP is in staat om datacompressie naar een nieuw niveau te tillen dankzij de toevoeging van een voorspellingsmodus aan het JPG-proces, waardoor het duidelijk te zien is hoe het zijn JPG-gebaseerde tegenhanger kan overtreffen. En we hebben de resultaten om het te bewijzen.

    Geschreven door Vasil Boychev
    Aug 22, 20238 min read
    De websites van de luchthavens van Varna en Burgas gebruiken React-componenten in Drupal

    Blog

    De websites van de luchthavens van Varna en Burgas gebruiken React-componenten in Drupal

    Drupal is een modulair systeem waarvan de functies kunnen worden aangepast aan veel verschillende vereisten, wat vooral belangrijk is voor projecten in de overheidsadministratie.

    Geschreven door Mihail Shahov
    Aug 22, 20234 min read
    Drupal zonder kop met Next.js - eenvoudig voorbeeld

    Blog

    Drupal zonder kop met Next.js - eenvoudig voorbeeld

    De laatste tijd is de trend in webontwikkeling in het algemeen, en dus ook in Drupal-ontwikkeling, om de technologie headless te gebruiken. De laatste tijd is de trend in webontwikkeling in het algemeen, en dus ook in Drupal-ontwikkeling, om de technologie headless te gebruiken.

    Geschreven door Mihail Shahov
    Aug 22, 20237 min read
    Maximaliseer uw Drupal-site: Het potentieel van Drupal 10 benutten

    Blog

    Maximaliseer uw Drupal-site: Het potentieel van Drupal 10 benutten

    Ontgrendel het volledige potentieel van uw website! Ontdek de baanbrekende functies van Drupal 10, van verbluffende ontwerpen tot naadloze contentcreatie. Verhoog uw webontwikkeling en boei uw publiek - het is tijd om te migreren en te bloeien!

    Geschreven door Svetoslava Angelova
    Oct 24, 20233 min read
    10 bewezen SEO tactieken om de zichtbaarheid van uw Drupal website te vergroten

    Blog

    10 bewezen SEO tactieken om de zichtbaarheid van uw Drupal website te vergroten

    Supercharge uw Drupal website: Bewezen SEO tactieken voor online succes! Van bliksemsnelle laadtijden tot boeiende inhoud, ontdek de geheimen om zoekresultaten te domineren en te winnen met uw Drupal website.

    Geschreven door Svetoslava Angelova
    Nov 03, 202310 min read
     Ontdek de Drupal gemeenschap: Hulpbronnen, ondersteuning en documentatie

    Blog

    Ontdek de Drupal gemeenschap: Hulpbronnen, ondersteuning en documentatie

    Ontdek de levendige Drupal community en ontgrendel het potentieel van dit krachtige CMS! Verken bronnen van onschatbare waarde, ondersteuningsforums, modules en uitgebreide documentatie. Sluit je aan bij een wereldwijd netwerk van webenthousiastelingen en begin aan een reis van webontwikkeling en innovatie.

    Geschreven door Svetoslava Angelova
    Nov 08, 20234 min read
    Ontdek de kracht van Drupal: Uw complete gids voor digitaal succes

    Blog

    Ontdek de kracht van Drupal: Uw complete gids voor digitaal succes

    Ontdek de kracht van Drupal, een open-source content management systeem dat de conventionele websitebouw overstijgt. Met ongeëvenaarde flexibiliteit, schaalbaarheid en rijke functies past Drupal zich aan elke digitale behoefte aan, van persoonlijke blogs tot complexe e-commercesites.

    Geschreven door Svetoslava Angelova
    Oct 09, 20233 min read
    Drupal 7 migratie: Op weg naar een website die klaar is voor de toekomst

    Blog

    Drupal 7 migratie: Op weg naar een website die klaar is voor de toekomst

    Draait je website nog steeds op Drupal 7? Zo ja, dan heb je misschien de alarmbellen horen rinkelen - de Drupal 7 End of Life (EOL) is aangebroken. Maar wat betekent dit precies voor uw website en online aanwezigheid? In deze uitgebreide gids duiken we in de fijne kneepjes van Drupal 7 EOL, de urgentie van migratie, de voordelen die je kunt halen uit upgraden naar Drupal 9 of 10, en alles daartussenin. Dus, maak uw veiligheidsgordels vast terwijl we beginnen aan een reis om uw digitale landschap te transformeren.

    Geschreven door Mihail Shahov
    Oct 12, 20236 min read

    NEEM CONTACT OP

    Heb je een project dat je wilt lanceren?