emGee Software Solutions Custom Database Applications

Share this

Drupal CMS

Hook 42: Stanford Web Camp 2019

Drupal.org aggregator - Wed, 05/08/2019 - 05:45
Stanford Web Camp 2019 Lindsey Gemmill Wed, 05/08/2019 - 12:45
Categories: Drupal CMS

Agiledrop.com Blog: Our blog posts from April 2019

Drupal.org aggregator - Wed, 05/08/2019 - 02:13

In case you missed some of them, here’s an overview of our blog posts from April to get you up to speed. Enjoy!

READ MORE
Categories: Drupal CMS

Digitalist: New module: HTTP Status Code

Drupal.org aggregator - Wed, 05/08/2019 - 00:25
HTTP Status Code is a new module to manipulate HTTP status header. HTTP Status Code is a new module to manipulate HTTP status header. Main reason for doing this module is that in some cases you need to do manual fixes on the server side to create 410 Gone headers for paths that you want to remove from Google search index, with this module active you could setup the paths directly in Drupal. You can find the the module at drupal.org. Normaly install should be done with composer - composer require drupal/http_status_code. The module supports all Headers used by Symfony\Component\HttpFoundation\Response - with that said - HTTP headers should be used with caution. So make sure what you understand the impact then you manipulate the HTTP Header - like adding a 301 Redirect Header will be real bad when you not have a redirect in place. If you remove a page, the request for the path of the page normally then gives a 404 not… Read More
Categories: Drupal CMS

Cheeky Monkey Media: 3.5 Ways To Approach (And Budget) For a Drupal 8/9 Migration

Drupal.org aggregator - Tue, 05/07/2019 - 16:09
3.5 Ways To Approach (And Budget) For a Drupal 8/9 Migration dennis Tue, 05/07/2019 - 23:09

Back in September 2018, Dries Buytaert, founder and project lead of Drupal, announced, 

Drupal 7 will be end-of-life in November 2021, Drupal 9 will be released in 2020, and Drupal 8 will be end-of-life in November 2021. 

You can read the announcement and get further information on this here - https://dri.es/drupal-7-8-and-9

Since that announcement, Cheeky Monkey Media has been in a lot of conversations with businesses of all shapes and sizes, not-for-profit and for-profit, that are currently on the Drupal 7 CMS platform and are considering migrating to Drupal 8.

The first thing everyone needs to realize is the move to drupal 8 will be painful, and almost as expensive as building a Drupal website from scratch.

The second thing everyone should realize is that once they’re on Drupal 8, the move to Drupal 9 will be relatively painless.

As Dries announced in a later article,

Categories: Drupal CMS

Security public service announcements: Drupal 7 and 8 release on May 8th, 2019 - PSA-2019-05-07

Drupal.org aggregator - Tue, 05/07/2019 - 10:24
Date: 2019-May-07Vulnerability: Drupal 7 and 8 release on May 8th, 2019Description: 

The Drupal Security Team will be coordinating a security release for Drupal 7 and 8 this week on Wednesday, May 8th, 2019.

We are issuing this PSA in advance because according to the regular security release window schedule, May 8th would not typically be a core security window.

This release is rated as moderately critical.

The Drupal 7 and 8 core release will be made between 16:00 – 21:00 UTC (noon – 5:00pm Eastern).

May 8th also remains a normal security release window for contributed projects.

Categories: Drupal CMS

OSTraining: Define Role Based Field Permissions in Drupal 8

Drupal.org aggregator - Tue, 05/07/2019 - 10:12

The Field Permissions module in Drupal 8 allows you to set permissions (enter, edit or view) on a Drupal field, based on the role the user belongs to.

In order to demonstrate how this module works, we are going to create a content type called "Essay" for the website of a school.

There will be 2 roles:

  • Freshman
  • Sophomore.

The Freshmen permission will not be allowed to choose the subject of the essay, whereas the Sophomores will have the possibility to choose between literature and history. However, there will be no possibility to change the subject once a student has made a choice.

Let’s start!

Categories: Drupal CMS

Drupal Association blog: New on Drupal.org: better visibility into the humans behind the comments

