Planet Drupal

Subscribe to Planet Drupal feed - aggregated feeds in category Planet Drupal
Updated: 18 hours 10 min ago

Pantheon Blog: Turn on Twig Debug Mode in Drupal 8 on Pantheon

10 October 2016 - 6:00am
When working on Drupal 8 theming, it is very helpful to have Twig debug mode on. Debug mode will cause twig to emit a lot of interesting information about which template generated each part of the page. The instructions for enabling debug mode can be found within the comments of the file, among other sources. In short, all you need is the following in your services.yml file:  
Categories: Drupal

Paul Johnson: Help Dries crowdsource Drupal 8 success stories

10 October 2016 - 2:14am

In little over a month Drupal 8 will be one year old. To mark this momentous occasion Dries Buytaert, Drupal’s founder, will champion noteworthy web sites and applications powered by Drupal 8.

Have you launched a Drupal 8 web site or application this year? Dries would like to hear from you. We’ve prepared a short web form so you can tell him your Drupal 8 success story.

Please spread the word

To reach the widest potential audience and capture the very best examples I encourage your to share this blog post with colleagues, peers, clients. Please email, share on social media, speak to your clients.

Beyond the Drupal shops developing applications our objective is to attract submissions from end users using Drupal 8. If you represent an organisation, enterprise, SME, startup, manufacturer, government department (and more) using Drupal 8 we want to hear from you.

So tell the world, complete the short form and help us celebrate Drupal 8.

Deadline for submissions is November 11th.

Categories: Drupal

Enzolutions: A week in Paris

9 October 2016 - 5:00pm

Last week I had the opportunity of visit Paris, France for a week as para of my tour Around the Drupal world in 140+ days.

Sadly for me, I got a #drupalflu in Drupal Con, Dublin; So I wasn't in the best shape to enjoy the city.

I want to say thank you to Sebastien Lissarrague and his family for allowing me to stay with them in their home.

During my visit, I had the opportunity to participate in the local Drupal Meetup of Paris community.

Also, I visited some companies like Koriolis, Sensio Labs and

At Koriolis I have the opportunity to show the owner and developers the Drupal Console project to accelerate the Drupal 8 adoption in their projects.

During my visit to Sensio Labs I had a session with part the Symfony Core development team, to show them how we have been using the Symfony Console in Drupal Console project.

During my visit at I learn I little bit how they enable to their Drupal 8 user the usage of Drupal Console project. Next week I will write an articule about that.

About the city, I think anything that I could say about Paris will be nothing compare how beautiful it's; I just could recommend you to visit three mandatory places in you visit.

Eiffel Tower

Louvre Museum


Airplane Distance (Kilometers) Dublin , Ireland → Paris, France → San Jose, Costa Rica 9.957 Previously 96,604 Total 106.561 Walking Distance (steps) Dublin 116.133 Previously 1.780.955 Total 1.897.088 Train Distance (Kilometers) Today 0 Previously 528 Total 528 Bus/Car Distance (Kilometers) Today 0 Previously 2.944 Total 2.944
Categories: Drupal

Steve Purkiss: Leapfrog the Drupal Learning Curve & Architect the Perfect Solution in 3 Simple Steps

9 October 2016 - 6:06am
Leapfrog the Drupal Learning Curve & Architect the Perfect Solution in 3 Simple Steps Steve Purkiss Sun, 10/09/2016 - 14:06

"Drupal has a steep learning curve" is something I hear time and again, however I feel this is a misguided perception and something we need to work towards changing - especially now focus is on the adoption journey. Learning how to 'Drupal' is actually incredibly easy - the trick is to understand exactly what Drupal is and how to mould it to your needs - this is what I'm going to show you how to do in three simple steps.

Step 1: Discover what Drupal doesn't know

This is by far the most important step of the process, hence why I go into much further detail than the other two - skim if you so wish but I assure you the story is there for a reason!

We've been here before

As of writing, Drupal has been around for 15 years and has solved many problems associated with building a wide range of web sites and applications, embedding this knowledge in either the core Drupal distribution or one of the 35,000+ modules available on the site. Drupal's decision to only provide backwards-compatibility for content and not functionality means this functionality has had the ability to improve over time and make the most of innovation in technology, for example the recent big jump from mostly procedural programming to object-oriented.

A note about the jump from procedural to object orientation

This latest jump was a big one - Drupal was developed before object orientation was available in PHP (the language Drupal is written in), and so developed its own system of 'hooks'. You use hooks to interact with Drupal core to override functionality in order to make Drupal do what you want it to do for you. You can think of hooks like the ones on a coat stand - the trouble here was as different modules and themes overrode hooks, like an overloaded coat stand with many different coats on each hook, it became increasingly harder to work out what hook was changing what and when in the process it was changing it.

There are still hooks in Drupal 8, but these may disappear in future versions of Drupal as the migration to object-orientation continues. An added benefit is more backwards compatibility than before for future versions, so the change between versions 8 and 9 shouldn't be as pronounced as the change from 7 to 8 as we don't have to perform again such a big move as changing the fundamental way the entire code works. I believe there's plans to support backwards compatibility over two major versions from now on, so 9 will be backwards compatible with 8, 10 with 9, but not 10 with 8 - YMMV, etc.!

Knowledge carried throughout generations Courtesy @sgrame:

The key point to understand here is what Drupal brings along with it as it progresses from version to version. Whilst the underlying code may change in order to improve and make the most of the latest innovation in programming languages, the knowledge, experience, and best practices gained and shared from its deployment to millions of sites is maintained in the API and module layer. It is unlikely what you are trying to build is unknown to Drupal in some way or another, it has dealt with everything from simple brochureware sites which look the same to everyone to sites such as where everyone who visits sees a personalised version of the site. As I often like to quip, I've never been asked for Rocket Science and even if I was, NASA uses Drupal ;)

This development process is fundamentally different to how other systems on the market work, with many other popular ones focusing on ease of use at the expense of progressive innovation, and is why you see Drupal have a larger share of the market on sites with complex requirements. The adoption of semantic versioning means there are now minor releases which include bug fixes along with both new and experimental functionality, and a new version of Drupal is released every six months. We are already up to version 8.2, and with current focus on 'outside-in' it is becoming easier for people used to systems other than Drupal - or none at all - to use Drupal, however it is not easy to visualise your end goal and know how to get there, or there is a module or modules already out there which could help you along the way to achieve your desired outcome without having to code anew.

To help overcome this out-of-the-box experience there are many ongoing initiatives to provide default content, make module discovery easier, build focused distributions, etc. but they will all take time. There is a way to approach development which means you don't end up going down the wrong path or developing functionality which already exists, it is to discover what exactly it is you want to build Drupal doesn't already know about and focus only on functionality required which is specific to your situation and no other.

What makes you different?

I recently provided the architecture for a high-profile specialist travel site - a six-figure project which unfortunately as with many projects I'm involved in I'm under non-disclosure agreements, doesn't mean I can't talk about the approach I took though, and this is a particularly good example.

As they were merging a number of existing systems I could've just looked at the existing data, however there is nothing to say those systems were designed well and we don't want to fall into the trap which I see many times where people re-create bad systems. Drupal is a very flexible system, many others require you to fit your data into how they work. So by asking the client to explain how their organisation worked and what was different about themselves as opposed to other similar organisations I discovered there were six distinct areas:

  1. Activity - their offerings were split into distinct activity types
  2. Resorts - they operate their own resorts
  3. Accommodation - each resort contains one or more different types of accommodation
  4. Region - the organisation had their own definition of a region, some spanning more than one country
  5. Departure Gateways - they fly out from a limited number of airports
  6. Arrival Gateways - resorts are serviced by one or more local airports

Everything else on the system was something Drupal would have dealt with before in one way or another - number of rooms, features of accommodation and resorts, and so on. These could easily be achieved using fields, taxonomy terms, and everything else Drupal provides out-of-the-box.

Design with the future in mind

