Once you have your site up and running it is very important to keep your site up to date and secure. Both Drupal core and contributed projects continue to improve the software with bug fixes and security updates. In this chapter we look at using the core Update Manager, and explain how to read the various reports about our site's status. Before we walk through the process up updating a contributed module, as well as our version of Drupal core, we also make sure we do a backup.
In this series we will walk through the process of building a basic Drupal 7 site. We start with installation and cover all of the major pieces of site building, including content, menus, blocks, users, and adding modules and themes. Along the way we'll define all of the common Drupal terminology and at the end you will have your first Drupal site, as well as the basic building blocks to build many more sites. This video gives an overview of the series.
WYSIWYG and Media Management
CourseIn this lesson we cover the concepts behind getting media (images) into your site. We describe the two common methods as inline or image field and the advantages/disadvantages of both.
Additional resources
Drupal site builders have long wanted to rearrange the display of each piece of content. The page manager module provides us with a default node view context we can use to accomplish just this. In this lesson you will learn how to break an article into two columns.
In this introductory series you will learn how use the Domain Access project to let you manage multiple "sites" with different domain names from just one Drupal installation. Domain Access "multisite" works differently from the core multisite feature in that you truly only have one site to manage. There is just one code base and one database. Domain Access takes advantage of Drupal's node access system to give the illusion of multiple sites. In this series we start off by getting some context through several presentations that explain what Domain Access offers, and why you might use it, how DNS and Apache web servers work, and what you need to understand about the node access system. Once we dive into the hands-on work, you will configure Apache to work with multiple domain names, and get Domain Access installed on your site. Then you will configure a very basic Domain Access site, learning how to share and restrict content, change themes, and set up permissions for fine-grained access control.
Additional resources
Domain Access project (drupal.org)
This series will implement the same example as the Multisite series did, but with Domain Access instead. You can see and compare the two methods. First, let's look at some other examples using Domain Access and see what we get when we download the package from Drupal.org. We'll also talk about the features provided, along with some things to be aware of and consider when choosing Domain Access.
Additional resources
Domain Access project (drupal.org)
Domain Access can do its magic because of the Drupal node access system. In this tutorial we'll walk through the basics of how this system works, highlighting the two main methods, and then explain why this may be important information for you. We won't be diving into the code side of things, but instead outline the basic concepts for anyone who needs to interact with this system. When using a module like Domain Access, you should be aware of the Drupal context in which you are working, even if you hopefully never have to dive into the details.
Additional resources
Controlling Access to Content Overview (drupal.org handbook)
Node access developer documentation (api.drupal.org)
In this tutorial we will get hands-on with Domain Access by getting the module installed. This is a more involved process than a regular module installation, but we just need to make sure we have a few things in place first. We're going to need to make sure we have our domains functioning correctly through Apache, and then add the Domain Access include file to our settings.php. With the configuration and module in place, we'll also verify that it is working properly and take a look at our domain list.
After watching this tutorial you will be able to properly install the Domain Access module, with its additional steps, and then verify that the installation was correct.
Additional resources
Domain Access project (drupal.org)
Domain Access Configuring settings.php (drupal.org handbook)
Installing the Domain Access module (Drush instructions) (drupal.org handbook)
With the main Domain Access site installed, we now need to get our other domain names added to the site and working. In this tutorial we'll review the settings for domains, add the Alumni and News domain names, and then test that all three domains are working properly.
Additional resources
Basic Domain Access module configuration (drupal.org handbook)
One of the biggest reasons to use Domain Access is to control the content for multiple domain names. In this tutorial we'll dive into content on our three sites. We'll start by sharing content across all the domains, and then create domain-specific content. To make managing the content across our domains easier, we'll then enable the included Domain Content module. This will provide us with some nice administrative tools to keep track of things.
In addition to different content, you may also want to differentiate your domains in how they look and change some of the basic site settings to make them appear more as separate sites. In this tutorial we'll use the Domain Config and Domain Theme modules (included in the Domain Access package) to let us do just this. We'll change our settings on one of the sites to set the homepage node to the About page we created earlier. Then we'll make the Alumni site look quite different by giving it a new theme. Through this process you will understand things you need to watch out for when configuring Domain Access sites, and how to be appropriately cautious with your settings.
To really make Domain Access work the way you need it, you need to make sure you set up your roles, users, and permissions correctly. We've been setting things up on our site as the administrator, but so far our site is not configured for other people to be involved. In this tutorial we're going to configure the permissions so that we have authenticated users who can create and edit content on particular domains. We'll also have several editors. Two of the editors can only manage content on their particular domains, while one editor will have access to all content across all three domains.
In the process of setting this up we'll review the Domain Access permissions documentation, then dive into configuring them. We will also look at how we can set a default domain for a role, even though we won't need that for this use case. To test things out, we'll create some content as different users and see how the editors can or can not interact with that content.
To get things moving in this lesson, we are starting off having already created a number of users, and adding an editor role to the site. We don't walk through this process in the lesson, so if you need a refresher for creating roles and users, you can watch Hands-On: Creating Roles and Users from the Using Drupal series.
Additional resources
Domain Access Permissions (drupal.org handbook)
With the basics of our three domains set up, you're ready to build out your sites. We've covered the main steps to get you started, but you'll find that there are a lot more options available to you as you build. Which additional modules you use will depend heavily on your particular needs. In this tutorial we'll talk about the other modules that are included in the Domain Access package, which we haven't used in this series. We'll also look at a list of other contributed modules that work with Domain Access to extend its feature set even further.
Additional resources
Domain Access modules (drupal.org handbook)
Domain Access related contributed modules (drupal.org handbook)
This series is about integrating MailChimp with Drupal 7 using the Drupal MailChimp module. It will help site builders and content creators create awesome email marketing campaigns and grow the number of subscribers on their mailing lists.
Email marketing is a proven way of increasing the traffic to your website. Even better, it’s a great opportunity to engage with your site's visitors, your store's customers, or your application's users, and learn more about them. When it comes to email marketing, MailChimp is one of the best tools for managing emails lists and analyzing email data. Lucky for us, the Drupal MailChimp module makes integrating MailChimp and a Drupal powered application easy.
In this series we'll cover:
- What is MailChimp?
- Installing and enabling the Drupal MailChimp module and its requirements
- Creating, managing, and soliciting subscribers to mailling lists in MailChimp and Drupal
- Keeping MailChimp data in sync with a Drupal user's profile
- Sending email campaigns in both Drupal and MailChimp
- Email marketing best practices
- Monitoring activity with MailChimp
And a lot more!
Our case study is the Anytown Ice Cream shop, which has three physical stores, and a website that provides its customers with info about the stores. We’ll create a mailing list for semi-regular updates, similar to a newsletter, and another that allows people to receive flavor of the day updates, optionally targeted to the stores they've listed on their profile. To keep things easier for our employees, we’ll automate the process of sending the flavor of the day emails using an RSS-based campaign. We’ll also look at collecting a customer's birthday so we can send them specials. I’ll refer back to this case-study a few times or use it to explain concepts.
Before you dive into this series, there are a couple of things you’ll want to know how to do first. I'm going to assume that you've already got some basic Drupal administration knowledge, notably how to download and install a module, and are at least familiar with Drupal’s UI for adding and editing fields as we’ll be using it a lot without going into details about the non MailChimp-specific parts. If you need to brush up take a look at our Drupal 7 site building guide for a refresher.
Finally, if you want to take your learning further look for the follow up questions in the description for each tutorial in this series. These questions are presented to help you make sure you’re understanding the material, and to encourage you to explore how what you've just learned could apply to your own use case.
Ready to learn how to integrate MailChimp and Drupal so you can create an awesome email campaign? Then you're going to love this series.
Additional resources
Drupal can already send email, and there are plenty of contributed modules that allow you to maintain a mailing list within Drupal. But there are some distinct advantages to using a service like MailChimp to maintain your mailing list and send your emails. In this tutorial we’ll talk about what MailChimp is, look at the benefits of using MailChimp with Drupal, cover some terminology that you'll want to be familiar with, and take a really high level look at how the MailChimp module goes about accomplishing its integration.
What is MailChimp? MailChimp is a web based service for designing and sending email marketing campaigns, and maintaining one or more lists of subscribers.
Why should you choose MailChimp? There are a lot of reasons to choose MailChimp as the tool to use for managing your email marketing efforts. At a really high-level it boils down to the fact that a service like MailChimp, which has an entire team dedicated to improving it's application, can potentially create tools and manage infrastructure that would be hard for you to develop on your own. In addition, MailChimp has a strong track record, and great integration with Drupal via the MailChimp Drupal module.
The MailChimp Drupal module allows you to tightly integrate your Drupal site with the MailChimp service by leveraging the MailChimp API. You can allow users to subscribe to your mailing lists, and manage their subscriptions, from within Drupal. Values collected for a field attached to a Drupal entity can be synchronized with merge fields for contacts in a MailChimp list. Administrators can send email campaigns right from within the Drupal UI, and monitor their performance. And much more.
By the end of this tutorial, you should be able to explain to someone why they might want to use MailChimp with Drupal. You should also be able to list the various types of integration provided by the MailChimp module.
Take your learning further
- In one paragraph answer the question: What is MailChimp?
- List the modules contained within the MailChimp project on Drupal.org.
- Describe two ways that MailChimp helps prevent you from being flagged as a Spammer.
- How does MailChimp aid content creators who are trying to create and send email campaigns?
- Further exploration: Can you generate a pros/cons list to use when deciding wether or not you should use MailChimp for your project?
Additional resources
In order to integrate Drupal 7 with MailChimp we need to first install the MailChimp module, and its dependencies. This will provide the framework that we'll use for our integrations throughout the rest of this series. The MailChimp module depends on the Entity API module, the Libraries module, and the MailChimp PHP API Client, so we'll need to install these as well.
The MailChimp project on Drupal.org consists of the main MailChimp module (mailchimp.module) that provides API integration, and a handful of sub-modules that use this API integration to allow Drupal to interact with various aspects of MailChimp. These are:
- mailchimp_signup: Create anonymous signup forms for your Mailchimp Lists, and display them as blocks or as standalone pages. Provide multiple-list subscription from a single form, include merge variables as desired, and optionally include Interest Group selection.
- mailchimp_lists: Subscribe any entity with an email address to MailChimp lists by creating a mailchimp_list field, and allow anyone who can edit such an entity to subscribe, unsubscribe, and update member information. Also allows other entity fields to be synced to Mailchimp list Merge Fields. Add a Mailchimp Subscription field to your User bundle to allow Users to control their own subscriptions and subscribe during registration.
- mailchimp_campaigns: Create and send campaigns directly from Drupal, or just create them and use the Mailchimp UI to send them. Embed content from your Drupal site by dropping in any Entity with a title and a View Mode configured into any area of your email template.
- mailchimp_activity: Display a tab on any entity with an email address showing the email, subscribe, and unsubscribe history for that email address on your Mailchimp account.
By the end of this tutorial you should be able to install the MailChimp module and all it's required dependencies and libraries, and confirm that they are all working.
Further your learning
- List the other non-core modules that are required in order to use the MailChimp module.
- What version of the MailChimp PHP API client does the MailChimp Drupal module use?
- The MailChimp project contains multiple sub-modules. What role does the MailChimp Campaigns sub-module fulfill?
- Explore further: What other projects on drupal.org that are not part of this series aid with integrating MailChimp with Drupal? When might you use one of those instead?
Additional resources
Before you can do anything else with MailChimp you'll need to create a MailChimp account. In this tutorial we'll walk through creating an account on MailChimp.com. Then, we'll look at where to find your API key, and how to add it to Drupal so that the Drupal MailChimp module can communicate with MailChimp on your behalf. Adding your API key is a required step to get MailChimp integration working with Drupal. Without an API key, Drupal can't make requests to MailChimp on your behalf.
By the end of this lesson you should have an account on MailChimp.com. You should also have located your account's API key and configured Drupal to use it.
Further your learning
- Why does MailChimp require personal details like address and phone number when creating an account?
- What is the purpose of providing Drupal with a MailChimp API key?
- Further exploration: In theory you can share a single MailChimp API key between multiple different Drupal sites. What effect would this have on your integration?