Drupal.org aggregator - Tue, 05/07/2019 - 08:21

We're excited about a feature built by a member of our community and recently deployed on Drupal.org: to give more human context to discussions in the Drupal issue queue, you can now choose to display your primary language, pronoun, and location.

Update your profile now

This is an opportunity to bolster human context within an online medium where tone and posture can be difficult to read. Providing this level of detail allows for visibility into the global composition of our community — such as when a person's primary language is not English or when a person resides in a distant time zone.

It is important to recognize what being global means and drawing attention to the details that remind us about the people behind the project helps us all to have a greater understanding of one another.

You can enable this new feature by editing your user account and adding pronouns to the personal information tab, and location language on the Language/location tab. Finally, you can opt into what you would like shown inline in comments under the "comments" tab.

Categories: Drupal CMS

Agaric Collective: Agaric is Coming to Drupaldelphia this Friday

Drupal.org aggregator - Tue, 05/07/2019 - 07:23
City Hall in Philadelphia. Photo by Jason Murphy, licensed as Creative Commons By 2.0

 

Drupaldelphia is an annual camp held in Philadelphia happening this Friday May 10th for the open source content management platform, Drupal. The event attracts developers, site-builders, content administrators, designers, and anyone interested in using Drupal in their organization or upcoming project.

We're excited to have Ben present two sessions at the camp. Tickets are only $30 (if you buy today, May 7th!) and the day is packed with helpful presentations and hands-on clinics. See the full schedule.

Iterative UX: Find It Cambridge Case Study

2:15-3:45pm
Hussian Room 125

Developing a trusted, ongoing feedback loop with your users ensures that your project is effective and relevant. We call this approach Iterative UX and Ben will share how this looks in practice with the city of Cambridge. You will get a holistic, honest look at both the highlights and challenges of this type of relationship to help you apply Iterative UX in your projects.

Read the full description.

Scaling Community Decision-making

3:45-4:55pm
Hussian Room 125

Any libre software, volunteer, or even startup project will have elements of do-ocracy (rule of those who do the work) but not all decisions should devolve to implementors. Rather, a basic principle is that decisions should be made by the people who are most affected.

  • Learn why meritocracy ("rule of those with merit") is a completely bogus and harmful concept.
  • Gain a passing familiarity with various ways decisions are or have been made in Drupal.
  • Add sociocracy and sortition to your vocabulary and understand how these esoteric concepts can help our community scale.
  • See how Visions Unite is putting more democratic decision-making approaches into practice.

Read the full description.

Read more and discuss at agaric.coop.

Categories: Drupal CMS

Websolutions Agency: What's New in Drupal 8.7

Drupal.org aggregator - Tue, 05/07/2019 - 07:05
What's New in Drupal 8.7

Drupal 8.7 was released couple of days ago on May 1, 2019. As you might know, new features are added with each minor release of Drupal 8 (e.g. between 8.6 and 8.7) which occur in 6-month intervals. Originally 8.7 was supposed to be released in March 2019. But the timing of Drupal's releases has historically occurred 1-2 months before Symfony's releases, which forces Drupal community to wait six months to adopt the latest Symfony release. In order to be able to adopt the latest Symfony releases faster, Drupal community shifted Drupal's minor releases to May and December in a plan to allow adoption of latest Symfony releases within a month.

This is penultimate version of Drupal 8, which will be concluded with Drupal 8.8 in December 2019, after which we expect release of Drupal 9 sometime in June next year!

Beside bug fixes and dependency updates lets see what new features Drupal 8.7 brings!

 

Revisions

Taxonomy terms and custom menu links are now revisionable, which allows them to take part in editorial workflows which was until now only possible for Content types and Custom blocks.

 

JSON:API in Core

Drupal 8.7 will provide an out-of-the-box JSON:API implementation, marking another major milestone towards making Drupal API-first.

Now you will be able to generate an API server that implements the JSON:API specification with zero configuration. Once you enable the module, you are done.

Developers and content-creators can use it to build both coupled and decoupled applications and pull content from Drupal into iOS and Android applications, chatbots, decoupled frontends such as ReactJS, voice assistants and many more!

 

