Development News

Opensource.com: A Drupal developer's guide to Progressive Web Apps

Main Drupal Feed - Mon, 06/06/2022 - 07:00
A Drupal developer's guide to Progressive Web Apps

Here is an outlined approach to PWA implementation for a Drupal site, but other options are certainly available with similar designs.

Alex Borsody Mon, 06/06/2022 - 03:00

The following article is a companion to my presentation at Drupalcon and Drupalcamp covering Progressive Web Apps implementations. Progressive Web Apps (PWA) have support from...

Opensource.com: A Drupal developer's guide to Progressive Web Apps

Main Drupal Feed - Mon, 06/06/2022 - 07:00
A Drupal developer's guide to Progressive Web Apps

Here is an outlined approach to PWA implementation for a Drupal site, but other options are certainly available with similar designs.

Alex Borsody Mon, 06/06/2022 - 03:00

The following article is a companion to my presentation at Drupalcon and Drupalcamp covering Progressive Web Apps implementations. Progressive Web Apps (PWA) have support from...

Oomph Insights: Redesign & Relaunch: Oomph’s Color Accessibility Tool for Designers gets a Redesign

Main Drupal Feed - Mon, 06/06/2022 - 00:00
It's been a long time since the Hack Day that launched ColorCube 1.0 — almost exactly 5 years, in fact. We are excited to have redesigned the tool to make it easier to use and to also give ourselves the opportunity to explore some new technology in the process. Say Hello to AccessibleColor.design Formerly called ColorCube, AccessibleColor.design (ACd) is a tool built by developers for designers. It's a tool that anyone can use, but the way it allows visitors to adjust colors to reach a passing threshold without the need for Photoshop or similar tools makes it perfect for designers. The…

Oomph Insights: Redesign & Relaunch: Oomph’s Color Accessibility Tool for Designers gets a Redesign

Main Drupal Feed - Mon, 06/06/2022 - 00:00
It's been a long time since the Hack Day that launched ColorCube 1.0 — almost exactly 5 years, in fact. We are excited to have redesigned the tool to make it easier to use and to also give ourselves the opportunity to explore some new technology in the process. Say Hello to AccessibleColor.design Formerly called ColorCube, AccessibleColor.design (ACd) is a tool built by developers for designers. It's a tool that anyone can use, but the way it allows visitors to adjust colors to reach a passing threshold without the need for Photoshop or similar tools makes it perfect for designers. The…

Oomph Insights: Redesign & Relaunch: Oomph’s Color Accessibility Tool for Designers gets a Redesign

Main Drupal Feed - Mon, 06/06/2022 - 00:00
It's been a long time since the Hack Day that launched ColorCube 1.0 — almost exactly 5 years, in fact. We are excited to have redesigned the tool to make it easier to use and to also give ourselves the opportunity to explore some new technology in the process. Say Hello to AccessibleColor.design Formerly called ColorCube, AccessibleColor.design (ACd) is a tool built by developers for designers. It's a tool that anyone can use, but the way it allows visitors to adjust colors to reach a passing threshold without the need for Photoshop or similar tools makes it perfect for designers. The…

#! code: Drupal 9: Different Update Hooks And When To Use Them

Main Drupal Feed - Sun, 06/05/2022 - 18:54

I have written lots of detail about using update hooks to manage updates in Drupal and they have all been about the hook_update_N() hook. The hook_update_N() hook is just one of the options available in running updates as the update pipeline also includes hook_post_update_NAME(). The hook_deploy_NAME() hook, bundled with Drush 10, can also be used as an update hook in the same way.

Each of these update hooks has a number of different best practices when considering their use. All of these hooks are run once and once only and the key idea is that they take Drupal (or a module) from one version to another by adding database changes or configuration updates as the module gets updated.

For example, if you have a module that has a database table then it will be stored as schema information within your module. Once you release the module you must ensure that everyone who already has the module installed can still use it after the schema has changed. This means that as well as updating the schema information you also need to provide steps in the update hooks to update existing installs. Without this step the module would likely crash as it attempts to inject data into tables or fields that don't exist.

