Website Creation

To set up the ORP website, we followed a somewhat convoluted path -- sometimes backing up and changing course -- and learned some lessons. To set up a similar site, we suggest the following course of action, acknowledging that there are lots of different hosting sites, and different ways to get to a successful end. Perhaps this will help you get to where you need to go.

00. Apologies, Explanations, Etc.

Apologies & Explanations

Now, this is written in the hopes that even website novices will not be driven screaming from their offer to build a website for their affiliate group, but instead will find fertile ground in which a fertile mind can create a content-managed website using the Drupal system. We may have missed that target, but we'll keep revising things until we stop getting reports of dire consequences to life and property. Let us know if we've helped, too, though, lest we be convinced that we're getting no complaints because no one is reading these pages, either.

We are not going to try to explain everything here. There are so many places where folks with a lot more experience have done that. In particular, the Drupal users and contributors from around the world have done that. There is no excuse, for anyone who wants to learn how to build a Drupal website, to not visit, bookmark, revisit, study and digest the magnificent work found here. A whole series of tutorials can be found at ThemeShark.Com, the producer of the theme used on the Oregon Republican site. There are also lots of YouTube video tutorials, some better than others. A short look at a Google search for such tutorials will give you more general instruction than we could ever hope to include here. We encourage you to use any and all such tutorial information you need, since we (a) certainly should not reinvent the wheel, and (b) certainly can't solve every problem or meet every need.

For the advanced website person, I'm sure this will be unnecessary. Just kidding. There's always something new to learn, and odds are somebody has already found a way around the insurmountable problem you've just run into. So, search and learn.

As for our material, please feel free to skip over the stuff that aims too low for you, to the meatier parts, and please send us advice on how to do better for everyone. This is a first time for us, too, after all, and there are lots of folks that know more than we do about the whole process.

Really, we are serious about that. The goal of this process is make GREAT Drupal web sites available to any GOP group that wants one, without spending an arm and a leg, and without requiring each group to learn by themselves. If you are willing to share your experiences with us, many others will benefit.

Jargon

You will encounter a lot of jargon in these pages, and it's impossible to write this without either using the jargon, or making it a cure for insomnia. There is also no good reason not to use the already-published sea of helps on the web, and to write a new glossary. So, may we suggest that Google is your friend: type "define:" followed by the term you find unintelligible, and see what you find. As a few examples, here are some Google links for some of the jargon you will encounter, with some basic definitions from us and Sandy A.:

Drupal is one of most popular content management system frameworks currently available on the net. "Content management" means that the website content is manageable by mere mortals with a computer, rather than by the website masters. That means more user participation, faster website creation, and more flexibility. That, in fact, is why you are reading this page.

Drupal modules are component pieces that perform distinct functions on a Drupal-built site. In your home, you have a water heater, a dishwasher, etc. Drupal modules are like that, for your Drupal website.

Drupal themes are the design structures around which a website is built. Your home might be a ranch, a split level, a condominium, a colonial, or a mansion. It might have have the look of a Spanish hacienda, a French villa, a Louisiana plantation, or a Greek temple. But inside, the same stuff works: you still have a water heater, dishwasher, etc. Drupal themes provide the basic layout of a website, and the basic design structure, in which modules provide function.

DNS "Domain Name System" Everything on the net is actually known by a special number sequence, called an IP. For us humans, it's nicer to remember a name. DNS is the part of the web where computers go to translate the names we know into the IP address the computers actually use.

IP "Internet Protocol" The foundational protocol that defines different systems by unique address, and provides a way of exchanging information between them. Over time, the "IP" has come to refer to the unique public numerical address given to each publicly-visible system. IPv4 refers to an address that consists of 4 numbers, each ranging from 0 to 255, which are usually represented by stringing those numbers together, separated by decimal points. As the net has grown, those 4 numbers have proved to be insufficient, and the public addressing will soon be replaced by 6 numbers (IPv6).

FTP "File Transfer Protocol" A method for moving files around the web, from computer to computer. You will use this to move files onto and off of your website.

HTTP "HyperText Transfer Protocol" A method for "marking" text -- with formatting, images, links and other things -- so that all these fascinating web pages appear.

HTTPS "HyperText Transfer Protocol Secure" Just like HTTP, only encrypted so nobody can spy on it as it goes by.

URL "Uniform Resource Locator" The official complete and unique name for the location on the website of any given page.

PHP "Hypertext Preprocessor" ("HP" was already taken, you see). This is a programming language designed to run on servers, and follow instructions to create web pages for immediate delivery to a brower request from some remote system.

Please do contribute jargon with links and descriptions that you think should be included here.

Collaboration

Production of this tutorial has been a collaborative effort, and we try to give credit to folks who have questioned, commented on, and corrected this work. Thanks to:
Sandy Abercrombie of Jackson County, Oregon. The first guinea pig. Honor should always be given to the first into battle, right?

01. Determine Accounts You Will Use

Party sites must continue when leadership and volunteer staff change, and we have probably all seen cases where websites languished because someone with the passwords moved on to other parts of life. So, plan for that change at the outset.

First, remember that your website is going to incur costs, like domain registration and hosting costs. If your group does not have a "corporate" credit card, consider getting a temporary one, with at least a one year expiration, because hosting services tend to continually bother you with notices about an expired credit card even when it's a long time until the next billing event.

Sandy A. adds: "Domain registration can be for more than a year but hosting fees are paid monthly or annually. If your treasurer will tie these expenses to the bank account then they can be paid automatically. Remember to re-connect your domain fees when the treasurer moves the account to a new bank [or if you move to a new treasurer! -- ed.]. Losing your domain name because somebody forgot to pay the bill can be very expensive. Remember, your domain name is linked on other websites and if you lose it then those links will be broken."

Yup. Happened to Clackamas County once. New treasurer, new email... no renewal... panic.

Second, your domain registrar and hosting service are going to want to communicate with you, and with anyone who replaces you, so you can make your life easier by obtaining a different email address than your personal one. Also, your registration email address is more likely to end up in public view, so obtaining a non-personal address helps protect you against SPAM: it's easier to just change the registration address to a new one than it is to change your personal address AND inform all your friends and associates.

Consider using GMail.Com for hosting and domain management email messages. You can set up a free email account with them, and then FORWARD the mail coming to that address to your personal address. Here are the reasons to do that:

For all accounts, make sure that someone else in the group has full capability to log in to all accounts set up to support the site, so that if you decide to take a permanent relocation to Jamaica in the middle of the night, the site does not become orphaned while you retire to the beach. Besides keeping notes in computerized form that are occasionally sent to party leadership for reporting and backup, be sure to keep a paper trail of things you do. Think of those notes as part of your disaster recovery plan.

02. Domain Name Management

The domain you choose, like "ClackamasGOP.Org" or "OregonRepublicanParty.Org", says who you are. If you are reading this, you probably already have that domain name picked out, but if not, have some fun with it. On the web each name must be unique, but there is no requirement that they are easy to remember and make sense. A pity, because then there would be no need to advise that WE should always have names that are sennsible AND memorable. There are, for example, lots of "Washington" counties in the U.S. (popular guy, eh?). So the difference between "RepublicanPartyOfWashingtonCounty.Org" and "WashingtonCountyGOP.Org" -- and their variants ".Com", ".US", ".Info", ".Net"... -- might satisfy the uniqueness requirement for registering a name, but it's more sensible and memorable to distinguish Oregon's Washington County from others by branding the name with something unique to Oregon. Jackson County, for example, has chosen "ORGOPJackson.Org". Short (good), Oregon-branded (good) and definitely GOP (good). Make sense? The rest is up to you, of course.