Layout Builder module is now stable

Layout Builder module was originally added as an experimental core module in Drupal 8.5 and is now stable and ready for production use!

If you haven’t heard about it Layout Builder is offering a single, powerful visual design tool for site builders to create templated layouts and custom landing pages.

 

PHP 7.3 Is Now Supported

PHP 7.3 was released in December 2018 and comes with numerous improvements and new features. Also with this release new Drupal sites can only be installed on PHP 7.0.8 or later. Installing Drupal on older versions results in a requirement error.

 

However, existing sites will still work on at least PHP 5.5.9 for now, but will display a warning

PHP stopped supporting version 5.5 on July 21, 2016 and Drupal security updates will begin requiring PHP 7 as early as Drupal 8.8.0 (December 2019), so all users are advised to update to at least PHP 7.0.8 now or preferrably to PHP 7.3.
 

GDPR

As part of continuing GDPR compliance improvements in Drupal core, Comment module no longer logs IP addresses for comments by default. Existing sites will still continue to log IP addresses but this can be changed by changing comment.settings.log_ip_addresses to FALSE in the site configuration using settings.php.

 

This was just a short brief into the new features. For a full list take a look at official release notes: https://www.drupal.org/project/drupal/releases/8.7.0

 

ws_admin Tue, 05/07/2019 - 14:05
Categories: Drupal CMS

Jacob Rockowitz: Webform module now supports printing PDF documents

Drupal.org aggregator - Tue, 05/07/2019 - 06:12

Problem

To be competitive with enterprise form builders, the Webform module for Drupal 8 needs to support the downloading and exporting of submissions as PDF documents, as well as sending PDF documents as email attachments.

The Entity Print module does a great job of generating PDF documents from entities and fields, but webform submissions don't use Field API. This limitation has required site builders and developers to create custom Entity Print integrations for the Webform module.

Solution

The Webform module now includes a Webform Entity Print integration module, which handles downloading, exporting, and attaching generated PDF documents. Additionally, the Webform module allows the generated PDF document's header, footer, and CSS to be customized.

Demo

When enabled, Webform Entity Print module automatically displays a "Download PDF" link below all submissions and adds a download "PDF documents" option to the available export formats. Attaching PDF documents to emails requires that you add an "Attachment PDF" element to a webform and then configure email handlers to "Include files as attachments."

The below screencast and presentation walks through customizing the PDF link and template, exporting PDF documents, and attaching PDFs to emails.

Scratching my own itch

Adding PDF support was not a sponsored feature. I wanted the Webform module to support this advanced feature; so I created it. I was scratching my own itch.

The bigger itch/the challenge that I am always scratching at is:

Competing with other form builders

Competitive enterprise, and also Open Source form builders, tend to put this PDF functionality behind a paywall. For example, WordPress's Gravity Form (Read More

Categories: Drupal CMS

Amazee Labs: Using Twig with Storybook and Drupal

Drupal.org aggregator - Mon, 05/06/2019 - 11:54
Using Twig with Storybook and Drupal

Using UI pattern libraries in Storybook allow us to build a collection of front end UI components that can be used to build bigger components, even full web pages. However, frontend/backend integrations can be fraught with difficulties. In this piece, I’ll explain our process to make these challenges easy, even when using GraphQL fragments inside Twig templates.

Jamie Hollern Mon, 05/06/2019 - 20:54 What Drupal and GraphQL do well

At Amazee Labs, we build decoupled web applications using GraphQL and Drupal. We’ll touch on the reasons that we use this approach in this article, but if you’d like to know more, check out these blogs:

Drupal is known for its complex and unwieldy theming and rendering system. Data to be rendered comes from across the system in the form of templates, overrides, preprocess functions and contributed modules such as Panels and Display Suite. Sometimes trying to track down where data is being generated or altered is like a murder mystery. 

Thankfully, GraphQL Twig simplifies the situation massively. Each template has an associated GraphQL query fragment that requests the necessary data. This “pull” model (as opposed to Drupal’s normal “push” model) means that finding where the data comes from and how it is structured is really easy. We don’t need to worry about preprocessing or alteration of data, and this method lets us keep the concerns separated.

