Inhalt abgleichen
Drupal.org - aggregated feeds in category Planet Drupal
Aktualisiert: vor 25 Minuten 15 Sekunden

Hook 42: Hook 42 at BADCamp 2017 - Sessions, Trainings, and Summits!

4. Oktober 2017 - 21:22

BADCamp is back and Hook 42 is embracing all the magical goodness! This year we are not only a proud sponsor of the largest free Drupal Camp, but we also have the awesome opportunity to share our expertise across several platforms. Join us at our Supercharged SEO & Accessibility training, the DevOps Summit, and four sessions.

aleksip.net: Values, community and technological choices

4. Oktober 2017 - 20:10
Drupal needs to adopt a JavaScript framework for its administrative interfaces. The selection of this framework is an important decision, which should not be based on just technical merits or popularity. Drupal has been an open source project and a community for over 17 years, and when we make decisions like this, our values should weigh more than what is the hottest JavaScript framework at the moment.

Last Call Media: Introducing Mannequin

4. Oktober 2017 - 18:21
Introducing Mannequin Rob Wed, 10/04/2017 - 12:21

Today, we’re excited to announce the first stable version of our new Component Theming tool, Mannequin. We’ve been working on this for months now, and couldn’t be happier with the progress we’ve made.

drunomics: DrupalCon Vienna 2017 Recap

4. Oktober 2017 - 16:53

Three days of sessions, discussions and meetings, one day for community, businesses, publishers and practices, and another day of code sprints - Drupalcon Vienna was a blast! It was very special experience for all our team members to have Drupalcon in town and we are proud to be among the supports of the event.


DrupalCon Vienna 2017 Sponsor

Here is a summary of our take-aways of the con:

Headless Drupal

One of the most discussed topics on DrupalCon Vienna was the idea of a headless CMS combined with a completely decoupled frontend. This way Drupal could not only serve as backend for a single website but as centralized data deliverer for applications of all kinds of devices. Combined with powerful JavaScript frameworks, like Angular or React, Drupal sites keep pace in the insanely fast changing world of web applications. Therefore Drupal should no longer be seen as an "all-inclusive"-CMS solution but as a single part in a modern Web-infrastructure and can return to its core strengths: Managing content.

As an example of how such a modern infrastructure could look like, kurier.at gave an insight of their system.


Adam Zielinski (CTO Telekurier Online Medien GmbH), © Amazee Labs

For further reading:

Contenta - API distribution
API-first initiative
Session: Headless, stateless, DB-less: how Kurier.at is transforming digital production with Drupal, NodeJS and Platform.sh

Accessibility

Andrew Macpherson, Théodore Biadala and Kristen Pol are part of the core accessibility team and it's always interesting to see what Drupal has achieved in all those years adressing persons with disabilities. The team briefly talked about some components of accessibility and the recent core accessibility improvements and what challenges they are facing. They gave half of their time room for discussions, which was very enlighning and informative. For instance automated testing can only cover around 40% of all accessibility issues. To get reliable test results many testss need to be done by real persons.

Another highly interesting, mind opening talk by Everett Zufelt was about how even little changes to the code can have a huge impact on a site's accessibility. Bringing in just a little more structure and semantic by using a wide variety of the available HTML5 tags, instead of just using <div> and <span>, is a big step forward for people depending on screen readers. The presentation also featured a list of good and bad examples which obstacles can be found and how most of them can be easiliy eliminated.


Andrew Macpherson, Théodore Biadala, Kristen Pol, © Amazee Labs

For further reading:

Session: JavaScript and Accessibility: Don't Blame the Language
Session: Core Accessibility: How are we doing, and what can we do better?
NYPL Design Toolkit
Manuel Matuzovic: Writing CSS with Accessibility in Mind

eleven Administration Theme

The current administration theme in Drupal 8 looks nearly the same as in Drupal 7. No large improvements have been made in Drupal 8. Although there is an initiative starting on developing a new administration them (with React) this approach will take some time before it will be part of Drupal core. However, there is already a modern administration theme on the way: eleven.