We recommend GoDaddy.Com for registering domains, as they seem to have reliable and consistent service, are inexpensive, and are always ready to assist you in registering and maintaining domain names, as well as setting up and managing DNS entries.

We also recommend that you consider registering multiple names that people might use, in order to catch additional traffic. You don't have to set up a separate site for each name: all the names can "point" to the same place, and usually the registrar you choose will offer that feature for free. So, if MyCounty.Org is your primary domain name, perhaps you should also consider MyStateMyCounty.Org, MyCounty.Com, MyCounty.US, and others. When you start to register your domain, the registrar will suggest alternatives, as well. Consider them. We have ORGOP.Org, of course (the old website name), and others, held in reserve, as well as the primary domain name OregonRepublicanParty.Org.

In setting up the new Clackamas County site on Hostmonster, one issue arose that was most easily solved by having a live (that is, public) web domain address pointing to the site, but we were not yet ready to make the site live. There's no need to describe the issue now (it's a detail about how to link to uploaded files from within the site), but having at least one public domain name pointing to the site while you are still developing it makes the issue moot. So, you now have another reason to register multiple domain names for your new site: to have a public address to utilize for testing and development. In the case of Clackamas County, ClackamasGOP.Org was active already, but we had also registered ClackamasGOP.Com and forwarded it ("pointed" it) to the old .Org site. So, we instead redirected the .Com name to the new site, to have an easier time installing Drupal as we configured it.

If you host with Hostmonster, they offer one free domain registration for 12 months. That means that if your live domain already exists, you can easily register a temporary domain for installation purposes if you find you need to, without additional cost. However, we do not recommend that you use that free registration for your primary, permanent domain name, and we don't recommend that you keep your permanent registrations with the same company that you use for hosting (more on that in the next section). Temporarily, however, that free registration is useful.

You should be aware that there are always folks out there who will try to divert visitors to your site by some devious methods, and you should try to defend against them. First, there are people who will watch for a domain to expire, and then quickly grab the name, holding it hostage for a large fee. That is avoided by never letting the domain expire using automatic renewal, being sure the credit card used to renew the registration is current, and being sure there is always at least one responsible party watching the registration email for notices.

Second, folks will register similar names, or names with a different usage tag, like "OregonRepublicanParty.Com" or "OregonRepublicanParty.US", in an attempt to catch people who let their browser search for the site instead of using the complete URL. Consider a brain-storming session where you protect your brand by purchasing registrations for similar names, to create a sort of protective perimeter around your site. Want the most significant political example of this? Everybody knows the website "WhiteHouse.Gov", even if we don't all like the current occupant. Well, for many years "WhiteHouse.Com" was a notorious pornography site, though thankfully no longer. And recently, "WhiteHouse.Org" has become a parked link to a permanent archive for President G. W. Bush. So, lesson learned?

Third, folks will try to hijack the name, by faking transfer requests from your registrar. This is avoided by making sure the email from the registration company is constantly monitored, not just once every month or so. That's part of the reason we recommend a temporary email address with forwarding, to avoid this devious technique: (a) hijacker looks at public registration data, and retrieves registration email address, (b) begins spamming the address with hundreds of fake emails per hour, (c) gets another registrar to issue a transfer request for control of the site name, (d) depends on the overwhelming nature of the spam from concealing the presence of an impending transfer notice from the registrar, (e) is awarded the web domain name after the notice waiting period expires.

So, the wise website manager would see the flood of SPAM to their registration address, quickly replace it with a new address, disable the forwarding on the old address, and let it fill up with the hijacker's now-futile attempts. The notice of impending transfer gets seen, either when logging into the registrar to change the email address, or afterward, on a new spam-free account, and can be quickly denied.

Sound far-fetched? Perhaps, but it would work, and we should put nothing past partisan adversaries these days. So, plan ahead for adversarial events.

03. Set up basic web hosting account

There are lots of web hosting service companies. We recommend first that you choose one with definite ties to the United States. Some companies have servers here, but when you read the agreements, you discover they are covered by the laws of Belize, or Panama, or elsewhere. Other companies are US-based, but use servers off-shore. Such are valid business models, and you certainly can use them if you wish, but we think US-based is a wiser choice.

Using those thoughts, we chose HostMonster.Com because the company and its servers are based in the US -- and they are not expensive. Use the link below to sign up.

We also recommend that you do not HOST your website using the same company with whom you REGISTER your domain name. Simply put, if one company holds both your domain name, and your website, you could have difficulty if a dispute arises. The exception to this might be registering the temporary address to make the Drupal installation easier, as we mentioned earlier, but we still advise that your primary domain be registered with a service other than your site host.

Now, read all the fine print about the hosting service, to see what limits there are on usage. The operant thought here is to have no surprises down the road, with the hosting service informing you that you are violating their usage policy and they've just shut you off. Those hosting "terms of service" are long and full of legal language, but you should get a cup of coffee, some vitamin pills, and an energy drink or two... and read them.

You are following this tutorial in order to create a site like the ORP site, and that depends on a content-management system called Drupal. Be sure that the hosting service fully supports Drupal websites. Usually, that will mean that not only do they allow Drupal to run, by granting you access to a database engine and such, but also that they provide an installation tool for Drupal on their maintenance page. Don't be bashful, ASK them first: "Do you fully support Drupal-based sites?", and "How do you facilitate Drupal installations?"

Be sure that the hosting service supports site backups, and gives you access to backups you can off-load to your own computers, just in case. This is ESSENTIAL, because no one in their worst nightmare wants to have to rebuild a site from scratch if something serious happens, like the hosting service goes out of business. So be sure (1) the hosting service does frequent backups of your site and (2) gives you access to them, then be sure also that (3) you quickly learn how to download those backups, and (4) assign some person in your organization to actually DO those downloads.

Next, be sure that the hosting service provides full "FTP" access for doing things like partial backups, file management, and installation of components. Some services, like HostMonster, provide FTP through their maintenance page, but I think you will find complete FTP access more flexible. You'll need a client program -- that is, a program that lives on your computer and talks for you to the server -- to support FTP, and we discuss that in the next section.

Finally, be sure that the hosting service provides for direct session access, where you are enabled to login to the server just like you used to do on your computer during the DOS days (remember those command prompts?). This is extremely useful, and I frankly don't see any alternative to good, old-fashioned command line intervention during the whole process. This will require some education, but it's not overwhelming. The hosting service customer service staff can help you with most of it, and we'll write what we learn as folks get stumped by issues. We discuss a client tool for this in the next section, too.

All that investigation done? Good, now sign up. Usually, a short term like a year will net pretty good monthly rates (paid in advance, usually), and avoid an account setup fee. Acquire your login and password information, and methods of access while setting up the pages. Usually you have to identify the domain that you will be creating at signup time, and you need not be concerned about declaring the same domain name as your current website, since the site does not become active UNTIL you notify the domain registrar that you have "moved". In the interim, the hosting service will let you know how to temporarily access the website for setup and testing. Take notes, and make sure you're not the only one who has them. That Jamaica thing, remember?

And don't worry. You can do this, given patience and determination. Everything can be fixed if you break it, as long as you don't use too much dynamite and keep your backups. Around here, we practice keeping copies of postings that are placed on the site, and copies of modules, and lists of things to do.

04. Tools For the Journey