Update hooks can also be used to introduce changes to sites by managing configuration and content. This allows complex changes to be deployed in a clean and predictable manner. It can even be used to deploy content changes like adding menu items or taxonomy terms or even adding content to new fields.

Read more.

#! code: Drupal 9: Different Update Hooks And When To Use Them

Main Drupal Feed - Sun, 06/05/2022 - 18:54

I have written lots of detail about using update hooks to manage updates in Drupal and they have all been about the hook_update_N() hook. The hook_update_N() hook is just one of the options available in running updates as the update pipeline also includes hook_post_update_NAME(). The hook_deploy_NAME() hook, bundled with Drush 10, can also be used as an update hook in the same way.

Each of these update hooks has a number of different best practices when considering their use. All of these hooks are run once and once only and the key idea is that they take Drupal (or a module) from one version to another by adding database changes or configuration updates as the module gets updated.

For example, if you have a module that has a database table then it will be stored as schema information within your module. Once you release the module you must ensure that everyone who already has the module installed can still use it after the schema has changed. This means that as well as updating the schema information you also need to provide steps in the update hooks to update existing installs. Without this step the module would likely crash as it attempts to inject data into tables or fields that don't exist.

Update hooks can also be used to introduce changes to sites by managing configuration and content. This allows complex changes to be deployed in a clean and predictable manner. It can even be used to deploy content changes like adding menu items or taxonomy terms or even adding content to new fields.

Read more.

#! code: Drupal 9: Different Update Hooks And When To Use Them

Main Drupal Feed - Sun, 06/05/2022 - 18:54

I have written lots of detail about using update hooks to manage updates in Drupal and they have all been about the hook_update_N() hook. The hook_update_N() hook is just one of the options available in running updates as the update pipeline also includes hook_post_update_NAME(). The hook_deploy_NAME() hook, bundled with Drush 10, can also be used as an update hook in the same way.

Each of these update hooks has a number of different best practices when considering their use. All of these hooks are run once and once only and the key idea is that they take Drupal (or a module) from one version to another by adding database changes or configuration updates as the module gets updated.

For example, if you have a module that has a database table then it will be stored as schema information within your module. Once you release the module you must ensure that everyone who already has the module installed can still use it after the schema has changed. This means that as well as updating the schema information you also need to provide steps in the update hooks to update existing installs. Without this step the module would likely crash as it attempts to inject data into tables or fields that don't exist.

Update hooks can also be used to introduce changes to sites by managing configuration and content. This allows complex changes to be deployed in a clean and predictable manner. It can even be used to deploy content changes like adding menu items or taxonomy terms or even adding content to new fields.

Read more.

Peoples BLOG: Drupal Configuration management (Local, Dev, Test and Live)

Main Drupal Feed - Sat, 06/04/2022 - 10:00
In this article we are going to see how Drupal serves configurations across the environments, which can be well maintained with help of some contributed modules and version control. Drupal 8 onwards configuration has been saved in the yml files in a consistent manner, which includes all the enabled modules, all the content types, vocabularies, fields & views. Making the configurations direct

Peoples BLOG: Drupal Configuration management (Local, Dev, Test and Live)

Main Drupal Feed - Sat, 06/04/2022 - 10:00
In this article we are going to see how Drupal serves configurations across the environments, which can be well maintained with help of some contributed modules and version control. Drupal 8 onwards configuration has been saved in the yml files in a consistent manner, which includes all the enabled modules, all the content types, vocabularies, fields & views. Making the configurations direct

WPTavern: Five for the Future Program Set To Adopt Official Definition for Pledges and Contributions

Wordpress Planet - Fri, 06/03/2022 - 21:24
photo credit: Christian Joudrey

