Drupal Planet

ImageX: Let’s Roll: How to Use Video to Engage and Inform Your Audience

3 weeks 1 day ago
Let’s Roll: How to Use Video to Engage and Inform Your Audience amanda Mon, 03/06/2023 - 21:19

Whether you’re scrolling through your social media feed or researching the latest marketing techniques, video content is ubiquitous. And for good reason. Video is an effective way to capture your attention and keep you coming back for more — all while entertaining and educating you in the process. 

But do you know how to effectively incorporate video on your organization’s website?

Video is undoubtedly an invaluable tool that distinguishes your brand. But there’s a difference between producing valuable content that cuts through the noise and simply adding to an already cluttered digital landscape. 

To provide a positive experience for your users and achieve your strategic objectives, you need to understand why using video is important and learn how to do it well. Let’s break it down.

Video Offers a Powerful User Experience

As users read less content word for word, video steps in as a tell-all tool. Through visuals, users can quickly digest content without having to slog through (or completely skip) long walls of text.

Video gets straight to the point — and to the heart — of the message you’re trying to get across. An incredible storytelling tool, video connects you to your audience. It evokes and underscores moods, ideas, and information in compelling and authentic ways through visuals, sounds, and imagery.

More than that, video is an essential way to offer accessibility-friendly content. Through closed captions and transcripts, you can offer a quality experience your entire audience can enjoy

Users can also search for answers to their questions via video. How many times have you searched YouTube (or even TikTok) to learn something new? People absorb information in different ways and need multiple avenues to promote learning — your users included.

Finally, video conveys the feeling and culture of your brand in a matter of seconds. It can show off a collective spirit or attitude without saying a word. And that means if you want your audience to feel the ethos of your brand, using video is a powerful way to convey that. 

Using Video Can Drive Traffic to Your Website 

Perhaps you’ve already created a video (or an entire library of them), but you find they’re not getting views and you’re not sure how to promote them effectively. How can you make sure users actually see your videos and come to your website as a result? 

Most brands choose to host their videos on a third party (such as YouTube, Vimeo, or Wisteria) for two reasons. 

  1. Video takes up space on your site. Hosting your videos on another site means ​​you're not saving all those video files on your server. This keeps your website running quickly and optimally.
  2. SEO benefits. As long as the video is linked back to the website, your video can be a great way to drive traffic to your site. Using a third-party site like YouTube (which is the second-largest search engine behind Google) also gives your brand more visibility and another way to be discovered.  

As you look for ways to get eyes on your content, don’t forget to use your own social channels. Right now that means TikTok and Instagram. Share your videos on the sites your target audience is likely to be on, and encourage users to share them.

Think strategically about how you can repurpose or reuse your content, like breaking videos down into teaser snippets to capture attention.

Two Video Formats to Incorporate Into Your Marketing Website

For marketing purposes, there are two main types of videos you can use to enhance your users’ experience: ambient and long form. It’s wise to use both different types of videos on your site based on the message you want to communicate and the goal you're trying to achieve.

Ambient videos are shorter and set the tone or feeling of a brand. They lay the groundwork for the story you’re trying to tell. For example, ambient video could be drone footage of a university campus or footage of people in a meeting to reflect their company’s culture. In other words, ambient video gives users a feel for what your brand is all about — sans dialogue.

Long-form videos tend to be more informative and provide more value. They often serve a specific purpose, such as showing users how to complete a complex task. This is especially helpful for visual learners. How-to videos can be extremely effective in reducing customer support inquiries and increasing conversions.

Use different types of videos on your site to complement the message you want to communicate and the goal you're trying to achieve.Dos and Don’ts of Using Marketing Videos on Your Website

Simply adding video content to your marketing plans isn’t enough. You need to be strategic and think through what you want your videos to achieve. Furthermore, there are plenty of best practices and nuances to consider that should inform your strategy. Here are a few recommendations.  


Do: Relax and go slow. Think about what’s achievable. You don’t need to hit the ground running with high-quality videos at every touchpoint. If you lack time, good content, or the budget to produce the robust video library you want, it’s okay. You have options. What matters most is that you build content to support the story that you're sharing. 


For example, you can use a static image that you can later swap out for an ambient video. Or, consider producing smaller snippets that you can use on social media to drive traffic to your channel until you build your content library.


Don’t: Neglect accessibility standards. Avoid elements like autoplay, modals, or overlays. because they take ‌control away from the user. And when it comes to upholding accessibility standards, taking control away is exactly what you want to avoid. 


A modal is a window that appears in the middle of the video and displays a specific message or image. An overlay is a transparent layer of branding or an interactive element that appears on the video. These features are easy enough to interact with for a user with a mouse or trackpad but are inaccessible to those who rely on their keyboard or other assistive technology.


