Our thoughts, perspectives, and musings on drupal planet


We share knowledge, ideas and ambitions openly, contantly improving and crtiquing our ideas in the larger community.

Posts tagged with drupal planet

Blog - drupal

Drupal 8 Campaign Builder

Recently, we were asked if we could integrate some small, one-page websites into an existing Drupal website. This would not only make it easier to manage those different websites and their content, but also reduce the hosting and maintenance costs.

Recently, we were asked if we could integrate some small, one-page websites into an existing Drupal website. This would not only make it easier to man...

Comments
Blog - drupal

Quick Setup with Composer Template for Drupal Projects

Pairing Composer template for Drupal Projects with Lando gives you a fully working Drupal environment with barely any setup. Lando is an open-source, cross-platform local development environment. It uses Docker to build containers for well-known frameworks and services written in simple recipes. If you haven’t started using Lando for your local development, we highly recommend it. It is easier, faster, and relatively pain-free compared to MAMP, WAMP, VirtualBox VMs, Vagrant or building your own Docker infrastructure.

Pairing Composer template for Drupal Projects with Lando gives you a fully working Drupal environment with barely any setup. Lando is an open-source, ...

Comments
Blog - devops

Deploying Docker containers - Introduction to Kubernetes

This post is part 5 in the series “Hashing out a docker workflow”. I have resurrected this series from over a year ago, but if you want to checkout the previous posts, you can find the first post here. Although the beginning of this blog series pre-dates Docker Machine, Docker for Mac, or Docker for Window’s. The Docker concepts still apply, just not using it with Vagrant any more. Instead, check out the Docker Toolbox. There isn’t a need to use Vagrant any longer.

This post is part 5 in the series “Hashing out a docker workflow”. I have resurrected this series from over a year ago, but if you want to checkout th...

Comments
Blog - drupal

Drupal Modules to Help Improve Your SEO

So you just finished building an awesome new website on Drupal, but now you’ve run into a new dilemma. How do optimize the site for search engines? Search engine optimization, or SEO, can be overwhelming, but don’t let that cause you to ignore certain things you can do to help drive traffic to your website. There’s nothing worse than spending countless hours to develop a web application, only to find out that users aren’t able to find your site. This can be extremely frustrating, as well as devastating if your company or business heavily relies on organic traffic.

So you just finished building an awesome new website on Drupal, but now you’ve run into a new dilemma. How do optimize the site for search engines? Se...

Comments
Blog - drupal

Migrating Drupal 7 redirects to Drupal 8

When migrating from Drupal 7 to Drupal 8, it is important to remember to migrate over the redirects as well. Without the migrations users will not find your content if for example: the redirect was shared on social media. Using the Migrate Plus module, it is quite simple to write a migration for the redirects. The Migrate Plus module contains some good examples on how to get started writing your custom migrations.

When migrating from Drupal 7 to Drupal 8, it is important to remember to migrate over the redirects as well. Without the migrations users will not fin...

Comments
Video - drupal

Pattern Lab in Drupal 7

Tom Friedhof: There’s a lot of hype around integrating Pattern Lab with your Drupal theme these days. Particularly because Drupal’s template…

Tom Friedhof: There’s a lot of hype around integrating Pattern Lab with your Drupal theme these days. Particularly because Drupal’s template…

41:26
Blog - development

Shibboleth Authentication in Symfony 2.8+|3.0+

Preface We recently had the opportunity to work on a Symfony app for one of our Higher Ed clients that we recently built a Drupal distribution for. Drupal 8 moving to Symfony has enabled us to expand our service offering. We have found more opportunities building apps directly using Symfony when a CMS is not needed. This post is not about Drupal, but cross posting to Drupal Planet to demonstrate the value of getting off the island. Enjoy! Writing custom authentication schemes in Symfony used to be on the complicated side. But with the introduction of the Guard authentication component, it has gotten a lot easier.

Preface We recently had the opportunity to work on a Symfony app for one of our Higher Ed clients that we recently built a Drupal distribution for. Dr...

Comments
Blog - drupal

Composer FTW! RIP Drush Make?

In the modern world of web / application development, using package managers to pull in dependencies has become a de-facto standard. In fact, if you are developing enterprise software and you aren't leveraging package managers I would challenge you to ask yourself why not?