WordPress’ Five for the Future program, an initiative that encourages organizations to contribute five percent of their resources to WordPress development, is poised to adopt an official definition for what constitutes pledges and contributions. Two weeks ago, WordPress Executive Director Josepha Haden Chomphosy proposed the program make a clear distinction between ecosystem contributions and core project contributions:

Participation in Five for the Future means consistent effort by an individual or a company via a Make WordPress team to directly support the WordPress open source project and the project’s current big ideas, rather than the sole benefit of a company or individual. Simply put, Five for the Future exists to collaboratively invest in the health of the WordPress project, ensuring its long-term sustainability and success.

Haden Chomphosy further clarified that certain contributions fall within a grey area but still fit within this definition, such as mataining WordPress.org, WordCamp.org, Rosetta networks, documentation, training, or speaking at meetups. She also specified another grey area that does not fit within the official definition. This includes things like creating WordPress sites, themes, plugins, or blocks, and providing support.

“These activities are critical to extending the reach and utility of the WordPress project, but they are not considered part of making Five for the Future commitments,” Haden Chomphosy said.

“There are many important efforts and lots of incredible work performed outside of WordPress.org and Make Teams. While these are indispensable activities that further the WordPress ecosystem, Five for the Future is about ensuring that the WordPress project continues to be a fertile foundation for WordPress extenders and users.”

This was always the unspoken understanding of the Five for the Future program but this proposal formalizes it ahead of building out official tracking efforts.

The general consensus in the resulting discussion was agreement on the first part of the definition, that the contribution must move the open source project forward. A few participants were not convinced that themes and plugins would not qualify as a contribution towards this goal.

“I can’t help but wonder about the argument to be made that the creation of themes, plugins and blocks that are made freely available are also contributions that move WordPress forward,” GoDaddy-sponsored contributor Adam Warner said.

Yoast-sponsored contributor Yvette Sonneveld said the term “grey area” has a negative connotation and that “all the activities are essential to keep the software and community healthy and thriving.”

“I fully understand that these are harder to quantify,” Sonneveld said.

“Personally, I agree that themes and plugins brought out under creative commons licenses also help the software and the community thrive, and should be included in the efforts that help the project move forward.”

The definition did not receive much pushback and appears to be already confirmed, as Automattic-sponsored community organizer Angela Jin posted three days later, asking for feedback on how to identify and record contirbutions.

“Based on the definition we now have of 5ftF contributions, what other activity, specific to a Make Team or across multiple teams, should be recognized and recorded?” Jin said.

The program’s activity is tracked on GitHub, where discussions are open on everything from stats to badges to tracking meetup attendance. Many of these are technical issues that will require building charts and dashboards. It will be interesting to see how the community and meta teams tackle these challenges to track contributions across teams. Feedback on contributions tracking is still open in the comments of the post.

Post Status: WooCommerce Function of the Week: wc_current_user_has_role

Wordpress Planet - Fri, 06/03/2022 - 17:57
What if you want to show hidden information only to "administrators" or "shop managers?" What about displaying a custom "My Account" tab just for logged-in customers?

WPTavern: InstaWP Gets Seed Funding From Automattic

Wordpress Planet - Fri, 06/03/2022 - 17:30

InstaWP has received an undisclosed amount of seed funding from Automattic. The service launched in July 2021 as a quick way to set up testing or disposable WordPress sites and users frequently commented on remarkable speed of the tool, which spins up a site in less than a second.

Founder Vikas Singhal said the investment gives Automattic a percentage of future equity under a SAFE (simple agreement for future equity) arrangement. In order to receive the investment, Singhal was required to register InstaWP Inc. as an independent US-based organization.

“InstaWP has a vision of making it easy to get started with WordPress,” Singhal said.

“Initally I thought InstaWP was just a disposable WP tool but fast forward eight months, it’s much more than that. It’s a workflow tool now, which makes working with WP 10x easier.”

InstaWP provided an Agency plan for LearnWP to use during Social Learning Spaces, Calls for Testing, and similar uses. The fact that it’s being used in WordPress education, where some users are brand new to the platform, speaks to how user-friendly it is to fire up a new WordPress testing site.

