TopNotchThemes Drupal Handbook

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!

The business of Drupal

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.

How to speak “Drupal”

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.

Where to learn more about 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.

Books

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:

  • Drupal Ecommerce
  • Drupal Site Recipes
  • Pro Drupal Development, updated for Drupal 6
  • Learning Drupal module development

Schools

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

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.

Local meet-ups

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 Workshops and Seminars

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.

Web Resources

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

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).

Groups.drupal.org

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.

drupaldojo.com

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.

YouTube

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

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

IRC

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.

Giving back

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!

 

Hiring Drupal developers, designers, and other web professionals

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.

Planning your Drupal project

Scope of Project

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.

Budget

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.

Match skill level to task

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

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.

Tools/Documents

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.

Contributing back to the community

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!

Developer, themer, webmaster -- who do I need?

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.

What is a Drupal developer/programmer?

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.

What’s a sysadmin?

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?

Site builder/Webmaster

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!

What is a SEO Specialist?

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.

Graphic/Web designer

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.

Themer

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.

What is a Community Manager?

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.

Where to hire Drupal professionals

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.

Drupal.org

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).

Drupalancers

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.

Craigslist

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

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.

Creating an online store with Drupal

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:

  1. Establish a business entity to conduct business online, including a business name and location.
  2. If you are shipping products, obtain a tax ID to charge sales tax in the state where your business resides.
  3. Pick a general structure that gives your business a separate legal and tax identity from yourself, including a dedicated business bank account. This allows you to be sure that the money and acts of your business are separate from your own.
  4. Choose a reliable, reputable web host and begin development on a test site.

Electronic Commerce And Drupal

Ü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 Overview

Ü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.

Übercart’s main features:

  • Products are nodes, making it possible to create multiple product types with classes, and you can add any standard Drupal fields to your products.
  • Products may have attributes that modify the price, SKU/model, and/or weight of items.
  • Products are then displayed in your catalog, with or without images, by category, and with numerous configurable options.
  • Store administrators can manually create orders for customers, add products, shipping prices, etc. from a single screen.
  • Stock tracking options are available.
  • Activity logging shows all the changes made to an order, including payment processing.
  • All checkout information is gathered on a single screen composed of configurable checkout panes.
  • Support for international shipping and formats is available.
  • Shipping quotes are generated in real time from modules or web services.
  • A healthy and growing list of module contributions submitted by community members, as posted here.
  • More information about Übercart can be downloaded here (pdf).

Integration With Drupal

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:

  • User System: User accounts are automatically generated when a purchase is made. This allows you to track and communicate with your customers, and encourages repeat business.
  • Taxonomy System: This important aspect of Drupal’s content management is integrated with Übercart’s core product catalog.
  • CCK: Übercart works with the CCK (Content Construction Kit) suite of modules to allow product customization in numerous ways.
  • Views: Übercart integration enables product display and organization by selected fields, filters, page views, etc.
  • Userpoints: Users may accumulate points for performing certain actions on your site, such as posting nodes, commenting or moderating a comment, and this can be tied in to your shopping cart
  • Fivestar: A module that enables customers to review/rate selected products (seen in stores like Amazon.com where multiple products and manufacturers are offered).

Payment Options

Übercart works with the 2 main types of payment gateways:

  1. Third party. A secure order form takes customers to another site for credit card processing and payment. The main advantages are no SSL certificate is required for your site, and the third party deals with all CC processing, but these usually charge higher per-transaction fees and require the customer to be bounced over to the payment processor’s site. Some common third party gateway providers are PayPal, 2Checkout, and ClickBank.
  2. Merchant-side Application Program Interfaces (or API). This is a server-based system allowing the entire transaction to be handled on your website. The main benefits are that it keeps people on your site and offers more options for customizing the checkout experience. These also usually offer a lower per-transaction cost, but you will need an SSL certificate.  Some popular merchant-side gateways are Authorize.net, PayPal (yes, they do both options), and LinkPoint.

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.