The eleven Administration Theme should be a modern way of how an administration should look like and behave with CSS variables, CSS grid and other CSS techniques supported in most modern browsers. As this is not intended for a wider audience and addresses solely administrators and editors backward compatibility with older browsers is not implemented.

There is also an own subchannel in the Drupal slack channel for the eleven theme.


Morten Birch, © Amazee Labs

For further reading:

Session: Admin Theming & design for a modern Drupal 8
BoF: Admin theme eleven
Drupal 8 Admin Theme: Eleven

UI Patterns

With UI Patterns it should be easy to get rid of the templates folder in the theme and connect the display of a field to a template in the administration backend directly. Advantages are a better overview and less Twig files.

For further reading:
Session: Introducing the UI Patterns module: use atomic UI components everywhere in Drupal 8
Drupal module: UI pattern

Landing Pages and Layouts

The Thunder team organized a BoF about "Landing Pages and Layouts" which lead to an interesting discussion on how layouts can be implemented in Drupal, as well as the tools & modules needed for editors to be able to have the necessary "content blocks" available for building good landing pages.
During the keynote, Dries has shown a demo of the new Layout Builder, which is currently worked on for inclusion in Drupal 8.5. As Tim Plunkett noted there will be an upgrade path of panelizer to the new layout builder in core, so panelizer can be considered a future-proof solution for layouts right now.


Driesnote at DrupalCon Vienna 2017, © Amazee Labs

For further reading:
BoF: Landing Pages and Layouts
Drupal Thunder Issue: Landing Pages and Layouts
Drupal Core ideas: Add a Layout Builder to core
Drupal Issue: Implementation issue for Layout Builder

Amazee.io: lagoon

Amazee.io demo-ed lagoon, their fully open-source docker production system. It's powered by docker compose, kubernetes and openshift and nice CLI and UI tools are planned for it. This and the branch-ed based auto-creation of new environments make it an interesting development that could be the base for the next version of our in-house docker CI system, which is able to create test-sites per feature-branch including initialized content. Amazing stuff! ;)

For further reading:
Introducing Lagoon, amazee.io’s fully open source Docker in Production system

Mediacurrent: Re-Learning Accessibility for a Decoupled Front End

4. Oktober 2017 - 16:45

Recently I was lucky enough to catch a workshop by Brian Sinclair entitled 'Accessibility: The Basics and Beyond'.  The workshop was part of the DinosaurJS conference in Denver CO.

As part of the accessibility group at Mediacurrent ,I was excited to see the issue being addressed at a javascript conference.

Wunderkraut Sweden Blog: Highlights from Drupalcon Vienna

4. Oktober 2017 - 9:06
So last week we went with a big crowd (16 of us) from Digitalist to Drupalcon in Vienna to join the about 2000 other attendees. We went to sessions and BOF:s about caching in Drupal 8, Symfony components in Drupal core, Docker, Config split, Decoupled Drupal, Multi-sites in Drupal 8 and a lot of other things.   So last week we went with a big crowd (16 of us) from Digitalist to Drupalcon in Vienna to join the about 2000 other attendees. We went to sessions and BOF:s about caching in Drupal 8, Symfony components in Drupal core, Docker, Config split, Decoupled Drupal, Multi-sites in Drupal 8 and a lot of other things. Driesnote   A standard thing at Drupalcon is Dries talking about The state of Drupal - called the Driesnote – that means talking about all the good things we have in Drupal… Read More

Lullabot: Behind the Screens with Mauricio Dinarte of Agaric

4. Oktober 2017 - 6:00
Hailing from Managua, Nicaragua, Mauricio Dinarte takes some time from his pilgrimage across Europe to talk to us about teaching people Drupal from the ground up, no matter what language you speak. At BadCamp in October he'll be administering a training with Anna Mykhailova from Digital Echidna called "Getting Started with Drupal," then Thursday will be sitting in on the DevOps summit to talk about Behat testing. If you don't have plans November 17 and 18, you can visit him in Managua at Lakes & Volcanoes Drupal Camp! Many thanks to Felix Delattre (xamanu on Drupal.org) for giving Mauricio his first big break in Drupal.

