Every situation speaks of itself by denial, in order to attempt to escape, by simulation of death, its real agony.
This module provides a Webform-like interface for creating reusable bundles of components (fields). The component bundles can be easily added to new or existing Webforms.Features Current
- Edit bundles
- Delete bundles
- Admin listing
- Simple to add to new or existing webforms
- Works with Webform 7.x-3.x and 7.x-4.x
- Bundle cloning
- Bundle locking
It’s strange but true: seven years after the PDF reference was published as an ISO standard (ISO-32000-1), there are still developers who think that the Portable Document Format is a closed document format owned by Adobe. PDF is often perceived as a strange, impenetrable document format. It’s high time we bury that idea and take a look at what’s going on in the world of PDF today...
This will be a momentus year for Drupal.
Some people may be predicting a year of security vulnerabilities. I believe we have a year of innovation ahead of us.
Drupal's ecosystem of contributed modules is playing catch-up since the release of version 8. It has been years since CCK and Views were just experiments in the contrib module space. They are now established as foundation of Drupal core. Contrib (the wider community of Drupal developers) can now get back to innovating.
"Get back to innovating" isn't much of a prediction. I thought about it some more and came up with three things I think are likely to happen in 2016...CMS-as-a-Service
The era of the monolythic, does-it-all, CMS is coming to an end. The Drupal community talk a lot about progressive decoupling  . But, the idea of a fully decoupled backend is becoming established in other areas. Services like Contentful already provide a fully decoupled, headless CMS.
Systems become decoupled, we move to a microservice architecture, and evaluate server-less options. It is conceivable that a Content API could become part of the infrastructure. Amazon are the leading Infrastructure-as-a-Service provider. A Content API (or CMS-as-a-Service) would fit in their suite of cloud computing services.
I did an experiment recently where I put Amazon's API Gateway in front of an EC2 instance running Drupal. This gives a more robust API on top of Drupal 8's Rest support. Monitoring, traffic management, and flexible security controls are standard. This approach offers several advantages, including: Swagger support; CloudFront caching for performance; and input/output translation with data models defined with JSON schema.Acquia IPO
Going public was always on the cards for Acquia, but they said they are in no rush to IPO. This could be the year. Adoption of D8 will being changes to the user base and continued adoption at the enterprise level.
This will be accompanied by more consolidation in the Drupal world. One of the biggest risks I see is with Drupal companies taking on bigger projects. A single client becomes a large contributer to their revenue, in some cases I've heard as much as 70%. This is a risky situation to be in, if you rely on one client for a majority of your business. The solution is for Drupal companies to come together to form larger entities.
This is just a continuation of an existing trend. Wunderkraut, was the most high-profile merger in the community. Followed by many more, involving companies such as FFW, MediaCurrent, Phase2, and i-Kos.Composer Support and Decoupled Components
Composer support in Drupal needs some work. There are some big wins to be had by embracing the Composer (and Packagist) workflow.
Commerce Guys are leading the way with Drupal Commerce. They have been factoring out components into separate libraries. Other PHP projects beyond Drupal are making use of them, and contributing to their development. Expect more contrib projects to factor out separate PHP packages of re-usable code. Then Drupal modules become just a thin layer of glue.
There has been a trend for PHP Frameworks to decouple their core components. The Symfony Components split from the full stack framework has meant much wider adoption. They are used in many PHP projects, including Drupal.
PHP-FIG exists to promote interoperability between frameworks. This year will see further initiatives to clean up Drupal's code. Such as, removal of anti-patterns like service locator. The eventual aim will be to decoupling components from Drupal core.
Can you imagine using Views on a non-drupal project?
The process of debugging can be a difficult one, and the process of troubleshooting performance even more so. Luckily there are some great tools out there to help with improving the performance of web applications. Previously I wrote about generating flamegraphs from XHProf to visual stacktraces and identify bottlenecks. Flamegraphs are very helpful, but still require you to setup XHProf, download the tools for making the flamegraph SVG, and appropriately change your code to save the XHProf data. Luckily there is one of my favorite tools, Blackfire, that provides continuous PHP performance testing.
One second can define a conversion or not, and this is highly critical when it comes to eCommerce. Bottlenecks can happen in your catalog, viewing products, or even the Drupal Commerce order's life cycle. A great example can be found on this Drupal commerce issue: https://www.drupal.org/node/2653904. It's a patch to improve the deletion of line item references from orders to cut down on number of saves for orders. There's profiling done with both XHProf and Blackfire.What is Blackfire?
What about Blackfire makes it my favorite? Blackfire provides on-demand profiling, unlike XHProf, which is always collecting data. Blackfire has a PHP extension called Probe that collects raw performance data when requested. Then the Agent sends that data to Blackfire's website for processing and viewing. Companion is a browser extension (Chrome only currently) that will trigger the Probe to collect performance data on a page.What you get
It speaks for itself. Here is a Blackfire profiling result from a catalog page in the Commerce Kickstart 2 demo store (Drupal without caches enabled.)
As you can see, we spend a lot of time in Views. Enabling Views cache for our catalog (and anonymous page cache) would greatly speed up our page's load time. Here are results with page caching enabled, and search based Views caching. From 1.88s to 55ms!How to get started
While there is some pretty amazing documentation on installing Blackfire's components, I'll provide a quick start guide. Well, it's a quick start if you use Docker! Blackfire provides an image for their probe and agent. All you need to do is link it to your php-fpm (or whatever container serves your PHP.)
If you use Docker Compose, you would need to add the following configuration, and add a new link to this container from your PHP container. You will just need to get your API credentials from your Blackfire account. Restart your app and you're good to go!blackfire: image: blackfire/blackfire ports: ['8707'] environment: BLACKFIRE_SERVER_ID: xx-xx-xx-xx-xxxx BLACKFIRE_SERVER_TOKEN: dsfsd! BLACKFIRE_LOG_LEVEL: 4
See the full documentation for Docker integration: https://blackfire.io/docs/integrations/docker
Each day, more Drupal 7 modules are being migrated over to Drupal 8 and new ones are being created for the Drupal community’s latest major release. In this series, the Acquia Developer Center is profiling some of the most prominent, useful modules available for Drupal 8. This week: Scheduled Updates.Tags: acquia drupal planetscheduled updatedrupal 8
How to Improve Your Apps Ranking With Positive Reviews And a Higher Rating: 5 Simple Steps - by Eugine Dychko
There are two exciting Drupal community events happening in Portland soon. The first is the Drupal Global Sprint Day on January 30th - this coming Saturday - which is a day focused on bringing together volunteers to contribute work such as documentation, testing, code, and design to the Drupal project. The project needs improvements from a wide variety of skill sets, and it’s a great way for new folks to contribute to Drupal. The second is Drupal Global Training Day, a free Drupal 8 training for new community members. We’re thrilled to be involved with both!Drupal Global Sprint
We’re hosting the Portland sprint at our office. Bring your projects and come code with us! If you've wanted to contribute to Drupal 8, but don't know how to begin, we’re happy to help you get started. New contributors are encouraged to attend, as we will be providing sprint training and new contributor onboarding, so don't worry if you've never contributed to Drupal before. The sprint starts at 9:00 am and goes until 5:00 pm. Programming help, snacks, coffee, tables, and wifi will all be provided by ThinkShout.Drupal 8 Training
February 6th is the Drupal Global Training Day. We will be leading the Portland training at the Drupal Association headquarters, and it's open to everyone. This free training is ideal for new community members and people who are new to Drupal – but PHP developers not familiar with Drupal should also find the training valuable. The training includes coffee and snacks. Participants need only bring a laptop. Everything you need to know to get started will be discussed in detail at the event. We’ll cover:
- An introduction to CMS
- File management and databases
- Site building basics with content types, fields, and views
- Installation of modules and themes
- Deploying to your web host with Git
- Introduction to Drupal 8 theming with Twig templates
- Drupal 8 configuration management
These two global Drupal events offer something for Drupal folks of all skill levels, helping us to tap into Portland’s strong Drupal community. I hope you’ll join us for either (or both!) of these great events.
This is a very simple module that allows you to create Hubspot form blocks on your Drupal sites. The module also comes with a new field type so each entity could have it's own form.
No need to copy embed code from Hubspot and paste it into your website.
Enable it, provide an API key and you're ready to use the module.