Drupal Association blog: Board Election 2023 Candidate: Mark Dorison

Image removed.

Who are you? (biography/background

markdorison on Drupal.org

I am an experienced technical leader and developer, with a portfolio of experience on the web generally, and with Drupal in particular. I have spent the majority of my career working on projects that involve large amounts of content and Drupal has been a natural fit as one of my favorite tools to tackle those issues.

My history with Drupal began in 2008 when I was dropped into supporting sites built on Drupal versions 4.7 and 5; site builds with the brand new Drupal 6 quickly followed. In 2014, I joined Chromatic as a partner, and have spent these past 9 years helping our clients find solutions to their most complicated technical problems. Oftentimes those solutions rely heavily on Drupal! Throughout this time I have written and spoken publicly about topics ranging from the technical to the interpersonal, including at Drupal camps and multiple DrupalCons.

Away from Drupal and Chromatic, I am an avid traveler, cyclist, amateur TV critic, and an enthusiastic, but fledgling Minecraft builder with my daughter Kai.

Why are you running for a board seat at the Drupal Association? (mission/motivation)

The situation that the Drupal Association found itself in due to COVID during the spring of 2020 left an indelible impression on me; showing how quickly the ground under our feet can change, and how important it is that we remain nimble as an organization. I was very pleased to see the strategic changes that were made including a renewed focus on decreasing ongoing costs by utilizing open-source projects to more fully meet our tooling needs (see: GitLab Acceleration Initiative). As a member of the Drupal Association board, I would push to maintain or increase our momentum in evolving the tools that we select and support, with the vision of keeping pace with the evolution of tooling in the wider open-source community.

Additionally, I believe it is critical to Drupal's success that we continue to reduce the barriers to project contribution, help foster the next generation of Drupal talent, and recognize the efforts of our community, from developers to end-users, and I want to ensure that the Drupal Association is at the forefront of that effort.

Why should members vote for you? (qualifications)

I have followed the activities of the Drupal Association board as an interested member for many years, including attending the public board meeting annually where I have been a vocal participant. I believe my contributions and past interactions have shown that I am well-versed in the issues the association faces and that I am capable of bringing my experience to bear on those issues. This, coupled with my perspective as a business owner in the Drupal ecosystem, has allowed me to understand how hard it is to turn a ship as big as the Drupal Association and the community at large. Yet I also believe it is essential that we continue to make incremental improvements, moving step by step in the right direction; that will be my mission as a Drupal Association board member.

File attachments:  md-41-sq.jpeg

Drupal Association blog: Board Election 2023 Candidate: Ashraf Abed

Image removed.

Who are you? (biography/background)

Hello! My name is Ashraf Abed, and I am, first-and-foremost, an appreciative member of the Drupal community. I am based out of the Greater Washington DC area. I wear many hats at work with responsibilities spanning the roles of CEO, Drupal instructor, and Technical Architect. I owe a lot to Drupal and the Drupal community. My passion for Drupal manifests in 3 primary ways: whenever possible, I aim to Sponsor, Educate, and Contribute. I sponsor via a company I started 10 years ago, Debug Academy. It's a very small shop, and yet we prioritize sponsoring events such as DrupalCon as well as smaller camps. It is in all of our best interests for the Drupal Association to thrive. I educate by teaching newcomers and experienced folks alike how to build with, and get the most out, Drupal the software. I have personally trained hundreds of Drupal developers in live, small-group classes. I contribute in various ways: free training, scholarships, serving as a board member of Drupal4Gov, building websites for nonprofits with students, and leading students to build and maintain https://Drupal.tv , a free community resource showcasing videos from Drupal conferences and camps around the world.

Why are you running for a board seat at the Drupal Association? (mission/motivation)

I and my organization are eager to contribute to the Drupal Association, but the processes we're interested in partaking in sometimes seem to take place behind closed doors. I want to expand access and communication channels with the Drupal Association to enable the community to play a greater role in its success and growth.

My interest is in, primarily, expanding the reach of Drupal. This refers to both the supply (of Drupal talent) as well as the demand (for software built using Drupal). I want to assist the Drupal Association in sustainably growing itself and expanding the reach of Drupal, as well as speak on behalf of countless newcomers to the Drupal community I interact with on a daily basis.

Why should members vote for you? (qualifications)

I believe my vantage point is one that can add a lot of value to the board. Specifically, one of my roles is that of a decision-maker of a company who sponsors Drupal events and organizations. This position enables me to understand what is and is not seen as valuable to organizations who build with Drupal. Let's expand opportunities for companies to invest in the Drupal Association in a mutually beneficial manner.

Additionally, in interacting directly with newcomers to the Drupal community on a daily basis I see both technical and social needs that are not being met. As experienced members of the Drupal community, many of us take plenty for granted. Working with newcomers ensures that issues which impact them are regularly top-of-mind.I am also an expert-level 'full-stack' Drupal developer comfortable with Drupal 7 through 10+. I understand which proposals are feasible both from a technical standpoint as well as a community standpoint.

And last but not least, I value creating safe spaces and welcoming, inclusive environments. For example, my company has hosted hybrid live in-person/online events for 7 years to ensure events are accessible. Through that and other efforts, our student body is diverse, welcoming, youthful, and thriving.

I hope for the opportunity to listen to and learn from the community, while playing a role in bringing positive growth to the Drupal Association as a board member. Thank you for your time and consideration.

File attachments:  image_50407937.JPG

Drupal Association blog: Board Election 2023 Candidate: Meet Vladimir Roudakov

Image removed.

Who are you? (biography/background)

My name is Vladimir Roudakov. I have called land Down Under (Brisbane, Australia) home for more than 2 decades. I'm an open source contributor, IT college teacher and organiser of various events (local meetups, conferences, training sessions and code sprints). I’m an active member of other open source communities such as Gitlab and WordPress. My Drupal username is VladimirAus. See the list of my contributions on my profile: https://www.drupal.org/u/vladimiraus

Why are you running for a board seat at the Drupal Association? (mission/motivation)

I’m passionate about the following initiatives:

  • Building or adopting better tools for Drupal events. Currently the drupal.org events section allows consolidating and promoting code sprints, meetups and camps to the Drupal community. Inspired by GovHack (Australia and New Zealand government code sprint) and WordCamp (WordPress conferences) experiences, I would like to build a prototype that enables the Drupal communities to have tools to run local conferences as well as tools to promote the events on social media.
  • Promoting Drupal as technology of choice in academia. I have invested interest in bringing Drupal as a technology of choice to Colleges and Universities in Australia (and hopefully around the globe). Improving Drupal help and learning material will play a crucial part for Drupal to stay relative as a technology.
  • Expanding contributors recognition program. As a Gitlab Hero, I have witnessed Gitlab attempts to recognise contributors including special events, announcements of MVPs (Most Valuable Person) of the month and other incentives for active contributors. I would like to use acquired knowledge to propose a few trial recognition campaigns.

Please, consider voting for me if any of the above initiatives resonate with you and you think that they will result in an even better, wider and stronger Drupal community.

Why should members vote for you? (qualifications)

I feel strongly about the initiatives listed before. Below is the list of my qualifications related to each topic.

  • Building or adopting better tools for Drupal events. I’ve been a Drupal events co-organiser for more than 7 years. Currently, I’m curating monthly training sessions, local meetups and seasonal code sprints. I'm volunteering for various events to get inspiration and experience. Joined by a few of my colleagues we built a conference prototype for DrupalSouth conference which can work as a base building block to create a better event organising platform. 
  • Promoting Drupal as technology of choice in academia. As an active IT teacher, I receive feedback from teachers and students about advantages and disadvantages of using Drupal (and other content management systems). Fun fact, the first thing that new students get confused about is the lack of Drupal 10 and Drupal 9 help and tutorials as they only can find Drupal 8 help! 
  • Expanding contributors recognition program. I granted various contributions on Drupal.org over the years. At the same time I've been an active member of the Gitlab heroes program and witnessed different approaches to contribution.

DrupalEasy: Introducing the Markdown Easy Drupal module

Image removed. Markdown is a text processing library that takes readable text and converts it into HTML. Started over 20 years ago, it is now a widely-used library that makes it easy for people to write text documents that can be easily and predictably converted into HTML.

Quick example - the Markdown syntax "this is **important**" converts to "this is important" after passing through a Markdown converter.

There are many "flavors" of Markdown today - most include the basic syntax and many include their version of "extended Markdown". Examples include Github-flavored Markdown and CommonMark.

Predictably, there have been Markdown-related Drupal contrib modules for a number of years, with the standard being the predictably named Markdown module. Started in 2008, it is currently used by about 5,000 Drupal sites (down from a high of more than 12,000 sites a few years ago).

Unfortunately, as of the publishing of this blog post, the current iteration of the Markdown module does not yet have a full release compatible with Drupal 10, although there are efforts ongoing to remedy this.

Why a new module?

DrupalEasy.com uses the Markdown syntax for some of its content. During our effort to upgrade DrupalEasy.com, the Markdown module became our last blocker to achieving that goal.

We took the time to review the current state of the Markdown module and its effort to be upgraded for Drupal 10, and in the end, we decided to pursue a simpler (in terms of module configuration,) less-time-consuming (in terms of contribution time,) and sustainable (in terms of ease of future upgrades) solution.

The existing Markdown module is configurable - really configurable. Some might say "too configurable".

One of the main configuration choices one has to make when using the Markdown module is choosing which Markdown library to utilize. The various open-source Markdown-processor libraries implement their own flavor of Markdown (like the Github and CommonMark libraries mentioned above). In fact, the Markdown module allows you to utilize multiple Markdown processor libraries. Once a library is selected, there are a myriad of additional configuration options available for each library and for each text format where the Markdown filter is utilized. Configuring the Markdown module in a secure manner is (in our experience) a bit of a chore.

I have no doubt that there are users of the Markdown module that require that level of control and fine-grained configuration. In those cases, the Markdown module is probably their best choice.

But, what about users who don't need that level of control? Users who just want to process Markdown formatted text into basic HTML with a minimum of fuss using a tried-and-true Markdown library. It is for these users that the Markdown Easy module was created.

What makes Markdown Easy different?

In short:

  1. It is opinionated about the Markdown library - it uses CommonMark. Full stop.
  2. It is opinionated about its configuration - it is configured to be as secure as possible.
  3. It is easy to install and configure (see 1 and 2 above).

It was decided early on that the CommonMark library would be a dependency of Markdown Easy. It has more than 150 million installs on Packagist.org and is considered by many as the "gold standard" of Markdown libraries. In addition, it comes with the "Github-flavored Markdown" option as well. Selecting between these two "flavors" of Markdown is the only configuration option you have in Markdown Easy.

The module is preconfigured to be as secure as possible. Configured incorrectly, a Markdown library will output virtually any HTML tag - some that can be abused by bad actors. For example, the Markdown Easy module (by default) does not allow unsafe links or HTML tags to be processed (both of these options can be overridden with a Markdown Easy hook implementation). Additionally, validation of any text format utilizing the Markdown Easy filter requires that both the "Limit HTML" and "Convert line breaks" Drupal core filters be enabled and set to run in a prescribed order to ensure secure usage and consistent results (again, this can be overridden with a hook).

What features are planned for future versions of Markdown Easy?

Not many.

The goal is to have an easy-to-maintain (between major versions of Drupal core,) easy-to-configure (for site-builders,) and easy-to-customize (via Drupal hooks) module.

The only feature that we are currently interested in adding is the option of a GitLab-flavored Markdown library.

Is this module ready for prime-time?

We think so. In fact, the article that you're reading was written in Markdown and processed into HTML by the Markdown Easy module (with the exception of the logo - standard HTML was used for styling purposes).

Full documentation, including examples for overriding default validation and configuration, is available on drupal.org.

Markdown Easy's code base is primarily validation and automated test code. The filter plugin is 129 lines of code while validation and automated tests include over 700 lines of code.

We are using Drupal.org's Gitlab CI to run the tests in both Drupal 9 and Drupal 10 on every merge request and the module is covered by Drupal's security advisory policy.

We invite you to check it out and let us know what you think!

Jacob Rockowitz: Building complex content models using the Schema.org Blueprints module’s configuration, mapping sets, and starter kits

I recently recorded a video that walks through installing the Schema.org Blueprints module for Drupal. Taking Schema.org-first approach to building a content model and authoring experience in Drupal can be overwhelming. It is relatively straightforward to generate a single content type based on Schema.org. Still, as one starts to build a full content model, it can take time to understand the relationships between Schema.org types and what submodules are required to provide the ideal authoring experience.

Early on, I implemented the concept of mapping sets, which set up multiple Schema.org types in sequence to test and review the module’s out-of-the-box configuration. As I have worked to implement Schema.org for my client, I’ve realized that the generated Schema.org types and properties need additional configuration to create the ideal content authoring experience and website. While learning more about Schema.org’s history and evolution, it has become apparent that schemas for different sectors are led by working groups that research and recommend additional types and properties. For example, information architects and content experts have collaborated to define comprehensive schemas for the automotive, hospitality, medical, and financial industries. These very thorough industry schemas can feel overwhelming and make it difficult for developers to leverage and understand the available schemas and possibilities. To help developers get started and maintain their organization’s schemas, I’ve implemented a Schema.org Blueprints specific starter kit API, which can either provide the beginning or an example of an approach for implementing...Read More

Specbee: DESIGNING RESPONSIVELY: A DEEP DIVE INTO CSS CONTAINER QUERIES

In the world of web development, responsive design has become a cornerstone of creating user-friendly and visually appealing websites. CSS media queries have long been the go-to solution for adapting layouts to various screen sizes. However, as web design and user expectations have evolved, the limitations of traditional media queries have become apparent. This is where CSS container queries come to the rescue. In this article, we'll explore CSS container queries, how to use them, and the limitations of traditional approaches.  What are CSS Container Queries CSS Container queries is a component-driven styling approach where the styling of the component is based on the container in which the component is present. Instead of relying solely on the viewport dimensions, container queries enable CSS rules to adapt dynamically to changes in the container they are applied to. This lets the components modify their appearance to fit the context in which they’re put. This is not always related to the viewport’s size but sometimes also where the component is placed in the layout. Not just the positioning of inner elements, but even their styling can change with these queries. This helps in component reusability without code duplication. The first implementations of this spec came in 2021 and have become relatively stable in major browsers. Currently, they are supported in recent versions of Chrome, Firefox, Safari, Edge, etc. Beyond Media queries CSS media queries are incredibly powerful and have allowed developers to create flexible and adaptive layouts. They enable us to apply different styles based on the device's screen width, height, or aspect ratio. While this approach works well for simple cases, it falls short when dealing with component-based designs. The problem arises when a container (such as a `div`, `section`, or `article`) changes its size dynamically due to its content or the overall layout adjustments. Traditional media queries depend on the viewport size and not on the size of individual containers. As a result, developers have had to resort to JavaScript workarounds or rely on complex CSS rules to achieve desired results. Exploring Flex and Grid Developers still use certain CSS grids and flex behaviors to approximate container responsiveness. Some of the properties that can be useful for responsiveness are: “flex-wrap” can be used to move items to the next line in case we don’t have enough space without writing a media query.  “flex-grow” and “flex-shrink” allow the element to grow or shrink proportionally without explicitly mentioning the width of each element. Similarly grid allows us to use “fr” units and “minmax” functions to adaptively size the contents inside the grid structure. The following is the behavior of flex-wrap when there is a change in the size of the parent container. Limitations of Flex and Grid Flex and Grid are restricted to defining layout adjustments from horizontal to vertical arrangements, and don’t address the need to modify other properties. A lot of times they depend on the viewport media queries for responsiveness which basically helps with components that are full-width. For example, we can give a property like a flex-wrap for the children to move to the next line in case the flex box cannot accommodate all the children. But we cannot change any other property like font-size or number of elements per row when the wrapping occurs. Component behavior with Container Queries Container queries help in styling the same component for various component sizes. As we can see below the smaller version of the component automatically adjusts the elements and their spacings based on the container size in the same viewport. CSS Rules for Container Queries The proposed CSS `@container` rule is the foundation of container queries. It allows developers to create context-specific rules that apply to the targeted container. The syntax is somewhat similar to media queries, with a slight difference in how the container's dimensions are referenced. container-name:  A custom name that can be given to the container. .wrapper { container-name: my-wrapper; }container-type: This defines the type of containment used in a container query which currently is supported by 3 values. .wrapper { container-type: inline-size; } container: Shorthand way of combining rules for container-name and container-type. .wrapper { container: my-wrapper / inline-size; }@container: The query inside which the element styling changes as per the parent container properties. .wrapper { container: my-wrapper / inline-size; } @container my-wrapper (min-width: 700px) { h2 { font-size: 52px; } } Working with Container Queries In the following demo, we see there is a simple card with an image, some text and a couple of buttons which are arranged in a certain way for the given resolution. index.html Image removed.

Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam luctus lacinia augue, ut pulvinar massa rhoncus id. Sed semper mauris id aliquam porttitor. Mauris scelerisque egestas sagittis. Nullam velit odio, iaculis nec tempus sed, ultrices sit amet purus. Nullam a augue urna. Quisque rutrum tristique porta. Nullam sem turpis, laoreet non erat sed, tempor tristique mi. In sed pretium metus.

Details Contact me style.scss .card { display: flex; flex-direction: row; gap: 1rem; border: 1px solid #ccc; padding: 1rem; &__media { flex-shrink: 0; } } On addition of another component on the left, we expect the card to stack into a better view, but without any modifications, it will look something like this: The card looks a little weird without stacking. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc condimentum dolor vel elementum dignissim. Morbi ex justo, consectetur sollicitudin nunc ornare, condimentum hendrerit diam. Nam eu lectus magna. Praesent pellentesque nibh felis, nec porttitor dui pharetra fringilla. Donec sit amet purus dui. Duis est nulla, posuere nec velit et, suscipit sollicitudin justo. Sed finibus diam ut augue dapibus auctor. Morbi pellentesque finibus mauris ac consectetur. Morbi et sagittis odio, eget pulvinar nisi. Pellentesque eu viverra velit. Donec nec ornare leo. Ut ornare quis leo a fringilla. Vivamus faucibus, justo eget lobortis rutrum, elit tellus venenatis neque, id convallis tellus tellus in neque. Etiam libero risus, blandit vitae elementum a, ultrices eu diam. Donec tempor eget tellus eget iaculis. Curabitur consequat blandit sapien, eget ornare diam. Cras vel imperdiet purus. Ut aliquet magna quis porttitor finibus. Vivamus eu leo odio. Suspendisse nec auctor felis. Donec mollis orci ut justo porttitor tempor. Vivamus faucibus ac lacus in fringilla. Pellentesque laoreet, risus sed mollis laoreet, erat augue vehicula nulla, non fermentum risus metus ullamcorper risus. Quisque fringilla eros id nisl accumsan fermentum. Ut elit sapien, placerat et semper in, mollis at arcu. Aenean rhoncus odio nulla, non convallis purus tristique in. Nulla auctor hendrerit egestas. Quisque finibus lacus ut lectus porta venenatis. Ut pellentesque nec lacus quis vehicula. Quisque vel laoreet arcu, ac tincidunt nulla. Nulla sit amet vestibulum lectus. Maecenas lectus ante, auctor et turpis in, egestas lacinia ipsum. Praesent magna lectus, facilisis nec diam vitae, tristique dictum velit. Vestibulum semper, orci consequat bibendum ultrices, turpis mauris ornare nulla, et efficitur ante lectus sit amet orci. In eget turpis sit amet justo interdum viverra vel vitae mi. Integer interdum lobortis sem, quis commodo nulla aliquet in. Nunc aliquam convallis semper. Aliquam tempus tellus eu rutrum pulvinar. Praesent malesuada mi in mollis imperdiet. Quisque aliquet nisi vitae quam consequat egestas. In lacus dolor, rhoncus ac augue in, ultricies facilisis felis. Praesent quis est et est feugiat sollicitudin sed sed justo. Vestibulum eu nisi et felis tincidunt posuere. Maecenas facilisis felis aliquam mi posuere, eget congue tortor placerat. Curabitur a dapibus eros, eget tempus sem. Mauris vel erat auctor, euismod nunc ac, pretium quam. Morbi iaculis, odio a facilisis convallis, mi purus venenatis justo, sit amet cursus velit risus vitae nisl. Praesent vitae faucibus mi, eu consectetur quam. Donec eu lacus hendrerit, auctor arcu maximus, laoreet libero. Ut imperdiet facilisis nunc. Mauris tincidunt consequat metus, a mattis tellus semper ut. Fusce vitae elit eu velit interdum molestie ac non nisi. Integer id eros non quam pellentesque hendrerit. Etiam non arcu commodo, iaculis purus sit amet, viverra tortor. Aliquam ac auctor nibh, ut efficitur leo. Fusce ut semper elit. Image removed.

Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Etiam luctus lacinia augue, ut pulvinar massa rhoncus id. Sed semper mauris id aliquam porttitor. Mauris scelerisque egestas sagittis. Nullam velit odio, iaculis nec tempus sed, ultrices sit amet purus. Nullam a augue urna. Quisque rutrum tristique porta. Nullam sem turpis, laoreet non erat sed, tempor tristique mi. In sed pretium metus.

Details Contact me style.scss .card { display: flex; flex-direction: row; gap: 1rem; border: 1px solid #ccc; padding: 1rem; &__media { flex-shrink: 0; } } // Adding CSS for newly added .card-container { flex-basis: 50%; } .big-wrapper { display: flex; } .article { padding-inline-end: 20px; flex-basis: 50%; }To fix this we can add flex-wrap property to the card which will help in stacking the elements inside the card.  .card { display: flex; flex-direction: row; gap: 1rem; border: 1px solid #ccc; padding: 1rem; // Adding flex-wrap flex-wrap: wrap; &__media { flex-shrink: 0; } } But this changes the default card behavior even if it is placed alone. There comes unwanted stacking even when the card has full width to occupy.  To fix this problem, we remove the flex-wrap property and introduce the container query based on the container size. This way the component behaves in a convenient manner if placed alone or in a smaller space. style.scss .card { display: flex; flex-direction: row; gap: 1rem; border: 1px solid #ccc; padding: 1rem; &__media { flex-shrink: 0; } } .big-wrapper { display: flex; } .article { padding-inline-end: 20px; flex-basis: 50%; } // Adding container-type .card-container { flex-basis: 50%; container-type: inline-size; } // Adding container query here @container (max-width: 750px) { .card { flex-direction: column; } }Card with Article:  Card without Article  Thus, the behavior is much better without changing the actual style of the card.  Container Units With the advent of container queries, it was obvious that there would be some CSS units to take care of the sizes relative to the container size. The following CSS units have been brought:   Browser support Source: MDN Fallback As the older browsers do not support container queries, it is recommended to use one of the following fallback options: Use @supports to check the availability of feature and add relevant CSS fallback eg. media queries, flex, and grid options. Using container-query-polyfill for using container queries as it is. Final Thoughts In wrapping up, it's clear that CSS container queries are more than just a solution to today's design challenges – they are a glimpse into the exciting future of web development. As technology and user expectations continue to evolve, container queries are poised to play a pivotal role in creating adaptive, user-centric websites. Embrace this innovation and stay ahead in the ever-evolving world of web design! Looking for a Drupal agency to bring your web projects to life? With a proven track record in delivering top-notch Drupal solutions, we understand the importance of responsive design and keeping up with the latest web development trends. Talk to us today! 

Talking Drupal: Talking Drupal #414 - Future of Web Content

Today we are talking about The Future of Content Management, What we see for Drupal in the future, and How AI might factor in with guest John Doyle. We’ll also cover Access Policy as our module of the week.

For show notes visit: www.talkingDrupal.com/414

Topics
  • Digital Polygon
  • Content Management can mean many things, what is our definition
  • What factors contribute to the changes moving to a more centralized model
  • How do organizations manage content for different channels
  • Where do design systems collide with content management
  • Why is Drupal a good fit
  • How does headless fit in
  • Maintaining content architecture long term
  • Drupal adaptations over the next 5 years
Resources
  • Talking Drupal #409 - Data Lakes
  • Hey everyone! Our friends at the Linux Foundation are offering Talking Drupal Listeners 25% off on any e-learning course, certification exam or bundle. Good from August 22-Sept 30, 2023. With discount code LFDrupal25 Please note Bootcamps, ILTs and FinOps courses are excluded… Again that code is LFDrupal25 and you can use that at https://training.linuxfoundation.org/ Thank you to the linux foundation!
  • Flexible Permissions
Guests

John Doyle - digitalpolygon.com _doyle_

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Andy Blum - andy-blum.com - andy_blum

MOTW Correspondent

Martin Anderson-Clutz - @mandclu Access Policy

  • Brief description:
    • Does your Drupal site need a flexible way to manage access to content? There’s a module for that!
  • Brief history
    • How old: created in Nov 2022
    • Versions available: 1.0.0-beta1, works with D9 and 10
  • Maintainership
    • Actively maintained, most recent release was in the past week
  • Number of open issues:
    • 4, none of which are bugs
  • Test coverage
  • Usage stats:
    • 12 sites
  • Maintainer(s):
    • partdigital
  • Module features and usage
    • Allows a site builder to define different policies that can be used to manage content access or editing capabilities based on various factors, all within the Drupal UI
    • Criteria can include field values of the content, field values on the current user’s profile, the time of day, and more
    • The policy can restrict access, for example view acces to only selected people or people with a certain role or field value on their profile. I
    • Once defined, policies can be assigned manually, or automatically applied based on configurable selection criteria
    • The project page describes this as an Attribute Based Access Control (ABAC) architecture, which complements Drupal core’s Role Based Access Control that our listeners are probably familiar with
    • I used it for the first recently, and found that given the power and flexibility the module provides, it’s great that it has in-depth documentation
    • I filed a couple of issues (technically half of the open issues) and partdigital was very responsive
    • The module does also provide an API for defining your own policy type, access rules, rule widgets, and more. So if you need a setup even more custom that what Access Policy can provide out of the box, it’s likely you can extend it to meet your individual use case

The Drop Times: Embracing Continuous Learning

I believe that every day has a valuable lesson to offer. Whether it was a chance encounter with a stranger on my daily commute or a setback at work, I approached each day with curiosity and an open heart. I feel that life's most valuable lessons often emerge from the most unexpected places, and the willingness to learn from every experience has turned my everyday life into a continuous journey of growth and self-discovery.

Just like my everyday experiences contribute to my personal development, the Drupal community's shared insights and experiences shape the community's ongoing success, embodying the spirit of continuous learning and progress.

Let us look into last week's stories by The Drop Times.

Last week, we published an interview with Sibu Stephen, a User Interface Consultant at Digital Polygon. He talks about his connection with Drupal and various other aspects. Read the interview here. The clock is ticking as DrupalCon Lille approaches. Regular registration ends on September 11th, so don't miss out on the chance to register and experience all the benefits of DrupalCon.

Furthermore, the 2023 Drupal Business Survey remains open for anonymous participation until today, September 4th, 2023, offering a unique opportunity to contribute to the community's growth. DrupalCamp Sevilla 2023 is also on the horizon, scheduled for this month from September 21 to 23. Looking ahead, DrupalCon Portland 2024 Volunteer Applications Now Open and DrupalSouth Sydney 2024 are all set to host their conference from March 20 to 22, 2024.

Luca Lusso brought out a book that delves deep into Drupal theme creation. VDMi's blog delves into Drupal's prowess in managing multilingual web platforms, harnessing its robust multilingual capabilities to cater to diverse linguistic preferences. A detailed walkthrough of the seamless integration of Drupal 9-compatible modules into Drupal 10 projects is provided in Specbee’s blog post. A blog post by KishaWeb decodes the Drupal Website Development Costs. Also, an article by Tactis highlights the important insights from this year's Customer Contact Week (CCW) conference in Las Vegas. A guide by Spark Fabrik lists 11 advantages of Drupal that can benefit businesses.

Acquia offers insights into conditionally increasing PHP memory limits to optimise performance without resorting to complex code changes. A tutorial by DrupalEasy gives an in-depth analysis guiding Drupal developers in transitioning from Drupal 9 to Drupal 10. Lastly, I interacted with Stefanie Bilen, The Director of Marketing and Communication at FFW, drafted her insights and learned more about The Women in Drupal Award. I'd want to remind everybody who is interested that the application deadline is tomorrow.

Sincerely,

Elma John
Sub-Editor, TheDropTimes

#! code: Drupal 10: Adding Third Party Settings To Drupal Configuration Entities

Drupal's modular system allows for all kinds of additions to be added to your site through plugins, entities and configuration.

Thanks to Drupal's modular configuration system you can also inject custom configuration into existing configuration entities. This allows you to extend the functionality of an existing entity and ensure that any customisation are saved in the system configuration. Any configuration entity can be augmented without changing the existing configuration schema of the entity, which might cause knock on effects to other modules.

If you have spent time with Drupal configuration then you might have seen the addition of a third_party_settings block to your configuration. A good example of this is with the core Shortcut module and the third party settings it adds to the installed themes when the site is installed using the standard install profile. The Claro theme, for example, will have the following configuration out of the box.

third_party_settings: shortcut: module_link: true

This allows the Shortcut module to detect if it should show a link on the page when this theme is present on the page. The configuration for this setting then doesn't have to live in a separate configuration entity (which would be exported into a separate file); it can just live with the configuration for the theme and be loaded as part of the theme configuration.

In this article I will look at how to use additional settings to add custom configuration items to an existing configuration entity. I'll also cover a couple of use cases for this technique.

Read more