In the modern world of web / application development, using package managers to pull in dependencies has become a de-facto standard. In fact, if you a...

Comments
Video - drupal

Drupal vs Proprietary Software: DrupalCamp LA 2016 Table Talk - pt. 4/5

Ron Huber: Proprietary software does a really good job of being everything to everybody. When somebody goes and pitches something for a…

Ron Huber: Proprietary software does a really good job of being everything to everybody. When somebody goes and pitches something for a…

11:43
Video - drupal

Drupal as an Integration Point: DrupalCamp LA 2016 Table Talk - pt. 3/5

Jordan Ryan: Are any of you selling, in particular with Drupal, the power of integrations or integrating with other systems? Kind of like…

Jordan Ryan: Are any of you selling, in particular with Drupal, the power of integrations or integrating with other systems? Kind of like…

12:05
Video - drupal

Who is Drupal Right For: DrupalCamp LA 2016 Table Talk - pt. 2/5

Ron Huber: It does go back to what Dries said earlier this year, about who adopts Drupal, right. I mean, they're truly ambitious web…

Ron Huber: It does go back to what Dries said earlier this year, about who adopts Drupal, right. I mean, they're truly ambitious web…

8:14
Video - drupal

Drupal 7 or 8: DrupalCamp LA 2016 Table Talk - pt. 1/5

Tom: Hey guys, we're here at DrupalCamp LA 2016, at UC Irvine. We've got a few shop owners here. We just wanted to have a conversation and…

Tom: Hey guys, we're here at DrupalCamp LA 2016, at UC Irvine. We've got a few shop owners here. We just wanted to have a conversation and…

11:47
Video - drupal

Incrementally Upgrading to Drupal 8

You guys asked so here we are. In my last video I answered the question, "Should I build on Drupal 7 or Drupal 8?" I mentioned in that video…

You guys asked so here we are. In my last video I answered the question, "Should I build on Drupal 7 or Drupal 8?" I mentioned in that video…

13:02
Blog - drupal

Adding pURL Multidomain XMLSitemap

On a recent project, we had to create multiple sitemaps for each of the domains that we have setup on the site. We came across some problems that we had to resolve because of the nature of our pURL setup.

On a recent project, we had to create multiple sitemaps for each of the domains that we have setup on the site. We came across some problems that we h...

Comments
Blog - devops

Drupal 8 Development in Docker - Redux

Back in December, Tom Friedhof shared how we set up our Drupal 8 development and build process utilizing Docker. It has been working well in the several months we have used it and worked within its framework. Within the time-span however, we experienced a few issues here and there which led me to come up with an alternative process which keeps the good things we like and getting rid of/resolving the issues we encountered.

Back in December, Tom Friedhof shared how we set up our Drupal 8 development and build process utilizing Docker. It has been working well in the sever...

Comments
Blog - drupal

10 Things Every Jr. Drupal Web Developer Needs to Know

The web development community can have a long list of requirements, languages, frameworks, constructs and tools that most companies or bosses want you to know.

The web development community can have a long list of requirements, languages, frameworks, constructs and tools that most companies or bosses want you...

Comments
Blog - drupal

Writing custom fields in Drupal 8 - Part 2

Continuing from Evan's blog post on building pages with Paragraphs and writing custom blocks of content as fields, I will walk you through how to create a custom field-formatter in Drupal 8 by example.

Continuing from Evan's blog post on building pages with Paragraphs and writing custom blocks of content as fields, I will walk you through how to crea...

Comments
Video - drupal

Drupal 7 vs Drupal 8

Which version of Drupal should you build your site on, Drupal 7 or Drupal 8? This question comes up quite frequently, and for good reason! Your website is an investment and could be serving you for the next 3-5 years. It's important to weigh the pros and cons of choosing to build on Drupal 7 or Drupal 8. If you're thinking about building your new site on Drupal 7, you need to watch this video first. Drupal 7 adoption is going down, with Drupal 8 adoption going up. Drupal 8 should hit critical mass by the end of 2016.

Which version of Drupal should you build your site on, Drupal 7 or Drupal 8? This question comes up quite frequently, and for good reason! Your websit...

