Pages

Monday, September 23, 2013

Drupal Commerce - Overview

This episode goes over a basic overview of Drupal Commerce and how it can be used to create a Drupal 7 based ecommerce website.
In this episode you will learn:
  • What is Drupal Commerce
  • How Drupal Commerce can be used to build flexible and dynamic ecommerce websites
  • Common Drupal Commerce terminology
DDoD Video: 


Drupal Commerce - Product Types

Learn how to create and manage Drupal Commerce Product Types on your Drupal 7 ecommerce website.
In this episode you will learn:
  • How to create a Drupal Commerce Product Type
  • How Drupal Commerce Product Types fit into the overall ecommerce website
  • How to add product images to a Drupal Commerce Product Type
DDoD Video: 


Drupal Commerce - Product Displays

Learn how to set up a Drupal Commerce product display for displaying ecommerce products on your Drupal 7 Drupal Commerce website.
In this episode you will learn:
  • How to create a Drupal Commerce Product display content type
  • How to add Drupal Commerce products to a cart
DDoD Video: 

Drupal Commerce - Product Attributes

In this episode we continue learning about Drupal Commerce and begin learning how to set up Drupal Commerce Product Attributes using Drupal Taxonomy.
In this episode you will learn:
  • How to set up Drupal taxonomy vocabularies and taxonomy terms to use as product attributes.
  • How to add Taxonomy term reference fields to Product types to create Drupal Commerce product attributes.
DDoD Video:

Drupal Commerce - Product Display layouts

In this episode we continue learning about Drupal Commerce and dive into some of the layout aspects of building out Drupal Commerce product displays.
In this episode you will learn:
  • How to modify the layout of a Drupal Commerce product display
  • How fields are used to control the Drupal Commerce product display layout
DDoD Video: 


Top Ten Best Drupal 7 Contrib Modules

Over the years I have used hundreds of Drupal contributed modules and have written a lot of my own. However, I thought it appropriate to compile a list of my 10 best Drupal 7 contrib modules that I don't think I could live without.
Criteria for my best drupal 7 modules list
Basically if I had to start a fresh Drupal 7 website today and had no idea what the site was going to be, these are the modules I would install.
Best Drupal 7 Module #1: Views
I would be surprised if you weren't expecting this one. This module is essential in every website I build. It makes displaying lists of content very easy. If you want an image slideshow, a list of blog posts, a list of products, etc., views is the best place to start.
If you have been building websites for a few years, you probably know what it feels like to have to write custom SQL to pull pretty much everything from the database (even for the simple things). Views solves 98% of those problems for you. It is a flexible and dynamic query builder that will help make even relatively inexperienced web developers look like a pro.
Because of the underlying complexity of the module, it has a little bit of a learning curve. It helps if you have some of the underlying SQL knowledge so you can make sense of what some of the advanced functions of the Drupal Views Module are doing in the background.
Best Drupal 7 Module #2: Panels
Panels gives you the ability to create custom pages easily. These custom pages can have multiple regions of content. For example, you may want to create a home page that has a Slideshow on the top, and a two column layout below. You could use Drupal's native block system for this, but I would highly recommend using Panel's instead.
One of the most useful pieces of Panels functionality is the ability to override the default node view for various content types. My Drupal sites tend to end up having quite a few content types by the time I am finished and the Drupal Panels module gives me the ability to easily change how each of those content types looks when viewed.
Best Drupal 7 Module #3: Ctools
Views and Panels both require the Drupal Ctools module as a dependency. It also worked out nicely to round out the top 3 with all merlinofchaos modules. On its own, Ctools does not seem to do a lot. However, it is actually a very powerful framework if you begin developing your own modules. I have used Ctools in the past for developing multi-step forms, modal dialog boxes, and even multi-step forms inside of modal dialog boxes.
Best Drupal 7 Module #4: Token
Tokens are little snippets of text that can be used as replacement patterns. For example, if your website sends out emails and you want to add in the users name, or you want fill in a link path with a node id to provide a helpful link to content, tokens will save the day. It may sound confusing, but many modules have token support and if you build a few sites you will most likely find yourself using them. There is also a fairly easy to implement API for exposing token values for your own Drupal modules.
Best Drupal 7 Module #5: Pathauto
The Pathauto module is a necessity for any website that frequently adds new content. It is also especially important if you have a website that allows users to create content using content types. Pathauto simplifies creating clean and search engine friendly URLS for the various content you add to your site. For example, it can make sure that all your blog posts are posted under "/blog/my-blog-title" (with the my-blog-title being replaced using Tokens). It is critical for creating and maintaining a well designed URL structure on any Drupal 7 website.
Best Drupal 7 Module #6: Webform
If you want to provide easy to fill out forms for the visitors of your site, the Webform module will help you out. The Webform module is great for contact forms, surveys, online employment applications etc.
The Webform module also proves to be very easy to use, even if you are not an experienced website developer. Simply build out the fields on your form, publish it, and you have yourself a working form... about as simple as it gets.
Best Drupal 7 Module #7: Rules
The Drupal Rules module is not something I use on every Drupal website that I build, however, it is such a flexible and powerful tool, I had to include it. Drupal rules will allow you to set up condition actions. If you find yourself saying:
If ________ (this happens)
Then ________ (do this)
Rules can help you build it. You can use Rules in your Drupal website to help you send emails, set messages, redirect to other pages on your site, and much more. If you become an avid user of Rules you may hit the ceiling of what you can do, however if you get to that point you have to start asking yourself if a custom module would be a better fit anyway.
Best Drupal 7 Module #8: Features
If you are building a lot of similar Drupal sites, you may find yourself rebuilding a lot of the same content types, views, and panel pages. Features helps solve those problems by allowing you to export those content types, views, panel pages, and other settings, into a Drupal module. The next time you need that functionality, simply drop in and install your Drupal features module and you will be good to go.
There is an even deeper level of respect for this module when you start talking about development/staging and live/production environments. If you create a content type and view in a development environment, and want to get that synced to the live environment, there is no better way than the Drupal features module. Any site that I build that needs a development environment gets all the content types, views, panel pages, and settings exported into one (or sometimes more than one) features module. This module then gets version controlled and can easily be pushed to the live environment. If you aim to become a serious Drupal developer, you can't live without the feature module.
Best Drupal 7 Module #9: Strongarm
This might not seem like it belongs in the top 10, but if you export as many features as I often do on some of the large sites I work on, this module is needed. I do not install features without installing the Strongarm module in tandem. This modules allows you to export your website configuration variables like your default email address for the website, front page url, and numerous content type options. It was a little overwhelming to me when I first was starting with Drupal, but if you understand a little bit about how Drupal works and how the Drupal variable table functions, you will quickly see how helpful this module can be.
Best Drupal 7 Module #10: Date
This is useful for allowing the easy selections of dates in content types (with a nice date popup). It also integrates nicely with the views module.
Other great modules
There are a ton of other great modules that didn't quite make my top 10. I have listed a handful of them here.
  • Drush - I know this isn't actually a module, but its to great a tool to leave out. This makes the task of installing/uninstalling modules and updating your drupal website a breeze. It also has a lot of other handy functions. 
  • Views Slideshow - Used to make nice looking image slideshows using views. Used on most public facing business sites I develop
  • Entity - this is required by a lot of modules so it ends up being installed on most of my Drupal 7 websites
  • Entity Reference - for the most part this replaces nodereferences and userreferences from Drupal 6. Helps you link various pieces of content together.
  • Quicktabs - Makes it easy to add tabbed content without having to write your own Javascript/Jquery. What more do I have to say?
  • Libraries - Makes organizing your various libraries of functionality easy (see Jquery UI above for an example).
  • Google Analytics - I don't build a Drupal website without adding Google Analytics. This module makes it very simple. What gets measured, gets improved after all.