OSTraining: How to Create Fancy Pagers in your Drupal Views with Pagerer

4. Oktober 2017 - 5:24

The Pagerer module provides additional preset styles for Drupal standard pages and Views. It is a very simple module with styling options for everyone.

In this tutorial, you will learn how to add a pager to a View with Pagerer. Let's get started.

OSTraining: How to Use the New Media Features in Drupal 8.4

3. Oktober 2017 - 21:35

Drupal 8.4 is out now, and it contains new media handling features.

For many years, Drupal has shipped with almost no media handling. This was the most commonly requested feature whenever we did Drupal training.

If you missed it, here's our overview of everything new in Drupal 8.4. In this tutorial, we'll walk you through how to use Drupal's new media options. 

Drupal Modules: The One Percent: Drupal Modules: The One Percent —Hidey Help (video tutorial)

3. Oktober 2017 - 15:56
Drupal Modules: The One Percent —Hidey Help (video tutorial) NonProfit Tue, 10/03/2017 - 08:56 Episode 38

Here is where we seek to bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll think about  Hidey Help, a module which hides and displays your help text.

Acquia Lightning Blog: Creating a new instance of an existing site

3. Oktober 2017 - 15:43
Creating a new instance of an existing site Adam Balsam Tue, 10/03/2017 - 09:43

Throughout the development and support lifecycle of a site, it is often necessary to install a fresh version of your application in a new environment with all of the existing site's configuration. For example, a new developer might need to set up their environment for the first time or your CI system might want a fresh install for tests. Basically:

As a user I want to be able to install Drupal from a package of configuration that is maintained in git.

Existing solution (pre Drupal 8.4.x): Drush --config-dir option

Installing a site from existing config is not as easy as going through the install process and then importing config though because the fresh install will have a different site UUID than the existing app and Drupal won't allow you to import configuration on sites with different UUIDs. To work around this, Drush introduced the --config-dir option to the site-install command which imported the configuration during install and magically worked around the UUID issue.

That workaround did have other issues including the fact that base fields defined in module or profile config would end up with conflicting UUIDs. But critically, Drush 9 only supports the --config-dir option when installing the Minimal profile - and Drush 8 isn't compatible with Drupal 8.4.x. So we need a new solution.

Investigated approaches

The Drush maintainers have suggested using the Config Installer profile. We tested it and works great, but:

  1. It's undocumented.
  2. It won't work if you're using Lightning as a Base Profile, which we recommend.

In theory, you could also manually set your site's UUID after install and then import your config, but this is sloppy and is an abuse of UUIDs. It also wouldn't solve the problems with base fields ending up with conflicting UUIDs.

Solution (Drupal 8.4.x): Another core patch

