basics

Making Drupal Easier

In my capacity running this site I get a steady stream of inquiries and requests for assistance with everything from initial installs to theme issues to the configuration of modules and more. I have to admit that while I do the best I can to offer advice on these issues many of them are outside the scope of my knowledge. In fact, sometimes when I get inquiries I'm struck by two thoughts that underscore the nature of Drupal. The first thought is that I have a lot to learn. The second thought is that Drupal is one complex system. These thoughts lead me to some blanket advice that I believe can help a lot of people who are just getting into Drupal and scratching their heads about how to tackle what may seem like a monster task.

As I said I have a lot to learn about Drupal. This is after almost four years of building sites with the platform. So the first pieces of advice that with help the hike up Mount Drupal easier are to expect to keep on hiking and focus on the ground in front of you. To put it in clearer language, Drupal requires continuous learning and it's best to focus on learning what you need to know now instead of being in awe of all that you've yet to learn. This situation is not unique to Drupal. The necessity for constant learning is required with any system that is being constantly improved. This is worth pointing out because every day more people are getting introduced to Drupal who came from a world of closed source systems or html-based, non-dynamic websites. What was once relatively static is now a moving target...forever!

A Commitment To Learning

So a commitment to open source web systems is a commitment to learning. I think that Drupal is a complex system. It's also a powerful system and because of that you can do great things with it. I think what draws people to Drupal tends to be the shortcomings of other systems (I once heard someone say that WordPress was like a gateway drug for future Drupal developers) as well as the well known possibilities of Drupal. Those possibilities come with an overhead though. That's why some other advice I would give to people who are new to Drupal is to spend three hours learning for every hour that you try to do something with Drupal. There's no science in that ratio but I've come to believe that initially that this works better than if you flip it around and spend three hours of doing for every hour of learning. 

As far as I'm concerned toying around on a development site is akin to learning. I'm surprised at how many emails I get that start out with something like, "I'm new to Drupal and working on a site for a client..." For the clients sake I say this. Build that learning time into the development estimate. Because it's better to take longer and get it right than to rush it and force inferior process or functionality on the client. Drupal is just not a start today, launch next week (or even next month) system if you're not very familiar with it. The extra time for learning is worth it. It's worth waiting a few months to launch a site that you can be confident does what you want it to do while at the same time you're confident that you can manage it. What's the down side of this approach? The only possible downside is that you spend all this time and Drupal ends up going away or falling apart somehow. That's not happening. So what you're doing is making a valuable investment in the future of how systems are developed on the web.

Focus On The Task At Hand

Then there's the second part about putting your head down and focusing on the ground in front of you. The world of Drupal code is vast. Just look at all the modules on Drupal.org. There are more every day. And older ones are being improved upon to add new functionality. What that means is that if you are new to Drupal and you are keen on packing your first site launch with every feature found in Facebook or MySpace then you're going to run into trouble. Start a list of things that you would like people to be able to accomplish on your site. Prioritize that list and then focus on the top three things. Research the possibilities for making those three things work very well. If you can't make one of those things work well then skip it and pick up number four on the list. Keep in mind that you're implementing these things in addition to getting used to the core Drupal functions like administering the site. You are much better off launching a site with three things that work rock solid than ten things that work half way. You'll be swamped. You'll feel overwhelmed. And you might blame Drupal. Blaming Drupal for being overwhelmed is like blaming a mountain for how high it is. Drupal mountain is big. Take it one step at a time and you'll enjoy the hike.

Get To Know The Admin Functions

I have some other advice to offer. When you first get started with Drupal take a stroll through the admin section. Click on every link you can find in the core admin section. Study each page so that you can see what's available. Perhaps make notes about things you don't understand about the interface or the available options. There's a lot going on in the back end. All of it is important to the site that you will create and maintain for many years perhaps. I know that there is an urge to start doing something more right away. I've been there so I can't point fingers. But when you're done doing whatever it is come back and make a point of clicking all of those links. I've gotten so many notes from people who had probably slapped their foreheads after I pointed some simple out. My responses are usually delayed so I always hope that they were able to find out via Drupal.org or some other Drupal forum. That investment of time in the admin area can hopefully prevent some undue frustration.

My hope is that the advice in this post can help to make the transition to Drupal easier for some people. There's another more universal benefit of all this effort as well. In many ways the situation with Drupal mirrors other parts of our lives. Drupal is constantly changing. So are our lives. New functionality is constantly appearing just as new opportunities and tools are popping up in our lives. Change and complexity is all around us. So learning to slow down, be patient and embrace learning, especially in the early phases of introduction, is a very good thing. The benefits of such an approach extend to other areas. At least I think so. Oh, and one more thing. Have fun with it. Drupal should be fun. If it isn't then perhaps it's time to slow down and focus on the fundamentals.

I'll conclude by letting you know that I consider myself to be about as average as any person who builds Drupal sites can be. I've done some programming in my time but never PHP. I used to work with Dreamweaver, like so many have, but even then I wasn't a web developer by trade. These are the philosophies that have helped me, as a non-developer, get to the point where I can make some things happen with the Drupal platform. There's lots of other sage advice to be had especially at in-person Drupal meetups and on Drupal.org. This is just one more drop into the sea of Drupal advice because the goal of this site is to help you learn one drop at a time.

Bookmark and Share Bookmark or Share Post

The Deal With Nodes

Every so often I'll get a question from a user who is new to Drupal about nodes. "What is a node?" they want to know. Nodes are explained on Drupal.org as, "...any posting, such as a page, poll, story, forum text, or blog entry." That description is close but not every post on a Drupal site is a node. Comments (as the Drupal.org item mentions) are not nodes. Neither are user profiles.