There are many more that I use often that I neglected to mention, but the list is getting long enough. If you have others that would make your top 10, leave them in the comments.
Modules recommended in the comments
Here are a few modules that were recommended in the comments:

Monday, September 16, 2013

Upgrading to Drupal 7.23

Drupal 7.23 can be upgraded to (or installed) using any of Installatron's products. Use Installatron's optional Automatic Update feature to automatically apply Drupal updates as new versions are released, or use Installatron's Clone feature to duplicate an existing Drupal install to test the 7.23 upgrade prior to applying it live.


What's New in Drupal 7.23


Maintenance release of the Drupal 7 series. Includes bugfixes and small API/feature improvements only (no major new functionality); significant new features are only being added to the forthcoming Drupal 8.0 release. No security fixes are included in this release.
  • Added human-readable labels to image styles, in addition to the existing machine-readable name (API change: https://drupal.org/node/2058503).
  • Fixed the default ordering of CSS files for sites using right-to-left languages, to consistently place the right-to-left override file immediately after the CSS it is overriding (API change: https://drupal.org/node/2058463).
  • Fixed a fatal error on PostgreSQL databases when updating the Taxonomy module from Drupal 6 to Drupal 7.
  • Added a drupal_check_memory_limit() API function to allow the memory limit to be checked consistently (API addition).
  • Changed the default web.config file for IIS servers to allow favicon.ico files which are present in the filesystem to be accessed.
  • Fixed inconsistent support for the 'tel' protocol in Drupal's URL filtering functions.
  • Performance improvement: Allowed all hooks to be included in the module_implements() cache, even those that are only invoked on HTTP POST requests.
  • Made the database system replace truncate queries with delete queries when inside a transaction, to fix issues with PostgreSQL and other databases.
  • Fixed a bug which caused nested contextual links to display improperly.
  • Fixed a bug which prevented cached image derivatives from being flushed for private files and other non-default file schemes.
  • Fixed drupal_render() to always return an empty string when there is no output, rather than sometimes returning NULL (minor API change).
  • Added protection to cache_clear_all() to ensure that non-cache tables cannot be truncated (API addition: a new isValidBin() method has been added to the default database cache implementation).
  • Changed the default .htaccess file to support HTTP authorization in CGI environments.
  • Changed the password reset form to pre-fill the username when requested via a URL query parameter, and used this in the error message that appears after a failed login attempt (minor data structure and behavior change).
  • Fixed broken support for foreign keys in the field API.
  • Fixed "No active batch" error when a user cancels their own account.
  • Added a description to the "access content overview" permission on the permissions page (string change).
  • Added a drupal_array_diff_assoc_recursive() function to allow associative arrays to be compared recursively (API addition).
  • Moved the drupal_get_hash_salt() function to bootstrap.inc and used it in additional places in the code, for added security in the case where there is no hash salt in settings.php.
  • Fixed a regression in Drupal 7.22 that caused internal server errors for sites running on very old Apache 1.x web servers.