Any project is easier with better tools. Here are some recommendations.

Local editor: Notepad++

You need to have a decent editor to create and modify command files, scripts, and other back-office parts to your website. It's also nice to have an editor that speaks web languages a bit. Sort of like having C3PO to translate for those moisture vaporators, you know?

Notepad++ is to Windows NotePad what an F-22 Raptor is to a Sopwith Camel: no contest. Unlike the Raptor, however, it's free, and may God bless programmers who give their creativity to the world for all to use (donations accepted). It's an editor that can handle all sorts of text, html, software source editing, etc. All this documentation was edited using Notepad++, with Notepad just whimpering in the corner, begging not to be deleted and forgotten.

To make it pretty: Paint.Net

Sooner or later, you will need to paint a picture or two for your site. Or just modify an existing one.

Paint.Net lets you create and edit pictures. Think of it as the source for better buttons, logos, and other interesting things. It's the whole Raptor/Sopwith thing compared to the Windows-included freebie Paint, and it's just as free. Download it even if you don't want to make your own logo, just because it's cool.

Firefox with Firebug and Drupal for Firebug: Browser/Debugger/Revealer

Part of developing and maintaining a website is seeing why things work, or don't work. Hey, that works for seeing how OTHER people built their websites, too.

Mozilla Firefox, the Firebug addon and the Drupal for Firebug addon give you a new browser with a built-in capability to view what's happening on a Drupal webpage, and in particular why it renders (displays) like you see it. To customize your website appearance, you must configure where modules go. To make it look prettier, you must edit the "style" information about the page. That will take some education, and Firebug will help a lot.

File manager and FTP client: Total Commander

For sure, you are going to need a tool to move files onto and off of your site, as well as copy things, rename things, and move things around. FTP is the way you do that.

Total Commander is a very useful tool for organizing folders on your local PC, with an integrated FTP client for connecting to your host server for transfer of files and such. It's shareware, about $40 (depending on exchange rate). Now, there are lots of free FTP clients, as well: search CNet.Com for FTP software, then click "Free" on the left column. CoffeeCup FTP looks good to me. I use an older copy of Total Commander, myself.

Now, if you don't want to load an FTP client on your own computer, you will probably find a workable FTP solution on your hosting service control page. On Hostmonster, this is "Unlimited FTP", found on the cPanel control page.

Direct Session (TelNet) client: PuTTY

Finally, you need a tool to help you look under the hood, behind the curtain, and inside the brain... of your website. Direct session connection lets you do that, without having the server in your house.

PuTTY is the direct session connection client program we recommend. It lets you type commands directly into the server that is hosting your site, and lets you wander around the "backstage" areas. If you are a Linux user, you probably already use telnet sessions and understand command line operations, so you can probably skip this section, although you might still want to download PuTTY if you don't have it. If you are a DOS/Windows user, this is probably new to you, so read on.

If you remember DOS, you remember typing commands like "COPY" or "DIR" and such. If you don't remember DOS, just click Start/All Programs/Accessories/Command Prompt on your Windows machine, type "Help", and visit the hidden world that lives below Windows. Think of it as visiting with us Morlocks, though I cringe at the comparison of Windows users to the Eloi. See all those commands? They let you do things to your computer when you have to boot into SAFE mode/Command Prompt. Well, Linux has the pretty graphical interface, too, but it was built on the command lines typed on a black screen. If you use Linux, you're probably still typing commands occasionally, if only in a script. Command line control of your website is probably necessary, and it certainly makes it easier to visualize the stuff behind the curtain, because, well, you are behind the curtain.

A direct session with your website puts a window on your screen that looks like you are typing in the "Command Prompt" window provided by Windows. It allows you to interact directly with the server that hosts your site, and to control many things on your site that are normally invisible from the administrative pages under Drupal. I won't attempt to explain all the commands available to you under a Linux environment, but I will roughly explain a few. For all the commands, you can usually type the command word followed by "--help" to get simple instructions, or you can type "man " followed by the command word for a complete user "manual" for the command.