Advantages of UI component libraries

The main advantage of using a UI component library (also known as a pattern library) is that it facilitates the reusability of components. This means that when a component is created it can be used by any developer on the project to build their parts of the front end and in turn can be used to make larger and more complex components.

There are multiple extra advantages to this, the most obvious being the speed of development. Since all components are simply made up of smaller components, building new ones is usually much quicker, since we don’t need to reinvent the wheel.

This also makes maintenance a breeze, since we’re only maintaining one version of any component. If we decide that all buttons on the frontend need to have an icon next to the text, we simply change the button component and this change will apply everywhere that the component is used.

Finally, the reusability of components in a pattern library means that the UI is consistent. Often, web projects face difficulties where there are multiple versions of various components, each with their own implementation. This is especially true of larger projects built by multiple people, or even multiple teams, where no single person knows the entirety of the project’s implementation details. Thanks to the reusability of our components, we only have one implementation per component.

Challenges of using Drupal, GraphQL, and Storybook together

If done poorly, using pattern libraries like Storybook can be difficult and cause problems during the integration phase(s) of development. The main issue is usually that the frontend and backend developers have different approaches and different goals when developing. 

The frontend developer wants to create the best UI they can in the most efficient way possible, using the paradigms and approaches that are standard or preferred. Unfortunately, at times the implementation doesn’t sync well with the data structure that the backend developers receive from Drupal, so the frontend needs to be refactored or the data structure needs to somehow be altered.

How to make it work

I won’t go into detail on our implementation of the Storybook library, but we keep Storybook in the same repo as our Drupal application, outside the root. We then define a base storybook theme and using the Components module (built by my talented colleague John Albin), we define our path to the Storybook Twig templates as a component library in our .info.yml file. This way, the Drupal theme has access to all of our templates.
 

component-libraries: storybook: paths: - ../../../../storybook/twig

We then create our project-specific theme, which extends the base Storybook theme, and start to work on our integration. A generic page.html.twig file might look like this:
 