I also took the time to observe the operations of the organisation as I walked around their office. I noticed the majority of people were answering calls, so I asked what exactly they had to deal with on the phone - people wanting more information on particular deals, issues with accommodation crop up from time to time - all the usual a travel company would have to deal with but more so here as they owned and operated the resorts. The point here is there's a whole wealth of user requirements contained here which although weren't in the scope of this current phase of development, by having them in mind when designing a system it should make it easier to extend to accommodate their needs as and when budgets and time allow.

If you only design a system for buying via the web you may find when a member of staff is trying to help a customer on the phone the process is unnecessarily complicated, or extending the system to cope with this new use case is particularly hard if you haven't taken this scenario into consideration to start with. Not to say it can't be done, and is easier to adapt now Drupal 8 is more object-oriented, but it's always good to have the future in mind - some of this you will be able to see, some you'll need to extract from key stakeholders, you'll be surprised sometimes with what you find out which you'll then be glad you asked. Here I knew the latest version of Commerce for Drupal 8 has the ability to set up different buying processes so it would be able to cope easily with phone orders if it were ever a requirement.

Design for different rates of change

It is feasible I could've used Drupal's built-in content types to build the system, but this would've limited the system to this particular use-case, making it harder to cope with different buying processes like the one mentioned above. It also did not sound right - an "airport" isn't a content type, it's an entity. It has content - facilities etc. but the thing itself is an entity. So I created six custom entities, and it sounded much better especially when you went to create a view - "list accommodation in resort". By simply teaching Drupal what was different about this particular organisation, we extended Drupal's "knowledge" and leveraged everything else it had to offer to deal with the functionality it does know about, like date ranges, durations, prices, and so on.

Whilst the front-end of a website may go through many enhancements and refreshes, the core business model of an organisation - especially one such as this which is well-established and operated for many years, does not change as much, if at all. In this example they mentioned they may add new activities, and they offered packages which covered more than one activity but their current system couldn't cope with this, which is why activity was treated as a separate entity.

By encoding the core business model of an organisation as high up the chain as you can with Drupal, you end up with a far more flexible system to cope with the faster-moving changes such as views to list out particular promotions, plus ensure longevity by enabling future development of those core parts of the system. I also wanted to make it a little more difficult for them to change any of this as this is critical to the operation of the organisation, so if changes were needed they would have to go through a harder process than changing a view, but there should be a good reason for any changes needed to the core business model so happy with the custom entity approach taken.

Seeing the wood for the trees

It's not only when architecting systems you need to take this approach to Drupal - another small example is when I helped someone out a couple of weeks back who was having problems getting a product listing displaying exactly how he wanted it to using Drupal 7. He had tried a number of different types of views (Drupal's user interface for manipulating database queries) but none of them would do what he wanted, which was to provide a faceted search facility, listing the results grouped by category. You'll see this functionality on most e-commerce sites these days, for example click on Televisions and it'll provide you a list grouped by manufacturer, or perhaps size - the point is it's not Rocket Science, it's been done before, it shouldn't be hard to do, so something else was causing the issue here. Sometimes it's hard to see the wood for the trees, so you need to take a step back and take a logical think about the situation.

We delved into the problem and through a series of questions worked out the thing he wanted to do which was different was he wanted a number of fields to be displayed at the group level - the name of the group, an image, and a description. None of the various combinations of views he had tried provided the ability to display more than one field, and rewriting the field output in the view did not apply to group by fields. Although there are a number of ways to achieve this from different parts of Drupal, I implemented the simplest way I knew which was to output the taxonomy term ID as the field to group by, and overwrite the template in order to load the details of the taxonomy term so we could easily grab the fields we needed.

I can almost hear others screaming at me to use display modes or some other functionality available as I'm sure there's other ways this can be achieved which are 'better', however as I spend most of my time dealing with back-end issues and not front-end and as we only had limited time and budget to solve the issue, this worked as a solution for the situation at hand so we went with it.

The take-away here is to go with what solves the majority of the problem, the thing you see or can imagine seeing other people using, and focus on what is specific to your needs. Faceted searching, listing products, grouping products by category - all standard functionality and should be simple to achieve in Drupal. Outputting multiple fields for a grouping category title? Not so much.

Step 2: Modularise Your Requirements

Drupal is a modular system, so you need to modularise your requirements by breaking them down as much as you can. Yes, what you're wanting to do has more than likely been done before, but maybe not in your exact combination - if it has then cool, you don't have to do anything as there's already a module/distribution/theme/etc. out there for you! Many times there isn't though, and every organisation has their differences, so you need to break your requirements down in order to deal with them successfully.

In our example above where we have a faceted search listing out products grouped by category, by splitting it up into "faceted search", "list products", and "group a view by category" we are going to get much better results when searching for answers than if we search for "faceted search grouped by taxonomy", which is more specific to our use-case than the majority of uses. You're more likely to end up with someone else's specific situation who also has had issues solving it and may forever skip past the actual solutions you are looking for. Be as generic as you can with generic requirements, then be as specific as you can with the ones you identified as particular to your situation, in this example we could've searched for "override view field output" and it would've brought us results for how to override using views templates, which is how we solved the problem there.

Once you align your vocabulary more closely with Drupal's generic, modular functionality, you'll enjoy much more success with your searches - it takes a little logical thought and remembering it's not Rocket Science! Far too many times I've seen sites where little or no research has been done as to what's already out there and people have essentially forked Drupal, creating their own monster significantly increasing the amount of work it takes to maintain and extend the site when it's not necessary.

Every line of code you produce is technical debt - even if you decide not to use the module you find which does what you need or part of what you need, you can study the tried-and-tested code, copy it into your module and use as a base for your work. A good example is detailed in my previous blog post about creating a Drupal Console command where I found code which did some of what I wanted so I based my work on it because I knew what had already been written worked and there was no point in me writing it again.

Step 3: Only Develop Specifics, Share Where Possible & Grow Drupal!

If you find you have to develop specific functionality for your site, have a think about if it would be of use to anyone else, or whether you're going to be the only person in the world doing this specific thing. As mentioned above, every line of code you write is something you or your client is going to need to support your/themselves. If you publish a module to the module repository you not only have the possibility of others sharing the maintenance of the code but they may also provide enhancements, and stable module releases are covered by the security advisory policy which doesn't mean they secure your module, but if an exploit is found and reported the 40+ strong Drupal Security Team are there to help. Even if you just create a sandbox project you may discover others find the code useful and provide feedback.

If you're working for a client and they are worried about sharing code, or you're the end client and worry about losing competitive advantage, remember software is easy to copy and it's the rest of what you do which sets you apart from your competition. In our travel example above, it's the resorts they own which provide the value to the customer, not the software code which enables people to book a stay in them.

Currently there is a lack of sharing code on the implementation side - there's a lot of factors for this including competition between suppliers, infrastructure ease of use or lack thereof, and a general lack of co-operation in some industries. The result is many people end up writing similar code when they could be starting at a higher level, collaborating with industry peers, sharing development and maintenance costs, and going towards pushing the Drupal project forward. The more we can do out-of-the-box, the better it gets for all concerned as projects cost less, launch quicker, and we can focus on code which isn't out there already which is specific to the organisation itself, so spending the development budget on genuinely useful code instead of code which could be freely available to us in the first instance. Remembering how much we started with for free may be of help creating impetus to share any code we develop.

Although my site here doesn't do much functionally I haven't had to write a single line of code to be able to use the web to communicate my message to you, something I believe is amazeballs! Drupal can and does provide code for generic websites, however it's up to industries to collaborate and build their modules and distributions, and/or some enterprising people to build code and distributions for them, as we see in some areas such as e-learning and government.

I'm honestly shocked when I hear projects haven't contributed any code back, especially larger projects lasting longer than a year - I worry about how much technical debt they've incurred and feel sorry they haven't helped Drupal to grow, it's only by contributing code the Drupal product itself has reached this amazing level of innovation. I understand there are reasons, however I never see it as "contribution", more akin to riding a bicycle - I can stare at it as long as I like but until I push my feet down on the pedal it's not going to take me anywhere, I don't call it "contribution", just how the bike works!