Do: Know when to refresh content or keep it evergreen. Keeping videos relevant and accurately reflecting your message should always be top of mind. But you may not have to swap out videos as often as you think. The key is to look at your audience and think about what’s likely to compel them to convert. If you have a high number of returning visitors to your website, you should consider updating your content to keep things fresh. By contrast, if you get new visitors on a more cyclical, spread-out basis,‌ your video content can last longer. 


Don’t: Forget to measure the value of your video content. First, consider your video in the overall user journey. For example, if there’s a video touting a particular program deep within your site, you could measure success by looking at the number of conversions you receive on the corresponding call to action. For more straightforward feedback, incorporate surveys onto your site. Ask if the video achieved your objective for the user. This way you can learn what worked and what needs work. 

Consider best practices to guide how you approach your strategy.Make the Most Out of Your Website Experience With Video

Video is one of the most powerful marketing tools available. It increases engagement with your users and connects your brand to a larger audience. No wonder it’s everywhere. 


As you seek ways to set yourself apart, embrace video and all its strategic and creative possibilities. After all, you have a great story to tell — it’s time to tell it. 

/sites/default/files/styles/original/public/2023-03/sirisvisual-IcwAKUhNGXs-unsplash_0.jpg.webp?itok=gi2-qGlK Feature as an event Off Service Category Strategy Content Strategy Storytelling Digital Marketing IsGated 0 IsDownloadable 0

Talking Drupal: Talking Drupal #389 - Headless - Fact or Fiction

3 weeks 1 day ago

Today we are talking about Headless and if it’s really all it’s cracked up to be with Martin Anderson-Clutz.

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

  • What is headless
  • What started you writing the blog post
  • Where does headless make sense
  • Does headless perform better than Drupal
  • Are APIs always important
  • How does progressive decoupling work
  • Where does headless not make sense
  • Are people putting too much faith in headless
  • What is the future of CMSs
Resources Guests

Martin Anderson-Clutz - @mandclu


Nic Laflin - www.nLighteneddevelopment.com @nicxvan John Picozzi - www.epam.com @johnpicozzi Jacob Rockowitz - www.jrockowitz.com @jrockowitz

MOTW Correspondent

Martin Anderson-Clutz - @mandclu JSON:API Search API Allows your headless Drupal site to also provide a search service.

The Drop Times: Practice Makes Perfect

3 weeks 1 day ago

If you are a good swimmer, you would remember, in the beginning, how difficult it was to practice bubbling: the art of releasing air bubbles little by little and prolonging the time underwater without surfacing like a bloated balloon and not letting water in your nostrils, picking up a coin or a ring from the bottom of the pool in one quick motion. 

At least a few times, water would have gotten into your nasal channel, and you felt that chill in your head. And then suddenly, the trainer would say to float, holding your breath without bubbling, start kicking while holding your head down and hands straight, start exhaling while kicking, and turn your head to take a breath, then fashion your arms to have maximum thrust. Some cardio exercises might be recommended so that your lung capacity increases. 

These are all exercises to make you a natural swimmer, utilizing buoyancy and minimal friction against the current. But now, when you swim, you swim. You don't particularly remember bubbling, turning your head to inhale, or keeping your upper body motionless while utilizing your legs alone to push and hands to pull. 

The above is true about each thing that we master. It is the baby steps that matter. And once you are thorough, it comes naturally to you. To reach that level need patience and practice. 

DrupalCamp NJ and NERD Summit are around the corner. Local DUGs have announced several meetups. Drupal organizations have started training sessions. Now is the right time to get to practice, to immerse oneself in the pool of Drupal. 

The best story we published last week was the interview with DrupalCamp NJ speaker John Jameson. He speaks in detail about digital accessibility

Drupal Netherlands has announced DrupalJam 2023: Connected on June 01, 2023, at De Fabrique in Utrecht. 

DrupalCamp Asheville has called for training sessions, and you have time until March 28 to submit the topics for the July 7 event. With their neurodiversity initiative, you have multiple options to present your sessions. DrupalCamp Asheville has also requested help to organize the camp remotely. The DrupalCamp NJ schedule is live now. The DrupalSouth paper submission deadline was today and might have ended already. 

Meanwhile, Drupal Brisbane's March 02 event got canceled, although Melbourne Drupal Meetup scheduled for March 08 is on track. DrupalCon Pittsburgh Trivia Night was seeking sponsors. DrupalCon Lille has called for volunteers

Last Thursday, AmyJune Hineline presented a workshop, "Beyond 99 Red Balloons: A Guide to Alternative Text," at Women Who Code's Connect Empower event. On March 15, 12 pm ET, she will present a webinar for Design4Drupal Boston about Accessible Presentations. 

Drupal Bangalore will hold a Meetup on March 18, 2023. Drupal Pune had a meetup on March 3, 2023. Central NJ Web Developers are holding a meetup on March 10, 2023. 

