Welcome to the TopNotchThemes Drupal Handbook!
Our handbook is geared towards non-programmer types who are implementing or running a Drupal site. We focus on educating you on the full spectrum of logistics required, from finding a web host to hiring contractors to evaluating potential third-party modules for your site.
We also cover topics related to our themes, such as installation and customization, and working with Drupal themes in general. We hope you come to love Drupal as much as we do!
Terminology, working with other Drupal professionals, optimizing your site, getting hosting up and running — there’s a lot to think about when you’re starting up a Drupal site for the first time. This section focuses on the business side of things — hiring, marketing, e-commerce, and getting the basics into place before you actually roll up your sleeves and start building the site.
One of the biggest hurdles to overcome when learning about Drupal is all the terminology thrown around -- node, contrib, CCK -- what the heck are they talking about? In this section you'll find some links to resources that will help you dive more into the world of Drupal.
So you’ve heard about Drupal and understand the basics, but you may still have more in depth questions. There are ample places you can learn more about Drupal, including books, courses, websites and even online chat. Below is a list of various resources that you can check out.
There are many books out there that cover Drupal as a whole or specific aspects of it. 2008 is definitely the year of the Drupal book!
Some of the titles you may encounter include Drupal: Creating Blogs, Forums, Portals, and Community Websites by David Mercer and Building Online Communities With Drupal, phpBB, and WordPress by Robert T. Douglass, Mike Little, and Jared W. Smith. While these books were once very useful and popular, they are pretty outdated at this point and we wouldn’t recommend them.
There is also Pro Drupal Development by John VanDyk and Matt Westgate. This book is current and an excellent resource, it is much more programmer-focused and steers you towards writing your own modules. Buy it for your developers ;)
For beginners, there is Drupal 5 Themes by Ric Shreves. This book is new and a perfect introduction to theming with Drupal 5. It does require knowledge of CSS and HTML, along with a dose of creativity in order to get full use of the potential of the book. However, as an introduction to themes and Drupal basics, it is an excellent read.
Building powerful and robust websites with Drupal 6 by David Mercer is the newest book coming out from Packt Publishing and is a follow-up to Drupal: Creating Blogs, Forums, Portals and Community Websites. This book is the perfect introduction to building a site with Drupal. It will lead you from initial planning of a site right through to the launching of your site. It’s full of helpful advice to less technical site implementers. There will be other books coming out within the next year too, aimed at different audiences.
So far there are also plans for upcoming books on:
While there are some schools that may teach general courses in regards to CMSes, few of these will cover Drupal specifically. This doesn’t mean there aren’t any, however, finding a class specifically catered towards Drupal is unlikely. Check your local schools for any courses on content management systems or dynamic web sites, or even online journalism (Drupal is popular for news websites and this is sometimes taught in the curriculum).
DrupalCon.org is the best place to keep on top of the planning and scheduling of major Drupal conferences around the world. DrupalCon is the world-wide meet up for Drupal programmers and users alike. Hundreds of people from all over the world get together to learn more about Drupal, as well as connect with people who may be able to assist in their own websites. There are usually two per year, one in North America and one in Europe.
Traveling about the world to attend conferences isn’t always a possibility for everyone. However, all over the world there are also smaller meet-ups and user groups which are an excellent way of networking and discussing with local Drupal users. Searching on Google for your location and “drupal” is the best way to find these, or look for your location’s group on groups.drupal.org. Most meet ups of this size are free and less scary than bigger conventions can be. They vary from casual, social get togethers, to multi-day training. These are great for new users to Drupal!
Lullabot is a company that has pretty much cornered the market on workshops and seminars. They are real Drupal experts and major contributors to the Drupal community who teach to both beginners and more advanced users. Their hands-on workshops are usually around 50 people, and range from one day to a week long. They run from hundreds of dollars to $1500+, but if you’re serious about learning and benefit from face-to-face training, this is the way to do it.
While there are many books and seminars one could attend, it’s not required you spend anything in order to find out more about Drupal. All you need is your internet connection! Some are better resources than others, but you’ll find everything from quick lists of tips to full video training online.
Drupal.org is the heart and soul of Drupal. This site (http://drupal.org/) is the central place for all things Drupal and is the best place for an official answer, and the only place you should be downloading modules or Drupal itself from. Many Drupal users from all skill levels post on this website to learn, as well as help others with their Drupal experiences.
There are two excellent places to check out on the drupal.org website. There’s the Handbooks - http://drupal.org/handbooks which gives you everything from beginners and getting started with Drupal, straight through advanced development for Drupal. However, this isn’t the only place to learn more. There is also the drupal.org forum - http://drupal.org/forum which is where you can peruse various categories to learn more about the program. Search, search, search! Try Drupal’s advanced search (http://drupal.org/search) and you can limit your query to searching modules, forums, etc.
People on drupal.org are generally very helpful, friendly, and fun, especially if you provide a detailed description of your issue and are patient (and have searched thoroughly first).
Drupal’s Groups are an offshoot of the Drupal community where people gather around more specific areas, either geographically or topically. You’ll find working groups for people creating social networking sites, or non-profits, or designers. These are a great place if you are looking to integrate yourself with a group of like-minded people trying to accomplish similar goals with Drupal.
Another excellent website for everything Drupal is drupaldojo.com. This is an incredible effort to have regular sessions of online video training on Drupal topics. Even if you can’t attend the meetings when they are scheduled, Drupaldojo.com always records and then archives their meetings for later reference.
Drupallerslove creating screencasts. These are videos where the creator actually records his/her screen and voice while walking you through a particular tutorial. Best place to find these? YouTube. Often there will be a higher quality version of the video available elsewhere too, but YouTube is the best starting point to find Drupal-specific tutorials and be able to see ranking and comments on the quality of the video.
Del.icio.us is a social bookmarking website. Much like YouTube, it’s a gold mine of excellent Drupal links. Look for recent links that have been saved by many other people, or search for specific tags. For example, here are the top tagged links for “drupal ecommerce”: http://del.icio.us/search/?fr=del_icio_us&p=drupal+ecommerce&type=all
If you aren’t familiar with IRC, just think online chat. IRC requires you to use a software application (“client”) to connect to the server. Here’s an overview of how to do this (http://groups.drupal.org/node/2326). From there, several different chat rooms exist for discussing Drupal. This page (http://drupal.org/node/108355) best explains the difference between the channels and also explains some general etiquette and procedures.
There are many, many places that can help you learn more about Drupal. Some people will gravitate more towards one form or another, but it’s good to know the wide range of resources available for learning more.
Remember to post your solution when you find an answer to your question, so the next person coming along can find it! You may still feel like a “newbie”, but if you’ve successfully done anything with Drupal then you’re already able to help out!
So, you need to hire someone to help with your site – who do you hire? How much do they charge? What qualities should you look for? Where can you find someone?
This process can seem confusing to those not familiar with hiring technical help to build or maintain a website, it’s not so bad! Before starting, it’s important that you determine your needs and have a basic idea of budget.
When it looks like you’ll need to hire someone, you need to be detailed and specific. I can’t emphasize this enough. Defining the scope of the project is the biggest thing that will save you from encountering major problems later on. As I mentioned, you need to be as specific as possible. If you need modules changed or new functionality created, be sure to state this. Do you require a new theme, too? Will you require installation and modification? What’s your timeline? Think about the user perspective – what can an anonymous user do? What happens when they click there? Should that be hidden in search results? What should it look like?
While these seem somewhat obvious, remember that the developer or designer cannot read your mind. Vagueness never helps your bottom line.
Now that you have an idea of the project scope, you need to figure out a budget. When talking with programmers in regards to price you need to be clear - know exactly what you can afford. Don’t worry at this point, once you quote a price, the programmer will let you know what can and can’t be done within your budget. Sure, you may need to cut back on what you can get done at this time, however, this also allows you to break up the project into smaller tasks - which sometimes are easier on cost as well as stress levels. Be wary of flat rate quotes when you haven’t provided much detail yet.
With a budget in place, the next step is to match the desired skill level to the specific task. You wouldn’t want a plumber to rewire your house. The same idea applies to your website. You need the right person for the right job. For example, if you require a new theme, you need someone with CSS knowledge and Drupal experience to create what you desire. Take into consideration that experienced people can do most jobs in a shorter time, and implemented with higher quality, which will ultimately save you money.
Pricing is a very difficult realm to estimate. It’s like asking how much a house costs. Pricing will vary depending on the features you require, your timeline, and goals. You can find outsourced programmers for $10/hr, or you may pay $150/hr for a senior Drupal developer. You shouldn’t expect to pay less than $30/hr for a Drupal developer or themer with solid experience, and more likely in the $40-70/hr range. Exceptions exist, but they are often red flags, and you should proceed with caution if a candidate seems too good to be true. I would discourage you from working with a flat rate for your entire project, unless it a simple and very well defined task, such as installing Drupal on your server, adding a small feature to a module (these are often posted as “bounties” — as in “I will pay $X for feature Y”), or creating a simple Drupal theme from a set of detailed mockups.
Currently there are fewer good Drupal developers than the organizations who want them. Drupal has had a slower adoption in the corporate and mainstream world, but that is starting to change. If you are implementing a unique and complex set of features, it is best to go for a very experienced developer who knows Drupal’s best practices and will save you headaches down the road.
Mydrupal.com has a directory of Drupal service providers where some individuals and firms have listed their hourly rate.
Don’t forget the old story about the employer who complained that the repairman charged him $1000 for fixing a problem, even though he only tapped one spot with his hammer. So, the repair man itemized his bill: 1 tap = $5, knowing where to tap = $995.
Drupal is very much about “knowing where to tap,” and that takes months, if not years of building Drupal sites to be proficient at.
Now comes the time to actually hire on these people needed to get your website going. There are plenty of good resources out there on the technicalities of hiring a contractor, but here is a brief overview. You’ll want documentation, like a functional specs document, stating clearly what you require as detailed as possible, which includes agreed upon milestone dates. Wireframes are also a key document for planning and defining scope.
You will also need a contract. An excellent website to check out for contractor agreements and other legal forms is http://www.nolo.com. This site caters to the legal aspects of a business you’ll most commonly encounter.
Always expect that things will cost more and take longer than you think. The best thing you can do to keep your project on schedule and budget is get all materials to your workers as soon as possible, in particular preparing your site’s content when they request it. Building a site without having real content to enter is always a huge headache.
Drupal is open source software, and there is a strong community around contributing and sharing code with each other. You should talk to your developer about whether there will be modifications made or custom modules that you could contribute back to the community by posting it on Drupal.org. This is the main reason that Drupal is as fantastic as it is today. If you are a business or organization building your site on Drupal, the code you sponsor can be marked with your name and link when posted to the site, which ultimately helps your site!
The great thing about Drupal is that you can do a lot yourself without needing to be a programmer or sysadmin – but here is a rundown of some common titles that you may encounter.
A Drupal developer is a person who writes PHP code that specifically interacts with Drupal. They often live and breathe Drupal, and make up the core part of the Drupal community. Drupal programmers can also often suggest other helpers you may require for other parts of your project. Your developer should have specific knowledge of Drupal’s APIs, as well as have a good working knowledge of MySQL and PHP. Speaking from experience, I’ve never had a job go well where the developer was a PHP coder who figured Drupal would be easy to pick up along the way. Go for someone who already knows Drupal.
A sysadmin is short form for a system administrator. Sysadmins are hired most often in order to maintain or operate a computer system/network. While their main duty is to keep your web server running and secure, they may also be put in charge of other smaller responsibilities like installation, maintenance, and support of the site. Sysadmins are also the ones who generally handle backups and site performance issues (together with your developer). Sometimes, sysadmins may even do programming or scripting for your site - each case varies depending on project and person. You should make sure you are clear about who on your technical staff is doing what – will your developer be setting up your website on your server, or do you need someone to do this for you?
A site builder or webmaster is usually responsible for configuration of the website, along with maintaining it. They also may set up modules and themes for you, as well as being responsible for setting up access for the different user accounts needed. Your webmaster may help with content entry and configuration of various displays of content (such as Views and Blocks, in Drupal terms). Webmasters often know CSS/HTML and perhaps even PHP. They should know the ins and outs of Drupal and how to keep the pieces running smoothly once your site is set up. If you have a site that won’t require any programming, you may just need a webmaster or Drupal site builder to set up your installation and modules, and then be ready to go!
If your goal is a successful and popular website, one of the most important aspects is how easy it is to find in search engines. This is where a SEO Specialist comes in. SEO stands for Search Engine Optimization and these people help rank your site higher in search engines. SEO Specialists have several responsibilities - while it may seem easy to just use keywords in order to be found, there are countless unwritten rules and complex algorithms at play in your search engine rankings. SEO involves optimizing your code, content, presentation, and fixing problems that may prevent your website from ranking highly. SEO can be a shady business where a sly ‘professional’ looking to make a quick buck can actually ruin your long-term prospects for SEO, so it’s best to pick someone based on a good recommendation, not just a random forum post or Google ad. There are individuals and companies who specialize in SEO within Drupal, and many modules dedicated to improving search engine placement.
A graphic or web designer can be hired to create the visual look and feel of your website. You will likely need a company logo, business cards, and marketing materials, as well as your web site design. Some designers only do print or web design, and some do both. Make sure you are clear about this – a “web designer” may know nothing about preparing design materials for print, and there are too many horror stories about print designers thinking they can create web site designs.
You may also work with someone doing information architecture (IA) at this stage. This is someone who focuses on the layout, functionality, and content on each page, without working with the graphic design yet. They usually create “wireframes”, which are outlines of what your pages should look like.
Your designer likely works in Adobe Photoshop, and may only create “mockups” or “comps” (which are static pictures of what your website will look like), or he/she may also create the cut up web-ready graphics and CSS for you. In some cases, your graphic designer may also be proficient at creating a whole Drupal theme, but this is not a common combination of skills. If you have either just mockups, or static HTML/CSS, you will still need a themer to turn this into a live Drupal theme.
A themer is someone who specifically creates the Drupal theme (aka “skin” or “template”) for your website. This is a position that bridges the gap between designers and developers, and your themer may be on more of the creative or technical end of the scale. Your themer must know CSS, be very familiar with Drupal’s configurations, and should also have some graphics editing and PHP skills. If you have a developer and/or designer as well, the themer will need to work closely with them.
Depending on your project, you may also need a moderator, editor, or community manager. If you are going to have a large amount of user-generated content, such as a video site or large forum, you may also need someone to assist with moderating and managing this content. Editors and writers can also provide content for your site.
So, you’ve got your budget in order and a solid idea of who you need now. Now, where do you find these people? There are so many places online to look for contractors that we could write a book on it. However, we will go over some of the bigger and better places to find skilled Drupal workers.
Since your website is a Drupal site, one of the best places to find these helpers is the "playground" of Drupal users and coders. Drupal.org offers several different areas on their website alone in order to find a person. You can try the forum at http://drupal.org/forum/51 - this will take you right to the Paid Drupal Service forum. Here you can post exactly what you desire, how much you’re able to spend and get quotes for time as well as cost for entire or part of the project. Make sure you provide contact information in your post, or go into your account and enable your contact form so people can reach you.
You can also try http://drupal.org/profile/drupal-services. This will take you to a list of names and contact information of people who provide Drupal services. You can check out their profiles at this site, as well as be linked to their personal websites and even what country they’re located in.
There is also the #drupal-consultants channel on IRC (chat).
Another handy site to check out is drupalancers.com. This site is a one-stop shop for anything and everything Drupal freelancers. You have to register and pay to post a job, but there is a rating list to see who the top programmers are. Make sure you ask about specific Drupal experience.
You may not really think of Craigslist as a place to find programmers. However, it is an excellent way to find a programmer in your area or long distance. Listings are free and you can mask your e-mail address. Again, you should be very specific in what you’re looking for and always remember to be careful on these types of sites. Make sure the person is legit before offering any form of payment. The last thing you want is a person saying work is done and then not giving you anything more than an empty wallet.
Elance, Guru and odesk are exactly what you’d think - on-line marketplaces to find freelance workers. These three are a lot alike. They all provide escrow services to ensure that you get your finished product before turning payment over to the contractor, and even help you with things like issuing tax forms or file storage for your work-in-progress.
However, watch out for very low cost providers who may not offer the kind of quality you need. We’ve had varying luck with contractors on these sites – some stellar quality work for rock-bottom prices, but some miserable experiences with providers who vanish or misrepresent their skills. You’ll have to sign up to post projects on each of these sites, but, there is no cost for posting jobs (they make their money on a percentage of what you pay contractors) unless you want to feature your ad.
Setting up an e-commerce website involves a fair amount of effort and planning, but the benefits are considerable. With e-commerce, customers may enter payment information on your website to purchase products and services from anywhere in the world. A well-designed online store also allows customers to select between multiple product variations and shipping options, giving them an easy to use and rewarding shopping experience. And the funds (minus processing/service fees) are deposited to your bank account within weeks (or even days)!
Depending on the complexities of your website/product, an e-commerce site can be a simple do-it-yourself endeavor or require lots of technical/development expertise. In either case the initial steps are the same:
Übercart has become the leading option for Drupal e-commerce, though there are others such as the "e-Commerce" suite of modules.
e-Commerce is a solid platform that can handle most needs, but we feel Übercart is more user-friendly and possesses a stronger support and development community. And since Übercart is nearly equivalent in terms of features, and is at a stable release now, we believe it is the winning choice.
Of course, every project is unique, so look at both and choose the option best for you. One may have a specific feature that you need. A more in-depth comparison can be seen here. This post is a bit out of date now, but there is still solid info here, and check the comments for more info.
Übercart allows you to sell physical products from various sized product catalogs, file downloads (music, videos, software), and site access/role promotions (i.e. for members-only websites, including automatic renewals and expiration of user access). This site you’re on right now is built with Ubercart! Also, check out their live demo of Ubercart.
Unlike shopping cart-only systems, Drupal allows you to combine a fully functional community, business, or news website with your e-commerce. This adds powerful options for blogs, forums, social networking, custom displays of content, newsletters, and much more. These features can help your bottom line, as studies show the longer browsers stay on a site the more likely they are to purchase.
Other advantages of using Drupal for e-commerce include Drupal’s secure application framework and search engine optimization features. In addition, Drupal and Übercart have an ever-growing community of developers, a growing list of themes available for download, and numerous consultants offering design/theming services.
Übercart also leverages the power of Drupal through:
Übercart works with the 2 main types of payment gateways:
Currently Ubercart works with dozens of payment options. A full list can be viewed here, and other payment plugins can be easily written.
If you are going with the API option, you’ll need an SSL certificate. This is often the most confusing part of your e-commerce setup. This is essentially what gets your end users notification that your server and purchasing process is secure. If you are concerned about your customers having the highest level of trust for your site, you will want to stick with one of the top few SSL certificate providers. We like DigiCert as a lower cost but still top tier SSL provider.
With the ever-growing number of modules available for Drupal, the options for Übercart integration are extensive. Here are some additional modules that are often used with a Drupal e-commerce site:
This should give you a good overview of what is involved with creating an e-commerce site in Drupal. It’s not something that can be built in an hour, but we firmly believe that Drupal + Ubercart is the winning choice for creating an online store with free, open source software.
There are a few steps involved with getting your Drupal site up and running:
Modules extend the core, or ‘out of box’ abilities and functionality of Drupal. If you can think of a function or use for Drupal which is not included with a basic Drupal installation, chances are there is already a module to fit the bill. One of Drupal’s primary strengths as a CMS is the vibrant, active community development of modules, as well as core functionality.
Now to our tutorial; for our purposes it would be best to walk through an actual example. We’ll use one of the most commonly used modules, Views.
First we download the module. Here’s how to find a module, and evaluate its stability and quality. Also, how to choose the correct release version.
Displayed is all the information/links you need to evaluate a module, including: name of maintainer, module description/overview, release versions and a host of support, development and bug/issue tracking links.
On this table you have the module release version (‘5’ meaning compatible with Drupal 5, ‘.x’ meaning compatible with all versions of Drupal 5, and ‘-1.6’ is the version of Views within the Drupal 5 release), the date of release, the size of the module download, a download link and release notes (notes from individual developers detailing issues dealt with or functionality added).
Here you are presented with two main choices: Drupal 5 or Drupal 4.7. This tutorial is aimed at Drupal 5.x users, so obviously you’ll be more interested in the 5.x-1.6 release. Now, you could just go ahead and get this module via the ‘Download’ link, or you could take another minute to make absolutely sure you know what you’re getting into! So in the spirit of gathering all available, useful information before making a tedious, possibly painful-to-undo decision, we’ll explore this module detail page in a bit more depth.
There are many, many releases for the Views module; from 4.6.x-1.x-dev at the very bottom of the page, to 5.x-1.6 and 4.7-1.6, the most recent releases, at the top. One excellent way to judge the quality and stability of a module is to gauge the number of total releases and the amount of time in between releases; this way you can make some very educated guesses at how much use, support and development is going on for a module. If there are only one, or two or three releases, or if development seems to happen once every couple of years or so, then the module is not in active development, which could mean that it is not used due to negative issues and bugs, or there is little demand for the module, so no one really works on it. Choosing modules is sort of like choosing leftovers to eat from the refrigerator; if there’s an old, dusty module found in the back corner of the contributed modules section of Drupal.org, you definitely want to use caution before consuming!
Next we’ll want to take a look at the module issue queue, which is found via a link near the bottom of the module detail page here:
Here is what a module issue queue looks like:
Notice that this page is a list of bugs, problems and incompatibilities involving ‘Views’ module, sorted by the most recently updated. Assessing a module based on this view is similar to an assessment based on analyzing a set of release notes for a module.
You should always go to view all open issues and take a quick look at the queue to see if there are a ton of issues (which may mean it’s either buggy, or more likely very large/complex and popular), or next to none (which usually means it’s new or unpopular), or see if there are any that would be red flags for your particular setup (ie. an issue declaring that this module doesn’t work with another module you’re using). Combining this analysis with the analysis of related release notes can give you a good overall ‘birds eye view’ of whether or not a module, or specific release of a module, is a good match for you installation. Sometimes you just need to install it, to see if it fits your needs and is working properly, but these steps above should give you another tool in evaluating Drupal modules.
Drupal provides a great foundation out of the box, but it is hard to imagine any site that wouldn’t benefit from a few third-party modules for added features. There are several modules that are must haves for any site, no matter how big or small.
Views is a module that provides a flexible interface for Drupal site builders to control how listings of nodes are presented. More specifically, it’s a smart query builder that can build the query you need to display what you want, in a list, table, or full node display. For example, if you wanted a page listing all stories in a particular category, a table displaying sortable job postings grouped by location, or a block listing only blog posts with comments, you would create a “view”. Many other modules use Views as a basis for their functionality.
The Content Construction Kit allows you to create your own Drupal content types with custom fields in your web browser, going beyond simple stories, pages, and blogs. There are also dozens of CCK add-ons for things like images, zip codes, dates, and media, which allow you to easily drop in new field types to your content types, handling all formatting and validation. For example, you might want a “Course” content type that included fields for a room number, duration, and the instructor’s photo.
Pathauto is a module that will automatically create path aliases for several kinds of content, including nodes, categories, and users without actually having to specify the aliases manually. These aliases are based on a "pattern" system that’s controlled by the administrator. You can use this to put dates in your blog post URLs, or add a SKU number to the end of your product node URLs. The Token module is required for Pathauto.
Panels is a module that divides any pages you choose into incredibly configurable layouts ready to drop in bits of content. Used with Views, this is an amazingly powerful way to create custom layouts. You can drop in views, blocks, pages, and pull things from user profiles. It had a drag-and-drop interface and even has features like rounded corners on your panel panes. You gotta try it! Views, CCK, Pathautho, and Panels 2 are the real “core that isn’t in core,” as far as we’re concerned. If you’re building a simple site with just static pages, blog posts, and discussion forums, you can probably make do without them. But as soon as you want to add a list of popular posts to the sidebar, add a bio to the footer of stories, or automatically create keyword-rich paths for your posts, you’ll start wishing they were there!
The Spam Module provides tools that help deal spam content or comments that may get posted to your site. Very useful, as it can unpublish or delete the spam automatically, and is highly configurable. Must have for any site that allows user comments.
This is a tough one. As a developer who has implemented dozens of Drupal sites, I’ve seen the kinds of problems that WYSIWYG editors can cause with creating incorrect code. However, they are a must-have for many site administrators and contributors who don’t know HTML and want a feature-rich editor where they can add text formatting and content easily. You most likely will want one, and there are several integrated with Drupal to choose from. TinyMCE and FCK Editor are the two most popular WYSIWYG modules right now. They are roughly equivalent in terms of features and quality, but you should check them both out to see if one has a feature you need in particular.
Now that you have a better picture of the development cycle of a module, it’s time to actually pick a release to install.
Module release versions are generally separated into two categories: development and stable. Development releases are, as the name suggests, under active development. This means less stability, but more features. Stable releases are, as the name suggests, the reverse.
Development releases will have the word “dev” in the name as an indicator. You may also see an “alpha”, “beta”, or “release candidate” (RC) version of a module. These are also used to indicate the overall stability and completeness of a module (alpha as least stable to RC as most stable).
Unless you need a specific feature that is in a development release, or need to preview what your site will look in the next stable release, always pick the stable version of a module. The latest release of a module may be a stable or a development one. If it is a development one, the latest stable version may be found by clicking on “view all releases” and searching for the last release not marked “dev”. Note: this page is not always sorted by date so make sure you scroll.
After you’ve located the desired module, you will upload it to the proper place on your server to use it. Two common methods for doing so are with a GUI FTP client and using a direct SSH connection to your server. Both will accomplish the same thing, so it’s merely a matter of using the method that you are more comfortable with. This document go over both methods.
An SSH session is less visibly user-friendly than a GUI FTP session. This tutorial will not go over detailed instructions on commandline usage, but will give enough to upload a file.
Now that the Panels 2 module is in beta and relatively stable, there is an important decision new site owners or developers need to make -- should I build my site using Panels or not?
There are pros and cons to each.
With Panels, you gain greater flexibility and power over your content, including the ability to place blocks in multiple areas, create custom per-page layouts, and customize the layout of node add/edit forms. All of this can also be done through an administrative interface right on your site. The major downside is that this is a large, complex module with a learning curve that also carries a performance hit unless you export the panels to a module.
Our themes come with additional styling and a custom TNT panel layout, if you choose to work with Panels.
Panels is a module that allows you to create pages that are subdivided into areas. You can then point-and-click to assign content (views, blocks, pages, user profiles, etc.) to the areas and thereby create a new layout for content on your site.
Your TopNotchThemes theme comes designed with lots of abilities for Drupal and contributed modules. One of these is the ability to easily use the popular Panels 2 module written by Earl Miles. Panels 2 (a massive upgrade of the original Panels module) is still in beta and may be a little rough around some edges, but it’s so much more powerful that it’s what we consider a must-have module (http://www.topnotchthemes.com/handbook/must-have-drupal-modules).
Without using Panels, you normally assign content in Drupal through the Blocks interface by assigning blocks to any of the predefined regions in your theme. TNT themes come with an expanded set of regions to give you a lot of flexibility in placing your content. In fact, you may be able to build your site without needing to use Panels at all. But for those cases where you need a different layout for different pages or sections of your site, the ability to place a block in multiple regions, change the layout of add/edit forms, or to control more advanced options through an interface, that’s where Panels comes in. And TopNotchThemes helps make it easier to use Panels by providing a pre-themed panel page called "TNT Panel" that duplicates some of the styling from the rest of the theme.
We strongly recommend that you review a tutorial or screencast covering Panels 2 before working with this very powerful module on your site: http://drupal.org/node/210208
Probably not. Panels is a contributed (not a core) module for Drupal, so unless you specifically installed it or asked someone else to install it for you, an out-of-the-box Drupal installation won’t include Panels.
The Panels 2 module offers the option to have Panels itself take over all your site’s regions, instead of using traditional blocks. However, at this point, themes from TopNotchThemes do not support this functionality. The TNT Panel can be used to lay out the internal content of your page with special styling to match your theme, but not replace the entire layout. In the future, we may offer themes that can be used with entirely Panels-based layouts.
You install the Panels module the same way you would install any other Drupal module. If you are unfamiliar with this process, we recommend you take a look at the detailed tutorial on module installation we’ve provided for you at http://www.topnotchthemes.com/handbook/installing-drupal-modules.
Briefly, the steps are:
IMPORTANT! In order to use the pre-themed TNT Panel page, you will need to copy three files from the extras/panels subdirectory of your TNT theme download to the Panels layouts subdirectory.
topnotchthemes_####/extras/panels (on your hard drive)Once you have done this, you will be able to add TNT Panel pages to your site through the Panels administrative interface at www.yoursite.com/admin/panels
Begin the process for creating a new TNT Panel page:
www.yoursite.com/admin/panelsYou will then be taken through a series of steps to configure your Panel page. After filling in the necessary information for each page, click the "Next" button at the bottom left of the page.
Give the panel page a unique name. For example: all_features -
If you want a title to be displayed at the top of your panel page, enter it here.
Enter the url you want your panel page to have. What you enter will be the path from the root of your website. So if you enter "mypanelpage" (without the quotes) then the url to access your panel page will be: www.yoursite.com/mypanelpage. Likewise, if you enter "news/politics/us/mypanelpage" then the url to access your panel page will be: www.yoursite.com/news/politics/us/mypanelpage. -
This will take you to the "Advanced" tab of the settings for your panel page. This is a collection of settings that give you control over how users can access your panel page.
These settings let you make your panel page an item in the Drupal menu system and assign it to a menu. This is the best way to make your panel page available to your users, otherwise you have to provide a hardcoded link to it somewhere else in your content.
In general, TNT panel pages are designed to work with all the regions enabled, so you typically wouldn’t want to disable the blocks/regions. If you want to limit who can see your page, then check the authorized roles. Otherwise, anyone will be able to access your page, which is what you want if it’s intended to be a public page.
Unless you know what you’re doing and had a specific purpose for doing so, you normally wouldn’t be embedding css into the page. More typically, you’d theme it by modifying the css in your theme’s style.css file.
These settings allow you to pass in additional information to your panel page that can let you programmatically modify what kind of information gets display on your panel page. It’s probably one of the most powerful features of panels, but it’s beyond the scope of this tutorial and is optional for many uses of a panels page. Feel free to experiment and learn more along with other Panels users at http://groups.drupal.org/panels.
Finally, the exciting part! This is where you get to add the content into your panel page. Fortunately, this also one of the easiest parts.
IMPORTANT! When you’ve finished adding panes to your panel page, you need to click "Save" to save all your changes to the database.
www.yoursite.com/admin/panels/panel-page and select the "Edit" option for your panel page.
This section covers everything Drupal theming -- installing and configuring TNT themes, and creating your own or editing an existing theme.
There are a few ways to get a Drupal theme for your site. These can be quite easily placed along a continuum with "Low Cost/Difficult" at one end and "Higher Cost/Less Hassle" at the other end. It all depends on your time, skills, and budget whether you want to go more of the DIY route, hire a professional Drupal themer, or somewhere in between.
If you know XHTML/CSS and know your way around a graphics editor, you may very well be able to create your own Drupal theme. Knowing how Drupal’s bits and pieces work is more important than any kind of advanced PHP knowledge. The difficulty of this vastly depends on how complex your desired theme is and how your skills are. A Drupal theme can take anywhere from a day’s work to hundreds of hours. Most of the themes you see here on TopNotchThemes took experienced designers/themers 30-50 hours to create. Your first theme won’t be your best theme, so make sure this is an appropriate decision if you decide to go the DIY route. For your first time, you’re probably best off trying to modify something already out there.
There are tons of free and a few very low cost themes out there. Most are available on Drupal.org. These vary in quality and the nicest ones usually get widely used on many sites. If exclusivity of your theme isn’t a big concern, these are a great place to look. One of the most common approaches is to take a free theme and customize it by adding a different header or changing some styles in order to get a more custom look. This is a great approach if you’re new to Drupal theming. It will help you get an understanding of how things work but with a good structure beneath you. These often have a "stock Drupal" kind of look to them so you’ll have trouble finding something completely unique.
If you’re on a tight budget but want something customized and don’t have the skills or time yourself, you can also hire a Drupal themer to spend just a few hours customizing an existing theme to suit your needs.
This is really a new category in the Drupal theme world that we like to think we had something to do with ;) A premium theme is one that has a cost justified by the design and coding work, and support that goes into providing the themes. These will often vary greatly from that "stock Drupal" kind of look, and are much more limited in their distribution. A premium theme isn’t for everyone, if you’re doing an extremely low budget project or need a custom design, but they are a viable option for what’s in between.
A custom theme involves having a design created for your site from scratch, usually by a designer who then provides mockups (or mockups + CSS) to a Drupal themer. Trying to pin down the cost of an "average" custom theme is kind of like asking how much a house cost — it really depends. Bare minimum for an extremely basic, single page design would be a few hundred dollars. Average cost for a small business site design + Drupal theme would be in the low thousands. This can vary widely with things like number of unique pages, Drupal module support required, if you need a logo, etc., but hopefully that gives you a general idea. It’s worth noting that there is a shortage of good Drupal themers available right now — demand is exceeding supply!
The right choice for your web site project’s theme should fall into one of the categories above. Make sure you carefully weigh your timeline, risk, budget, and skills before deciding on one of these options. In our previous experience doing theming as part of a Drupal project team, the theme is usually 25-40% of the budget for the entire project. Drupal’s themes aren’t just a pretty skin on a functioning website — a lot of functionality is exposed through the theme itself and it can be an uphill battle if you don’t know what you’re doing.
Now that you’ve purchased your theme, the next step is uploading and installing it onto your site.
First, you should receive an email as soon as your purchase is processed. Included in this email is a link for downloading your theme in the form of a compressed archive. If you lose this email or cannot access the account, you may download this theme by going to http://www.topnotchthemes/user, logging in, and clicking on Files.
After you have saved your theme, you must uncompress the archive and upload (FTP) the theme files to the proper place on your server to use it.
If you don’t already have software on your computer to do these things, here are the free applications we recommend:
If you’ve never done anything like this, don’t worry! Here are the steps for uploading your theme:
save link as.. to save it locally. tnt_yourthemename folder (which contains your actual theme), and then extras and documentation folders. Remember the location of this directory. host or server field needs the domain name you’ve set for your website, or another name that your web host has specified. The username and password fields contain the username and password supplied by your web host. Local Computer and a section labeled Remote Computer, or something similar. These are the file systems of your personal computer and the web server, respectively. local computer side to the location of the uncompressed theme. Remote Computer side. You should see your Drupal files here, with an index.php file in this folder, or you may need to go inside a folder called htdocs or www. If you don’t see this, it’s possible that this is not the root directory of your website. Consult your web host or system administrator for the exact location in this case. sites folder there should be an all and default folder. Go into the all folder and, if it doesn’t already exist, create a themes folder. Then go into themes.tnt_yourthemename folder with the uncompressed theme into the new themes folder. The files have now been uploaded!The next step is setting an administration theme and enabling your new theme.
www.yoursitename.com/admin/settings/admin www.yoursitename.com/admin/build/themes in your browser. enabled column and a default column in this table. Select both of these for your new theme, and click Save. Your new TNT theme is now activated on your site!
There are some basic site options you may wish to go through before continuing. www.yoursitename.com/admin/settings/site-information contains several basic settings that will be used in many places. Again, you must be logged in as an administrator to use this page.
Name is the name of the site, and will be present in the header and title for all pages, unless the theme or your specific coding overrides this.
Email address is the contact page for this website.
Slogan is a tagline that most themes display near the site name.
Mission is a longer statement that themes sometimes display at the top of the content or in another appropriate area.
Footer message is a message that will be placed in the footer of each page if you fill this field in. Use this for something like a copyright statement or simple text, but menus should be added as a Drupal menu and then placed in the Footer region.
Default Front Page controls the initial page most visitors will see on reaching your website. It is initially set to node, which is usually fine. Once you get more comfortable with Drupal, you may wish to change this to something different.
There is also some theme-specific configuration that you will probably want to do next. On your www.yoursitename.com/admin/build/themes page, there will be a Configure link next to the theme. Click this and you can set whether your theme should show certain options, like the slogan or search box. You can also upload your own logo.
In order to fully make use of the regions and styling of your TNT theme, blocks must be configured. Blocks are displays of content that can be moved around to adjust your page layout. They could be a list of latest blog posts, a news feed, a series of images, etc. You must specify which blocks are displayed where, otherwise you will just see a simple header, footer, and your main content in the middle.
Go to www.yoursitename.com/admin/build/block, then click on the link near the top for tnt_yourthemename. Down in the table listing available blocks, use the Region drop down to select which blocks you want to display in which regions. You can use the Weight drop down to reorder them as you choose.
Note: Drupal themes from TopNotchThemes have many more regions and styles than most Drupal themes available. They are quite flexible, but there are some design constraints. You may not be able to put lots of blocks in some regions, or put a large image in a certain area, or your design will look awkward. We have tried to strike a balance between high end themes with strong aesthetic appeal, while still giving you the option to move content around where you need. Experiment to figure out what works best for your theme!
You may wish to disable or remove a theme. The procedure is very simple.
To disable a theme, go to www.yoursitename.com/admin/build/themes, select a different theme as default, and uncheck enabled on the theme.
To completely remove a theme, FTP to your site as we did in the installation process. Navigate to the same location you used to install the theme and delete the folder you copied over initially. Once you’ve done this, the theme will be completely erased. If you want it back, you will have to redo the installation procedure.
Panels 2 is a popular Drupal module that allows you to easily (drag-and-drop!) create highly custom block layouts on a page-by-page basis. Your theme has basic Panels 2 support built in, so you can use this module to create more advanced layouts, either in conjunction with or instead of some of the regions of your TNT theme. Please see the panels.txt documentation file in this folder for more info.
Views is another extremely popular Drupal module that lets you create custom listing pages, blocks, and other displays of content. Install this on your site to create more ways to display and filter your content. Pages and blocks generated by Views will also have styling from your TNT theme applied.
It is also quite easy to make modifications to your TNT theme to further customize it for your specific needs. See the notes_on_themename.txt file for more details on this.
Sure, the fun part of building a Drupal site is adding new functionality with modules, creating content, and seeing your theme come to life -- but there are quite a few things behind the scenes that are crucial to keeping your site running smoothly.
Here we'll cover backups, site maintenance, server performance, and general tune-up tasks that you'll want to keep your eye on.
Before performing any procedures that affect your database (such as installing or upgrading a module), you should create a backup in case you need to restore your site. The database contains all of the content of your website, as well as its settings and configuration options. As such, any issues caused by bugs in modules, conflicts between code, or data errors can seriously impact the content and functionality of your website.
Most web providers use software called PhpMyAdmin to allow easy administration of the MySQL database software that is also commonly used. This tutorial will focus on using it to create a backup.
Upgrading modules is a more involved process than installing or removing modules. The steps should be followed closely, as all these steps are necessary to ensure the stability of your website.
Your website’s database contains all of its content, as well as all of its settings and configuration. As such, any operation which modifies it could, although unlikely, be potentially damaging. We highly recommend you take steps to back it up before performing this procedure.
Update capabilities are not automatically available in Drupal. You must first install the Update module, which is located here: http://drupal.org/project/update_status . Follow the instructions for installing modules with this module before continuing as it is required for the other steps.
[sitename]/admin/logs/update. This page checks the current and the installed versions of modules, and will give a report on their status. This will allow easy updates without having to manually check each module installed in your website. Disable Module
You must first disable the module. Follow only part of the instructions listed here. Stop at the section labeled “Uninstalling a module” and only perform the first section of steps for disabling a module.
Reinstall Module
Next is reinstalling the module. These instructions are to be followed in their entirety. However, the Update module also provides a download link which may be used instead of going to Drupal.org as listed in the instructions.
Run update.php
Update.php is a script that is used to maintain websites after upgrades. A new version of a module may change the structure of the database. This script adjusts the database to fit the updated module. As the database contains all of the content and the settings of your website, this is an essential step to ensure its continued operation.
Uninstalling a module is easy. Before removing it, it must be disabled.
[sitename]/admin/build/modules.
Not all modules have specific uninstall functions programmed in. A module will only show up on the uninstall tab if it has this feature. If it doesn’t, skip this step and simply delete its files.
Removal of module files is similar to the process of uploading module files.
rm -rf [module folder name]”. In the Views example, you would type “rm -rf views”.Note: a module without an uninstaller may leave tables or fields in your database. A module like this must be dealt with manually in order to completely remove it from your database, which is best practice to keep your site clean if you definitely do not want to use this module again. There may be an obviously named table or set of tables in your database which can be easily deleted, but the only way to know for sure is to examine the module installation file to see what was added in the first place. Always create a backup snapshot of your database before attempting this!