Enter the following issue: [#2788777] Allow a profile to be installed from existing config. The patch in #91 allows you to add a simple boolean to your sub-profile's info file that will automatically install your site with config from the config sync directory defined in your settings.php file. The end result is that no matter how you install your site (via Drush, the UI, or Drupal Console), your existing config will also be imported.

The only problem is that the scope of the issue is still being debated. As a result, Lightning can't bring the patch in just yet. But we will as soon as the issue is RTBC or we get further clarity about the scope. In the meantime, you can bring the patch in yourself.

Instructions

Given:

  • Your site's config sync directory is located in a VCS tracked directory (e.g. "../config/sync").
  • You use a sub-profile.
  1. Apply the patch #91 from issue #2788777 to drupal/core, in your root composer.json file: "patches": { "drupal/core": { "Allow a profile to be installed from existing config": "https://www.drupal.org/files/issues/2788777-91.patch" } }
  2. Add the boolean flag to your sub-profile's info file config_sync: true

     

The result will be that each time you install your site, all of your existing configuration will also be imported.

If you are not using a sub-profile, you can simply use the Config Installer profile mentioned above.

  1. Add the Config Installer profile to your codebase
  2. During installation select Config Installer as the profile
  3. Point Config Installer to your exported config directory (the resulting installation profile will still be Lightning even though you selected Config Installer)

If you're using BLT in your project (recommended), a lot of the configuration setup is already handled for you. See BLT's notes about updating to Drupal 8.4.x.

Amazee Labs: Recap of #DrupalConEUR Vienna

3. Oktober 2017 - 15:11
Recap of #DrupalConEUR Vienna

Fully recharged and back in Zurich, let’s recap what happened at DrupalCon Vienna; a week filled with exciting sessions, motivating BoFs (Birds of a Feather) and entertaining social evenings.

Daniel Lemon Tue, 10/03/2017 - 15:11

Of all the sessions, keynotes, BoFs, and social events that I attended during the week, the most notable and inspiring was Joe Shindelar’s keynote “Everyone Has Something to Share.” It was a very fun, motivating, and inspirational talk that led the crowd through Joe's personal experience of sharing and how he’s learned a lot about himself and the community. I highly recommend watching the captivating video of the talk.

Another session that I highly enjoyed was “Motion Design - Improving UX with animations” by Sarah Geissberger and Lisa Thesen. Watching the DrupalCon Vienna logo morph into past DrupalCon logos while learning about 3 of the 10 principles of motion design felt incredibly good.

It was a highly informative talk with lots of fun animations teaching the crowd that motion design should enhance the user's experience and add meaning to a design. Sarah and Lisa reminded us that it’s a powerful design tool that every designer should pay attention to.

Saša Nikolič and Tadej Baša gave their immense talk “Everybody cheer! Here comes Media!” to a completely full room. They took the crowd through the history of media in core, through the pain points every developer and site builder went through with the numerous media modules that required configuration and setup, to what we have now in Drupal 8.

Aside from the sessions, I also highly enjoyed the Drupal Cinema Zapping, a 15-20 minute video showcasing the creative side to the Drupal community in a collage of extremely entertaining video clips, Oida!

As we’ve all heard, unfortunately, the Drupal Association won’t be hosting DrupalCon Europe 2018, however over the course of the past week, in different sessions and BoFs, the community came together and decided to create Drupal Europe 2018. There will be a post-DrupalCon Virtual Meeting on Thursday October 12, at 16:00 CEST - be sure to join the webinar.

 

For more photos, check out the DrupalCon Vienna Flickr album pool or the Amazee Labs DrupalCon Vienna Flickr collection.

I look forward to meeting you at a future event in Europe, perhaps in Belgrade for Drupal Iron Camp.

DrupalEasy: DrupalEasy Podcast 197 - - BADCamp with AmyJune Hineline

3. Oktober 2017 - 14:50

Direct .mp3 file download.

AmyJune Hineline (volkswagenchick), Community Lead for Hook 42, joins Mike Anello to talk about BADCamp 2017 and her fantastic job.

Interview
  • BADCamp - October 18-21, 2017 - University of California at Berkeley.
DrupalEasy News Sponsors Follow us on Twitter Subscribe

Subscribe to our podcast on iTunes, Google Play or Miro. Listen to our podcast on Stitcher.

If you'd like to leave us a voicemail, call 321-396-2340. Please keep in mind that we might play your voicemail during one of our future podcasts. Feel free to call in with suggestions, rants, questions, or corrections. If you'd rather just send us an email, please use our contact page.

Valuebound: Managing Drupal 8 applications remotely using Drush aliases

3. Oktober 2017 - 10:33

Have you ever thought that your business needs to make sure that your web application has a quick release in order to sustain the long race. This sort of has become easy to manage by continuous development & continuous integration using Drush & Drush Aliases. Drupal web development is one such place where multiple command-line interface (CLI) tools are available to make developer’s life easy, and among them, the two important things are Drush and Drupal Console.

In this blog, we will take a brief look at Drush & Drush Aliases and how it can make developer’s tedious manual web development tasks easy by offering various commands to…

Valuebound: Step-by-step guide to Drush & Drush Aliases to make sure your web application has quick releases

3. Oktober 2017 - 10:33

Have you ever thought that your business needs to make sure that your web application has a quick release in order to sustain the long race. This sort of has become easy to manage by continuous development & continuous integration using Drush & Drush Aliases. Drupal web development is one such place where multiple command-line interface (CLI) tools are available to make developer’s life easy, and among them, the two important things are Drush and Drupal Console.

In this blog, we will take a brief look at Drush & Drush Aliases and how it can make developer’s tedious manual web development tasks easy by offering various commands to…

aleksip.net: Should Facebook be trusted on React and patents?

3. Oktober 2017 - 9:48
Dries Buytaert, the BDFL of Drupal, has just published a blog post in which he states that “React is the right direction to move for Drupal's administrative interfaces”. A related issue has also been opened on drupal.org.

Agiledrop.com Blog: AGILEDROP: Our Drupal Blogs from September

3. Oktober 2017 - 9:40
It's the beginning of the new month, so it's time to look at all the Drupal blogs we have written for you in September. First, we have announced that after a long time, we will be present on any Drupal event. During holidays in July and August, we were not so active in that part, so it was right to point out that we were heading to DrupalCamp Antwerp at that time. Our Commercial director Iztok Smolic had a session there and our client adviser Ales Kohek was taking part in any of the Drupal events for the first time. But more about that later. Our second blog topic in September was again… READ MORE

Appnovation Technologies: Appnovator Spotlight: Ed Cann

3. Oktober 2017 - 8:50
Appnovator Spotlight: Ed Cann Here's an insight into Ed, the man with the 'Cann do' attitude... Who are you? What's your story? I'm Ed, a welshman born an bred in Swansea. I grew up fiddling with computers from an early age starting with my Commodore +4. After university I decided that Engineering wasn't for me and Web development was where my talent lies so started with a few f...

PreviousNext: DrupalCon Vienna session retro: Test all the things!

3. Oktober 2017 - 5:57
Share:

Last week I was fortunate enough to attend and deliver a session at DrupalCon Vienna. The session was based around leveraging and getting productive with the automated testing tools we use in the Drupal community.

by Sam Becker / 3 October 2017

For the kind of large scale projects we work on, it's essential that automated testing is a priority and firmly embedded in our technical culture. Stability and maintainability of the code we're working on helps to build trusting relationships and happy technical teams. I have for a long time been engaged with the developments of automated testing in Drupal core and internally we've worked hard to adapt these processes into the projects we build and fill-in any blanks where required.

I was fortunate enough to be selected to share this at DrupalCon Vienna. Without further ado, I present, Test all the things! Get productive with automated testing in Drupal 8:

Our current testing ethos is based around using the same tools for core and contrib for our bespoke Drupal project builds. Doing so allows us to context-switch between our own client work and contributed project or core work. To make this work we've addressed a few gaps in what's available to us out of the box.

Current State of Testing

I had some great conversations after the session with developers who were just starting to explore automated testing in Drupal. While the tools at our disposal are powerful, there is still lots of Drupal-specific knowledge required to become productive. My hope is the session helped to fill in some of the blanks in this regard.

E2E Testing

Because all of the test cases in core are isolated and individually setup environments/installations, end-to-end testing is tricky without some additional work. One of the touch points in the session was based around skipping the traditional set-up processes and using the existing test classes against pre-provisioned environments. Doing so replicates production-like environments in a test suite, which helps to provide a high-level of confidence tests are asserting behaviors of the whole system. Bringing this into core as a native capability is being discussed on drupal.org and was touched on in the session.

JS Unit Testing

One thing Drupal core has yet to address is JavaScript unit testing. For complex front-ends, testing JS application code with a browser is can become clumsy and hard to maintain. One approach we've used to address this is Jest. This nicely compliments front-ends where individual JavaScript modules can be isolated and individually tested.

Summing up, attending DrupalCon Vienna, presenting the session and meeting the members of the broader community was a great experience. I'm hopeful my session was able to contribute to the outstanding quality of sessions and technical discussions.

Tagged DrupalCon, DrupalCon Vienna, Testing

Posted by Sam Becker
Senior Developer

Dated 3 October 2017

Add new comment

Dcycle: Letsencrypt HTTPS for Drupal on Docker

3. Oktober 2017 - 2:00

This article is about serving your Drupal Docker container, and/or any other container, via https with a valid Let’s encrypt SSL certificate.

Step one: make sure you have a public VM

To follow along, create a new virtual machine (VM) with Docker, for example using the “Docker” distribution in the “One-click apps” section of Digital Ocean.

This will not work on localhost, because in order to use Let’s Encrypt, you need to demonstrate ownership over your domain(s) to the outside world.

In this tutorial we will serve two different sites, one simple HTML site and one Drupal site, each using standard ports, on the same Docker host, using a reverse proxy, a container which sits in front of your other containers and directs traffic.

Step two: Set up two domains or subdomains you own and point them to your server

Start by making sure you have two domains which point to your server, in this example we’ll use:

  • test-one.example.com will be a simple HTML site.
  • test-two.example.com will be a Drupal site.
Step three: create your sites

We do not want to map our containers’ ports directly to our host ports using -p 80:80 -p 443:443 because we will have more than one app using the same port (the secure 443). Port mapping will be the responsibility of the reverse proxy (more on that later). Replace example.com with your own domain:

DOMAIN=example.com docker run -d \ -e "VIRTUAL_HOST=test-one.$DOMAIN" \ -e "LETSENCRYPT_HOST=test-one.$DOMAIN" \ -e "LETSENCRYPT_EMAIL=my-email@$DOMAIN" \ --expose 80 --name test-one \ httpd docker run -d \ -e "VIRTUAL_HOST=test-two.$DOMAIN" \ -e "LETSENCRYPT_HOST=test-two.$DOMAIN" \ -e "LETSENCRYPT_EMAIL=my-email@$DOMAIN" \ --expose 80 --name test-two \ drupal

Now you have two running sites, but they’re not yet accessible to the outside world.

Step three: a reverse proxy and Let’s encrypt

The term “proxy” means something which represents something else. In our case we want to have a webserver container which represents our Drupal and html containers. The Drupal and html containers are effectively hidden in front of a proxy. Why “reverse”? The term “proxy” is already used and means that the web user is hidden from the server. If it is the web servers that are hidden (in this case Drupal or the html containers), we use the term “reverse proxy”.

Let’s encrypt is a free certificate authority which certifies that you are the owner of your domain.

We will use nginx-proxy as our reverse proxy. Because that does not take care of certificates, we will use LetsEncrypt companion container for nginx-proxy to set up and maintain Let’s Encrypt certificates.

Let’s start by creating an empty directory which will contain our certificates:

mkdir "$HOME"/certs

Now, following the instructions of the LetsEncrypt companion project, we can set up our reverse proxy:

docker run -d -p 80:80 -p 443:443 \ --name nginx-proxy \ -v "$HOME"/certs:/etc/nginx/certs:ro \ -v /etc/nginx/vhost.d \ -v /usr/share/nginx/html \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ --label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy \ jwilder/nginx-proxy

And, finally, start the LetEncrypt companion:

docker run -d \ --name nginx-letsencrypt \ -v "$HOME"/certs:/etc/nginx/certs:rw \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --volumes-from nginx-proxy \ jrcs/letsencrypt-nginx-proxy-companion

Wait a few minutes for "$HOME"/certs to be populated with your certificate files, and you should now be able to access your sites:

  • https://test-two.example.com/ should show the Drupal installer (setting up a MySQL container to actually install Drupal is outside the scope of this article);
  • https://test-one.example.com should show the “It works!” page.
  • In both cases, the certificate should be valid and you should get no error message.
  • http://test-one.example.com should redirect to https://test-one.example.com
  • http://test-two.example.com should redirect to https://test-two.example.com
A note about renewals

Let’s Encrypt certificates last 3 months, so we generally want to renew every two months. LetsEncrypt companion container for nginx-proxy states that it automatically renews certificates which are set to expire in less than a month, and it checks this hourly, although there are some renewal-related issues in the issue queue.

It seems to also be possible to force renewals by running:

docker exec nginx-letsencrypt /app/force_renew

So it might be worth considering to be on the lookout for failed renewals and force them if necessary.

Enjoy!

You can now bask in the knowledge that your cooking blog will not be man-in-the-middled.

This article is about serving your Drupal Docker container, and/or any other container, via https with a valid Let’s encrypt SSL certificate.