The Difference Between Nodes And Other Content

Nodes contain at a minimum a title and most likely a body (or description) field. You actually have the option to not use the description field at all. All standard node types on a Drupal site contain a title and a body. You can add additional fields  (like email address, date or url) to your node types using the Content Construction Kit (CCK) module. You can create new node types altogether by using the core feature located at admin/content/types/add. This allows you to create a new type of node which can be customized by utilizing CCK.

Other content, like comments, profiles or the registration form, won't necessarily contain a title and body field. Another difference is that other content may not be indexed by the standard Drupal search functionality. User profiles are not indexed by Drupal search. Neither are items captured by the core aggregator module. Comments are indexed by Drupal search as a standard feature starting with Drupal 6.

Two more important node features are comments and attachments. Comments can be enabled (or disabled if you like) for every node type. Likewise you can attach files (like documents or images) to nodes as well. Finally, the standard Drupal statistics system will only keep track of node views.

What This Means To The Drupal Site Builder

So you've got these nodes and there are these other types of content floating out there. How does it affect how you build and manage your site? There are a world of options available when it comes to nodes.  So you  really need to consider the limitations of the types of content that aren't nodes. Let's look at the case of user profiles.

User profiles are not searchable and cannot be customized by CCK. If you don't plan to rely on user profiles as an important feature of your site then you probably won't care about this issue. Those that do care about the issue usually look for a work around like a nice contributed module. The content profile module can help you make profiles available as nodes.

Imported content is another issue. The standard aggregator module lists imported items but does not offer a permanent link, search indexing or the ability to add comments to the items that you have imported. If you really want to build your site around aggregated content then you will probably want to investigate contributed modules like Activity Stream or Feed API.

There can be a down side to turing certain types of content into nodes. As you add more and more content as nodes your site performance could be negatively impacted. So the balance between everything as nodes and the potential performance and maintenace issues should be considered.

How To Know When You've Created A Node

You know that content is a node when it is created by going to the node/add link on your Drupal site. I mentioned that for two reasons. First, it's a simple way to know if a node is created. Second, it's because pages don't necessarily have to be nodes.

There are pages that are created by going to the link node/add/page on your site. Those pages are nodes. They will be indexed by search, can have file attachments, comments, etc. You can also create a page which contains a list of nodes by using the Views module. It is very important to understand that distinction.

Why You Might Not Care

If you're building a very basic site that simply relies on the standard content types (like blog, page, story, poll, forum post) then whether or not content is considered a node should not be important to you. If that's the case then have no worries.

As I stated above it could become an issue if you plan to do more complex things like making use of imported (aka aggregated) content and complex user profiles.

Comments Welcome

Since this is a blog post, which means (hooray!) it's a node, you can and should leave comments if the concept continues to confuse or otherwise perplex you.

Bookmark and Share Bookmark or Share Post

Installing Drupal On A Localhost

Lesson One of my special Getting Started With Drupal series of instructional videos.

This video shows how to install Drupal to a localhost on a Windows based computer. Wampserver is used to create the proper environment.

UPDATE: Be aware that if you install the latest version of Wampserver and combine it with Drupal 6.13 or above you will likely get the following error. Deprecated: Function ereg() is deprecated in C:\wamp\www\drupal\includes\file.inc on line 902

The error is caused by the fact that the newer version of Wampserver utilizes version 5.3 of PHP and the latest version of Drupal does not support PHP 5.3. You can remedy the issue by installing an earlier version of Wampserver that has the 5.2 branch of PHP. Wampserver 2.0h (found at this link) includes PHP 5.2.9-2. Another option is to use another stack installer such as the Acquia Drupal Stack Installer.

Bookmark and Share Bookmark or Share Post

Three Keys To Drupal Success

There are three very important tips that will help non-programmers build sites with Drupal. They've helped me so I believe they can help you. Oh and they're very simple.

  1. Give yourself plenty of time. When you're new to Drupal the last thing you want is to have to rush to deploy a site. Spend a few weeks exploring the platform and trying different things before you start development in earnest.
  2. Have a lot of patience. Anytime you're learning something new you will hit snags. You may get a bit frustrated as you attempt to learn this system. Hang in there. The effort will pay off.
  3. Be committed to learning. This is so important with a system like Drupal. Open source systems are always changing and Drupal is no exception to that rule. New and updated modules are released every day. New features come with major releases. Other web services that you can connect to with Drupal are changing. So if you want to stay sharp realize that your ability to absorb new information is a great asset.

These tips are simple, but that doesn't mean they are easy to adhere to. Sometimes the tough challenges in life are the ones that mean the most in the end. Becoming adept at managing a Drupal site definitely falls into the tough but rewarding category. Good luck.

Bookmark and Share Bookmark or Share Post

Drupal Is A Publishing System

The first question that many people ask when they hear about Drupal is, "What is Drupal?" The answer can become very complicated. In the interest of being concise I've begun to tell people that Drupal is a publishing system for the web.

With Drupal a single person or many people can publish all sorts of content. The content can include text, audio, video, images. The content can include long dissertations and short blog-style posts. The content can also encompass things like user profiles, ratings and comments.

Once published you can do all sorts of different things with that content, including creating custom lists, galleries or RSS feeds. You can learn how to do all of that in time. But the first concept (and maybe most important concept) to grasp is the fact that Drupal is a publishing system for the web.

Bookmark and Share Bookmark or Share Post
Syndicate content