We did a sneak peek into Axelerant's guide on accessibility compliance acts and standards. Another blog post we went through was a bit dated by Hounder.co about the need to migrate Drupal 7 sites to the newest version. Acquia Digital Freedom Tour is coming to New York as part of Acquia Engage on March 21, 2023. On March 23, they will promote Aquia DAM (Widen) in Los Angeles. Evolving Web has announced training for developers on Drupal Development Workflows from April 03 to April 05, 2023. A11yTalks will discuss the next generation of automated testing tomorrow (March 7). 

That is for this week. Thank you. 

Sebin A. Jacob

Promet Source: How to Leverage Load Testing to Scale up a Drupal Site

3 weeks 1 day ago
Load-testing is an essential exercise to methodically test a Drupal site to ensure it can handle a high volume of traffic without encountering performance issues. In a previous post, we discussed how Locust can be used to simulate concurrent user requests and measure site performance.  This is a review of some additional load-testing solutions.  

Salsa Digital Drupal-Related Articles: BenefitMe — coding NZ’s Social Security Act (Rules as Code)

3 weeks 1 day ago
Overview  Digital Aotearoa Collective’s  challenge The Digital Aotearoa Collective (formerly GovZero Aotearoa) wanted to use Rules as Code (RaC) to code NZ’s Social Security Act. This was an important project for the collective, which aims to address injustice and improve wellbeing in Aotearoa New Zealand. Digital Aotearoa Collective’s transformation Salsa donated NZ$20,000 and three team members (for a total of 24 hours a week for 11 months) to help build the first iteration of BenefitMe . Working with other key members, we started with rules analysis, before splitting into two teams: one focused on service design and building the frontend, and one focused on the OpenFisca rules coding.  In the last 6 weeks of the project, Salsa also contributed additional Drupal resources.

Zyxware Technologies: Drupal Updates vs Upgrades vs Migrations: What's the Difference and When Do You Need Them?

3 weeks 4 days ago
In the world of Drupal, the words updates, upgrades, and migrations often cause confusion. This article tries to explain what these words mean and the difference between them in the context of maintaining a Drupal website. By clearly understanding these terms, you can take appropriate actions and ensure that your Drupal site is always up-to-date and secure.

CKEditor: CKEditor 5 Premium Features module now stable

3 weeks 4 days ago

Did you know that CKEditor, the default editor offers you yet another leap forward that’s really easy to take? Since its beta release in September 2022, the CKEditor 5 Premium Features module has allowed users to quickly integrate collaboration and productivity features into their projects.

Now that it’s production ready, this blog post dives into all the exciting features that the stable version of the CKEditor 5 Premium Features module has to offer. Discover the power of comments, suggestions, real-time collaboration, and export plugins in Drupal 10!

Evolving Web: Hands-On With Drupal 10: Olivero, a New Theme With a Meaningful Name

3 weeks 4 days ago

It was high time we said goodbye to Bartik. Having been Drupal’s default front-end theme for over a decade (from Drupal 7 to 9.4,) Bartik was quite the veteran. And although it served users well for many years, the theme didn’t get any major updates after 2011. Its age began to show: aside from an increasingly dated look, Bartik didn’t evolve to work well with new functionality such as Layout Builder.

Bartik got its figurative cannon salute in 2022. It was retired and replaced with Olivero: a modern and accessible theme for the future. 

The idea for Olivero was conceived in a hotel lobby at DrupalCon Seattle, 2019. It grew into the Drupal 9 theme initiative, with considerable support from Dries and key contributors. Over several years, the Olivero Team worked to build a cutting-edge theme based on five design principles:

  • Simple: a clutter-free environment that’s easy to navigate and use
  • Modern: support for the latest browser features and interaction modes
  • Flexible: gives multiple options to Drupal front-end developers
  • Focused: includes eye-catching, meaningful design elements
  • Accessible: WCAG Level AA compliant from the ground up

Olivero was initially introduced as an experiment in Drupal 9.1. It’s now the default front-end theme in Drupal 9 and Drupal 10. (Bartik is deprecated in Drupal 9.5 and unavailable in Drupal 10.)


"It looks amazing, and it’s also by far the most accessible theme that we’ve ever shipped in the history of Drupal."

– Dries Buytaert, DrupalCon Portland 2022’s Driesnote

Drupal 10’s default theme is clean, modern, and accessible. 

Rachel Olivero’s Legacy of Championing Accessibility 

The Olivero theme was named in memory of Rachel Olivero, who passed away in 2019. Rachel was an accessibility advocate and a valued member of the Drupal community. As a person who was blind, transgender, and a lesbian, Rachel had a deep understanding of the importance of inclusivity and a passion for making technology better for everyone. 

"We chose the name Olivero not just because we have made accessibility a top priority, but also because we aspire to develop this new theme in our community in a manner that is consistent with the qualities that Rachel Olivero embodied, including patience, generosity, and inclusivity."