Drupal-specific Considerations

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:

  • Google Analytics: You can track core sales, customer and product reports with Google Analytics integration.
  • Securepages: Allows you to coordinate your site with its SSL certificate. SSL (secure sockets layer) encryption protects your customers’ sensitive information during online transactions.
  • Pathauto: Automatically generates path aliases for various kinds of content (nodes, categories, users) without requiring the user to manually specify the path alias.
  • XML Sitemap: Creates a site map in accordance with the sitemaps.org specification.

 

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. 

Building your site

There are a few steps involved with getting your Drupal site up and running:

  1. Sign up for Drupal-friendly hosting
  2. Install Drupal
  3. Install and configure Drupal modules for additional functionality
  4. Install your Drupal theme
  5. Enjoy!

  

Choosing Drupal modules

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.

  • Community contributed modules can be found via the web here.
  • Register for an account on Drupal.org in order to filter modules by Drupal version
  • The ultra friendly and helpful IRC community support can accessed by visiting the #Drupal-support channel on the Freenode network
  • Can’t find a module to fit your needs? Make your own!

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.

How to add (install) a Drupal module

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.

  1.  Navigate to http://Drupal.org/project/Modules
  2. Click on the ‘Browse by name’ tab. Loading this tab can take some time, as you will be presented with a list of all contributed Drupal modules. 
  3. Scroll down to the section for ‘Views’.
  4. Click on the ‘Views’ link to view the full module information page.

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. 

  1. First off, you should read all of the description notes for a module; this is the large block of bulleted text below the module name/maintainer’s name. 
  2. Next, examine the ‘Releases’ table.

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.

  1.  For the beginner oriented scope of this tutorial we’ll skip the Release notes; Click on the ‘View all releases’ link at the bottom of the ‘Releases’ table.
  2. What will load next is long list of all releases of this module, and a list of release notes for each version.

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.

 

Must have 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

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.

CCK - Content Construction Kit

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

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 2

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!

Spam

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.

WYSIWYG (What You See Is What You Get) Editor

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.

Installing Drupal modules

Now that you have a better picture of the development cycle of a module, it’s time to actually pick a release to install.

Dev,” “stable,” “alpha,” huh?

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.

Uploading via FTP

  1. Download the file to your own computer. With most browsers, you may right-click on the file link (labeled “views-5.x-1.6.tar.gz” above) and select an option such as “save link as..” to save it locally.
  2. Unzip the compressed file using a program such as Winzip into a directory
  3. Start an FTP client such as FileZilla
  4. You must provide connection information before your client will connect to your site. The screenshot below illustrates the typical fields in an FTP client. The “host” field will contain the domain name that you have set aside for your website. The “username” and “password” fields contain the username and password that you use to access your website.                                                                                                                                                                                                            
  5. The section labeled “Local site” represents your own computer. Navigate to the location where you downloaded the module here.    
  6. The section labeled “Remote site” represents your website. When connected to a website to a Drupal installation, the file structure will resemble the image shown above.
  7. Scroll down to the “sites” folder in the “Remote site” section and enter it. Inside, there will be an “all” folder and a “default” folder. Enter the “default” folder. If it doesn’t exist, create a directory named “modules” and enter it.
  8. Drag the decompressed folder containing the module from the local machine over to the “modules” directory. Once you’ve done this, the module will be uploaded to your site.

