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?
Additional resources
Mailing lists are the heart of all things MailChimp. Lists allow us to gather a database of email address, and other additional information, by asking people to subscribe to our list or by doing so automatically based on other actions they take within our application. Once subscribed, and added to a list, these addresses can be sent emails. MailChimp lists allow users to manage their own subscriptions, and to easily opt-out as desired.
In this tutorial we'll look at creating our first list in the MailChimp UI. We'll create one for a weekly newsletter on our site. And then we'll install the MailChimp Signup module and use it to create a simple form that allows users to subscribe to our mailing list.
The MailChimp Signup module can be used to create a page with a sign up form on it by specifying the internal path for the new page and choosing which list, or lists, the sign up form should allow a user to subscribe to. In addition, you can also create a sign up form as a block. These blocks are then available to place into any region on your site via the Drupal block administration screen. This gives you a lot of flexibility when it comes to placing sign up forms. Learn more about placing blocks on your site in the Working with Blocks in Drupal 7 video lesson.
Sign up forms created using the MailChimp Signup module will work equally well for anonymous and authenticated traffic. These are a great substitute for the copy/paste HTML forms that MailChimp gives you, with some distinct advantages, like for example keeping the labels of fields up to date if they change in MailChimp without having the copy/paste a new version of the HTML form.
By the end of this tutorial you should be able to create a MailChimp list and allow people to subscribe to that list via your Drupal site.
Further your learning
- When you create a list in MailChimp you provide some default configuration for that list. Where do you change those default settings?
- Which of the MailChimp project's sub-modules are required to be able to create a form that will allow visitors to subscribe to a MailChimp list? (Hint: there are 2 of them).
- What are the display modes available for a signup form created in Drupal? How do they differ?
- Further exploration: Can you add an “Interest group" to your MailChimp list and then have it displayed on the subscription form in Drupal?
Additional resources
One of the main advantages of using the MailChimp module to integrate Drupal with MailChimp is that you can allow users of your site with a Drupal account to manage their MailChimp subscriptions right through the Drupal user interface. In this tutorial we'll look at adding a MailChimp Lists field to Drupal's user entity type and then configuring that field so that we can allow users to subscribe/unsubscribe from a MailChimp list by signing in to their account. We'll also look at how we can allow users to opt-in to a MailChimp list when they register for a new account on our Drupal site.
The MailChimp Lists module is super flexible, and allows you to create a relationship between any fieldable Drupal entity and a list in MailChimp. While we're going to be using the module exclusively with user entities there are a lot of other options available. Basically, any entity with an email address can be subscribed to a list by adding the MailChimp Lists field to the entity type, choosing the list that subscriptions should be added to, and telling the field which other property, or field, on entities of this type contains a valid email address.
By the end of this tutorial you should be able to configure your Drupal site to allow users to manage their MailChimp subscription from within Drupal. As well as allow new users to opt-in to your mailing lists when they sign up for an account.
Further your learning
- Why does the MailChimp Lists module use a Drupal field API field to track subscriptions?
- Can you describe the primary difference(s) between allowing users to subscribe via the MailChimp Lists module, and allowing users to subscribe via the MailChimp signup module?
- Further exploration: What happens if you delete the account of a user who is subscribed to a MailChimp list?
- Further exploration: Can you create a new node type that can be subscribed to a MailChimp List? Give a use case for doing so.
Additional resources
- MailChimp Lists module documentation (drupal.org)