So, unless you've got something you like better, download PuTTY. You can view the whole website for the software here. The download is the executable program. PuTTY is so simple it doesn't even require "installation". Just download it and put it wherever you like, even on your desktop. When it starts, Windows might complain (because no homage was paid to Microsoft: it wasn't "installed"): it's OK to accept the program if you loaded it from a known source. You will then be confronted with a window asking for the basic options for the connection to your host server. Enter the address for your server in the Host Name box, click "SSH" for the Protocol, and be sure "22" is in the Port box. I suggest typing a name, like "MyCounty", in the "Saved Sessions" box, and clicking "Save" so that you don't need to enter the data again. To the left of the basic options boxes is a menu of various parameters for the session. Set them as you like, or just leave them alone.

A pause here for security: on Hostmonster -- and I'm sure on other hosting services, as well -- letting you set up a site is one thing, but letting you wander around the insides of the server is just a bit personal. So they will want to know exactly who they are dealing with. When you try to connect using a direct session, the host may not let you in. Check their hosting instructions, or call, to find out how to get authorization to connect using a direct session. On Hostmonster, they require a scan of a government ID with picture, either uploaded to your site by FTP, or faxed, or something. I just stuck the image in my site root folder, let them see it, and then deleted it.

After saving the parameters for the connection, click "Open" to start the session, and then log into the server, using the username and password provided for direct session connection by your hosting service. Assuming all is as expected, you will now be "talking" directly to your host computer, and can begin navigating the "back room" of your site.

Now, take a look at the prompt displayed in the session window, on the last line, with the cursor. If you are using Hostmonster as your host service, you will see your login account name, coupled with the domain name, as an email address, followed by "[~]#". The tilde character is indicating which folder you are currently "in", and "~" indicates that you are in the "home" folder -- that is, the root folder for your domain on the hosting server. For Windows folks, think of it as being much like your personal login account folder under C:\Documents and Settings. Commands you type in response to this prompt are terminated by pressing the RETURN or ENTER key, just as in DOS. One caution, however: in the Linux world in which you are now operating, the CASE of a character matters. The basic commands recognized by the server you are communicating with are all lower case, and will not be recognized if typed in upper case.

Command "ls" (that's "ell-ess")

To view the files in the DOS world, we use the "dir" command. In a Linux environment, we use "ls", and its more robust form "ls -ls". Try them, and use "man ls" or "ls --help" to get instructions. You will have questions, for sure, but you don't need to know every bit about the command to find things.

Command "cd"

To navigate the folders of your website using direct session access, you use the command "cd", which is almost exactly like the similar command in the DOS/Windows world. Typing the command "cd ~" will return you to the "home" folder. Typing "cd .." will move "up" one layer of the tree. To move down through the tree, you type the command "cd " followed by the path of the branches to take, just as you would in the DOS/Windows world, with one important distinction: instead of using "\" (backslash) to separate the folder names in DOS/Windows paths, you use "/" (slash), as you would in path names in Internet Explorer web addresses. Play with it; it's not difficult.

Command "mkdir"

To create a folder, navigate to the folder in which it should be placed, then type the command "mkdir " followed by the name of the folder you wish to create.

Command "exit"

To end your direct session, type the command "exit".

There are lots of commands available to you under the direct session, and they will be covered later.

05. Installing the Drupal Core

Remember the discussion in the first section about all the tutorials available on Drupal? Don't forget that. We encourage you to use any and all such tutorial information you need, since we can't answer everything.

Drupal Core

On HostMonster, installing Drupal is pretty easy: click the SimpleScripts link on the cPanel maintenance page, and follow the prompts. Accepting the defaults is probably going to be just fine.

Later on, we will revise this to include downloading and installing Drupal directly from Drupal.Org, but I suspect that needing to do so indicates your hosting service is not up to speed on the process. If you really want to do it directly, please contact us.

There will be several pieces of information that must be kept track of when installing Drupal, particularly the admin password, the version of Drupal that is being installed, and the base public folder (where the website actually lives). Take your Jamaica notes, because the information from the installation of Drupal is essential to keep.

Don't forget the password, because the password for Drupal administration is not something your website hosting service can help you with: Drupal is a package that runs entirely under your control, not theirs.

The version of Drupal is important to remember because other components that will be installed to support your website must be compatible with the Drupal core components you are installing now. Incompatible versions = Babel, and nothing works right.

There will also be an indication of the basic PUBLIC folder on your hosted site. This is important to know, because that is where Drupal will install, and that's where all the stuff people can see will be stored. On each host there will certainly be differences, but essentially the public area will be at least one layer below your private area (also called your site "home" folder.

On HostMonster, the ClackamasGOP.Org website "home" -- designated as "~", remember? -- folder is actually "/home2/clackama" (without the ending "s", an artifact of the way they assign user account folder names). The public space, and therefore the space where Drupal installs is called "~/public_html". Be sure to make a note of the tree structure for your hosting service. It definitely makes life easier. And don't be intimidated by the folder structure. With a few notable exceptions -- like the use of slash instead of backslash to separate path segments, and the use of tilde to designate the home folder -- it behaves pretty much like Windows.

Drupal does the nuts and bolts for this, but you will probably want to do something a little special sometime, so do get a feel for how your website is organized on your hosting service's server. And write it down, of course, so your team can keep track of it.

The Infamous Issue

Here, by the way, is a good place to mention the small issue that arises when installing Drupal using a temporary address -- for Clackamas County, "http://74.220.215.83/~clackama/" -- rather than a permanent one -- which for Clackamas County will be "http://www.ClackamasGOP.Org". When you upload images or documents to your hosting server, for the purpose of referencing them on your site (like photos to be displayed on a page, for example), Drupal doesn't really know about them. When you want to use them, however, you have to tell Drupal where to find them. When the website does not have a permanent public domain address pointing to it, the "home" folder that Drupal is told about is different than when your website is referenced by a permanent address. As a result, any references to those uploaded files will look different, as well, because the address which refers to them assumes a certain home folder.

Now, you don't need such references if you are just building the site, but we decided to load some content stories from the old website in order to see how the formatted pages looked. When we did, we uploaded three photos that were part of a story, referenced them with links within the story (as we had on the old site), but they did not appear. A little debugging, and we discovered that the "home" folder was not as we expected. A call to Hostmonster technical support confirmed that such was a limitation of using only the temporary access web address. Hence the solution of assigning a public address to the website during development instead of waiting until we launched the site permanently.

Now, when your website visitors enter "http://www.<YOU>.org" ("<YOU>" is, well, you, right?), the hosting service will start hunting in your public space for instructions on what to show the visitor. In the case of ClackamasGOP.Org, HostMonster responds to a request for "http://www.clackamasgop.org" by hunting on the assigned server for the folder "/home2/clackama/public_html", or, using the "home" directory jargon, in "~/public_html". Inside that folder, HostMonster looks for "index.php", and runs it (it's really a short program): poof! Up pops the website (with apologies and due credit to, but no description of, the process wonders of: Apache, PHP, and all the other software between here and there!)

Drupal Uses PHP

Different host services put different limits on running websites, and you may have to take different steps with your hosting service. On HostMonster, there is a file that needs editing to set higher limits for certain aspects of the site limits. To make the changes, use your FTP client to copy the file "~/public_html/php.ini.default" to your local computer, and then make a new copy of it called "php.ini", and edit it with a text editor.

Can't find it? First, call your host support and ask them about it. If they can't help you, it's possible there's no copy of it loaded in your Drupal install procedure. Ask their advice, or give them the parameters listed below and ask them to put them into the php.ini file for you. Finally, if it's still not as it should be, look here for advice from the Drupal organization.

If the file looks strange when you edit it, you have probably run into a fundamental difference between Linux and Windows: text file lines are terminated by a two character sequence in Windows (Carriage Return followed by Line Feed), but only a single character in Linux (Line Feed, called New Line). To fix that problem, either use a text editor that doesn't care (like Notepad++), or use your FTP client to copy the file in "Text" or "ASCII" mode (the copy process will change the end of line sequence for you) rather than the (usually default) Binary mode (file is copied exactly as is).

Inside the new copy of php.ini for ClackamasGOP.Org, we found the following items that needed changing, and we replaced the original values as noted below. To fix your configuration, locate the text from the left side of each definition, and be sure the right side in your copy is like the right side.
max_execution_time = 300
max_input_time = 120
memory_limit = 96M
post_max_size = 128M
upload_max_filesize = 32M

Remember, your hosting service might set different limits. After you are done editing the file, save it, then upload it as "~/public_html/php.ini".

The First Smoke Test

Now, login to your Drupal site, by entering in either the temporary hosting address, or a permanent address you've assigned to it. You should see Drupal pop up and offer you a place to login, using account admin, and the password you recorded during installation.

Enable Basic Included Core Modules

Let's turn a few of the included modules on, to start with: login as "admin", navigate -> Administer -> Site building -> Modules -> Core -- optional, and enable the following built-in modules: Aggregator, Book, Color, Contact, Database logging, Forum, Help, Menu, OpenID, Path, PHP filter, Poll, Search, Trigger, Update status and Upload.

Initial Error: CRON

You will probably come across a red banner that says your site has errors. This is not unexpected. Click on "status report" in the error banner, or navigate -> Administer -> Reports -> Status report. The first error expected is a warning that "cron" has not run. Be not alarmed. Cron is the process in Linux that performs timed jobs -- jobs that have to be run periodically -- according to user settings. You should certainly read the Drupal handbook on cron jobs (click the link in the status report entry for "Cron maintenance tasks"). Ultimately, you have to set this up using the website control interface provided by your hosting service. CPanel and PLesk are two such interfaces, and Hostmonster uses the former. If your service does not have something similar, call the customer service number and ask. Using cPanel on Hostmonster, navigate -> Advanced -> Cron jobs -> Standard.

 

 

Other errors you encounter will refer to configuration of items. You can decide when it is necessary to deal with them, but there usually are instructions. For module and core Drupal updates, there will be be recommendations. After you install modules and themes, you will have a good idea how to update those modules and themes, by installing the updates just as you did the originals. Don't worry right now.

Additional Login Accounts, and Permissions

Next, navigate -> Administer -> User management -> Roles. There should be two roles already: anonymous user (somebody who visits without logging in), and authenticated user (somebody who has given you basic information about how to get hold of them, but who you don't necessarily trust). Add at least one new role: Administrator. We will add more later. Then click "edit permissions" for Administrator, and turn on every permission (it's easier if you click into the first check-box, then touch the Space bar, then the Tab key, repeatedly).

Then enable a few permissions for Anonymous users and Authenticated users. For Anonymous users, enable the basic access items, like "access news feeds", "access printer-friendly version", "access comments" and "access content". For Authenticated users, enable those access items plus "post comments" and "access site-wide contact form". Now folks can do a few basic things, but there's more to come, later.

As you add additional components to Drupal, you will return to the Roles page, when you will add roles for writers, editors and moderators, and update the permissions for all user types, because those new components will need permission settings of their own.

Finally, navigate -> Administer -> User management -> Users, and click "Add user" to add as many users as you need to get things going, if you have helpers. If not, at least create one account for yourself, so you can log in with a little less power than "admin" most of the time. As things sit right now, you have only one special role defined -- Administrator. Later, we'll add more roles for people developing and editing content.

06. Recommended Drupal Modules

This module list was last updated to current revision levels on 3 September 2010.

The functional components of a Drupal site are found mostly in software sets known as "modules". We offer here a set of modules that are either used on the ORP site, or on one of the affiliate sites, or are in the queue to be utilized.

Everywhere in this tutorial you will see reference to the root public web folder where Drupal gets installed listed as "~/public_html", because that's the folder name on Hostmonster. If your hosting service uses a different web root, you must substitute that folder name instead. We can't know everything, but if you tell us about your own experience, we'll add it to this tutorial, OK?

Below we have specified a list of modules and editor plug-ins that are reasonably complete and robust for a Drupal site. As part of each unit, we have included a brief description, a link to the source for the item, and the direct session commands (or FTP process) to load it onto a Drupal site using hostmonster. With small changes, it should work for any other hosting service, as well, since Drupal itself will expect the files and folders to be in the same relative places. The process for enabling each of the items is included, as well. We have also attached a script which, when executed on your server, should load all the modules, and all the editor plug-ins except NicEdit (which you must FTP to the site directly, because of the way the developers configure the various versions of NicEdit). If you would rather use the script -- which we suggest is a LOT less tedious than cutting and pasting all the commands -- do the following first, then go through the rest of this section to enable the items, but ignoring the commands.

Modules are loaded into the public area folder "sites/all/modules" (on the Hostmonster account for Clackamas County, this folder is "~/public_html/sites/all/modules"). You should have created this folder already after installing the Drupal core. If not, return to that section and do it now.

Likewise, the plug-in component editors for the WYSIWYG editor are loaded into "sites/all/libraries" (on the Hostmonster account for Clackamas County, this folder is "~/public_html/sites/all/libraries"). You should have also created this folder after installing the Drupal Core.

There a few new direct session commands in use below. It's time to describe them to you.

The command "wget" calls for the hosting server to fetch from the web a file you designate. For a lot of things you need to install in your Drupal site, you will be asked to "download" the file, and "install" it on your server. For most folks, not using their own server but hosting with a remote installation, that means first visiting the webpage where the download is referenced, then downloading the package to their computer, uploading it to their hosting service, and then using a direct session to decompress and install the package. Instead, we recommend you use a direct session process to directly transfer the compressed package to the hosting site, and that's where the command wget comes in: it sort of "cross-loads" the package directly from the source of the software right into your server.

Now, we can't pretend to cover each and every module you may load, and we might not keep up on the current revisions of things, so here's the trick: when we created the wget command lines below, we went to the webpage where the download reference is found, right-clicked on the download command for the Drupal 6 version of the package, and told Windows to "Copy Link Location". Using Edit/Paste, we placed the location of the download after a "wget " command, and stripped out the "http://" or "ftp://" at the beginning of it. Do try this yourself, with one of the modules below, so you can see how it's done. That way, when you run across a new package you want to utilize, you can efficiently grab it and install it.

The command "tar -xf" calls for the hosting server to "tape archive extract file" (hey, the command has been around a LONG time, OK?) the compressed archive file you specify. Usually, you will apply this command to the file you just loaded onto the server with wget.

The command "unzip" works like tar, but it's designed for files ending in .zip.

The command "perl" commands the hosting server to execute a script written in the language Perl. You specify the name of the file containing the script. Likewise, the command "php" commands the server to execute a PHP script.

The command "mv" moves a file or folder from one place to another. You specify both the source and the destination.

As you are performing this module install section, and later the theme install section, I would advise you to keep your Jamaica notes, using a Notepad text file or something similar on your computer, OK? As you prepare to type or paste a command into the direct session window, or perform configuration in the Drupal administration area, note that fact by placing the command in the Jamaica notes, and then type information about what you did in Drupal administration to configure the package. Put the commands you used on separate lines, like they are below, and put a "#" in front of lines with your comments on them, to distinguish them from commands. Later on, when you add things or modify things, go back and revise the notes. That way, should it become necessary, someone else can take your notes and recreate the module and theme structure you initially created.

At the front of every command series there's a "cd" command to place you in the right folder. If you're already IN that folder, you don't need to type the command again. You can also use your developing skill of navigating with "cd" to get there any way you like, of course. Just don't move on to the next command until you're in the right folder. Makes things messy otherwise.

For all these commands, if you see messages that look like errors, pay attention, and ask for help if you need it. Many of them will not report anything if they succeed, but they will produce a result.

And of course, you should make liberal use of your workstation's cut and paste capability to simply paste the commands below into the direct session window to save a bunch of typing, right? After all, it's a LONG list of commands, and nobody wants you to collapse face down into your pizza from excessive typing. Ruins the pepperoni.

Lastly, you will find it much easier to go through this process if you leave some of these administration pages open in separate browser tabs or windows, and just order the browser to "reload" them when needed. Saves time, particularly when clicking down through the administration menu.

Now, the modules (sure you don't want to use the script module.loader?):

Module: WYSIWYG ("What you see is what you get") (Link)
Visit the link to get an idea of all the editor possibilities you can utilize. You can choose just one, or a bunch, and then utilize the ones you want for various posting input pages. The ORP has lots of them loaded, but we really only use the FCKeditor at the moment. Don't let that stop you from experimenting and telling us about your experience.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/wysiwyg-6.x-2.1.tar.gz
tar -xf wysiwyg-6.x-2.1.tar.gz
mv wysiwyg-6.x-2.1.tar.gz ./uploads

Enable: Navigate -> Administer -> Site building -> Modules -> User interface. Enable "WYSIWYG", and Click -> Save configuration.

Configure: Click "Administer -> Site configuration -> WYSIWYG". It will show you a list of editors that can be used.

***

Editor: FCKEditor (Link)
Now called CK editor, but we'll use the FCKEditor stable version.

Commands:
cd ~/public_html/sites/all/libraries
wget downloads.sourceforge.net/project/fckeditor/FCKeditor/2.6.5/FCKeditor_2.6.5.tar.gz
tar -xf FCKeditor_2.6.5.tar.gz
mv FCKeditor_2.6.5.tar.gz ./uploads

***

Editor: jWYSIWYG (Link)

Commands:
cd ~/public_html/sites/all/libraries
mkdir jwysiwyg
cd jwysiwyg
wget jwysiwyg.googlecode.com/files/jwysiwyg-0.5.zip
unzip jwysiwyg-0.5.zip
mv jwysiwyg-0.5.zip ../uploads

***

Editor: NicEdit (Link)

Commands:
cd ~/public_html/sites/all/libraries
mkdir nicedit

Now, this one you have to actually download the version to your computer, then upload it to your hosting server. Choose the version you want, and download it to your computer. Log into the hosting server administration area, and select the FTP process most appropriate. On Hostmonster, the File Manager works fine. If it's not obvious on your hosting service, ask them. Navigate to the folder "public_html/sites/all/libraries/nicedit", and then perform a binary upload of the version you selected.

Commands, continued:
cd ~/public_html/sites/all/libraries/nicedit
unzip nicEdit*.zip
mv nicEdit*.zip ../uploads
ls

# Be sure "nicEdit.js" is listed.

***

Editor: OpenWYSIWYG (Link)

Commands:
cd ~/public_html/sites/all/libraries
wget www.openwebware.com/openwysiwyg_v1.4.7.zip
unzip openwysiwyg_v1.4.7.zip
mv openwysiwyg_v1.4.7.zip ./uploads
mv openwysiwyg_v1.4.7 openwysiwyg
cd openwysiwyg/scripts
ls

# Be sure "wysiwyg.js" is listed.

***

Editor: TinyMCE (Link)

Commands:
cd ~/public_html/sites/all/libraries
wget downloads.sourceforge.net/project/tinymce/TinyMCE/3.2.7/tinymce_3_2_7.zip
unzip tinymce_3_2_7.zip
mv tinymce_3_2_7.zip ./uploads
cd tinymce/jscripts/tiny_mce
ls

# Be sure the file "tiny_mce.js" is listed.

***

Editor: YUI (Link)
Pick one or the other of these versions.

Commands (from Yahoo; ORP used this version):
cd ~/public_html/sites/all/libraries
wget developer.yahoo.com/yui/download
unzip yui*.zip
mv yui*.zip ./uploads
cd yui/build/yahoo-dom-event
ls

# Be sure "yahoo-dom-event.js" is listed.

Commands (from the Drupal projects site):
wget ftp.drupal.org/files/projects/yui_editor-6.x-2.33.tar.gz
tar -xf yui_editor-6.x-2.33.tar.gz
mv yui*.gz ./uploads
mv yui_editor yui
cd yui/build/yahoo-dom-event
ls

# Be sure "yahoo-dom-event.js" is listed.

***

After loading the editors of your choice (remember: ORP uses primarily FCKEditor), refresh Administer -> Site configuration -> WYSIWYG, and obserrve the editors listed under the Installation instructions area. Now select the editors to use for the three input formats initially configured: Filtered HTML, Full HTML, and PHP code. Save the results. Then edit each format to set the configration.

Filtered HTML and PHP Code: Basic setup: select "Enabled by default" and "Show enable/disable rich text" Cleanup and output: Select "Verify HTML", "Convert \

Full HTML: Same, except under Cleanup and output: select only "Verify HTML"

*** *** ***

Presented in alphabetical order, for easier maintenance.

Module: Advanced help (Link)
Well, don't you think you'll need it? I do.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/advanced_help-6.x-1.2.tar.gz
tar -xf advanced_help-6.x-1.2.tar.gz
mv advanced_help-6.x-1.2.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Advanced help". Click -> Save configuration.

*** *** ***

Module: Block Refresh (Link)
Block refresh allows a block element to be automatically refreshed on an interval.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/block_refresh-6.x-1.x-dev.tar.gz
tar -xf block_refresh-6.x-1.x-dev.tar.gz
mv block_refresh-6.x-1.x-dev.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> User Interface. Enable "Block Refresh". Click -> Save configuration.

*** *** ***

Module: Calendar (Link)
Supports calendar functions.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/calendar-6.x-2.2.tar.gz
tar -xf calendar-6.x-2.2.tar.gz
mv calendar-6.x-2.2.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Date/Time. Enable everything: "Calendar", "Calendar iCal" and "Calendar Popup". Click -> Save configuration.

*** *** ***

Module: Content Access (Link)
Provides user- and role-based content access.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/content_access-6.x-1.2.tar.gz
tar -xf content_access-6.x-1.2.tar.gz
mv content_access-6.x-1.2.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Access control. Enable "Content Access". Click -> Save configuration.

*** *** ***

Module: Content Construction Kit (CCK) (Link)
Supports Content Construction.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/cck-6.x-2.8.tar.gz
tar -xf cck-6.x-2.8.tar.gz
mv cck-6.x-2.8.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> CCK. Enable everything: "Content", "Content Copy", "Content Permissions", "Fieldgroup", "Node Reference", "Number", "Option Widgets", "Text" and "User Reference". Click -> Save configuration.

*** *** ***

Module: Content Management Filter (CMF) (Link)
This replaces the basic content management screen, and is way more useful.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/cmf-6.x-2.0.tar.gz
tar -xf cmf-6.x-2.0.tar.gz
mv cmf-6.x-2.0.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Administration. Enable "Content management filter". Click -> Save configuration.

*** *** ***

Module: Content Templates (Contemplate) (Link)
An addition to CCK, supporting admin-modified templates for teaser & body of postings.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/contemplate-6.x-1.1.tar.gz
tar -xf contemplate-6.x-1.1.tar.gz
mv contemplate-6.x-1.1.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> CCK. Enable "Content Templates". Click -> Save configuration.

*** *** ***

Module: Date (Link)
Supports date functions.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/date-6.x-2.4.tar.gz
tar -xf date-6.x-2.4.tar.gz
mv date-6.x-2.4.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Date/Time. Enable almost everything: "Date", "Date API", "Date Popup", "Date Repeat API", "Date", "Timezone" and "Date Tools". Note that "Date PHP4" is not enabled because we assume your web hosting has at least PHP 5.2 -- a fair assumption today, but you can check with your hosting service, and enable this item if necessary. Click -> Save configuration.

*** *** ***

Module: Drupal for Firebug (Link)
Provides a powerful debugging interface that works with the separately-installed Firebug module in the Firefox Browser.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/drupalforfirebug-6.x-1.3.tar.gz
tar -xf drupalforfirebug-6.x-1.3.tar.gz
mv drupalforfirebug-6.x-1.3.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Drupal for Firebug. Enable "Drupal for Firebug" and "Drupal for Firebug Preprocessor". Click -> Save configuration.

*** *** ***

Module: Dynamic Display Block (Link)
Provides an active image display rotator to your website. You see an example of it on the head page of the ORP site.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/ddblock-6.x-1.0-rc6.tar.gz
tar -xf ddblock-6.x-1.0-rc6.tar.gz
mv ddblock-6.x-1.0-rc6.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Dynamic display block". Click -> Save configuration.

*** *** ***

Module: FileField (Link)
File upload field for CCK.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/filefield-6.x-3.3.tar.gz
tar -xf filefield-6.x-3.3.tar.gz
mv filefield-6.x-3.3.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> CCK. Enable "FileField". Click -> Save configuration.

*** *** ***

Module: FlashNode (Link)
Provides a way to add flash content quickly, without doing any HTML editing.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/flashnode-6.x-3.1.tar.gz
tar -xf flashnode-6.x-3.1.tar.gz
mv flashnode-6.x-3.1.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Flash node". Click -> Save configuration.

*** *** ***

Module: Front Page (Link)
Allows a website to have special splash or front pages displayed for various users and situations.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/front-6.x-1.2.tar.gz
tar -xf front-6.x-1.2.tar.gz
mv front-6.x-1.2.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Administration. Enable "Front Page". Click -> Save configuration.

*** *** ***

Module: Google Analytics (Link)
When you decide to analyze how users are accessing your site, this is the tool.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/google_analytics-6.x-2.2.tar.gz
tar -xf google_analytics-6.x-2.2.tar.gz
mv google_analytics-6.x-2.2.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Statistics. Enable "Google Analytics". Click -> Save configuration.

*** *** ***

Module: Javascript Countdown Timer (Link)
Supports user social-network sharing on site pages and articles.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/countdowntimer-6.x-2.21.tar.gz
tar -xf countdowntimer-6.x-2.21.tar.gz
mv countdowntimer-6.x-2.21.tar.gz ./uploads

Note: this module is utilized by copying snippets of code into the node that needs to display a timer. For instructions, look at the instructions contained in the module folder:
cd ~/public_html/sites/all/modules/countdowntimer
more -999 README.txt

# Use your direct session module's copy feature (in PuTTY, right-click on the window title bar, then click "Copy All to Clipboard") to grab the text that was just displayed, then paste it into a text file, eliminate the extra stuff, and save it where you're saving your other site notes (you are making notes, right?) When you want a timer to appear on your site, take a look at those instructions.

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Countdown timer". Click -> Save configuration.

*** *** ***

Module: jQuery UI (Link)
Updates the Drupal core. Being added now in advance of it being a requirement.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/jquery_ui-6.x-1.3.tar.gz
tar -xf jquery_ui-6.x-1.3.tar.gz
mv jquery_ui-6.x-1.3.tar.gz ./uploads
cd jquery_ui
wget jquery-ui.googlecode.com/files/jquery.ui-1.6.zip
unzip jquery.ui-1.6.zip
mv jquery.ui-1.6.zip ../uploads
mv jquery.ui* jquery.ui

Enable:
Navigate -> Administer -> Site building -> Modules -> User interface. Enable "jQuery UI". Click -> Save configuration.

*** *** ***

Module: jQuery Update (Link)
Updates the Drupal core. Some of your modules will use it, particularly the dynamic display block if you install it.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/jquery_update-6.x-1.1.tar.gz
tar -xf jquery_update-6.x-1.1.tar.gz
mv jquery_update-6.x-1.1.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> User interface. Enable "jQuery update". Click -> Save configuration.

*** *** ***

Module: Letters (Link)
Facilitates "Letters to the Editor" on your website.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/letters-6.x-1.5.tar.gz
tar -xf letters-6.x-1.5.tar.gz
mv letters-6.x-1.5.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Letters". Click -> Save configuration.

*** *** ***

Module: MailHandler (Link)
Supports email handling for submission to Drupal.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/mailhandler-6.x-1.11.tar.gz
tar -xf mailhandler-6.x-1.11.tar.gz
mv mailhandler-6.x-1.11.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Mailhandler". Click -> Save configuration.

*** *** ***

Module: MimeDetect (Link)
Supports Mime detection for FileFields.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/mimedetect-6.x-1.3.tar.gz
tar -xf mimedetect-6.x-1.3.tar.gz
mv mimedetect-6.x-1.3.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "MimeDetect". Click -> Save configuration.

*** *** ***

Module: Mollom (Link)
Implements registration and contact restrictions to keep 'bots at bay.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/mollom-6.x-1.13.tar.gz
tar -xf mollom-6.x-1.13.tar.gz
mv mollom-6.x-1.13.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Mollom". Click -> Save configuration.

*** *** ***

Module: Nodewords (Link)
To get searched, the web engines look for tags. This module lets you set the meta tags on each page.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/nodewords-6.x-1.11.tar.gz
tar -xf nodewords-6.x-1.11.tar.gz
mv nodewords-6.x-1.11.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Meta tags. Enable everything: "Nodewords", "Nodewords basic", "Nodewords custom", "Nodewords extra" and "Nodewords verification tags". Click -> Save configuration.

*** *** ***

Module: Profile CSV (Link)
Provides a tool for creating a downloadable copy of the user profile list.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/profile_csv-6.x-1.0.tar.gz
tar -xf profile_csv-6.x-1.0.tar.gz
mv profile_csv-6.x-1.0.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Core - optional. Enable "Profile".
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Profile CSV". Click -> Save configuration.

*** *** ***

Module: Quick Tabs (Link)
You've seen "tabs" at the top of windows, broswer pages, and other places. This module lets you create them on your site.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/quicktabs-6.x-2.0-rc4.tar.gz
tar -xf quicktabs-6.x-2.0-rc4.tar.gz
mv quicktabs-6.x-2.0-rc4.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Quick Tabs". Click -> Save configuration.

*** *** ***

Module: Quotes (Link)
Manages a quote database for display. Useful, until I write a prettier one.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/quotes-6.x-1.40.tar.gz
tar -xf quotes-6.x-1.40.tar.gz
mv quotes-6.x-1.40.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other, enable "Quotes". Click -> Save configuration.

*** *** ***

Module: Read More (Link)
Let's site managers place the "Read More" link in a better place.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/ed_readmore-6.x-5.0-rc7.tar.gz
tar -xf ed_readmore-6.x-5.0-rc7.tar.gz
mv ed_readmore-6.x-5.0-rc7.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other, enable "Read More link". Click -> Save configuration.

*** *** ***

Module: Service Links (Link)
Supports user social-network sharing on site pages and articles. Choose this or ShareThis, above.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/service_links-6.x-1.0.tar.gz
tar -xf service_links-6.x-1.0.tar.gz
mv service_links-6.x-1.0.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Service links". Click -> Save configuration.

*** *** ***

Module: ShareThis (Link)
Supports user social-network sharing on site pages and articles. Choose this or Service Links, below.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/sharethis-6.x-1.3-3.tar.gz
tar -xf sharethis-6.x-1.3-3.tar.gz
mv sharethis-6.x-1.3-3.tar.gz ./uploads

Note: this is not a current release. Version 1.8, the current version at the time of this writing, seems to have some sort of incompatibility in it. The module.loader script installs version 1.3-3. If you want to utilize the current release, use these commands instead:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/sharethis-6.x-1.8.tar.gz
tar -xf sharethis-6.x-1.8.tar.gz
mv sharethis-6.x-1.8.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules. In either group Other, or in group Custom Modules by Himerus, depending on which version you installed, enable "ShareThis". Click -> Save configuration.

*** *** ***

Module: Signup (Link)
Provides a powerful tool for allowing users to "sign up" for various events and items, and even provide reminder emails if the item is an event with a scheduled time.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/signup-6.x-1.0-rc6.tar.gz
tar -xf signup-6.x-1.0-rc6.tar.gz
mv signup-6.x-1.0-rc6.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Signup. Enable "Signup" and "Signup confirm e-mail". Click -> Save configuration.

*** *** ***

Module: SimpleMenu (Link)
Provides a top menu bar to give a little more managed link space for admin tools, etc.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/simplemenu-6.x-1.4.tar.gz
tar -xf simplemenu-6.x-1.4.tar.gz
mv simplemenu-6.x-1.4.tar.gz ./uploads

Note: this is not a current release. Version 1.7, the current version at the time of this writing, seems to have some sort of incompatibility in it. The module.loader script installs version 1.4. If you want to utilize the current release, use these commands instead:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/simplemenu-6.x-1.7.tar.gz
tar -xf simplemenu-6.x-1.7.tar.gz
mv simplemenu-6.x-1.7.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "SimpleMenu". Click -> Save configuration.

*** *** ***

Module: Splash (Link)
Allows a website to have special splash page displayed for various users and situations. Different than front page.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/splash-6.x-2.6.tar.gz
tar -xf splash-6.x-2.6.tar.gz
mv splash-6.x-2.6.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Splash". Click -> Save configuration.

*** *** ***

Module: SWFTools (Link)
Provides a toolkit for flash animations displays. Install if you want to use any flash content.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/swftools-6.x-2.5.tar.gz
tar -xf swftools-6.x-2.5.tar.gz
mv swftools-6.x-2.5.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> SWF Tools. Enable "1 Pixel Out", "FLowPlayer", "FlowPlayer 3", "SWF Tools", "SWFObject" and "SWFObject2". Click -> Save configuration.

*** *** ***

Module: ThickBox (Link)
Provides a container for some content on pages that might otherwise be hard to include on a Drupal page, like iframes.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/thickbox-6.x-1.6.tar.gz
tar -xf thickbox-6.x-1.6.tar.gz
mv thickbox-6.x-1.6.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Thickbox". Click -> Save configuration.

*** *** ***

Module: Token (Link)
Supports database tokens in Action emails. Very useful.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/token-6.x-1.12.tar.gz
tar -xf token-6.x-1.12.tar.gz
mv token-6.x-1.12.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable everything: "Token", "Token action" and "TokenSTARTER". Click -> Save configuration.

*** *** ***

Module: Twitter (Link)
Provides a connector for Twitter accounts to be followed on your website.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/twitter-6.x-2.6.tar.gz
tar -xf twitter-6.x-2.6.tar.gz
mv twitter-6.x-2.6.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Other. Enable "Twitter" and "Twitter actions". Click -> Save configuration.

*** *** ***

Module: Views (Link)
Manages list display options.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/views-6.x-2.10.tar.gz
tar -xf views-6.x-2.10.tar.gz
mv views-6.x-2.10.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Views. Enable everything: "Views", "Views exporter", and "Views UI". Click -> Save configuration.

*** *** ***

Module: Visibility API (Link)
Requires coding to use, but provides visibility support for elements other than blocks. Hey, you might use this later, and it costs nothing to load it.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/visibility_api-6.x-1.0.tar.gz
tar -xf visibility_api-6.x-1.0.tar.gz
mv visibility_api-6.x-1.0.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Other. Enable "Visibility API" and "Visibility API Export". Click -> Save configuration.

*** *** ***

Module: Workflow (Link)
Supports workflow organization for posting, editing and publishing stories.

Commands:
cd ~/public_html/sites/all/modules
wget ftp.drupal.org/files/projects/workflow-6.x-1.4.tar.gz
tar -xf workflow-6.x-1.4.tar.gz
mv workflow-6.x-1.4.tar.gz ./uploads

Enable:
Navigate -> Administer -> Site building -> Modules -> Workflow. Enable everything: "Workflow" and "Workflow access". Click -> Save configuration. This may cause Drupal to complain it needs to rebuild permissions, and it's certainly OK to do that.

*** *** ***

Now -- whew! that the basic installation is done, set some basic permissions to allow the usage of these modules to be configured. Navigate -> Administer -> User management -> Permissions, and turn on all permissions for administrators. While you're at it, you can CAREFULLY activate some permissions for anonymous and authenticated users, like access to content, and use of sharing. We tend to grant authenticated users a bit more access, like the contact pages, because at least we have some sort of bit-trail to them. But under no circumstances allow ordinary anonymous or authenticated users configuration, editing, deletion, or management access to anything.

Congratulations. On to the next section.

AttachmentSize
module.loader23.27 KB

07. Basic Theme Installation: Zen and Others

The basic appearance of a Drupal site -- where the columns are, how many columns there are, what special features there are -- is governed by a "theme", and themes can be either free, or licensed at a price. Drupal.Org lists many such themes, and you are welcome to pick one. For the Oregon Republican Party site, we chose a licensed (one-time charge of $75) theme called "StingRay", available at ThemeShark.Com. For Clackamas County, we were advised to start with the public Drupal theme "Zen", on advice from Amye Scavarda, a Portland-area Drupal guru who's come alongside to help us novices look good. We offer it to you below.

After examining Zen, however, it might pose too high a hurdle for most volunteer web masters who are faced with limited time and experience, and yet still want to create an attractive page. So, since your humble editor certainly falls into the limited time and experience category, and so can respect the constraints on others, we are starting the Clackamas County site on Pixture-Reloaded, instead. We offer that, and several others, below. The criterion for selection was manageable modification without too much programming.

As with modules, we have provided a script to automatically load these themes, so you can load them all at once. We recommend strongly that you use the script, and then play with the themes and decide which to use. The attachment may be found at the end of this page.

Now, a Google search for "Drupal themes" will yield a huge number of themes. Look for ones that have "helps" with them, like "reference cards" and such. You will need these, because customizing the theme a bit for your use still takes a little work. Other than that, observe how many different options there are to make your site look the way you want it to, mostly by allowing for different column profiles and layout. Don't worry: it can all be fixed. You can install multiple themes, and then play with them, before settling on one to use permanently.

An important note: don't forget that any theme you select must have a VERSION COMPATIBILE with the Drupal version you installed. As with modules, we will show the download commands for Drupal 6.

Themes are loaded into the folder "~/public_html/sites/all/themes". You must create that folder.

Commands:
cd ~/public_html/sites/all
mkdir themes
cd modules
mkdir uploads

You will probably have to create the files folder, as well:

Commands:
cd ~/public_html/sites
ls -ls

Here is gets a little nerd/tech specific. We have to check permissions. You should see a list of letters and dashes to the far left of the folder entry "default/". It is expected that this list of permissions shows up as "dr-xr-xr-x". Without going into too much detail, this means that "default" is in fact a folder ("directory"), that everyone can read ("r") it, and that everyone can execute ("x") programs in it. Well, we need to be able to write to it, as well, so we will temporarily change the permissions for the folder, create another folder inside it, and then turn off that write permission again. The direct session command for this is "chmod", which essentially allows changing permissions on files and folders in a Linux environment. To learn more about it, type the command "man chmod" in your direct session window, or search the web for the similar documentation.

Commands:
chmod u+w default
cd default
mkdir files
ls -ls

OK, look at the permissions for the folder "files": they should be "drwxr-xr-x". If not, call us for help. Something didn't work. If they are, great: let's turn off that pesky write bit again.

Commands:
cd ..
chmod u-w default
ls -ls

Nerded out yet? Well, now, check the permissions on "default". They should again be "dr-xr-xr-x". Again, if they aren't, call for help.

So, let's install themes the same way we installed modules.

*** *** ***

Theme: Zen (Link)

Commands:
cd ~/public_html/sites/all/themes
wget ftp.drupal.org/files/projects/zen-6.x-1.0.tar.gz
tar -xf zen-6.x-1.0.tar.gz
mv zen-6.x-1.0.tar.gz ./uploads

Navigate -> Administer -> Site building -> Themes. Enable Zen, Zen Classic, and Zen Themer's Starter Kit.

There are tutorial tools for Zen. Bending Zen is one of them.

*** *** ***

Theme: Pixture Reloaded (Link)

Commands:
cd ~/public_html/sites/all/themes
wget ftp.drupal.org/files/projects/pixture_reloaded-6.x-3.2.tar.gz
tar -xf pixture_reloaded-6.x-3.2.tar.gz
mv pixture_reloaded-6.x-3.2.tar.gz ./uploads

Navigate -> Administer -> Site building -> Themes. Enable Pixture Reloaded.

*** *** ***

Theme: Summertime (Link)

Commands:
cd ~/public_html/sites/all/themes
wget ftp.drupal.org/files/projects/summertime-6.x-1.2.tar.gz
tar -xf summertime-6.x-1.2.tar.gz
mv summertime-6.x-1.2.tar.gz ./uploads

Navigate -> Administer -> Site building -> Themes. Enable Summertime.

AttachmentSize
theme.loader2.54 KB