{#graphql query { ...Header ...Footer } #} {% extends '@storybook/page/page.html.twig' %} {% block header %} {% include '@storybook/navigation/header.html.twig' with graphql only %} {% endblock %} {% block content %} {{ page.content }} {% endblock %} {% block footer %} {% include '@storybook/footer/footer.html.twig' with graphql only %} {% endblock %}

So, how does GraphQL tie in here? Well, this is the really clever part. Our developers can create the GraphQL snippets to get the data needed for a specific component, and Storybook allows us to use JavaScript to use this data as mock fixtures. This means that the frontend can be built with realistically structured data, so no refactoring of templates or data alteration on the backend is needed. And since we already have the GraphQL snippet, this automatically works when run in Drupal. 

Conclusion

At Amazee, we use a UI component library because it makes sense to build a maintainable, reusable and consistent set of components for our frontend that also encourages faster development. We also try our best to streamline our integration processes so that all of our developers are more closely aligned and developing solutions that make it easier for their colleagues to use, learn and extend easily. 

Storybook gives us the power to build a component library using mock data that is structured in the exact manner that our GraphQL queries deliver it. This means no refactoring, building both queries and templates only once and an overall smooth integration process. 

Want to know more about using GraphQL and Twig? Check out our webinar
 

Categories: Drupal CMS

Promet Source: The Truth about Automated Web Accessibility Testing: It’s Complicated

Drupal.org aggregator - Sun, 05/05/2019 - 20:24
In a world where global positioning systems appear to have a handle on every square inch of the roads we’re traveling on, doesn’t it seem like there should be automated website accessibility testing tools that function as well as -- if not better -- than manual testing?  The fact is ... it’s complicated.
Categories: Drupal CMS

Drupal Association blog: Make our membership campaign a success

Drupal.org aggregator - Fri, 05/03/2019 - 12:04

This month, we're running a membership campaign to grow our base of support and connect with more of the Drupal ecosystem. We're challenging you to take one step this month to brighten Drupal's future: invite your colleagues and clients to join the Association for Drupal's future.

By building a broader membership base, we're securing a financial future for supporting the Drupal community. A large, global base of members who contribute to sustain the Association are a force! Every member who participates is making an impact and a statement that Drupal is here to stay.

Thank you for taking the time to share this campaign.

The campaign page is full of information on our work toward current goals that help fulfill our mission. If you are using Drupal or contributing to the project, there's some part of what we do that helps you and the community at large.

Categories: Drupal CMS

Hook 42: Community, Development and Leadership at DrupalCon 2019

Drupal.org aggregator - Fri, 05/03/2019 - 10:43
Community, Development and Leadership at DrupalCon 2019 Lindsey Gemmill Fri, 05/03/2019 - 17:43
Categories: Drupal CMS

Gábor Hojtsy: Present your own "State of Drupal 9" session, get slides here!

Drupal.org aggregator - Fri, 05/03/2019 - 02:27

I am about to present about Drupal 9 at DrupalCamp Belarus in May and then at Drupal Developer Days Transylvania in June . I already presented an Acquia webinar with Dries Buytaert on the topic, and was on the Lullabot Podcast discussing Drupal 9 with Angie Byron and Nathaniel Catchpole. I am a firm believer that this know-how should spread as far and wide as possible. I should not be needed to travel around the globe to present the topic and people should not spend the same time again to redo slides for their local presentations. There is no intellectual property here to hide, as many people should be aware and excited and participating as possible. The topic should be presented at Drupal Meetups, Camps, and inside your own companies. So the natural next step for me was to create an open source slideshow.

I took all that we learned from the webinar and Dries' keynote at DrupalCon Seattle as well as new technology that emerged since then. I also used a free slide template and Google Slides so you can make a copy for yourself and add your own contact information as well as edit the slides down to shorter or longer timeslots. The 51 slides in my test run for about 35 minutes, leaving 10 minutes for discussion in a 45 minute slot. You would likely need to cut content for shorter sessions. There are only basic buildup animations, so if you need to present offline that is also an option. Edit in your contact/introduction info and export and present as PDF.

The 1.0 version of the slides have been presented by Christian Fritsch at DrupalCamp Munich last week and I updated some content to the current 1.1 version as it is available now. I'll keep updating slides based on all your feedback. I shared the slides with public comments allowed, so keep the feedback coming there, comments here or some other way you can get ahold of me.

Resources to watch/listen to learn more include:

  1. Dries' State of Drupal presentation from DrupalCon Seattle
  2. Lullabot Podcast on Drupal 9
  3. Acquia Webinar on Drupal 9

Thanks to Acquia for funding me to create this slideshow and thank you for presenting it!

Categories: Drupal CMS

DEV :: Drupal, Skepticism and Spaceships...: Where is drush?

Drupal.org aggregator - Thu, 05/02/2019 - 15:58
Where is drush? Unifex Fri, 05/03/2019 - 10:58

Part of me is suspecting that I may be one of the lucky 10,000 today but I figure it's worth putting this out there because if I wasn't aware of this then there may be others too. It turns out that the version of Drush that you just installed may not be the version of Drush that executes your command.

So, as it happens there's a number of ways to install Drush. Older OSs may have it in the package management system, you may have just installed it globally using the instructions on the site, or, if your project is managed by composer it may have been installed as a site-local version. In my case I had messed it up just a little and had multiple versions hanging around and, despite having definitely downloaded and installed drush 8.2.3 to /usr/local/bin/drush and I confirmed that this was being called via which drush when I ran drush --version it informed me I was running version 9.6.2.

The thing that I didn't know... Drush will check the directory the site is in to see if there is a local-site version installed and pass off the request to that. So despite having Drush 8.2.3 installed and called from the command line the request was finding the local copy and returning results from that. If it wasn't for the fact that this was a Drupal 7 site and I'd inadvertently installed Drush 9.x locally via composer (Drush 9.x doesn't support Drupal 7.x) I'd never have known that this was how it worked.

Big thanks to Kirill for correcting my brain meat on this.

Planet Drupal
Categories: Drupal CMS

Drupal In the News: Drupal 8.7.0 release marks rigorous, unique update to Drupal 8

Drupal.org aggregator - Thu, 05/02/2019 - 10:54