I hope this post has been of help, do feel free to comment below, or get in touch with me if I can be of help with anything specific.

Happy Drupaling!

Main Drupal 8 Learning Curve image courtesy @sgrame. Other images attributed inline, the rest are public domain, found on pixabay.

Category Tutorials Tags Add new comment
Categories: Drupal

Rob Bayliss: A Scalable Pattern for Displaying Simple Remote Data in Drupal 8

8 October 2016 - 1:19pm

Let's imagine a scenario where you need to display some data from a remote service to the user. Instagram, for example. You want to grab the 6 most recent posts, pass them through some theming, then output them into a block. How would you go about doing that? In Drupal 7, one possible approach might look like this.

Categories: Drupal

Phponwebsites: Disable future dates in date popup - Drupal 7

7 October 2016 - 11:15am
     This blog describes how to disable future dates in the Drupal 7. One of the features in the date  module is displayed the date in the pop-up.

The use case is if you want to display only past & current date rather than all the dates in the pop-up, then how to do it in Drupal 7. Actually, the date module provides API called hook_date_popup_process_alter to alter the date_popup widget elements.

Example for disabling future dates in Drupal 7:
   For instance, I am going to disable future dates in the article content type. Please consider the following code snippet.

 * Implement hook_date_popup_process_alter().