5:32
Blog - drupal

Writing custom fields in Drupal 8 - Part 1

On a recent project we had to create a section that is basically a Twitter search for a hashtag. It needed to be usuable in different sections of the layout and work the same.

On a recent project we had to create a section that is basically a Twitter search for a hashtag. It needed to be usuable in different sections of the ...

Comments
Blog - drupal

Going back to Drupal, it's fun again!

Actually, we never left. We didn't stop building Drupal sites, even through the long release cycle. However, we did move our company website, activelamp.com, off of Drupal about 18 months ago. Our company site had been built on Drupal since the Drupal 4.7 days. That was back when it started to become uncool to write and maintain your own home-grown CMS. I eventually found Drupal, ditched my custom CMS, and never looked back. Our site started on Drupal 4.7, upgraded onto Drupal 5, then Drupal 6, and also Drupal 7 all at the beginning of the release cycles of Drupal. About 18 months ago, when our site was in dire need of an update, we evaluated Drupal 8 but realized with no release date in sight, and the fact that we did not want to chase HEAD and develop on unstable API's, we decided to go a different route and build our updated site on Jekyll, a popular static generator. It's more fun to tinker with new technology when working on non-billable stuff, which is what we did. We brushed up on our Ruby skills and built out a Jekyll site (which is this site you're looking at if you're reading this blog post before Q3 of 2016). We're getting ready for another update to our company website and moving back to Drupal to do it. Jekyll was great, but it came with its disadvantages over something like Drupal. This post will highlight some of the advantages and disadvantages of working with Jekyll the past 18 months, as well as highlight why we're excited to put activelamp.com on Drupal 8 in Q3 of this year.

Actually, we never left. We didn't stop building Drupal sites, even through the long release cycle. However, we did move our company website, activela...

Comments
Video - drupal

Encapsulation, Inheritance, Polymorphism with Drupal Entities - SandCamp 2016

One of the best things to happen with the Drupal 7 release was the introduction of Entities. Drupal Entities have been around forever, but it seems like a lot of developers still refer back to using Nodes when creating content that requires more functionality than what Nodes give you out of the box. In this video, I talk about why it's a good idea to create your own Entities when the content you're adding requires extended functionality. I talk about the "what" and the "why" of Entities, not necessarily "how" to create an Entity. There are a bunch of resources already out there on the Internet for that. I talk about using the Entity API module, and defining your own Class for your custom Entities. This presentation was given at SandCamp 2016.

One of the best things to happen with the Drupal 7 release was the introduction of Entities. Drupal Entities have been around forever, but it seems li...

20:45
Blog - drupal

Adding CKEditor plugins to Drupal 8

Drupal 8 has greatly improved editor experience out-of-the-box. It comes shipped with CKEditor for WYSIWYG editing. Although, D8 ships with a custom build of CKEditor and it may not have the plugins that you would like to have or that your client wants to have.

Drupal 8 has greatly improved editor experience out-of-the-box. It comes shipped with CKEditor for WYSIWYG editing. Although, D8 ships with a custom b...

Comments
Video - drupal

Creating Layouts with the Layout Plugin Module in Drupal 8

Writing custom layouts using the Layout Plugin module for D8 is really easy. This video will outline how to create a new layout in your theme using Foundation 6 as the base theme and how to extend the layout to add custom classes and id.

Writing custom layouts using the Layout Plugin module for D8 is really easy. This video will outline how to create a new layout in your theme using Fo...

7:34
Video - drupal

Page Manager, Panels, Context - SandCamp 2016

Panels, is one of the most mis-understood modules in the Drupal eco-system. Drupal developers seem to either love Panels, or hate it with a passion. Most of the time, when I begin to unwrap why people do not like Panels, it is mainly a misunderstanding of what makes Panels so powerful, Page Manager. In this video, presented at SandCamp 2016, see a mock sports league built out with the Node system and Field system that includes various relationships between the different node types. Watch, as we realize the entity relationships we create through the Field UI through the page manager UI. Lots of power in this suite of tools.

Panels, is one of the most mis-understood modules in the Drupal eco-system. Drupal developers seem to either love Panels, or hate it with a passion. ...

39:53
Video - drupal