“Lots of plugin and theme authors use it for showcasing their product sandboxes,” Singhal said. “Agencies are using it to build and deliver websites for their clients. Many developers are using it for end to end testing as well.”

Singhal reports more than 23,000 sites have been created with InstaWP. The service currently has 1,600 free users and 50+ paid users. It offers paid plans from $9/month to $59/month and custom pricing for enterprise customers.

Singhal said the seed funding “should last for about next 18-24 months,” as InstaWP has ramped up hiring and marketing. He anticipates the company will be profitable by the end of the year and is open to more investors.

InstaWP is working on developing native integrations for hosting providers, which would allow users to connect their accounts, see a list of existing sites or create new ones, and select a production site to “push” to from InstaWP. The company is currently working with Runcloud and GoDaddy.

“We have come a long from being a disposable WP tool,” Singhal said. “InstaWP will become a great gateway to WordPress, covering all the use cases such as build, dev, test, showcase, and educate. We will be connecting hosting providers, product vendors and agencies/freelancers alike in a single platform.

“We want to become the AWS for the WordPress world, providing an easy way for people to build sites without thinking about the underlying platform.”

Vasily Yaremchuk: Free, Secure and Easy to Manage: Drupal Tome + Bookish + GitPod + Netlify

Main Drupal Feed - Fri, 06/03/2022 - 09:41
Free, Secure and Easy to Manage: Drupal Tome + Bookish + GitPod + Netlify Vasyl Yaremchuk 06/03/2022

A few months ago I ran my separate blog site to share the idea of Open Source Literature.

It's based on the Netlify template for Tome projects with an awesome Bookish profile that is ideal for blogging. I'm not going to describe the pros and cons of that profile, you can read the fresh blog post "Meet Bookish, an install profile for static Drupal blogs" by Samuel Mortenson.

I can host static on Netlify for free. Usually, I ran my Tome installation locally, but it's not convenient, because I need to have a relatively powerful local machine with Composer and Drush installed locally. There is no ability to add a new post, say, from a tablet when I'm out without my laptop somewhere on vacation and so on. But now I use the workflow that completely gets rid of that limitation.

Let me explain how it works now.

You can fork the Netlify template for Tome projects and make the initial installation and setup locally. Please read the Official Documentation

Also, deploy your site on Netlify hosting. It's very convinient to use the link "Deploy to Netlify":
 

But you have to setup link to your repository in Reasdme.md:

[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/drupal-tome/netlify-template)

But can we work without local Drupal installation?

Now when I need to add a new post I use GitPod. I've register there with my GitHub account and I can run GitPos Workspace with any my repository. I'm selecting my open-source-literature.org repository:

After that, I have an awesome VS Code editor where I can customize theme and I have a one-time login link to admin:  

 

It looks like magic but you can run the installation of your site into the workspace, generate a one-time login link and run the webserver automatically, there is a file .gitpod.yml that allows setting commands when you run your workspace, you can align that file with your needs. There is default .gitpod.yml in the Netlify template for Tome:

image: mortenson/tome tasks: - init: | COMPOSER_MEMORY_LIMIT=2048M composer install [ -d content ] && drush tome:install -y command: | [ ! -d content ] && echo "Looks like you haven't initialized a Tome site yet - make sure to composer require any profiles you want to use, then run drush tome:init to get started!" [ -d content ] && drush uli -l $(gp url 8888) [ -d content ] && drush runserver 0.0.0.0:8888 ports: - port: 8888 onOpen: ignore

I can open a one-time login link in the new browser tab and make some edits:

 

When you've finished all your fixes you need to make some actions in the VS Code terminal:

 

- stop the server (^C),

- type $ drush tome:export -y to export changes from database to files,

- save changes to your repository

$ git add .

$ git commit -m "Your commit message."

$ git push

That's it! Your changes will be deployed to Netlify automatically!