SSH

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.

  1. If you have Windows, puTTY is an SSH client that is freely available to you. When you start it up, you’ll be asked for a server, a username, and a password. The server is the domain name of the server you will be connecting to. If you are using Mac OS X, the terminal application is in /Applications/Utilities. The command to begin an SSH session is “ssh username@domain.com”. You’ll then be asked for the password for your server.
  2. Once you’ve logged in, you’ll be presented with a command prompt. The “ls” command will give the name of every file in the current working directory. Directories inside this one will either end in a / or will be a different color. You can change directories with the command “cd ” or go back to your initial directory with “cd”. Using these commands, you can explore the directory structure of your site.
  3. The top directory for your site will contain an “index.php”. If you can’t find this, you may wish to consult your tech support or webhost help pages.
  4. Once you are there, type “ls” and you should see something similar to this (but with a different prompt/directory path)  
  5. There are two notable directories here: “modules” and “sites”. The “modules” directory contains the core modules bundled with Drupal. You could put this module here, but it’s somewhat sloppy. The preferred place to put this module is inside the “sites” directory. Type “cd sites” to change into that directory. Inside this directory, there is an “all” directory and a “default” directory. Go into the “default” directory.
  6. If it doesn’t already exist, make a directory called “modules” here by typing “mkdir modules”. Enter the modules directory by typing “cd modules”. Every module you install should go into this directory.
  7. Keep this window open and go to the webpage with the desired module on it. Right-click (or ctrl-click on a mac) on the link and select “copy link” or “copy link address”. Go back to the terminal window, type “wget “ (including the space), and paste the link in. It should look like this: “wget http://ftp.drupal.org/files/projects/views-5.x-1.6.tar.gz"   Press the enter key. The file will then download directly to the server. 
  8. There will now be a file that ends in .tar.gz in this directory, which you can see if you “ls” once.  
  9. This file contains the entire module and must be decompressed before it can be used. To dcompress it, type in “tar -xzvf “ followed by the name of the file. The screen will then look like the following image, which displays all of the files that are being uncompressed.
  10. Once you’ve done this, the module’s files will be uploaded to your site.

Enabling modules

Before the files can be used by your site, the module must be enabled.

  1. The standard location for a Drupal site’s module administration page is “[sitename]/admin/build/modules”. Enter that in your browser and you will go to it.     
  2. This page is where modules are listed and managed. There are two tabs to this page: “List” and “Uninstall”. For the moment, we’ll just be dealing with the “List” tab. This page contains all the modules that are currently installed. Scroll down the list, and you’ll find a series of them that begin with “Views”
  3. Note that “Views” is both checked and greyed out. Modules can be interdependent. They may rely on other modules’ functionality in order to run. The modules labeled “required by” are modules that require this module to be enabled for functionality. They themselves must be disabled before this module can be disabled or removed. The modules labeled “Depends on” are modules that this module depends on. This module must be disabled before they can be disabled or removed. In this case, the Views module can’t be disabled until Location Views and Views Panes are disabled first.
  4. Enable the other modules in the Views section by clicking on the checkbox and clicking on “Save Configuration”. Once the page has refreshed, you should see a screen that looks like this screenshot. The green text will notify you that you successfully enabled the modules. The exact text may be different depending on the modules you enable.                                                                                                                        
  5. If you forget to enable a required module, Drupal will notify you of this gracefully. It will also allow you to enable the required module from the notification message. Read the notifications and enable the desired modules.                                                         
  6. If the module is not installed, red text will appear notifying you so. If this appears, you must install that module first before enabling the one you want.

 

Using Panels 2

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.

Using Panels 2 with your TNT theme

What is 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

Does my Drupal site include Panels?

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.

Can I use Panels to create my entire site layout instead of Drupal’s regions?

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.

How do I install Panels?

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:

  • Download the module from Drupal.org: http://drupal.org/project/panels (make sure you get Panels 2, not Panels 1, which will be marked with a 2.x in the file name: eg. 5.x-2.0) 
  • Uncompress the downloaded package
  • Upload the module’s directories and files to the sites/all/modules directory of your Drupal installation - Enable the module in your site’s Modules settings page: www.yoursite.com/admin/build/modules

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.

  • Files to copy: tnt-panel.css, tnt-panel.inc, and tnt-panel.png
  • Copy from: topnotchthemes_####/extras/panels (on your hard drive)
  • Copy to: sites/all/modules/panels/layouts (to your web site)

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