– The Olivero Team

A Rundown of the Olivero Theme’s Best Features Modern Colour Palette 

Olivero uses a vivid blue as its base colour for a bright, professional look that gives a subtle nod to Drupal’s branding. Neutral grays provide visual balance. The palette provides both dark and light shades, as well as secondary colours, to enable an accessible, high-contrast design. 

A clean, accessible colour palette gives Drupal 10’s default theme a modern look and feel. 

Simple Forms and Buttons

Content editors will be delighted with the simple elegance of text fields, checkboxes, radio buttons, and submit buttons in Drupal 10’s default theme. 

Web accessibility is clearly at the forefront of the design. Forms are simple for users to fill out thanks to their uniform look and clear labels. Buttons are high-contrast and have easily-perceivable focus modes that work well for keyboard users. 

Forms are clear and clutter-free in Olivero. 

Accessible Typography

Olivero makes content more readable and scannable thanks to a base font-size of 18px for body copy. Other text elements are scaled accordingly and typography is adjusted for mobile devices. The Olivero team gave particular focus to maintaining consistency throughout line-height and spacing. 

Olivero also perfectly displays right-to-left languages including Urdu, Arabic, and Hebrew. This is critical for supporting Drupal’s multilingual capabilities. 

Typography is scaled to provide a responsive, accessible, and consistent experience for users. 

Intuitive Headers and Menus

The header in Olivero can collapse into a hamburger menu as the user scrolls down the page. This means users have easy access to the navigation links regardless of where they are on the page. Olivero also supports secondary dropdown menus in Drupal – something that wasn’t possible with Bartik.

There are multiple versions of the header to choose from. All of them are designed to seamlessly incorporate any type of logo. 

An animated, sticky hamburger menu makes navigation easier for users. 

Eye-Catching Messages 

Olivero uses brightly coloured icons to convey the purpose of different types of messages. Error, alert, and success messages are displayed in boxes with plenty of padding to ensure they’re noticeable and easily readable. 

Olivero has an eye-catching design for messages.

Useful Sidebar 

Olivero features a sidebar that floats next to the primary content. This is a great place to display things like related content and social buttons. 

Improvements for Developers

Taking a lead from Claro, the new default admin UI, Olivero has implemented PostCSS to reduce maintenance overhead. It uses CSS Grid to help developers build complex layouts more easily. And for added flexibility, Olivero uses CSS custom properties to enable front-end developers to customize the theme on a block-by-block basis.


Planning to migrate to Drupal 10?

//--> //-->

+ more awesome articles by Evolving Web

Axelerant Blog: How Acquia DXP Is Empowering Businesses To Design Digital Experiences

3 weeks 5 days ago

Customer experiences are more than touchpoints. Instead, it’s about enhancing relationships and delivering value across the customer journey. A Digital Experience Platform (DXP) provides the architectural foundation and modular service that makes this possible. It enables organizations to deliver consistent, meaningful, and relevant experiences across all intersections.

Salsa Digital Drupal-Related Articles: The CivicTheme 1.4 release

3 weeks 5 days ago
What’s in the CivicTheme 1.4 release? The recent CivicTheme 1.4 release includes a major review of all components and over 100 bug fixes. Some of the bigger changes include: New Event content type  Standardisation across all CivicTheme cards New support for external links  Updates to filters for automated lists Automatically generated component pages for visual regression testing New documentation The release of CivicTheme on drupal.org New Event content type The new Event content type provides event-specific fields. For example, time and date, and location (with the ability to embed a map URL or add in an address). Event cards can then link to this content.  Standardisation across all CivicTheme cards CivicTheme boasts an extensive range of different cards.

Evolving Web: Hands-On With Drupal 10: Discover the Best Modules Through Project Browser

3 weeks 5 days ago

Drupal is famed for its flexibility and scalability. Any user can extend their website with an impressive array of contributed modules (nearly 50,000 at the time of writing!) thanks to Drupal’s modular structure and its thriving community of contributors.

But there’s a flip side to this abundance: selecting the right module can be a daunting task. It hasn’t helped that, until now, searching the full repository meant grappling with a long list of inconsistent descriptions on drupal.org. It’s a time-consuming process that intimidates new users and frustrates the seasoned ones (yes, even us!). And while search engines and recommendations helped, they often failed to give enough exposure to the newer and more niche modules. 

The opportunity was clear: users needed a fast, painless way to pick from the vast ‘candy store’ of contributed modules. 

We’re excited to say that the solution has finally arrived! Drupal users, meet Project Browser.

Project Browser: Your One-Stop Shop for Drupal Modules

Project Browser is a simple but powerful tool that will let you easily search, filter, review, and download the best modules for your needs. It’s currently in Beta, but the module is under active development and compatible with Drupal 10