Release offers all-new stable layout builder, meets web accessibility guidelines
 
Washington D.C., Wednesday, May 1, 2019 - The Drupal community announces an update to Drupal 8. This new version — Drupal 8.7.0 — is a leap forward in the Drupal content manager experience as a creative tool streamlining workflows and improving efficiency within teams. Drupal 8.7.0 also maintains the project's commitment to web content accessibility guidelines, enabling screen readers or keyboards to navigate options — meaning this version is accessible to all. 
 
Drupal's newly stable Layout Builder module enables a drag-and-drop editing experience, which means no custom code or theming is required in order to lay out pages. But Drupal goes far beyond similar offerings by competitors, empowering content editors with increased power and flexibility: enabling management of templated layouts, support for powerful overrides based on content-type, and support for one-off landing pages. 
 
“Not only can this version support basic use cases, it also supports advanced use cases,” said Drupal Founder Dries Buytaert. “These types of templated layouts and workflow updates are not available in competitors’ layout building tools.” 
 
Drupal 8.7.0 provides significant improvements over all past versions of Drupal, particularly by including JSON:API as a stable module in core. By enabling the JSON:API module, all Drupal entities such as blog posts, users, tags, comments and more become accessible via the JSON:API web service API. This is a powerful, standards-compliant, web service API to pull content into JavaScript applications, digital kiosks, chatbots, voice assistants and more. This propels Drupal further into the lead among headless content management systems, making it the clear choice for the backbone of digital experiences beyond the web.
 
Drupal 8.7.0 provides the JSON:API for reading and modifying resources, interacting with relationships between resources, and filtering, sorting, and pagination of resource collections. It also supports complex workflows, allowing for a staging or approval process. 
 
Tim Lehnen, Executive Director of the Drupal Association, said, “Drupal 8.7 is a milestone release for the Drupal project. It simultaneously extends Drupal's lead as a powerful, API-first content framework, and leapfrogs competitors' tools for content editors.” 

In addition to being incredibly powerful, JSON:API is easy to learn and put into practice, and uses all the existing tooling to test, debug, and scale Drupal sites. 

“This feels like the dawn of a new chapter for Drupal and its authoring experience and we’re certain we’ve only scratched the surface,” said Caroline Casals, a developer at Phase2 - a digital experience agency. 
 
Overall, this version streamlines the user experience for Drupal content creators and site builders, allowing front-end developers to work easily and efficiently. More than two years’ of commits from the open source community built this rigorous release. 
 
“On behalf of the Drupal Association and the Drupal community, I want to thank all of the contributors who made the Drupal 8.7.0 release possible,” Lehnen said. 
 
 
 
About Drupal
Drupal is content management software. It is used to make many of the websites and applications you use every day. Drupal has great standard features, easy content authoring, reliable performance, and excellent security. What sets it apart is its flexibility; modularity is one of its core principles. Its tools help you build the versatile, structured content that ambitious web experiences need.
 
About the Drupal Association
The Drupal Association is dedicated to fostering and supporting the Drupal project, the community and its growth. The Drupal Association helps the Drupal community with funding, infrastructure, education, promotion, distribution and online collaboration.
 

###

Categories: Drupal CMS

Lullabot: Lullabot Podcast: Drupal 9 with Angie Byron, Gábor Hojtsy, and Nathaniel Catchpole

Drupal.org aggregator - Thu, 05/02/2019 - 06:03

Matt and Mike talk with Angie "Webchick" Byron, Gábor Hojtsy, and Nathaniel Catchpole about the next year's release of Drupal 9. We discuss what's new, what (if anything) will break, and what will remain compatible.

Categories: Drupal CMS

InternetDevels: Meet JSON:API in Drupal core: API-first Drupal future is here!

Drupal.org aggregator - Thu, 05/02/2019 - 04:45

“After soliciting input and consulting others, I felt JSON:API belonged in Drupal core.”

Dries Buytaert, creator of Drupal

Read more
Categories: Drupal CMS

Issue 386

TheWeeklyDrop - Thu, 05/02/2019 - 01:47
Issue 386 - May, 2nd 2019
Categories: Drupal CMS

Pages