How do I create a Panels page?

1. Add a TNT PanelPage

Begin the process for creating a new TNT Panel page:

  • Go to the Panels administrative interface at www.yoursite.com/admin/panels
  • Click on "Panel pages" - From the "List | Add | Import | Settings" set of tabs, click on "Add"
  • Click on the "TNT Panel" layout image

2. Configure Your TNT Panel Page

You 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.

3. Page Settings

  • Panel name (required)

Give the panel page a unique name. For example: all_features -

  • Page title (optional)

If you want a title to be displayed at the top of your panel page, enter it here. 

  • Path (required)

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. -

  • Click "Next"

4. Advanced Settings

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.

  • Menu settings (optional)

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.

  • Advanced settings (optional) Here you can disable blocks all the other blocks and regions when this page is displayed, control access to who can see the page, and embed css code into the page.

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.

  •  Click "Next"

5. Context Settings

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.

  • Click "Next"

6. Content

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.

  •  Click on the "+" symbol for any of the panel areas
  •  A popup window will appear with a selection of items from a number of categories (e.g., Custom, Mini panels, Core blocks, Menus, and Contributed modules).
  •  Select an item you want to appear in that panel area. For instance, "New custom content" lets you create a "pane" of static text to go into your panel area.
  •  A new popup will appear with options to configure the settings for that pane, including a title override, css class/id, and access control, as well as settings to add/control the content itself.
  •  Click "Add pane"
  • Repeat this process to put additional panes into the same panel area and to put other panes in additional panel areas.
  • Click "Save"

IMPORTANT! When you’ve finished adding panes to your panel page, you need to click "Save" to save all your changes to the database.

7. View Your Panel Page

  • Visit the url of your panel page based on the Path information you entered in Step #3.
  • You should see a normal page in your site, but the content area will have been replaced with your new TNT panel page.
  •  If you need to make changes to your panel page, visit www.yoursite.com/admin/panels/panel-page and select the "Edit" option for your panel page.

 

Designs & Drupal themes

This section covers everything Drupal theming -- installing and configuring TNT themes, and creating your own or editing an existing theme.

Your options for a Drupal 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.

Do-it-yourself Drupal theme

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.

Free (or almost free) theme

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. 

Premium theme

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.

Custom theme

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!

Weighing your options

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. 

 

Installation & configuration

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:

WINDOWS

OS X

If you’ve never done anything like this, don’t worry! Here are the steps for uploading your theme:

  1.  Download the file to your own computer. With most browsers, you may right-click on the file link and select an option such as save link as.. to save it locally.
  2. Unzip the compressed file (usually by double-clicking it, or right-click on it for more options). You should see a tnt_yourthemename folder (which contains your actual theme), and then extras and documentation folders. Remember the location of this directory. 
  3. Start your FTP software.
  4. The program will need some connection information. The 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.
  5. Your FTP software will have a section labeled 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.
  6. Navigate in the local computer side to the location of the uncompressed theme. 
  7. Now look at the 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.
  8. Inside the 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.
  9. Drag the tnt_yourthemename folder with the uncompressed theme into the new themes folder. The files have now been uploaded!

Enabling Your Theme

The next step is setting an administration theme and enabling your new theme. 

  1. Log into your site with your administrator account.
  2. Go to www.yoursitename.com/admin/settings/admin
  3. Set your Administration Theme to Garland (or another theme of your preference, but Garland comes with Drupal 5 and is a good admin theme), check both boxes on this page and click Save
  4. Go to www.yoursitename.com/admin/build/themes in your browser.
  5. There should be listing of each theme available for your site. Find the thumbnail and name of the one you’ve just purchased.
  6. There is an 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!

Configuring 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.

Configuring Your Theme

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!

Removing 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.

Advanced Configuration