Project Browser promises to be an essential add-on for site builders, web managers, developers, and anyone else who wants to leverage the full potential of Drupal.

Below, we explore the features and benefits of Project Browser that we’re most excited about.

Search Modules Without Leaving Your Site

With Project Browser, you can search the entire repository of contributed modules directly from your Drupal admin dashboard. Once you’ve installed it, simply go to the Browse tab that’ll appear on the Extend page. 

Project Browser is connected with the Drupal.org API using a decoupled approach to ensure content is updated in real time. 

Project Browser streamlines the process of selecting and downloading modules. Credit: Drupal.

Compare Modules at a Glance

Project Browser has a clean, user-friendly design that makes it easy to compare modules side by side. It displays your search results as tiles and lets you view them in list or grid mode. The tiles also feature category tags and a security policy icon. 

The modern, intuitive design makes it easier to review and compare a selection of modules. Credit: Drupal.

Only See Modules for Your Version of Drupal

The search results you see in Project Browser are automatically filtered by the version of Drupal you’re on. That way, you won’t waste any time reviewing modules that aren’t compatible with your website. 

Use Filters to Find the Perfect Fit

Project Browser applies default filters to ensure you only see maintained projects that are covered by a security policy – although you can remove these filters if you want. You can also filter by a wide range of categories such as accessibility, e-commerce, events, and location to name a few.

Narrow down your search results by applying filters. Credit: Drupal.

See Projects by Popularity

By default, Project Browser sorts your search results by active installs. This means you’ll see the more popular modules first, helping you find high-quality solutions faster. 

Get Clear Steps for Installation

Once you’ve found a suitable module, you can hit ‘View Commands’ to get instructions commands to download it via Composer and install it with Drush. 

Project Browser simplifies the installation process. Credit: Drupal.

Expect Even Easier Installs in the Future

Users will soon be able to download modules automatically with Composer running behind the scenes. An experimental version of Project Browser has been set up to develop this functionality. You’ll be able to hit “Download and Enable” on your selected module and let Project Browser do the rest.

Want to Master the Fundamentals of Drupal?

Join our upcoming Drupal for Content Editors training session. Our expert instructors provide hands-on exercises, live demos, and actionable advice to help you excel in your role. You’ll come away from this session with a solid understanding of how to implement a strong content strategy and use Drupal’s content publishing system effectively.

//--> //-->

+ more awesome articles by Evolving Web

ComputerMinds.co.uk: Drupal 10 upgrade: File to media

3 weeks 5 days ago

We're continuing our series on upgrading this very website to Drupal 10...but our first proper bit of work to upgrade this site is essentially nothing to do with Drupal 10!

We built this site in the early days of Drupal 8 and Drupal core didn't really handle 'media' any differently to Drupal 7, but we wanted to try out some new modules that included having a library and drag&drop upload. However, these modules are an additional thing that we need to upgrade and have been pain in that sometimes the buttons don't appear, or they're buggy in other ways. Anyway we're going to replace our previous way of doing media handling, with the way that Drupal 8.5 introduced: the media module. To be perfectly honest we could (and maybe should) have done this piece or work a long time ago, but we simply never got around to it. Anyway, here's an idea of what we had before:

On lots of our entity bundles, we had file and image fields, these were named something like field_background_image for example. This would hold the image that was eventually styled into the title header banner at the top of the page. We wanted a nicer experience for uploading and selecting files to use than the core offering at the time. 

We had settled on using the File Entity Browser module which brings with it a lot of dependencies, but then does give a relatively nice experience that looks a bit like this:

Our File entity browser based upload widget

You get a drag & drop upload, and you get to pick files from a grid of files if that's what you want.

This is all well and good, but Drupal core basically does all this now, via the media module, so how do we get to this:

The Drupal core media upload widget

To get there, we're going to have to:

  • Enable the core media and media library modules
  • Set up our media types that we want to use
  • Create duplicates of our current file/image fields, but as media fields
  • Switch our templating/PHP code over to use the new media fields
  • Write some kind of data migration to create new media entities for existing files and update the content to reference the new media entities
  • Delete the old fields.

I appreciate that there are modules out there that can help with some of this, but none of them seemed to work quite right for me when I'd tried in the past, and they seemed to get hung up on things like deduplication of files, which I wasn't particularly bothered by.

Setting up core media

This is, by far, the easiest bit: I enable the media module, and then grab the media related config from the core demo umami profile, since that has and image and document media entity all set up and ready to use. I grabbed the following config files:

  • media.type.image.yml
  • media.type.document.yml
  • field.storage.media.field_media_image.yml
  • field.storage.media.field_media_document.yml
  • field.field.media.image.field_media_image.yml
  • field.field.media.document.field_media_document.yml
  • core.entity_form_display.media.image.default.yml
  • core.entity_form_display.media.document.default.yml