function phponwebsites_date_popup_process_alter(&$element, &$form_state, &$context) {

  if ($form_state['complete form']['#form_id'] == 'article_node_form' && $element['#field']['field_name'] == 'field_date') {
    $max = 0;

  if (isset($element['#datepicker_options']['maxDate'])) {
    $max = $element['#datepicker_options']['maxDate'];

  if (isset($max)) {
    $element['#datepicker_options'] = array(
      'maxDate' => "+$max D",
  $element['date'] = date_popup_process_date_part($element);
   I've disabled the dates only if the form is article & the field name is field_date. After added the above code to your module, you could see disabled future dates in the date pop up. It looks like the below image:

   Now I've hope you know how to disable the future dates at the date module in Drupal 7.

Related articles:
Remove speical characters from URL alias using pathauto module in Drupal 7
Add new menu item into already created menu in Drupal 7
Add class into menu item in Drupal 7
Create menu tab programmatically in Drupal 7
Add custom fields to search api index in Drupal 7
Clear views cache when insert, update and delete a node in Drupal 7
Create a page without header and footer in Drupal 7
Login using both email and username in Drupal 7
Categories: Drupal

FFW Agency: The ABC's of Drupal: Article, Base Theme, Content

7 October 2016 - 10:51am
The ABC's of Drupal: Article, Base Theme, Content Ray Saltini Fri, 10/07/2016 - 17:51

For anyone who's ever looked up a definition of a Drupal term and been left wondering what it all means, here are some practical real world explanations you can use to navigate the Drupalverse. Watch this space and use comments to send us your feedback and requests.

Article: While newspapers and magazines have articles, the term 'Article' in Drupal denotes something more specific. An Article is one of two content types that have come preconfigured with Drupal since Drupal 7. As a content type, an Article is made up of Title, Body, Image, and Tag fields.

All content types are part of Drupal’s core fields system and can be customized with different fields. The output of an Article is usually configured to appear either as a teaser or a full version, which is sometimes referred to as the default or as a node. Unless your home page has been customized, article teasers will appear on your home page as a river of news with older items sinking to the bottom. This makes it easy to begin building a site with time sensitive content such as a blog. Most home pages are even customized so that selecting the ‘promote to front page’ toggle has no visible effect. If this happens to you, don't worry! Your site is not broken. It's just Articles at work.

Base Theme and Themes: A theme in Drupal is a collection of CSS, template files, and javascript that helps determine the look and feel of a Drupal website or application.

A theme typically defines different regions in code which can then be used to place various elements via configuration in a user interface. Base Themes are a common way of standardizing and optimizing Drupal front end development. They enable developers to focus on CSS styling and javascript without having to manipulate Drupal internals. A variety of different methods can be used to essentially copy and customize the styling of a base theme.

Among the advantages of using a base theme are less risk from custom coding and updates often provided by base theme maintainers that enable greater functionality or enhanced security. Some base themes make it easier to build a theme based on a popular published library, such as Twitter Bootstrap. Organizations often develop their own themes and use them internally as a base theme for different projects.

As a note: base themes typically only work with a given Drupal major version. For example, Drupal 7 theme will not work with a Drupal 6 or 8 theme. Major changes have taken place in theme development between Drupal 7 and the current version Drupal 8. But don't worry! Drupal 8 includes a new templating engine called Twig. Twig is a Symfony framework component that eliminates the necessity to write preprocess functions and other code. Generally, that's often not part of a front-end developers skill set, so Twig makes it easier than ever for front-end developers to create responsive and other advanced designs.

Content: The word "Content" can mean different things to different people, especially when Drupal is involved. When speaking to a Drupalist who’s been around for many versions, it may mean only something created by Drupal’s core node module or anything that has been created via a content type form by clicking on an ‘add content’ link. Others will use it to represent anything presented on a webpage.

Depending on who you are talking to and what their role is, this can lead to confusing discussions or debates about whether something is Content or something else. The best way to deal with this on a project is to understand the other definitions and always ask the speaker to please define what Content means to them. 

For example, Content can be structured or unstructured. (The preferred best practice in Drupal is always structured content validated at the field level.) Comments, images, and file attachments may also be considered Content. Images and file attachments are often referred to as assets because they are stored in a file system. In Drupal 8 you are more likely to hear this kind of Content referred to as an Entity, which thankfully simplifies the conversation.

Tagged with Comments
Categories: Drupal

Acquia Developer Center Blog: How Indigo Herbs runs its whole business on Drupal!

7 October 2016 - 10:15am

In December 2015, I sat down with Michael Hanby-Director-and Tawney Bartlett-Website Coordinator-from Indigo Herbs in Glastonbury, England and dug into their history with Drupal and just how much of their business they run with it. Tawney is really inspiring: she learned Drupal and its component and supporting technologies--Git, Javascript, PHP, and much more--on the job at Indigo. She says she's fallen in love with Drupal. I say she's become a Drupalist to reckon with and should be a role model for others. Open source, #ftw!

This interview, particularly the last third, is full of some great "Why Drupal?" soundbites from a sensible business perspective. Well worth listening to! A full transcript follows below as well.

"If you are a small business and you want to develop a tech competency, I don’t know why you’ll do anything but Drupal because apart from the fact that it’s free, you’ve got this huge community that’s not just willing to give you the answers but wants to help you. What I think is one of the most awesome things about open source is that by asking a question, you are contributing to the project. It’s so cool. Just by asking the question that no one’s asked, you are contributing to the documentation that’s going to help someone else, it’s such a virtuous cycle." - Michael Hanby, Indigo Herbs

In Drupal "everyone is so accepting and everyone’s so willing to teach people and help people grow within the community. It stands out from the crowd, it’s just a fascinating thing that everyone loves technology and everyone does it because they want to make this amazing thing and if something goes wrong, no one judges them for it. Everyone tries to help to get it working and to me that just sounds absolutely amazing, it’s missing from the world I think. The community of Drupal, if that was applied to everything, then it would be such a better place." - Tawny Bartlett, Indigo Herbs

Mentioned during the conversation
  • Indigo Herbs, according to Michael "Indigo Herbs is a manufacturer of natural health products. We make beautiful things that will make your life better. Come and check out and discover the natural lifestyle that we offer."
  • Drupal Somerset
  • Paragraphs module
  • Heath Robinson, according to Wikipedia, "William Heath Robinson (31 May 1872 – 13 September 1944) was an English cartoonist and illustrator best known for drawings of ridiculously complicated machines for achieving simple objectives."
Conversation video

In the Indigo Herbs Common Room ... full transcription starts here.

jam: We established that everybody – that the whole couch is fair game, right?

Tawny Bartlett: Yes.

Michael Hanby: Yes, it does seem to be.

jam: It feels like a lovely Saturday morning and this place really, really feels like a university common room to me. It really – nice cinder block walls, a comfy couch and a warm cup of the brown stuff. It is really, really comfortable. So, please introduce yourself.

Tawny Bartlett: To the camera?

jam: Hello, camera.

Tawny Bartlett: Hello, camera. My name is Tawny Bartlett. I am the Website Coordinator at Indigo Herbs. I do a lot of coding. I do HTML, CSS, PHP, Git, LESS and various other things. I have a growing love of technology and in all honesty I want to be a super hero in technology one day, that is my goal. I want to be an amazing Drupal developer, that is why I’ve made the decision for my life is that I want to be an amazing Drupal developer and I want to – I just want to be an expert and I want to help everyone else. I want to help people that used to be me three years ago to the Drupal.

jam: My impression, having met you before, is that you’re already well down the road to being a Drupal super hero, so thank you.

Tawny Bartlett: Got to be better.

Michael Hanby: I am Michael Hanby and I’m a director at Indigo Herbs, and tech is one of responsibilities. I’ve loved Drupal work long before Indigo Herbs and I’m very lucky because Tawny is on my team.

jam: So I am in Somerset in the southwest of the U.K. and had the wonderful opportunity to reconnect with a bunch of Drupal friends this week for the Drupal Somerset Christmas Meet-Up. I think we ...

Michael Hanby: It was our Christmas do, really.

jam: Right. We had a lovely pub meal and everything and I got to talking with Michael and Tawny about what they do. We met for the first time I guess at Drupal Camp Bristol 2015.

Michael Hanby: That’s right.

How Michael got his start with Drupal

jam: You caught my attention because how you run your business and how your business came about really fascinated me, and there’s this – in your case especially, there’s this chicken-and-egg situation about Drupal and business, right? You were already interested in Drupal before this business came around.

Michael Hanby: Before this business, yes.

jam: So how did you discover Drupal?

Michael Hanby: I discovered Drupal after I’ve been away travelling. I did the corporate thing for a bit, I went away travelling. When I came back we wanted to do – a friend and I wanted to do a website for an idea that we’ve been playing with whilst we were travelling. We have this thing Antiquarian Society, we’ve been looking – we’re into archeo-astronomy, looking for ancient alignments and watching the sun come up and set and all that sort of stuff.

jam: Can I just point out here that you’re from Glastonbury?

Michael Hanby: Well, I wasn’t born in Glastonbury but I do now live in Glastonbury and that’s alright.

jam: This is a very Glastonbury conversation we’re having.

Michael Hanby: This is normal in Glastonbury. It’s probably a bit strange in other parts of the Internet but...

jam: I had to say it ...

Michael Hanby: It’s a slightly niche subject which the Internet’s brilliant for of course, and we wanted a website anyway. I’d done a bit of HTML and I’d got into graphic design, and the guy that I was mucking about with this idea with was like, “Oh, what about Drupal? I’ve heard that Drupal’s quite cool.” This is back in the days of Drupal 5, so we have some web hosting and we have one of those one-click installs for various different packages, and I one-clicked Drupal and started playing with it. That was Drupal 5 and it was quite cool, it was relatively intuitive. I could change the way it looked by playing with the CSS and I could build what I wanted to build with it, and it was great.

jam: I hear that from very few people that, “Oh! Open up Drupal, it’s totally intuitive and I just got straight to work.” What was your background?

Michael Hanby: Well, I had come from a pretty tech background. I was never a developer but I’d been a business analyst and I’d managed tech teams. I was familiar with tech and tech processes, how data works and stuff like that so I guess it was easier – I think if you were a complete newbie, that would be the case more so then than now but back then it was really like, “Oh, there’s a really steep learning curve with Drupal.” I don’t know, I hacked it I guess. It was fine. Also, the other thing that was really cool about it was that it’s really easy to find out. If you don’t know the answer, it’s really easy to find out the answer. Someone’s probably asked the question somewhere and that was the case back in the days of Drupal 5 and now, it’s still the case but it’s way, way more advanced.

jam: Right. So community documentation is pretty good simply because there’s a very large mass of us doing this. Back in Drupal 5 days, there were thousands of our friends that you could ask easily for the answer and now, frankly, there are tens of thousands of people.

Michael Hanby: Exactly.

jam: So why did you stick with Drupal? You must be using for eight, nine years at this point.

Michael Hanby: Well, at some point after that I started working with Indigo Herbs and it was just Steve in his shed in the garden, and it was that kind of business at the time. Almost straight away - because I'd built a community type thing already on Drupal - almost straight away I was thinking I could see how this business could use that community-type platform to create a community, to generate brand awareness and all sorts of different things, and provide a useful function to be totally honest with you. I could see potential applications and we weren't on Drupal and I was itching to move something on to Drupal and start to use Drupal to do some of that stuff, and that’s what happened eventually.

jam: So you were just hooked. There was no question that there was going to be anything else?

Michael Hanby: I did play with WordPress for a bit and our first blog was actually a WordPress, and that was cool because I actually learned – some of my first bits of PHP actually are on WordPress and that gave me enough to get going on some Drupal.

jam: So in a bit, I want to get back to this business and the tie-in between doing good, ethics, community and all of these things that I think are a really good fit between Drupal and what you do. How did you find out about Drupal?

Tawny met Drupal on the job

Tawny Bartlett: Well, I found out Drupal through Indigo Herbs and the weird thing about me working in Indigo Herbs is I actually applied for a dispatch position.

jam: Which would be?

Tawny Bartlett: Just sending orders out.

jam: Taping up boxes?

Tawny Bartlett: Taping up packages and sending them out to customers and I actually said in my interview, “Oh, well if you ever want help for your website, I’d be interested in learning.”

jam: You knew some ... ?

Tawny Bartlett: HTML.

jam: Already.

Tawny Bartlett: So when I was little, I used to make little HTML websites and stuff just for some fun. Back when you had font tags. So that was quite fun. So then yes, I basically said that I could help with the website so when I first started we had a wholesale website on Drupal, so that’s our main distributing to shops and stuff, that’s our wholesale site. My first job was just basically data entry. And basically as it grew, I used to ... We use Git to version control Drupal and I used to have to ask Michael to put modules on Drupal for me because I didn’t know Git. So basically, over time I had to learn more and more because Michael wouldn’t be in some days. I’d be putting a module on Drupal so I just learned Git. I learned Drupal, I learned modules. And like Michael said, the community is just amazing. If you get stuck, there's pretty much an answer for it already and if there isn’t an answer for it, you can just ask a question and someone will answer already. So yes, I just fell in love with Drupal, it’s the best CMS in my opinion. It’s so flexible.

jam: Your leaning strategy was completely pragmatic, whatever you need to do to get your job done as soon as you hit a block then you learn a new thing and you learn new thing.

Tawny Bartlett: Yes, that’s basically what happened. Basically, that’s happened really extremely in Indigo. Firstly it’s Drupal front end stuff, moving blocks around the themes and stuff, then obviously I went to Git – I had to learn Git because we did version control, so I have to do that without Michael. Then CSS, I learned CSS.

jam: Right, and all the site builder stuff.

Tawny Bartlett: All the site – yes, all the site builder stuff but I find it quite easy ...

jam: Well, we’ve put years of effort into trying to make the user interface useful so ...

Tawny Bartlett: Yes, exactly. Views and stuff are just phenomenal, in comparison to any other CMS it’s just so easy to use and literally you can do anything on the front end but as our needs kept getting bigger and bigger, I learned View templates, I learned node templates, I learned – I had to learn PHP to start doing templates. So yes, it’s CSS, PHP then we went and did a custom framework so I learned LESS. So basically over the three years I’ve worked at Indigo, I’ve just learned so many different languages, obviously started to learn Javascript and stuff ... But yes, that is the case, we hit a wall and then we got over it. I’ve actually written a few modules in Drupal as well for Indigo.

jam: Right. When we first met, my strong impression of you was that you’re pretty hardcore tech now.

Tawny Bartlett: Yes, well, I’d like to think so anyway.

jam: What’s your job title, if that matters?

Tawny Bartlett: I’m actually Website Coordinator.

jam: Website Coordinator, which could be almost anything but that’s ...

Michael Hanby: It could be almost anything.

jam: Right. Fantastic. What’s your favorite thing about Drupal?

Tawny Bartlett: I think it’s the fact that literally you can say, “Can I do this to Drupal?” and the answer is pretty much always going to be yes. You can do anything in Drupal, there are no walls, you can just do anything you want and the fact that it’s just so flexible and - to me it’s just so easy, there’s no restrictions. You can just do whatever you want and if I can say two things, the community is amazing.

What how is Drupal community for newbies?

jam: So talk about showing up with relatively little experience and having a lot of questions. How was that experience, going out to events and meeting Drupal people?

Tawny Bartlett: It’s been fantastic, just in terms of the forums and stuff. Obviously, if a module is not working the way want it to be, you’ll find someone’s patched it already and they’re not going to commit it to the newest version but you can just patch it. Then, I’ve asked questions and people have provided patches to me and stuff, so people have been super helpful and they fixed things where I’ve been pulling my hair out and people just fixed it. Just out of the goodness of their hearts, and everyone’s just doing it for the passion of Drupal. Then, when I went to Drupal events, my first time at Drupal Somerset, Stefan helped us with the – we couldn’t get maps we’re working on Drupal, we just couldn’t figure out how to do it and he just instantly showed us how to do it and ever since then we’ve been using maps. The last Drupal Somerset that we had, Chris showed us how to use Paragraphs ...

jam: Which is amazing.

Tawny Bartlett: ...which is absolutely fantastic.

Michael Hanby: We’ve implemented that almost straight away. Partly by luck, we happened to have something on that just fitted perfectly.

jam: You had a use case ready for that.

Michael Hanby: Yes. The case is ready, she just took it away from the little meet-up and...

jam: The day after the meet-up.

Tawny Bartlett: Right.

Michael Hanby: Exactly that.

jam: I love that Drupal community’s completely opene arms approach to new people and to anyone who’s willing to ask respectfully and listen - mentoring, teaching, endless hours of volunteering. There’s a lot of enlightened self-interest in it in that, “Well, hey if I patch something that’s broken for you well then it’s not broken for me either anymore.” But somehow, there’s an incredibly positive energy around this that I find to some degree in the broader PHP communities, but not to the extent somehow. It’s a very happy place.

About Indigo Herbs

jam: We’re at Indigo Herbs in Glastonbury, just so that people not from around here know, pretty much the center of all “hippiedom” in Europe, frankly ...

Michael Hanby: Well, Glastonbury has been a center of pilgrimage probably before history. There’s an abbey here, the monks were really big here. They’ve got that ecclesiastic in the sort of ...

jam: It’s in the part of the country where there’s Stonehenge and there’s the lay lines, and there’s this special hill with the magic path to walk around in Salisbury. It’s not too far away so ...

Michael Hanby: It’s not so far away, no.

jam: Anyway, so it’s a really appropriate place to have herbs, natural remedies nutrition kind of a business.

Michael Hanby: It is. I like to think that the monks were doing it hundreds and hundreds of years ago, exactly the same thing. We’re a bit like that.

jam: I like to think that all the beers that they brewed was also medicinal.

Michael Hanby: Of course.

jam: So I’m holding this package of Ashwagandha powder and I happen to know that – not this very package, but this hundred grams of this stuff is pretty much why we’re sitting here today. How did Indigo Herbs get started?

Michael Hanby: Well, this is an interesting part of – this is I suppose to seed of Indigo herb. So the story is that many years ago, Steve wanted some Ashwagandha powder and he went to find some on the Internet and he couldn’t buy a hundred grams, he could only buy five kilos.

jam: So Steve just wanted a little bit.

Michael Hanby: He wants a bit for himself and he could only buy a lot more than that, so he bought a lot more than that, took what he wanted, and put the rest on eBay.

jam: He packed that up in small packages?

Michael Hanby: I guess, yes. I think that was his lightbulb moment of, "Ooh! Hold on, this is a big one."

jam: There’s a value-add here in delivering manageable quantities. When was that and when did you become part of this?

Michael Hanby: That was about 12 years ago. Nobody did anything like this on the Internet really back then, and then I became part of it probably about two or three years in – Steve needed some graphic design work done and I got involved doing the graphic design work and did a bit more, did a lot of web work, we had to move a lot of stuff around on the website and I thought, “This looks like quite an interesting business.” I’ve got a background – before I left and went travelling, I did an MBA and I’ve got a background in business so I was like, “This is interesting, there’s a nice business idea here and I could see how we could develop this.” It grew from that.

jam: You don’t have a storefront. Has it always been an online business?

Michael Hanby: It’s always been an online business.

jam: What sort of technologies were you using to – I guess you do B2B and B2C ...

Michael Hanby: Well, it’s mainly B2C.

jam: What sort of – how are you online?

Michael Hanby: Back in those days, we used a piece of software called Actinic which is basically a Microsoft Access database with a Windows front end you create your pages and what have you, and then you press a button and it FTP’s it all up server as static HTML with a bit of Perl to do the shopping cart, basically.

jam: Which frankly, in 2015, you’re coming full circle and that doesn’t sound super different to Sculpin or Jekyl, right?

Michael Hanby: Right.

jam: Which are the hip, cool static site generators are great now. So static site generators - totally cool, except that you cannot ...

Michael Hanby: Well, that you can’t really have a lot of rich functionality. Forget user-generated content.

jam: So was that like, “Oh, I want this stuff. Here’s the place where you have to fax your order,” sort of ... ?

Michael Hanby: Well now, it did have a Perl ... It wasn’t quite as bad as that. There was a shopping cart function which was written in Perl and you could download the orders every day, so there was a bit of functionality but it wasn’t very dynamic, it wasn’t very rich.

Tawny Bartlett: Main downfall was that we had to use it for one computer.

Michael Hanby: That’s right. It sat on one computer.

jam: Oh, because that was where the database was.

Michael Hanby: So you couldn’t have somebody over there processing the orders and somebody else over here writing content. This was impossible.

jam: Wow. Okay. So content 10 to 12, orders 12 to 2 ...

Indigo goes Drupal

Michael Hanby: Something like that, yes. It was obviously not going to happen. And I'd used Drupal for really interesting community-base things, and a lot of people that are into Indigo Herbs are practitioners of some sort of natural healing profession and I could see the potential for a community.

jam: Community-minded people anyway, people interested in making a difference, making the world a better place, spreading the message about whatever they do, right?

Michael Hanby: Yes. Actually, it’s a bit more prosaic in that in the final analysis with Indigo because we provide lots of fantastic natural health products. What we don’t provide is advice or medical diagnosis or anything like that. We sell herbs, super foods and great products but we’re not health carers and a lot of customers would come to us saying, “Look, I’ve got this problem. Can you help what shall I do?” We just can’t help.

jam: You probably also don’t want that liability.

Michael Hanby: Well, exactly. We’re not qualified to do it quite frankly, but plenty of people are so that was the idea behind our practitioners’ directory. We’ve got and Internet presence. Lots of people come to it looking for help that we can’t give but there are a load of people who can give it so it seems obvious to create a place where they can create a profile, put themselves on our website and then they can then provide a service that our customers might come to us to look for but which we can’t provide.

jam: So was that the seed of the community site idea and that was the gateway drug to Drupal?

Michael Hanby: It wasn’t actually, no, because prior to that we knew that we wanted to move it a bit more into wholesale and not just do B2C. So we built a Drupal eCommerce site, that was the first bit of Drupal really. We built a Drupal eCommerce site and migrated our blog from WordPress onto Drupal, it seemed obvious not to have too many platforms running at the same time.

jam: You’d think it’s obvious, right? We run into so many--we being all of us who with any clients of any size--run into shops that use five or 20 or 30 different technologies.

Michael Hanby: Well, from the business perspective, the driver for doing is that often the quickest way to get what you want in the moment is just to stick the other bit on, but the danger is you end up with this Heath Robinson of a system and it doesn’t always hold together. There are other benefits of having everything on one platform because you will think--this is my experience--you will think of ideas for doing things that you won’t think of now but you’ll think of them down the road. It’s easier to implement if everything’s all in one place and that’s one of the other great things about Drupal because you can do so much with it, you can make everything in one place and there’s so much benefit to that.

jam: I was telling you the other night that he speaks in perfect sound bites. You’ve just proven me right again. Thank you, thank you. I just have to wind him up and let him go.

Michael Hanby: You do!

jam: So how long have you been with Indigo now?

Tawny Bartlett: Three years in March.

jam: Was the company already on Drupal 7 at that point?

Tawny Bartlett: Yes.

Michael Hanby: Yes, it probably was.

Tawny Bartlett: Our original wholesale site was on Drupal 7. So we have the wholesale site and then we created the practitioners’ directory, which was the map thing. We’ve created maps so they can put their practitioner locations on the map. Then brought the blog over from WordPress, basically we’ve got massive natural health guides being on our Drupal site – Drupal is the content side of our site. We do actually have a multiplatform site. As I mentioned before we got a Magento-Drupal website and so we got two platforms and they ...

jam: That’s a common integration though. Magento does a lot of eCommerce stuff really, really well clearly and it’s PHP ...

Using Drupal for everything

Tawny Bartlett: Basically, over time we just literally started using Drupal for everything, anything you think of a business that we can use Drupal for, we’ll use it. Drupal is actually producing the packaging but not all of it, that’s a lot but basically Drupal produces the content so all of that content on that label is out of Drupal.

jam: So is it a web-to-print setup or is this a content type?

Michael Hanby: Well, we print the labels so that bags are pre-printed. We print the labels.

jam: Oh, I see. Okay. Right.

Tawny Bartlett: Basically, our stock system, our production staff produce jobs to print out labels of products and produce products, and it speaks to Drupal and these are content types which have fields for the title, the Latin name, the bullet points, the organic, the class...

jam: Oh, fantastic. So you really have the platonic ideal of a canonical central content repository for all of your content and anything that changes in one place, it will – if there’s a different regulatory need here, if there’s a whatever, you change it one place and it’s got on your labels, it’s on your site, it’s on your - everywhere in the same thing.

Michael Hanby: Yes, it’s all in Drupal.

Tawny Bartlett: The most exciting thing is – the part of thing I’m most proud of really is that nutritional data tables that should come out of Drupal as well and so with the label data as well, basically at the moment we got nutritional tables on our website. That comes out of Drupal that goes put into Magento, so we then decided to manipulate those tables to work on our labels. So those tables are manipulated from Drupal to working on labels so that people can exclude certain rows from these so that will fit, so the highs and lows you put them in the right place. So basically, that’s one center for all of our nutritional data and it gets put everywhere.

jam: This list is actually a View ... sorted?

Tawny Bartlett: It’s actually the - I think it’s a Table Field module but there’s extra columns to help sort out which bits are bold, help sort out – you’ve got schema on the website as well.

jam: Fantastic. RDFa,

Tawny Bartlett:, yes. So we’ve got a really good nutritional data schema coming out of our website as well.

jam: Fantastic. You get all of this power to be just as searchable, findable, useable as anyone in the world and you can download it for free.

Michael Hanby: That’s right.

Tawny Bartlett: Yes. It’s just that, “What?!”

jam: The empowerment story of what we do is so incredible today.

Michael Hanby: It really is. In fact, here’s another sound bite for you. If you are a small business and you want to develop a tech competency, I don’t know why you’ll do anything but Drupal because apart from the fact that it’s free, you’ve got this huge community that’s not just willing to give you the answers but wants to help you. What I think is one of the most awesome things about open source is that by asking a question, you are contributing to the project. It’s so cool. Just by asking the question that no one’s asked, you are contributing to the documentation that’s going to help someone else, it’s such a virtuous cycle.

jam: Yes. I haven’t done it in a little while but one of the ways that I like to start the keynote presentations that I do sometimes, especially if they’re open source side of things: "Who’s contributed to open source?" and you get in any given conference room, you get 20-50% of hands go [up]. No! "How many of you have contributed patches or pull request to your open source project?" Those hands stay up and I say, “Okay. How many of you have filed a bug report? How many of you have answered a forum question or been on IRC to help someone?” More and more hands go up and it’s like, “Okay. How many of you have been to an open source event? You’re all in this room, put your hands up. Thank you for contributing.” Every time we exchange information, every time we do anything like this it’s become much, much more than just developers trading code snippets and I really, really like that.

Michael Hanby: That’s right. Even if you’re just contributing use cases, that’s actually valuable.

Doing well and doing good - the idealism connection

jam: So you as a business are concerned with ethics in general. I know that you’re a living wage employer obviously involved in various nutritional, organic, doing things the right way ...

Michael Hanby: Yes. A lot of our products are organic. They’re not all organic, that’s not possible in some products.

jam: I know that you’re looking into Fair Trade certification.

Michael Hanby: We’re looking into Fair Trade certification. We are sponsors of the Veganuary which is a social movement to go vegan in January which Tawny has now pledged to do.

jam: It’s so great you volunteered for that. Big step, big step.

Michael Hanby: We’re about lifestyle and thing with health and nutrition is it’s not like you take a pill now and you sorted for life. It’s about lifestyle, it’s about how you live your life, it’s a long-term something.

jam: There’s this cartoonist called Scott Adams, he does the Dilbert cartoons. I’m reading one of his books right now and he talks about the importance of thinking in systems rather than in goals. If you do as systematic approach to something, even if you’re failing along the way it’s going to get you to where you need to go. So it’s not "I need to lose five pounds," it’s "I need to eat better everyday," kind of thing.

Michael Hanby: Exactly that. Exactly. By getting into some of our products, by getting into it, it starts to shift your thinking about how you’re eating. It makes you take responsibility for what you’re doing and that’s the key because that will have a long-term effect.

jam: So you have this business that is really involved in a lot of ethical activities and a lot of idealism. How do you see the connection between Drupal and open source technologies which are also very idealistic and your day job?

Tawny Bartlett: In terms of ethical ... ?

jam: In terms of the community, in terms of helping people, in terms of making a difference.

Tawny Bartlett: I’ve spent years juggling what I’ve wanted to do. I spent years being confused about what I wanted to do, literally just so confused going back and forth. I want to do this degree, not doing this degree, but Drupal has really taken my heart. It’s slightly corny but it’s just I’ve literally settled. I’ve just love Drupal. It’s amazing how people give and take for free, it’s amazing that when I first started posting on forums I used to say, “I’m really sorry if I sound like a n00b here.” I just always apologize because I was such a newbie to Drupal and I always thought people would be like, “That’s very silly of you. You’re so new, why are you posting on here?” But everyone is so accepting and everyone’s so willing to teach people and help people grow within the community. I’m just learning more and more about how many people contribute to Drupal 8 and I remember watching a video about all the comments and stuff about how – it was just absolutely amazing that everyone does this and most people do it for the passion, for the passion in Drupal. It stands out from the crowd, it’s just a fascinating thing that everyone loves technology and everyone does it because they want to make this amazing thing and if something goes wrong, no one judges them for it. Everyone tries to help to get it working and to me that just sounds absolutely amazing, it’s missing from the world I think. The community of Drupal, if that was applied to everything, then it would be such a better place.

jam: It makes for a nice place to work I think.

Tawny Bartlett: Yes, it’s fantastic. If I get stuck, I know there’s a community out there and I have Drupal developers that are my friends and stuff, I know that they will generally help because they’re passionate and they want to help. Everyone sees the challenge in Drupal and everyone wants to fix it, no one is greedy and no one keeps the code to themselves which is really strange. In terms of other CMSs, they charge for extensions--everyone wants to give and it’s just--to me, I find it really hard to get that in my head that people will just give these great ideas for free.

jam: In that instance, we’re lucky that Drupal is licensed under the GPL because it makes a lot of classic business models really, really hard to do but it makes it really easy to share so we found other ways to use it.

And it makes business sense

jam: Listen, I want to ask you two things to wrap up. As someone concerned about ethical activity and idealism, how do you see Drupal and open source - let me ask that in a better way. How do you see Drupal and open source in terms of the ethics and ideals that you bring to your business?

Michael Hanby: Well, the thing with Drupal and open source is we get more out of our combined efforts if we share, it’s as simple as that. Things are better if we share because then we’re all contributing and we all benefit from it, and that’s really clear in Drupal. If you compare it to other platforms that don’t have such an open sharing community, there are less solutions. Things don’t work as well, there’s less documentation, it’s more difficult to get help and that’s just really. Having worked now with a couple of different platforms, that’s really clear. Like I said before, if you want to build tech competency and you’re a small business, we’ve gone from not knowing a lot to knowing quite a bit, having a quite clever, complex and effective infrastructure and having a really content rich website with all different types of content that interact with each other that we built specifically for ourselves. We could never have achieved any of that without Drupal community, we couldn’t have done it. We could have achieved some of that, we couldn’t have achieved all of it, not on our budget. We’re a small company, we’ve grown it ourselves and Drupal’s made that possible.

jam: So as a hard-nosed MBA businessperson, paying the rent for you and your employees, talk about Drupal.

Michael Hanby: I just think that none of our USP comes from the way that the PHP is written, we’re not going to sell more stuff because logging in to our back end is different to the way everyone else logs in, there’s just no point in reinventing all of that sort of stuff. We can focus on the little bits that really make the difference and everything else there is not so – it’s still really important but it’s like a hygiene factor. That’s cool, that’s already there, why reinvent it? There’s no point and that’s what Drupal offers.

jam: So terrific commodity functionality, flexibility. I think from a business perspective as well, risk mitigation.

Michael Hanby: Totally. We do have applications for other use cases that we’ve not written on Drupal and you can only get onto them if you’re on the IP whitelist because we can’t write the sort of security that you just get out the box with Drupal. It’s things like that, it’s having that framework there which means that you can just focus on the bit that’s important to you. That’s the thing, you don’t have to do all the other stuff because it’s already done.

jam: Fantastic. Last question for the day, Michael. Give us a shameless plug for Indigo Herbs.

Michael Hanby: Indigo Herbs is a manufacturer of natural health products. We make beautiful things that will make your life better. Come and check out and discover the natural lifestyle that we offer.

jam: For those of us who speak – I’m not even sure why but I would have said "www.indigo minus" but I’m not sure why that is.

Michael Hanby: Well, there is the hyphen/underscore ambiguity.

jam: Right. Okay. Anyway, great people making...

Michael Hanby: Maybe it’s a European thing.

jam: It could be. Great people making great products and also doing really, really interesting things with Drupal. If you have any questions about all the cool Drupal stuff that we’ve touched on in this podcast, I’m absolutely certain that they will be very happy to talk with you. If you want to meet a cool user group, come down the Somerset in the U.K. as well. It’s a good, good bunch of people.

Michael Hanby: Drupal Somerset. Third Thursday of the month in here, in this very room.

jam: Oh, now I know where to come, actually.

Michael Hanby: You know where to come.

jam: The last meet-up I went to was in a pub. Hey, thanks so much for taking the time to chat with me today. Alright.

Michael Hanby: You’re welcome. Thanks for having us. Thank you very much. It’s great. It’s really exciting and it’s a pleasure, an absolute pleasure.

Skill Level: BeginnerIntermediateAdvanced
Categories: Drupal

Mediacurrent: Dropcast: Episode 24: Did you miss us?

7 October 2016 - 7:25am

Recorded September 29th, 2016

This episode we are back from our hiatus. We don’t have a guest and we don’t have a Ryan, but we have each other and you fine listeners. We talk a lot about the news we missed while we were out and also preview the talks that Bob and Mario are giving at BADCamp in October.

Categories: Drupal

Acquia Developer Center Blog: Add Persistent Storage to Your Docker Containers with REX-Ray and AWS EFS

7 October 2016 - 6:48am

Containers are a new virtualization technology with many advantages over traditional approaches like virtual machines. At Acquia, we use containers across our different teams for a variety of purposes. Some container-related projects that have really worked out well. We'd like to share them with the rest of the world.

Tags: acquia drupal planet
Categories: Drupal

Zivtech: Which CMS is More Secure: Drupal or WordPress?

7 October 2016 - 6:38am
A recent report from Sucuri found that the vast majority of hacked websites are hosted on the WordPress CMS (content management system). Nearly 16,000 sites have been hacked in 2016. According to the report, “the three CMS platforms most being affected are WordPress, Joomla! and Magento.” But, the findings go on to say that these platforms are no more or less secure than Drupal, even though Drupal doesn’t even make the list.

That’s because security has more to do with humans than code. “In most instances, the compromises analyzed had little, if anything, to do with the core of the CMS application itself, but more with improper deployment, configuration, and overall maintenance by the webmasters and their hosts,” explains Sucuri.
The Password is...
The ways that people get hacked are, for the most part, straightforward. The worst offender is a bad password. The best passwords can’t be guessed and are a mix of letters, numbers and characters. But people's memory being what it is, most passwords are easy to remember, and as a result, easy to hack. Even if a user has a secure password, he might repeat it on a number of sites. As soon as one site loses its data security, hackers will gain entry all over the web with that one frequently used password.

Another common problem is passwords that are shared across an organization, but remain unchanged when an employee leaves. If the former staffer was fired, or has had a negative experience with the company, there’s a chance that the password will fall into enemy hands.

A site that stores valuable user information (such as credit cards or personal data) is especially at risk. While the employee herself may not pose a security threat, a bad actor such as a relative or neighbor could gain access to credentials and wreak havoc.

Give permissions only to trusted users, and have protocols in place for removing access for ex-employees. It’s a good idea to set up password constraints (must contain certain characters). Some companies set up automatic expiration, in which employees are required to reset their passwords every 60 days, but this is a debated idea. Many argue that forcing password changes is not a great plan since change is hard on the memory, so people tend to use easier passwords when forced to switch frequently. If a password is good, then changing it only mitigates issues but doesn’t completely eliminate them. Plugins, Modules and Hosts
The code underlying WordPress gets a lot of attention and is often fixed so vulnerabilities are more often in plugins. The Slider Revolution (AKA RevSlider) and GravityForms plugins have provided opportunities for hackers to get into a site and facilitate the installation of malware on visitors’ computers. While fixes for these gaps have been put in place, there will always be another vulnerability around the corner. It’s a game of cat and mouse.

Then there are other ways to hack into an account that have nothing to do with the CMS. Was the site’s host account hacked? Historically, it’s been too easy to call a provider’s customer service, provide the bare minimum to the customer service rep, and get into the backend of the site. That’s not technical, and there’s no need to be a skilled hacker. Fortunately, service providers are getting smarter about these schemes. Drupal vs. Wordpress?
Drupal’s security relies upon a strong, coordinated effort. In general, Drupal is more secure overall, with a dedicated security team that operates using a series of protocols and a chain of responsibility for handling issues. As a Drupal shop, Zivtech receives weekly emails with alerts about security updates. Your CMS may do the same. Be sure to check.

Drupal is built upon rigorous coding standards, with tools to ensure that strict security practices are followed. The entire system is designed to make sure that all code that accesses the database is sanitized.
Best Practices for Drupal Security
There are ways that you can audit your site to check that you are being cautious. Drupal has specific protocols, such as ensuring that the files on the file system are safe and set up properly and that an outside system can’t connect to the database.

Certain modules should never be turned on, like the PHP module. The PHP module enables an outsider to hack into your site if you’re not extremely careful. There are a number of security updates incorporated into the latest version, Drupal 8, including the removal of the PHP filter.

First, make sure you have an SSL certificate. You can get them for free at Let’s Encrypt.

Next, if you’ve already taken all the standard steps to secure your site but still want to go a little further, you can also delete all readme text files that come with your CMS. This will reduce the surface area for an attack. By default, the readme files are accessible by anyone who visits your site. This could be a problem if an issue was discovered in a specific version of Drupal or a Drupal module. You can imagine that if there was a hack against Drupal version 7.10, hackers would scan sites for the 7.10 CHANGELOG.txt file to create a list of targets. Reduce that risk by deleting those files, or make them impossible to read over the internet.

Fending off security attacks is like playing hide and seek with frequently shifting rules. The developers behind the most popular CMS platforms work tirelessly to keep up. The primary reason that WordPress sites are attacked more frequently is actually all about the numbers. It's the most popular CMS, and therefore the most vulnerable.
Categories: Drupal

MD Systems blog: MD Systems actively participated at the DrupalCon Dublin 2016

7 October 2016 - 5:46am
The european version of DrupalCon 2016 happened at the end of last month in Dublin and we were part of it. In this post we recap it from the MD Systems perspective. What we’ve been doing there? Which discussions and initiatives we’re most excited about? Read on and you’ll learn about that and more.
Categories: Drupal

Dries Buytaert: State of Drupal presentation (September 2016)

7 October 2016 - 5:33am

DrupalCon Dublin marked my 28th DrupalCon and #Driesnote presentation. You can watch a recording of my keynote (starting at 23:55) or download a copy of my slides here (185.4 MB).

The first half of the presentation I provided a technical update on Drupal 8. I showcased some of the big changes in Drupal 8.2 such as the settings tray, REST API improvements, migration tool improvements, and easier to use block placement. I also talked about how we've transformed Drupal 8 for continuous innovation. I'm super excited about our improved development process and release cycle, as it helps us ship innovative updates to Drupal 8 faster and with a much easier upgrade path.

The second half of the talk focused on "The why" of Drupal, and asked an important question for all of us to think about: what is Drupal's collective purpose? In addition to me talking about my own purpose, my team interviewed Drupal people around the world about their passion and purpose.

I featured a lot of interviews with Drupalists. If you're interested in viewing their individual videos, they're now available on my YouTube channel:

© Paul Johnson

Special thanks to Ash for the amazing design work on my slides and helping with the interviews, and Paul Johnson for the nice photo of me listening to Zsófi.

Categories: Drupal

Steve Purkiss: Short screencast intro to the new Drupal Console field:info command

7 October 2016 - 2:39am
Short screencast intro to the new Drupal Console field:info command Steve Purkiss Fri, 10/07/2016 - 10:39

I am a big fan of Drupal Console, the CLI built on top of Symfony Console for use with Drupal 8. As well as the ability to generate skeleton code, Drupal Console has a heap of commands for a number of uses, routing, debugging, and now with the new field:info command you can gain an overview of what fields are on a site and where they are used.

A bit of background

I wrote this last month as a result of attending the Drupal Global Sprint Weekend - London Outpost which was focusing on Drupal Console. I'd been wanting to learn how Drupal Console worked for a long time, and as it's always easier when sitting around a table with other Drupalers, I jumped at the opportunity and made my way up to the Big Smoke for the day. Big thanks due here to Robert Castelo for organising the sprint, and for keeping the Drupal lights on in London for all these years - I believe it was one of, if not the first, local Drupal User Group!

I managed to get all the info I needed to set up my machine on the Saturday in order to contribute to the project and take on an issue from the Drupal Console GitHub issue queue - one was a feature request for this command which looked like something I could achieve, so decided upon that as my task. It ended up taking a couple of weeks to write and I'm extremely happy with the results, of course I learned much on the way too so I never see it as 'contribution' but more as 'free learning' for me! A big thanks here to the DrupalConsole team who provided me with a lot of help over on the Drupal Console chat channel.

Stealing code is a Good Thing

I discovered a Drupal module which had the basic functionality I needed for this command - Field Report - which I then re-factored for use in Drupal Console and added the extras for the options. I even managed to contribute a patch back to the Field Report module to fix an issue they had, which was nice to be able to do as I'd used their code!

A quick retropective

I think the hardest part was getting the display to look nice, however as my first 'professional' programming was RPG (Report Program Generator, not Role Playing Games unfortunately!) for IBM AS/400s which originated from punch cards I was used to figuring out text-only outputs ;) Apart from that is was just a case of reading the Symfony Console documentation to understand how options and arguments work, and which one to use for particular purposes.

The field:info Screencast

And finally at last, here's the field:info screencast ~ enjoy!

Category Tutorials Tags Add new comment
Categories: Drupal

Freelock : 11 Questions Businesses need to ask themselves when choosing a Drupal host: The Comprehensive Freelock Hosting Guide

6 October 2016 - 5:17pm

When choosing any service provider, a crucial question is, "What happens if something goes wrong?" When you're choosing a hosting provider, we like to dig a bit deeper, and ask what risks are likely to be an issue for you?

Here are some of our questions:

DrupalHostingDrupal PlanetSecurityBackupmaintenanceUpdates
Categories: Drupal

Cocomore: Recap DrupalCon Dublin 2016: These Were The Highlights

6 October 2016 - 3:00pm

After a week on the Emerald Island we are back from DrupalCon Dublin. Like every year, we have seen members of the community that we don’t get to see as much as we would like to. We have attended fantastic sessions and learned new things that we want to apply in our daily business. Read more about our favorite sessions that are now also available on video for those who could not attend the event.

Categories: Drupal

Lullabot: Wi-Fi & Coffee, A Vacation? The DrupalCon Dublin Recap

6 October 2016 - 1:00pm
Matt and Mike sit down with fellow Lullabots Joe Shindelar and Chris Albrecht to talk about DrupalCon Dublin. We talk about our favorite sessions, bofs, social events, and attempt to answer the question, "Is DrupalCon a vacation?".
Categories: Drupal

Third & Grove: Creating a Custom REST API in Magento2

6 October 2016 - 9:34am
Creating a Custom REST API in Magento2 curtis Thu, 10/06/2016 - 12:34
Categories: Drupal

Four Kitchens: Team Work on the New NYU Nursing

6 October 2016 - 9:04am

Founded in 1932, the NYU Rory Meyers College of Nursing is the second-largest private university college of nursing in the US, and NYU wanted a new online experience that was as modern as their user base… […]

Categories: Drupal

Drupal Commerce: Drupal Commerce 2.0 Enters Beta

6 October 2016 - 8:55am

During the Commerce 2.x session at DrupalCon Dublin we officially tagged Drupal Commerce 2.0-beta1, our first production ready release. This does not mean it is feature complete or bug-free, but it does mean that from this point on, we support updating between 2.x releases - a key requirement for production usage. Start a Drupal 8 eCommerce site today, and you will be able to update your way to the full 2.0 release and beyond.

Photo credit Will Jackson during the "Launching online stores with Commerce 2.x on Drupal 8" session.

For a quick overview of our project philosophy and the improvements we've included in Commerce 2.x, watch our session from DrupalCon Dublin.

The session heavily features the Sport Obermeyer case study, one of the first major eCommerce projects built on Drupal 8 by Bluespark and Commerce Guys. Their project influenced and shaped Commerce 2.x development in a big way, validating our ideas and providing solid use cases for features like fancy attributes, promotions, coupons, and more.

Additionally, we helped build the project as a single site serving three unique customer personas with a different purchasing workflow for each one. That drove development on our add to cart and checkout flow APIs, ensuring they have the needed flexibility to allow parallel implementations from day one. In addition to the case study linked above, check out Matt Glaman's interview with Bluespark for more information.

So... what has changed since alpha4?

Read on to find out...

Categories: Drupal