Is there any limitation to such an approach? Sure, GitPod allows running workspaces up to 50h per month free. So don't forget to stop your workspace after you'll finish your edits:
 

 

Image

Vasily Yaremchuk: Free, Secure and Easy to Manage: Drupal Tome + Bookish + GitPod + Netlify

Main Drupal Feed - Fri, 06/03/2022 - 09:41
Free, Secure and Easy to Manage: Drupal Tome + Bookish + GitPod + Netlify Vasyl Yaremchuk 06/03/2022

A few months ago I ran my separate blog site to share the idea of Open Source Literature.

It's based on the Netlify template for Tome projects with an awesome Bookish profile that is ideal for blogging. I'm not going to describe the pros and cons of that profile, you can read the fresh blog post "Meet Bookish, an install profile for static Drupal blogs" by Samuel Mortenson.

I can host static on Netlify for free. Usually, I ran my Tome installation locally, but it's not convenient, because I need to have a relatively powerful local machine with Composer and Drush installed locally. There is no ability to add a new post, say, from a tablet when I'm out without my laptop somewhere on vacation and so on. But now I use the workflow that completely gets rid of that limitation.

Let me explain how it works now.

You can fork the Netlify template for Tome projects and make the initial installation and setup locally. Please read the Official Documentation

Also, deploy your site on Netlify hosting. It's very convinient to use the link "Deploy to Netlify":
 

But you have to setup link to your repository in Reasdme.md:

[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/drupal-tome/netlify-template)

But can we work without local Drupal installation?

Now when I need to add a new post I use GitPod. I've register there with my GitHub account and I can run GitPos Workspace with any my repository. I'm selecting my open-source-literature.org repository:

After that, I have an awesome VS Code editor where I can customize theme and I have a one-time login link to admin:  

 

It looks like magic but you can run the installation of your site into the workspace, generate a one-time login link and run the webserver automatically, there is a file .gitpod.yml that allows setting commands when you run your workspace, you can align that file with your needs. There is default .gitpod.yml in the Netlify template for Tome:

image: mortenson/tome tasks: - init: | COMPOSER_MEMORY_LIMIT=2048M composer install [ -d content ] && drush tome:install -y command: | [ ! -d content ] && echo "Looks like you haven't initialized a Tome site yet - make sure to composer require any profiles you want to use, then run drush tome:init to get started!" [ -d content ] && drush uli -l $(gp url 8888) [ -d content ] && drush runserver 0.0.0.0:8888 ports: - port: 8888 onOpen: ignore

I can open a one-time login link in the new browser tab and make some edits:

 

When you've finished all your fixes you need to make some actions in the VS Code terminal:

 

- stop the server (^C),

- type $ drush tome:export -y to export changes from database to files,

- save changes to your repository

$ git add .

$ git commit -m "Your commit message."

$ git push

That's it! Your changes will be deployed to Netlify automatically!

Is there any limitation to such an approach? Sure, GitPod allows running workspaces up to 50h per month free. So don't forget to stop your workspace after you'll finish your edits:
 

 

Image

Vasily Yaremchuk: Free, Secure and Easy to Manage: Drupal Tome + Bookish + GitPod + Netlify

Main Drupal Feed - Fri, 06/03/2022 - 09:41
Free, Secure and Easy to Manage: Drupal Tome + Bookish + GitPod + Netlify Vasyl Yaremchuk 06/03/2022

A few months ago I ran my separate blog site to share the idea of Open Source Literature.

It's based on the Netlify template for Tome projects with an awesome Bookish profile that is ideal for blogging. I'm not going to describe the pros and cons of that profile, you can read the fresh blog post "Meet Bookish, an install profile for static Drupal blogs" by Samuel Mortenson.

I can host static on Netlify for free. Usually, I ran my Tome installation locally, but it's not convenient, because I need to have a relatively powerful local machine with Composer and Drush installed locally. There is no ability to add a new post, say, from a tablet when I'm out without my laptop somewhere on vacation and so on. But now I use the workflow that completely gets rid of that limitation.