And import them into this site, just as a super quick way to get going with a simple set of config that would enable core media handling.

Duplicating fields

Now for the tedious part: duplicating all those lovely file/image fields with media field equivalents. To get a nice list of the entity bundles that needed this work doing, I went to uninstall the File entity browser module, and Drupal gives me a nice list of the config that would need to be updated. This is essentially a list of bundles where we'd set up our file upload widget that I needed to swap out.

So, I go one by one looking at each bundle, and where there was a field named like: field_background_image for example, I'll create a new entity reference field called: field_background_media and set it to reference media entities. Then I set it to use the media widget, and matched its position and settings on the entity form and entity display modes. I did do this manually, but I imagine this would be fairly simple to automate, but I only had a handful of fields, and I went slowly and carefully with the next bit anyway, making sure to test each of my new fields.

In our theme layer, we do a decent amount with some of the files referenced by these fields, for example the background images for the page headers, get processed by some custom code that generates some specific inline CSS. So I searched the codebase for usages of these field names, and switch them over to the new fields. Being careful that now there was an extra level of entity in the structure of the data, since before I'd have had:

Host entity -> image field -> File entity -> Actual URL to image

But now the new fields will have:

Host entity -> media field -> media entity -> image field -> File entity -> Actual URL to image

This is actually pretty easy for this site, because we'd nicely separated out getting the image from the templates themselves, so this step was fairly straightforward in the end, it was fairly repetitive though. I duplicated a field, found all usages of it, changed them and then tested the code to make sure it was all working properly.

Data migration

Now we have the duplicated fields, and we know they all work we need to get the data into them. We're going to load up any entity that references a file in one of the fields we've duplicated, loop over all the fields, and where there's a file we'll create a new media entity that references this file and insert this into the field on the outer entity. We'll save each entity as we go.

We don't have that much content on this site, so we can run these in an update hook, and the site will be down for a minute or so running the update hook, but that's okay for our use case. Other sites might require a different approach.

Without further ado, here's our code:

