I have now implemented the Book module in order to capture my writing on Drupal Basics. My plan is to introduce Drupal as an idea. Then, as I learn to use it, I will add pages to my book passing along my experience. I have found that as I have learned to use Drupal the documentation is largely aimed at user at a much high knowledge level then me or perhaps it is just very difficult to find. My goal is to give a basic working knowledge of Drupal such that you can set up a site and use the elements of this CMS that I have experience with. We will see how it works.
As of now I have a simple description of what Drupal is and what it can do. I have also add a section on how to install drupal and cover a few of the easier to resolve but more common problems that you may run into.
I appreciate your feedback so feel free to leave comments.
I have built my site using Drupal an open source content management system (CMS). This basically means that the data shown on my website is stored in a database and displayed on demand to you, the happy viewer. A CMS is kind of the alternative to using a program like frontpage to make a webpage using HTML. Perhaps it is best described as a blog on steroids. A blog is just a very simple CMS. In blog you type in a story add pictures and the system puts the post on the front page. In a big kid CMS like Drupal or Joomla you write stories and add pictures and then you decide where to put the content and how it will look and feel.
In addition to stories and pictures Drupal does all sorts of other stuff. You can think of it as a computer. You buy a computer and it comes with notepad and a few other programs. It can only do really basic things. But, if you add an internet connections, a flash drive, some other programs, a camera and a printer, your computer can do all sorts of things. The same is true in Drupal, in addition to allowing you to write stories Drupal also allows you to create static pages, polls and all sort of other content. You can add a real blog feature to allow other people to have blogs on your site or forums to let people share information and have running conversations. You can also add things like picture galleries to share photos. But really this is just the beginning. You can add more underlying features to make the webpage look and behave the way you want it to. Such is the power of Modules.
The last thing for this summary is just a brief hit on appearance. Drupal is also designed to be fairly easy to make look good. It uses themes which are basically general appearance modifiers to make your website look how you want it to look. As you can see from my page I am no expert. I will be learning themes and then writing another article about how to make your webpage look really cool. I suppose this all assumes that I can accomplish my goal of having a not ugly website.
For more information visit the drupal.org webpage, lullabot.com, a drupal educational site, or look at the recent lessons at learn.awakenedvoice.com.
One last comment in parting. As I am brand new to Drupal if any big kid Drupal people read my lowly site correct my errors. This is really just my best understanding of how Drupal works. Hopefully I will be able to impart some useful information to beginners in such a way that more people will use Drupal for basic websites. Thus advancing the Drupal goals of world domination.
I need to take a quick step back in my process and make a brief note about Drupal Terminology. Almost every other Drupal instruction set I have read include a significant amount of time devoted to terminology. From a general perspective I don't like doing this because I would rather use terms people understand. But, the world of Drupal has it own language regardless of what would be easy for beginners. In the grand scheme I think it is good. The language and terms used by Drupal are very exact and as a result, once understood, it is very helpful.
Here goes. I may add to this as I run into terms that are critical to a new section of lessons. All descriptions are given as they apply to Drupal. I have tried to organize them as they need to be understood from most basic general to more in depth and Drupal specific.
Drupal: A web based Content Management System. Translitteration of the word Drop in Dutch (Druppel). Originally a misspelling of the Dutch word Dorp, which means community.
Content Management System (CMS): A system where data can be stored in a standardize format on a server. The data can be viewed, created or edited through a styled or themed user interface. In the case of Drupal it is also expandable to allow for numerous types of data or methods of alteration.
Core: Refers to the basic Drupal package downloaded from drupal.org. Core includes the basic application code as well as included expansion modules and themes. Everything included in core is highly tested and tends to be very stable.
Module: An extension to Drupal used to add functionality not included in the basic CMS. Examples of core modules include blogs, forums, polls. Users can add functionality to Drupal by creating new modules. The number of user contributed modules is enormous. I will discuss individual modules later in the book.
Theme: The appearance that the user of Drupal sees when accessing or editing content. Several basic themes are included in Drupal core. However, to give a website a unique look a feel a new theme (or sub-theme) will be required. The Zen Theme is designed to be easily changeable and upgradeable.
Node: The broad Drupal term to describe a piece of content. This content could be text, images, audio files or even a page of other nodes. Nodes can be created, edited and reorganized and manipulated by users or modules. Comments are an exception to this rule, they are not nodes.
Taxonomy: Drupal organization. Taxonomy allows tagging and structure to be added to Nodes so they can be easily sorted and organized. Taxonomy is broken into two parts or levels first vocabulary then terms. For a simple example, on my site I have a vocabulary "post_type" and terms like "Woodworking", "Cooking", "Family" and "Drupal". I can then organize my content using these terms so when you click on the woodworking page you only get woodworking.
Path: what appears in the URL location when you are looking at content. Using the Clean URL features changes these from something rather convoluted like "www.yourdomain.com/?q=node/4105" to something pretty like "www.yourdomain.com/how_to_do_this".
For now I think this will do. It is not comprehesive I just want to make sure I don't use a term that is completely foreign.
So there are a bunch of really good examples of how to install drupal on the web. Do a google search for "drupal install" and you will get a bunch of screenshot laden instructions. For instructions I will do it in text and only for a specific example: that of installing English Drupal 6.x to a hosted domain on the web from a Windows based PC. I am going to assume you have a basic knowledge of getting around a PC and understand general PC terminology. There are a few things required to complete the installation:
Once you have all of these things prepared getting your Drupal site up and installed only takes a few minutes. You will start by extracting the drupal files to your computer. Then, open Filezilla and login to your domain (once you have logged in once you can login quickly by clicking the small arrow next to the Quickconnect button and select your login). A view of the file structure of your PC is on the left and your web server is on the right. Navigate to you drupal folder and and select all the files and folders from the directory and drag them to your webserver location associated with your domain (you do not want to copy the drupal folder to your server or it will install drupal at www.yourdomain.com/drupal/ rather than www.yourdomain.com). Now you are ready to install.
(A note to 1and1 users and other who find problems with Memory or clean URLs not working. There are a couple of kind of geeky things you need to do in order to enable some critical features. You will need to create a file call php.ini. Open notepad with a blank file. Add the following two lines of text
register_globals = off
memory_limit = 32 M
Save this file as php.ini in your local drupal folder using the Save As... command. This will tell the PHP server to give allocate you 32MB of memory and disable register globals something you need for clean URLs.
You will also need to modify you .htaccess file in order to enable clean URLs. Navigate to your Drupal folder and open the .htaccess file using wordpad. Move down about 2/3 through the file and find # Various rewrite rules. Insert the following the lines of text in between the "#Various rewrite rules." and "</IfModule>"
RewriteEngine on
RewriteBase /
Save the file and close Wordpad. These changes will enable the server to run the clean URL code. The last thing you need to do is upload these two files using Filezilla. Both files should be placed in your main domain directory. Filezilla will prompt you to overwrite the existing .htaccess file click Yes/OK).
Time to install...Open your web browser and navigate to your domain. You should be met with a pretty drupal install.
Get ready in my next post we will choose a set of features and determine how to set them up. We will talk about a few contributed modules that can quickly enable some really neat add-ons.
I will soon add some new information about GoDaddy.
Modules add functionality to Drupal. When speaking strictly Drupal is strictly the system the manages content and builds a visible webpage. All of the features of Drupal are modules. However, if you have installed Drupal and looked around the sitebuilding part of the administration menu you have surely come across the modules area. The basic install of Drupal includes a whole pile of modules but there are many many more available through, what are called, user contrib modules. The Drupal download includes the Core, which is Drupal, and a handful of other common modules including Blogs, Books, Forums, Polls, Search and a bunch of other things. I am not going to attempt to explain what all of the included modules do or how to use them but rather focus on a few really great contrib modules. (Now as a Pre-emptive strike, I am not covering Views or CCK. I understand these are enormously powerful but I have not needed them on my site and as a result have not been motivated to learn the details of how they work. If someone can think of a good way for me to utilize them I will be happy to take recommendations.)
To install a new module to Drupal you will need FTP access to your site. It is easiest to find modules by searching for them by name on Google. You download the file, it will be a tar gz compressed file. Extract it (with a tool like 7zip). Then copy it to the sites/all/modules folder on your site. Once you have copied the files they will appear on the Administer -> Site Building -> Modules list. You can enable them by checking the box next to the associated module and saving the changes. Most modules have a setup element that will be added to your Administer -> Site Configuration menu.
I am going to start my modules list with a few modules to make Drupal easier to administer and then a few that add cool functionality.
Administration Menu - This is a cool basically plug and play module that adds a menu above the top content on your site that shows all of the adminstration functionality in pull down type menues. You control the visibility so that only administrator roles are able to see it. This is so cool and easy to use it is a must for anyone solo running a site. It is much easier to navigate then hunting through pages of menu screens everything is just available.
Devel - This is a slick little package of features that help with managing how your site looks. It adds little block editing links as well as a slew of other developer features. Devel also allows the owner of a site to populate it with a bunch of dummy users and generate a ton of artificial content to see how the site will look and feel once it is up and running. I do not use this near as much as I should but it works as a great companion to Firebug, the Mozilla web developers best friend. (Firebug is not part of Drupal it is an add on to the Mozilla Firefox browser. Everyone who does anything with CSS should have this feature in Mozilla.)
Poormanscron - For those users who do not have access to SSH from there web host Poormanscron is a great alternative to manually running cron every couple hours or days. Cron is a maintence tool used by CMS systems to run a number of tests on the system. Many of the test's results can be found under Administer -> Reports -> Status Report. Generally there is a SSH command that can be used to setup automated Cron operations. But, for those of us without SSH access Poormanscron does the job for us. You simply install the module and setup the minimum frequency for operation. Really huge sites (which should have SSH access) may take a performance hit from Poormanscron because it causes Cron to be triggered at the completion of page loads. This should not be a problem for smaller sites but should be considered for sites with lots of simultaneous users.
IMCE - IMCE is is file management tool that uses a scripted interface to let you find select and insert file content into your website. It has a great file browser and upload tool (you need to have the Core Upload module installed and enabled). IMCE integrates very tightly into FCKEditor to allow easy access to files while you are creating content on your site. This in my mind is a must have mate to FCKEditor.
FCKEditor - Many users of Drupal really like to use HTML to style their postings but there are a whole bunch of people who have no clue how to use HTML for anything more than Bold. FCKEditor is about as close as the current Drupal can come to having a WYSIWYG text editor. FCK is pretty easy to use out of the box and will add a slick little toolbar to the top of your text editing fields that has buttons to change fonts, bold, italics and add tables without having to add a bunch of HTML or CSS inline. In addition it also has a slick little linking tool as well as a great tool for adding images to your posts. In addition to functional changes FCK also changes your text editor field so that it shows what the finished stylized text will look like published. As noted above this tool integrates very well with the IMCE module to allow easy uploads and slick little file browser accessible through FCKeditor. There are several other WYSIWYG but my experience points me to FCK.
I am going to wrap this section of my article up and pick it up soon to explain how I did my photo gallery. I will say that before I had a Drupal site I was using Gallery2 to house a rather large image gallery. I have since integrated it into my drupal site using the gallery module as well as lightbox2. However, this was a rather tedious and complex task and I will devote a whole page to explaining what I did and what I learned.