Composer Manager in Drupal 7 and Drupal 8

This video will take you through the correct way to use composer dependencies in Drupal 7 and Drupal 8 using the Composer Manager module. This video part 2 to the PSR video we did last month, that shows how to write a views handler using PSR-4 class autoloading (http://activelamp.com/videos/psr-4-class-autoloading-with-drupal-7). At the end of the PSR-4 video, I pulled in a composer dependency not using Composer Manager. This video will show you the correct way to use Composer with Drupal.

This video will take you through the correct way to use composer dependencies in Drupal 7 and Drupal 8 using the Composer Manager module. This video p...

21:14
Blog - drupal

Sandcamp 2016 Recap

The San Diego Drupal Camp was great! You can't beat the weather in San Diego, and as usual, these regional events are great for catching up with old friends that are still plugging away with the Drupal content management system. Checkout our highlight video: This year I had the pleasure of giving 3 sessions at the camp, and as promised, I want to share the slides and code for everything that I presented. Each deck is iframed in on this article, feel free to checkout my github page if you want the speaker notes too.

The San Diego Drupal Camp was great! You can't beat the weather in San Diego, and as usual, these regional events are great for catching up with old f...

Comments
Blog - development

Extending Drupal: all about the service container

The biggest thing that got me excited with Drupal 8 is the first-class use of services & dependency-injection throughout the entire system. From aspects like routing, templating, managing configuration, querying and persisting data, you name it -- everything is done with services. This is a great thing, because it grants developers a level of flexibility in extending Drupal that is far greater than what Drupal 7 was able to. I'll walk you through a few strategies of extending existing functionality, leveraging the power of Symfony's component.

The biggest thing that got me excited with Drupal 8 is the first-class use of services & dependency-injection throughout the entire system. From aspec...

Comments
Blog - devops

Creating a deployable Docker image with Jenkins - Part 4

This post is part 4 in the series "Hashing out a docker workflow". For background, checkout my previous posts. My previous posts talked about getting your local environment setup using the Drupal Docker image with Vagrant. It's now time to bake a Docker image with our custom application code within the container, so that we can deploy containers implementing the immutable server pattern. One of the main reasons we starting venturing down the Docker path was to achieve deployable fully baked containers that are ready to run in whatever environment you put them in, similar to what we've done in the past with Packer, as I've mentioned in a previous post.

This post is part 4 in the series "Hashing out a docker workflow". For background, checkout my previous posts. My previous posts talked about getting ...

Comments
Blog - devops

Our build process using Drupal 8

Now that the release of Drupal 8 is finally here, it is time to adapt our Drupal 7 build process to Drupal 8, while utilizing Docker. This post will take you through how we construct sites on Drupal 8 using dependency managers on top of Docker with Vagrant.

Now that the release of Drupal 8 is finally here, it is time to adapt our Drupal 7 build process to Drupal 8, while utilizing Docker. This post will t...

Comments
Blog - drupal

Visual Regression Testing with Shoov.io

Shoov.io is a nifty website testing tool created by Gizra. We at ActiveLAMP were first introduced to Shoov.io at DrupalCon LA, in fact, Shoov.io is built on, you guessed it, Drupal 7 and it is an open source visual regression toolkit.

Shoov.io is a nifty website testing tool created by Gizra. We at ActiveLAMP were first introduced to Shoov.io at DrupalCon LA, in fact, Shoov.io is bu...

Comments
Blog - devops

Docker: A Minimalist's Choice

A little over a year ago the ActiveLAMP website had undergone a major change -- we made the huge decision of moving away from using Drupal to manage its content in favor of building it as a static HTML site using Jekyll, hosted on Amazon S3. Not only did this extremely simplify our development stack, it also trimmed down our server requirements to the very bare minimum. Now, we are just hosting everything on a file storage server like it's 1993.

A little over a year ago the ActiveLAMP website had undergone a major change -- we made the huge decision of moving away from using Drupal to manage i...

Comments
Blog - drupal

Drupal to Ember without Saving

Running headless Drupal with a separate javascript framework on the front-end can provide amazing user experiences and easy theming. Although, working with content editors with this separation can prove to be a tricky situation.

Running headless Drupal with a separate javascript framework on the front-end can provide amazing user experiences and easy theming. Although, working...

Comments
Blog - devops

Setting up a Docker development environment with Vagrant - Part 3

This post is part 3 in the series "Hashing out a docker workflow". For background, checkout my previous posts. Now that I've laid the ground work for the approach that I want to take with local environment development with Docker, it's time to explore how to make the local environment "workable". In this post we will we will build on top of what we did in my last post, Docker and Vagrant, and create a working local copy that automatically updates the code inside the container running Drupal.

This post is part 3 in the series "Hashing out a docker workflow". For background, checkout my previous posts. Now that I've laid the ground work for ...

Comments
Blog - drupal

Drupal 8 - First Experiences

I recently had time to install and take a look at Drupal 8. I am going to share my first take on Drupal 8 and some of the hang-ups that I came across. I read a few other blog posts that mentioned not to rely too heavily on one source for D8 documentation with the rapid changing pace of D8 the information has become outdated rather quickly.

I recently had time to install and take a look at Drupal 8. I am going to share my first take on Drupal 8 and some of the hang-ups that I came across....

Comments
Blog - devops

Docker with Vagrant - Part 2

This post is part 2 in a series of Docker posts hashing out a new docker workflow for our team. To gain background of what I want to accomplish with docker, checkout my previous post hashing out a docker workflow. In this post, we will venture into setting up docker locally, in the same repeatable way from developer to developer, by using Vagrant. By the end of this post, we'll have Drupal running in a container, using Docker.

This post is part 2 in a series of Docker posts hashing out a new docker workflow for our team. To gain background of what I want to accomplish with d...

Comments
Blog - drupal

How to Use Picture and Image Replace for Drupal 7

The Picture module is a backport of Drupal 8 Responsive Image module. It allows you to select different images to be loaded for different devices and resolutions using media queries and Drupal’s image styles. You can also use the Image Replace module to specify a different image to load at certain breakpoints.

The Picture module is a backport of Drupal 8 Responsive Image module. It allows you to select different images to be loaded for different devices and ...

Comments
Blog - culture

ActiveLAMP on L.A. DrupalCon 2015

On May 11, the entire ActiveLAMP team headed to the Los Angeles Convention Center for DrupalCon 2015. Not only did we gain an immeasurable amount of knowledge, but also an immeasurable amount of free T-Shirts and swag. It was a first-time experience for most of the team, and there was something for everyone. Each one of us learned a great deal, here are some of our memories -

On May 11, the entire ActiveLAMP team headed to the Los Angeles Convention Center for DrupalCon 2015. Not only did we gain an immeasurable amount of k...

Comments
Blog - development

Divide & Conquer: Drupal 7, Symfony, Elasticsearch, and AngularJS - Part 2

In the previous blog post we shared how we implemented the first part of our problem in Drupal and how we decided that splitting our project into discrete parts was a good idea. I'll pick up where we left off and discuss why and how we used Symfony to build our web service instead of implementing it in Drupal.

In the previous blog post we shared how we implemented the first part of our problem in Drupal and how we decided that splitting our project into disc...

Comments
Blog - development

Divide & Conquer: Drupal 7, Symfony, Elasticsearch, and AngularJS - Part 1

It isn't just about Drupal here at ActiveLAMP -- when the right project comes along that diverges from the usual demands of content management, we get to use other cool technologies to satisfy more exotic requirements.

It isn't just about Drupal here at ActiveLAMP -- when the right project comes along that diverges from the usual demands of content management, we get...

Comments
Blog - drupal

Customize autocomplete fields with results you want

<p> Occasionally a node reference or entity reference autocomplete widget will not operate as expected, specifically when it is based off a view reference display.<!--more--> Other widgets, the select box, or list of checkboxes, will still function correctly. </p> <p> This will happen if the view is depending on a contextual filter (an argument), but is not being provided one. Normally a view can try to automatically fill in the argument if one is not provided based on the current page url. If the view fails to receive an argument and is unable to infer its value from the url path then it will fail to provide any results. </p> <p> Outlined below is a possible scenario that would cause an autocomplete node reference field to fail. </p>

<p> Occasionally a node reference or entity reference autocomplete widget will not operate as expected, specifically when it is based off a view refer...

Comments