PANELS 2

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

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.

EDITING YOUR THEME

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.

 

Optimizing and maintaining your Drupal site

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.

Creating a backup of your database

 

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.

  1. The exact method for reaching the PhpMyAdmin page for your website differs depending on your web host. Please consult their documentation or consult your system administrator for more detailed instructions in accessing it. It may simply be called something like “DB Admin”. 

  1. This is the main page. Begin by clicking on the “Export” link under the MySQL section of the main browser window.

  1. This is the export page. Be sure to choose your database’s name in the Export selection box before moving on.

  1. Scroll to the bottom and select the “gzipped” compression method and check the “save as file” box.

  1. A save file dialog box will pop up. The file you download will contain the backup of your website’s database. You can use this if you need to restore the contents and settings of your website.

 

Upgrading Drupal modules

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.

Database Backup

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 Module

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.

Check Module status

  1. The Update module can check your modules for updated status automatically to assist you with updates. It will provide you with download links and available versions. Once the Upgrade module is installed and enabled, you can reach a list of modules for update by either clicking on the “available updates” link on the main administration page or by going directly to [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.
  2. In this example, the Views module is out of date. Any out-of-date module will be labeled in red, as shown above. We can upgrade this now.

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.

  1. The update.php script can be called two different ways. You may go to the main administration page and click on the “update.php” link on the front page, or you may go directly to [sitename]/update.php in your browser.

  1. Read over the content of this page. Instructions for a database backup are linked to above, and should be followed as noted here. You will require admin privileges to perform this upgrade. The first account created on your site will have the required privileges.

  1. If you do not have the proper privileges, you will receive this screen. Either log in or follow the instructions on the page to perform the upgrade.

  1. Once you have the proper privileges, you will see this screen. Click on the “Select versions” link to expand the section.

  1. These dropdown boxes contain database updates specified by modules you have installed. If you are not developing your own module or troubleshooting, you should leave them alone and just click the “Update” button. The correct items should already be selected by default — either “No updates available” if there have not been any database changes, or a number, which is simply an ID number of the database upgrade being applied.

  1. This next page may take a small amount of time to load, as the server is modifying your database. This page will display any errors that may have occurred during the process. If none have occurred, your module upgrade is complete!

 

Uninstalling Drupal modules

Uninstalling a module is easy. Before removing it, it must be disabled.

Disabling a module

  1. Go to [sitename]/admin/build/modules

                                                                                      

  1. Scroll down until you find the modules that you’d like to remove.   

  

  1. In this case, you’ll want to disable all of the “Views” set of modules. In order to disable a module, click to uncheck the “enabled” checkbox that’s next to it. If a module box is greyed out, that means you cannot yet disable it. This is because there is another module that requires that module to be active.

  1. In this case, Views RSS and Views UI must be disabled first before the Views module can be disabled. Uncheck those boxes first, then click on “Save configuration”          

 

 

  1. Once the page refreshes, the checkbox next to the Views module will no longer be greyed out. Repeat the process with the Views module, and everything will be disabled.  

 

                                                                  

Uninstalling a module

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.

  1. Click on the “uninstall” tab at the top of the [sitename]/admin/build/modules page. It will look like this: 

  1. Click on the checkbox next to the desired module (in this case Views) and click the uninstall button.

  1. Next, you’ll have a screen verifying your intention to uninstall this module.  

 

  1. Click on the uninstall button again, and you’ll get a screen with green text verifying that the module is uninstalled.

Remove/delete module files

Removal of module files is similar to the process of uploading module files.

  1. Use the same FTP client software as used in the uploading process, and use the same connection information.
  2. Navigate to the same directory
  3. Instead of uploading files from your own computer, delete the directory containing the desired module. 

SSH

  1. Use the same SSH client software as used in the uploading process, and use the same connection information.
  2. Navigate to the same directory.
  3. Instead of using the wget command to upload files, use the command “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!