Let me explain how it works now.

You can fork the Netlify template for Tome projects and make the initial installation and setup locally. Please read the Official Documentation

Also, deploy your site on Netlify hosting. It's very convinient to use the link "Deploy to Netlify":
 

But you have to setup link to your repository in Reasdme.md:

[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/drupal-tome/netlify-template)

But can we work without local Drupal installation?

Now when I need to add a new post I use GitPod. I've register there with my GitHub account and I can run GitPos Workspace with any my repository. I'm selecting my open-source-literature.org repository:

After that, I have an awesome VS Code editor where I can customize theme and I have a one-time login link to admin:  

 

It looks like magic but you can run the installation of your site into the workspace, generate a one-time login link and run the webserver automatically, there is a file .gitpod.yml that allows setting commands when you run your workspace, you can align that file with your needs. There is default .gitpod.yml in the Netlify template for Tome:

image: mortenson/tome tasks: - init: | COMPOSER_MEMORY_LIMIT=2048M composer install [ -d content ] && drush tome:install -y command: | [ ! -d content ] && echo "Looks like you haven't initialized a Tome site yet - make sure to composer require any profiles you want to use, then run drush tome:init to get started!" [ -d content ] && drush uli -l $(gp url 8888) [ -d content ] && drush runserver 0.0.0.0:8888 ports: - port: 8888 onOpen: ignore

I can open a one-time login link in the new browser tab and make some edits:

 

When you've finished all your fixes you need to make some actions in the VS Code terminal:

 

- stop the server (^C),

- type $ drush tome:export -y to export changes from database to files,

- save changes to your repository

$ git add .

$ git commit -m "Your commit message."

$ git push

That's it! Your changes will be deployed to Netlify automatically!

Is there any limitation to such an approach? Sure, GitPod allows running workspaces up to 50h per month free. So don't forget to stop your workspace after you'll finish your edits:
 

 

Image

Post Status: WordPress Podcast and Video Picks for the Week of May 29

Wordpress Planet - Fri, 06/03/2022 - 06:00
Vikas Singhal on InstaWP's backing from Automattic • Raffaella Isidori on the importance of UX • How to get the most out of WordCamps • Peter Suhm on Reform • Josepha Haden Chomphosy shares her open-source reading list • Hiring and capital_p_dangit • Ryan Welcher live-coding block templates

Promet Source: How to Optimize Digital Experiences in Drupal

Main Drupal Feed - Thu, 06/02/2022 - 20:09
Digital experience or DXP is among the latest buzz words to have captured the attention and entered into critical conversations among marketers, website managers, IT professionals, and at times, even the entire C-Suite.  There’s, of course, good reason for heightened interest in digital experience. More often than not, the first interactions that customers and constituents have with companies and public sector entities these days are via digital channels. Quality DXP functions as an essential driver of loyalty and can serve as a significant contributor to the bottom line. 

Promet Source: How to Optimize Digital Experiences in Drupal

Main Drupal Feed - Thu, 06/02/2022 - 20:09
Digital experience or DXP is among the latest buzz words to have captured the attention and entered into critical conversations among marketers, website managers, IT professionals, and at times, even the entire C-Suite.  There’s, of course, good reason for heightened interest in digital experience. More often than not, the first interactions that customers and constituents have with companies and public sector entities these days are via digital channels. Quality DXP functions as an essential driver of loyalty and can serve as a significant contributor to the bottom line. 

Promet Source: How to Optimize Digital Experiences in Drupal

Main Drupal Feed - Thu, 06/02/2022 - 20:09
Digital experience or DXP is among the latest buzz words to have captured the attention and entered into critical conversations among marketers, website managers, IT professionals, and at times, even the entire C-Suite.  There’s, of course, good reason for heightened interest in digital experience. More often than not, the first interactions that customers and constituents have with companies and public sector entities these days are via digital channels. Quality DXP functions as an essential driver of loyalty and can serve as a significant contributor to the bottom line. 

Pages