Installing and Customizing Drupal

Patrick Masters Drupal, Web Development, Website Design 0 Comments

drupal-customization

Sometimes WordPress just won’t cut it for you. You need more power, more flexibility, and less plugins. Well, we all love plugins but sometimes there are just too many!

With Drupal you get another open source CMS, but one made for developers. Creating scalable, SEO-friendly websites and custom projects will come second nature after you familiarize yourself with Drupal. Read below on tips and tricks on getting around and creating your next project.

First things first

For this project I’m taking a website I built for my school just using static HTML, and have decided to redesign it and learn Drupal at the same time.   I’ll be working on a local installation but working on a hosted domain will work just as well.

Installing Drupal Core

Installing Drupal is pretty straightforward.  The easiest way I’ve chosen is by downloading the core files, and FTP’ing them to the server and extract, or copy files over to my root directory for MAMP.  Directions here in the Drupal documentation.

Creating the Database + User

Since I’m using MAMP, I went ahead and started the servers, launched the WebStart page and navigated to Tools>phpMyAdmin.  Click the databases tab and create a new database name that will help you identify it. Next set the collection to  utf8_general_ci and hit Create.

Select your new database, then click Privileges and create a new user filling in a username, host set to local, set a password, and check all to grant all privileges for this user.

Finally go ahead and launch your site either by going to the URL, or localhost (in a local install case) and you’ll be prompted with the Drupal setup wizard.  Fill in some basic info about your site as well as your database info you setup earlier to complete the install.  Once done you’ll brought to your Drupal dashboard already logged in to your new user account.

drupal-customization-install

The first page of the Drupal install

Appearance

All content on a Drupal website is stored and treated as “nodes“. A node is any piece of individual content, such as a page, poll, article, forum topic, or a blog entry. Comments are not stored as nodes but are always connected to one. Treating all content as nodes allows the flexibility to create new types of content. It also allows you to painlessly apply new features or changes to all content of one type.

To create a new page, in the admin tool bar click Manage>Content then click the blue +Add Content button and select “Basic Page” from the options.  Set a name for your page and then checkout what options you have available:

  • Menu settings – add it to the current menu
  • URL path settings – set the permalink for this page, by default it will be set to yoururl.com/node/#
  • Authoring info – set to another author/creating time
  • Promotion options – show this content on the front page, or sticky; show this content at the top of any lists in which it appears.

This new page will now have a menu link in your top navigation.  You can click on this link to bring up the page to see it, as well as edit or delete it.

If you want set one of these new pages as your home page, go to Manage>Configuration>Site Information and under the section “Front Page” you can specify the same URL slug you defined when you created this page in the URL path settings section.

Articles are another content type that Drupal defaults with. Just like a Basic Page, Articles will have a title and a body field, but do contain a few differences:

  • articles include tags – which you can use to organize information
  • articles include an image
  • they’re posted to the front page in ascending order
  • visitors can comment on articles by default
  • best for announcements or news stories

To create a new article, in the admin tool bar click Manage>Content then click the blue +Add Content button and select “Article” from the options.  Set a name for your article, edit the body, and upload a picture if you want then checkout what options you have available:

  • Menu settings – add it to the current menu
  • Revision information – do you want to save this as a revision?
  • URL path settings – set the permalink for this page, by default it will be set to yoururl.com/node/#
  • Comment settings – are users allowed to comment?
  • Authoring info – set to another author/creating time
  • Publishing information – show this content on the front page, or sticky; show this content at the top of any lists in which it appears.

This new article will now display on a page you specified to display your posts (like your home page by default).

Blocks are chunks of code that live on certain areas (a region) of your page (depending on your theme).  You can think of blocks as the text widget is to a WordPress widget area.  To create a new block, in the admin tool bar click Manage>Structure>Blocks.  To see available regions click “Demonstrate block regions (Your Theme).  After deciding where you want to place it, return back to the Blocks page and click +Add Block. Set a block title, description, and body and then checkout what options you have available:

  • Region settings – which theme or region to display on
  • Pages – which pages to display on
  • Content types – which content types to display on
  • Roles – which roles to display to
  • Users –  – which users to display to

Save the block and refresh your page to see your new block in the region you’ve specified.

If you’ve hidden the block from logged in users (such as a welcome message to new users on a website) – then you won’t be able to see it if you’re logged in so log out or open a private window in your browser.

Design

Luckily for us, in Drupal, creating custom content types is a feature that comes straight out of the box; unlike WordPress which involves some plugins and PHP fiddling.  Drupal comes with 2 default content types of “Basic Pages” and “Articles,” but sometimes you’ll want a unique way to display things such as a team, or faculty, or your products.

To create a new content type, in the admin tool bar click Manage>Structure>Content Types>+Add Content Type.  Name your new content type and create a description that explains this content type.  Now we can decide on the proper settings for what we want to display to the client, who will be using Drupal to add this new content type after you’ve handed the project over.

  • Submission form settings – the title field label is what will display when the user is adding new content.  Would it make more sense to say name, title, team, product?  Lastly give a short explanation of what to do, this will be seen when adding the new content type.
  • Publishing options – just like we described before in the other sections, choose the options that make sense for you
  • Display settings – does it make sense to show the author info?
  • Menu settings – you probably don’t want this to show on your new menu, maybe you do, select which menus here

Once you click save, you’ll be brought to the manage fields screen, where we can add custom fields that suit our new content type.  You can also edit fields that were already created (maybe instead of “body” you’ll call the main part “description” instead).  While editing the fields you can decided wether they should be required or not.  When you add a new field you first you’ll have to choose what type of field will you use, maybe a drop down, a text field, email, etc.  Depending on what field type you choose, you’ll have options for default values, formatting, etc.

If you click the “Manage form display” tab, you’ll have the ability to set the order in which the fields display on your new content type.  Also you can choose to hide some of the extra fields, for example I don’t want them changing the URL alias for this custom type, so I’ll have that setting hidden.

drupal-customization-content-type

We are customizing our fields here for our new content type

 

drupal-customization-content-type2

Here’s our new content type!

So who wrote this?

Patrick Masters

Facebook Twitter Google+

A Computer Engineering graduate of the University of South Florida - he now applies his skills towards website design, custom web app development, as well as constantly learning new techniques and technologies to satisfy his creative mind!

Leave a Reply