/** * Migrate image fields to media fields. * * @param string $entity_type_id * The entity type id. * @param array $image_field_map * An array of mappings, each sub array should have the following keys: * - source: The source image field name. * - destination: The destination media field name. * - media_bundle: The media bundle to create. * @param string|NULL $bundle_id * The bundle id. * * @return void */ function computerminds_core_migrate_to_media_helper(string $entity_type_id, array $image_field_map, string $bundle_id = NULL): void { $entity_storage = \Drupal::entityTypeManager()->getStorage($entity_type_id); // Construct a query to find all entities with the image fields. $entity_query = $entity_storage->getQuery(); if (isset($bundle_id)) { $entity_query->condition('type', $bundle_id); } // We don't want to check access. $entity_query->accessCheck(FALSE); // Add a condition for each image field. $field_conditions_group = $entity_query->orConditionGroup(); foreach ($image_field_map as $field_map) { $field_conditions_group->exists($field_map['source']); } $entity_query->condition($field_conditions_group); $entity_ids = $entity_query->execute(); // Process in chunks of 10. foreach (array_chunk($entity_ids, 10) as $entity_ids_chunk) { foreach ($entity_storage->loadMultiple($entity_ids_chunk) as $entity) { // Process each image field. foreach ($image_field_map as $field_map) { $image_ids = $entity->get($field_map['source'])->getValue(); $entity->set($field_map['destination'], NULL); foreach ($image_ids as $image_id) { $file = \Drupal::entityTypeManager() ->getStorage('file') ->load($image_id['target_id']); if (!$file) { $message = 'Media cannot be created. The %entity_type_id with ID: %entity_id of bundle: %bundle refers to the image file with ID: %fid. But there is no information about the file with this ID in the database.'; \Drupal::logger('image_field_to_media')->error($message, [ '%fid' => $image_id['target_id'], '%entity_type_id' => $entity_type_id, '%bundle' => $bundle_id, '%entity_id' => $entity->id(), ]); continue; } $media_data = [ 'bundle' => $field_map['media_bundle'], 'uid' => $file->getOwnerId(), 'created' => $file->getCreatedTime(), // @TODO: Make this work for languages. ]; // Asign the file to the correct field. switch ($field_map['media_bundle']) { case 'image': $media_data['field_media_image'] = $image_id; break; case 'document': $media_data['field_media_document'] = $image_id; break; } $media = \Drupal\media\Entity\Media::create($media_data); $media->save(); $entity->get($field_map['destination'])->appendItem($media->id()); } } $entity->save(); } } }

Note that I've hardcoded this with our specific fields on our media entities.

We can then call this helper like this:

function computerminds_core_update_9114() { $entity_type_id = 'node'; $bundle_id = 'article'; $image_field_map[] = [ 'source' => 'field_banner_image', 'destination' => 'field_banner_media', 'media_bundle' => 'image', ]; $image_field_map[] = [ 'source' => 'field_mobile_banner_image', 'destination' => 'field_mobile_banner_media', 'media_bundle' => 'image', ]; $image_field_map[] = [ 'source' => 'field_files', 'destination' => 'field_attachments', 'media_bundle' => 'document', ]; computerminds_core_migrate_to_media_helper($entity_type_id, $image_field_map, $bundle_id); }

I then went through and wrote an update hook for each entity type and bundle combination that I needed, following the same boilerplate pattern of an array of fields to map.

Once the update hooks have run, then I was able to check each of the bits of content and see that the media entities had been created correctly, and added correctly added to the entities.

Delete the old fields

The fun, last step! Deleting the old fields: which will remove the field data from the content entities, but not the actual file entities themselves, so they'll still be around to be referenced by the media entities.

This then also allows me to uninstall the File entity browser module, and then the Entity browser, Entity embed module and Dropzonejs module, big win because we now have many fewer modules to upgrade.


Our deployments do this:

  1. Run database updates
  2. Import config
  3. Rebuild caches

To deploy this work, I committed each of the above steps, along with their exported config, to git. Then I was able to deploy each commit in turn, so that the site briefly had lots of empty media fields, and wasn't showing any images, but then minutes later had all the content migrated and then finally all the old fields and modules were gone. Oh, I also took a full backup before I started these deployments!

That's it for the first big step on the road to Drupal 10 for this site, but I have to reflect and say that having done similar types of data manipulation in Drupal 7, Drupal 9 makes this stuff much, much simpler!

ImageX: Compelling Content Marketing for Higher Education Websites

3 weeks 6 days ago
Compelling Content Marketing for Higher Education Websites amanda Wed, 03/01/2023 - 16:53

When a prospective student is making the choice of where to study, their first point of call is more often than not, the institution’s website. It’s where they learn about the exciting study programs, the bustling campus life, and the unique university vibe. Engaging text in combination with catchy visuals helps them find the answer to the main question: “Is this the right choice for me?”. That’s why the role of your website and content marketing is unmatched when it comes to boosting student enrollment and helping your higher ed institution stand out from its numerous competitors.


How can you make your university or college site genuinely attractive and informative for students, as well as for staff, faculty, parents, donors, and alumni? When it comes to best practices for higher education websites, content marketing is one of the most interesting topics to discuss. We’ve collated some of the ImageX team’s recent articles filled with content tips for higher education below.


Create vibrant, student-focused content


Although factors like university size, location, available majors, and costs are important, prospective students primarily base their decisions on emotion. Your homepage might be great at creating that “big-bang” first impression, which makes students’ hearts sing and lets them know they belong to this place. However, by navigating deeper into a higher education institution’s website, students are often faced with long and dull walls of text.


No worries — it’s totally possible to breathe life into your university site and turn it into a vibrant content hub! To begin with, you will need to assess your current pieces and decide what to keep, what to rework, and what to cut. These decisions need to be data-driven, so you might want to rely on marketing analytics platforms, research, and testing. Next, establish the content creation guidelines and move forward.


To fill your university website with vibrant voices, you could gather informal news from your students’ social media, create a submission form for club leaders to share announcements, and transform the lofty prose from researchers using everyday, easy-to-read language. Another great idea is to create interactive features so prospective students can get a feel of your campus

Breathe life into your university site and assess your current content to decide what to keep, what to rework, and what to cut.  Embrace digital storytelling


We all love good stories. This love starts in our childhood when stories help us comprehend the world, and it accompanies us through our adult lives as we become prospective customers of various organizations. That being said, it shouldn’t come as a surprise that there is an ongoing content marketing trend to craft unique narratives with the organization’s audience as the main heroes. These compelling stories engage customers and inspire them to make conversions.


Your university could tell its impactful stories, too, and we are happy to guide you through the best storytelling practices. Since the rule of thumb is to center your narratives around your audience and their needs, the heroes of your stories could be your prospective students, current students, alumni, and so on. You could also dig deeper into exploring your audience and create more detailed “user personas” — for example, “a student who wants to study abroad in North America.”


The heroes of your stories could be your prospective students, current students, alumni, and so on.

Storytelling 101: How to Create Website Content that Resonates With Your Audience.”



Be open to users with special needs


When crafting great content that reaches your university website’s audience, you need to give every user a chance to perceive it, even if they rely on assistive devices. Considering the diversity of audiences and the existing accessibility laws, creating an accessible website is a top priority in higher education, so you might have already implemented some accessibility guidelines with the help of a good design and development team.


However, accessibility is not created solely by website design and development experts. Website content also needs to be produced with accessibility in mind. A content marketing team’s contribution to website accessibility can be huge.


What does accessible content creation mean? We recommend starting with empathy and always thinking about how people with different abilities will experience your higher education site’s content. Next, take care of straightforward language, clear structure, ALT tags, descriptive links, transcripts and captions for audio and videos, HTML pages to replace inaccessible PDFs, etc. Finally, check your pages with third-party accessibility tools. See more useful details in our Top 10 Accessibility Tips for Content Editors.

  Divide the “Herculean task” into chunks


In the previous chapter, we discussed the importance of creating accessible content and some of the best practices it involves. Ok, so you have a huge higher education website with innumerable pages for faculties, departments, programs, admission requirements, news, events, and so much more. Moreover, multiple people from different teams are involved in content creation. In this situation, making all the website’s content accessible may look like a Herculean task.


Instead of trying to make up a long list of problems that need to be addressed, we suggest taking an Agile approach. Originally created for developers, the Agile methodology has its values and principles fully applicable to any industry.


Based on this approach, you can transform the Herculean tasks into doable chunks on which you will be able to see meaningful progress. Set your priorities, or choose the most impactful pages to be updated first, then do the work in short cycles also known as sprints. However, in the future, you can prevent content accessibility issues from occurring so you don’t even have to deal with a Herculean task. Organize training for your staff and commit to continuous improvement — one of the Agile principles. 


“Humanize” your higher education content


Today, a learning environment needs to be inclusive and welcoming, as well as foster a sense of belonging. Creating inclusive content on your higher education website could greatly help you achieve this result. You need to consider the diversity of your university’s audience and craft messages that appeal to as many of its segments as possible, be it prospective students, parents, or other target groups. 


One of the ways to be on the same wavelength as them is to use their language. Another useful idea is to create stories where different groups of people are equally represented, which could help everyone recognize themselves. Consider also using diverse content formats to tailor to different preferences and abilities when it comes to consuming the information.


Whatever the techniques are, it all comes down to having a people-first approach to content marketing. Check out our article called “Humanize Your Higher Ed Website with Inclusive Content” for more information and tips about it. And never miss an awesome example of our customers — Ashland University — that created an inclusive digital space and emphasized their “We See You” philosophy.


Use the editorial features of a good CMS


Higher education websites have countless content pages that need to be updated regularly. Managing them all on a day-to-day basis is an arduous task for any marketing team. However, your website’s CMS can be a game changer in this area if it plays on your side. You just need to choose a platform that makes your editing workflows as robust, user-friendly, and intuitive as possible. Drupal could be your best choice here. 


Content in Drupal has a well-defined structure where the information about different content types, such as articles or events, is stored in standard sets of fields. The user-friendly admin dashboard makes it easy to manage pieces of different types across the entire website.


Drupal is endlessly flexible in enabling you to create various content layouts, as well as using ready components. One of the great examples of ready-to-go blocks is the starter kit by our team. It includes the most common block types such as an accordion menu, a carousel, a ping-pong block, and much more. 


Try alternative content sources 


All the content marketing tips and recommendations could create an impression that you and your marketing team always need to be perfect in providing large amounts of fresh, engaging, accurate, and accessible content. What about having enough time for producing it? One of your university faculties might invent the time machine someday, but before they do it, you need to find other solutions.


One of the secrets is you don’t have to create absolutely everything from scratch. There must be some podcast episodes, YouTube or TED videos, SlideShare or eLearning presentations, or other media on the web that could be useful to your university’s students. In addition, there are news, articles, or press releases from trusted sources that could keep your higher education site’s audience up-to-date on important events, discoveries, trends, and more. Finally, as we touched upon in the first chapter about making your site more vibrant, you could try exploring informal sources like students’ social media.


Gathering relevant third-party content and sharing it on your site is known as content curation. While implementing it, it’s best to not just share but provide a brief introduction to the shared pieces. Our article on smart content curation shares more tips and tricks for it describes its benefits, as well as walks you through the specific steps to get started. 


Final thoughts


There is always something new to learn about impactful content marketing for higher education.  So we are more than happy to be constantly discovering and sharing useful tips about it. Stay tuned for more article collections, and just reach out if you need any assistance or want to talk through your requirements. 

/sites/default/files/styles/original/public/2023-03/pexels-karolina-grabowska-8106661.jpg.webp?itok=qvV3HPwN Feature as an event Off Service Category Strategy Content Strategy Storytelling IsGated 0 Verticals Higher Education IsDownloadable 0

Opensource.com: 3 myths about open source CMS platforms

3 weeks 6 days ago
3 myths about open source CMS platforms pierina.wetto Wed, 03/01/2023 - 03:00

Open source alternatives to proprietary platforms offer benefits for developers and users alike.

There are two choices when it comes to building a website. You can choose an open source platform like Drupal or WordPress, or a proprietary platform overseen by a company…

2 hours 39 minutes ago
Drupal.org - aggregated feeds in category Planet Drupal
Subscribe to Drupal Planet feed