In this series, we were able to set up a complete online store for our customer, Sweet Tees, using Drupal Commerce, a powerful, flexible e-commerce framework built on Drupal. We set up a payment system through PayPal’s Website Payments Standard. We also delved into the topic of data imports with the Feeds module, and covered tweaking Drupal’s functionality at various system points with the Rules module. In this lesson we'll tour the Sweet Tees site, discussing our implementation points, and reviewing the modules and resources we used.
Additional resources
Using Drupal, 2nd edition
Using Drupal source code
Up next: Using Drupal Appendix A: Installing and Upgrading Drupal
RedHen CRM is a Drupal-based customer relationship management tool. Many organizations use CRMs to help them manage the contacts they rely on to run successful campaigns. In this introduction tutorial, you will learn how to configure and use RedHen CRM, while also getting a tour of the features it provides. In the process, you will create contacts and organizations, and then use them to build a staff directory using the Views module and custom engagements scores with the Rules module. With that in place, you'll dive into what you have available in the Contact Dashboard, which is where you really get into managing your customers. You'll also get to see features such as contact deduplication to merge multiple contact records into one contact, and a list of resources to take things further than what is covered in this introduction.
If you want to follow along with the examples in this tutorial, you should be familiar with Views and Rules. You can learn more about Views in our Intro to Views for Drupal 7 Series, and you can learn more about Rules in the Learning the Rules Framework Series.
Additional resources
RedHen CRM website
RedHen CRM Drupal project
RedHen CRM Demo project
What Is Node.js?
FreeThis series is about integrating Node.js with Drupal 7 using the Node.js Integration contributed module on Drupal.org. The Node.js Integration project contains a number of submodules, and a separate Node.js application written in Javascript, that uses the Express, Socket.io, and Request packages.
Node.js is really fantastic for real time communications, something that Drupal is not particularly good at, out-of-the-box. The Drupal Node.js Integration module brings a host of real time capabilities and a client for your site to enable notifications when a variety of events occur, so your users can receive overlay notifications directly in their browser without page reloads!
In this series we'll cover:
- What Is Node.js?
- Install Node.js and the Node.js Drupal Module
- Configure Your Node.js Application
- Node.js Notifications Module
- Node.js Actions in Action!
- Content Update Messages with Node.js Subscribe
- Real-Time Log Viewing with Node.js Watchdog
- Node.js Checker, a Status Tool
- Get Ready for Production with Node.js
This series is a walk-through of how to get Node.js installed in your system, and how to install and configure the Node.js Drupal module, as well as a look at the related submodules. We'll install a different module that's dependent on the Node.js Drupal module. With this, you'll see how dependencies work in the context of the Node.js Drupal module's Node.js application's configuration.
Now, this series is not for the faint of heart. You'll need some Drupal administration knowledge, installing and configuring modules. We shall also be wildly typing things at the command line, so if you have some experience with command line use, that will definitely be helpful!
If you want to take your learning further, look for the self-check 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.
If you want to integrate Node.js and Drupal 7 so you can provide real time update notifications on your site, as well as a number of other real time communication options, this series is for you!
Additional resources
To use the Drupal Node.js Integration module, you need Node.js installed on your system, so in this tutorial, I will show you how to get this and the other dependencies installed on your system.
In this lesson, you will learn how to:
- Install Node.js on your system
- Test the version of Node.js installed
- Test the version of NPM installed
- Install the Node.js Drupal module
- Install the Node.js project dependencies with NPM
At the time of recording, I installed version v0.12.5 of Node.js. As the note on Node.js Previous Releases states: "Releases 1.x through 3.x were called "io.js" as they were part of the io.js fork. As of Node.js 4.0.0 the former release lines of io.js converged with Node.js 0.12.x into unified Node.js releases." - which explains the rapid version jump to the current 4.x releases.
You should make sure you have the latest version Node.js installed, particularly if there are security releases.
Note: Starting with version 7.x-1.11 of the Drupal module, the Node.js application is no longer bundled with the download. It can be downloaded seperately from GitHub or NPM.
Self-check question: Which version of Node.js do you have installed?
Additional resources
Note: This video is out of date and will be archived. Check this page for instructions: Node.js integration documentation.
To be able to use the Node.js Integration module, you need to configure both a Node.js application, as well as the Drupal Node.js Integration module itself.
In this lesson, you will learn how to:
- Enable the Node.js Config module
- Understand of all of the configuration options
- Generate a config file for our Node.js application
- Edit the generated configuration for a basic working setup
- Start the Node.js application
Self-check question: Did you remember to change the protocols array in your nodejs.config.js?
Additional resources
The Node.js Notifications module is the User Interface (UI) component of the set of Node.js Integration modules. In this video, you'll see the Node.js Integration module's basic functionality.
In this lesson, you will learn how to:
- Enable the Node.js Notifications module
- Explore the configuration options
- Broadcast a notification message
The Node.js Actions module makes use of the Drupal Core module, Trigger, and adds a new Action type that allows for real time notifications to be sent for various Trigger events. Check out this lesson to see it all in action!
In this lesson, I will show you how to:
- Enable the Node.js Actions module
- Explore the various notification types
- Enable notifications for users logging in and out of the site
The Node.js Subscribe module lets you configure your site to allow users to subscribe to real time notifications through your site's UI for particular content types. The Node.js Subscribe module uses the Node.js Notifications module to provide the UI for the notifications, which we covered in Node.js Notifications Module.
In this lesson, I will show you how to:
- Enable Node.js Subscribe
- Set permissions to allow users to subscribe to content
- Subscribe to some content and see Node.js Subscribe in action
Have you ever wanted to watch the "Recent Log Messages" page of Drupal load automatically? This module can be really helpful if you'd like to do just that.
In this lesson, I will show you how to:
- Enable Node.js Watchdog module
- Generate and watch log messages in real time
The Node.js Integration module has a number of other contributed modules that depend on it. Node.js Checker is one such module. We'll take a look at how this is set up with the Node.js Integration module by adding a dependency to our Node.js server configuration, and then see it all in action!
In this lesson, I will show you how to:
- Install the Node.js Checker module
- Enable the extension in the Node.js server configuration
- Configure the Node.js Checker block
Additional resources
Once you're happy with your Node.js setup in a local development environment, there are some further steps to take before running this set up in a production environment.
While not a requirement, I would highly recommend you use an SSL certificate, and configure your Node.js application and the Drupal Node.js module to run in HTTPS. You can read more about SSL certificates at The Linux Documentation Project.
Up until this point, we have been starting our Node.js application manually, from the command line. This is not a good method for a production environment, so we'll use PM2 to manage the running of our application.
In this lesson, I will show you how to:
- Install PM2, a Node.js module to manage your Node applications
- Configure PM2
- Add SSL configuration for the Node.js server
- Start up our Node.js application with PM2
Additional resources
Now let’s take a look at how we can configure fields to use semantic markup using the Fences module. In this tutorial, we’ll install and enable Fences module using Drush. Then we’ll take a look at the configuration settings for the module. Next we’ll hop into the field settings form for the body field and select an HTML5 tag as a new markup wrapper. Finally, we’ll take a look at how Fences field settings configuration carries over to Views and how we can override Fences markup in Views' field settings.
Additional resources
This next set of tutorials relates to controlling markup in Drupal when using the Views module. We’ll cover:
- What affects markup in Views
- Selecting an appropriate Views display format as a starting point for markup output
- Customizing field markup
- Customizing wrapper selectors and CSS classes
- Accessing theming information in Views
- Overriding Views template files
Additional resources
One thing that affects markup in Views is the format that is using for the display. In this tutorial we'll take a look, step-by-step, at the Unformatted list format in Views. We'll examine its default markup, how to add custom CSS classes—and to which elements—and what it looks like to remove all of Views' default markup.
Additional resources
Continuing our look at how Views' formats affect your markup, in this tutorial we'll take a look, step-by-step, at the HTML list format in Views. We'll examine its default markup and how to add custom CSS classes to various elements.
Additional resources
As we continue to look at how Views formats affect markup, we'll now examine the Table format in Views. We'll take a look at its default markup, how to add custom CSS classes to various elements and explore other settings unique to this format.
Additional resources
We've examined the Views formats and row style formatting. Now I'll walk you through the default field wrapper markup in Views. We'll inspect the default markup for fields, remove the default field wrapper markup and I'll point out some of the implications of this action, and then I'll apply a different Views format, so that you can see how the field wrapper markup is impacted by that configuration change. This will give you a better understanding of how markup is affected at the field-level in the context of a view.
Additional resources
Now that we’re familiar with the default field wrapper markup in Views, let’s explore how to customize this markup. In this tutorial, I will introduce to you a prototype of recent posts that was built using Pattern Lab. We’ll inspect the wrapper markup of two template files that compose this media list. After getting familiar with the prototype markup, we’ll apply that markup, step-by-step, to the fields in our view of recent posts. In doing so, we will use the custom field markup settings for each field and utilize rewrite results and replacement tokens to customize our markup output even further.
Additional resources
In the next few tutorials, we'll pull back the veil of Views theming a bit and introduce some tools to help you wrangle Views' template files. In this tutorial, I'll introduce you to Views Theme Information and how to use this interface to find out which template files are being used to mark up your view.
Additional resources
In this tutorial, we'll download the Theme Developer module and use it to inspect our view when it is using view modes for display instead of fields. We'll also look at how Theme Developer interacts with Views and some of the "gotchas" that can occur when using these modules together.
Additional resources
Theme Developer — Drupal.org
Devel — Drupal.org
simplehtmldom API — Drupal.org