در واقع ساختن یک قالب جدید برای دروپال بسیار راحت میباشد. برای پیاده سازی یک قالب جدید ، اطلاعاتی در رابطه با دروپال، PHP و javascript و CSS نیاز دارید. قالب های دروپال تنها تعدادی فایل PHP ، CSS و یک فایل .info که اطلاعات قالب در آن ذخیره میگردد.
شما میتوانید از PHPtemplate theme engine های مختلفی برای ایجاد قالب استفاده نمایید که در اینجا از پیش فرض استفاده میگردد. دقت کنید که این مقاله جهت ایجاد قالب جدید در دروپال نسخه 6 میباشد. (آدرس دریافت PHP template Engine ها : http://drupal.org/project/Theme%20engines)
برای شروع ایجاد قالب شخصی دروپال، یک دایرکتوری جدید در شاخه /themes دروپال ایجاد نمایید. سپس دایرکتوری bluemarine را که در همان شاخه است، کپی نموده و نام آن را به نام دلخواه خود تغییر دهید. (این قالب بعنوان نمونه استفاده میگردد)

حال شما باید فایل های زیر را که توضیحات آنها نیز وجود دارد در دایرکتوری قالب خود مشاهده نمایید:
* bluemarine.info : اطلاعاتی درباطه قالب در این فایل وجود دارد
* page.tpl.php : قالب اصلی که محتوا و چیدمان صفحات را تعیین می نماید
* style.css : فایلی که استایل های قالب را در خود نگه میدارد.
* node.tpl.php : فایلی که قالب node ها را تعیین می نماید.
* block.tpl.php : فایلی که قالب بلوک ها را تعیین می نماید.
* comment.tpl.php : فایلی که قالب دیدگاه ها (comments) را تعیین می نماید.
* logo.png : لوگوی اصلی قالب
* screenshot.png : تصویر پیش نمایش قالب
* box.tpl.php : یک حاشیه در اطراف محتوا قرار میدهد، بطور مثال در نتیجه جستجو ها
* style-rtl.css : فایلی که استایل های قالب در نوع راست به چپ (rtl) را در خود نگه میدارد.
زمانی که یک کپی از قالب bluemarine ایجاد نمودید و آن را در دایرکتوری مورد نظر خود قراردادید (/sites/all/themes/my_theme) حال باید نام فایل bluemarine.info را به نام قالب خود my_theme.info تعویض کرده و تغییرات زیر را در آن انجام دهید:
; $Id: bluemarine.info,v 1.4 2007/06/08 05:50:57 dries Exp $
name = my_theme
description = my new theme of drupal
version = 1
core = 6.x
engine = phptemplate
حال شما میتوانید قالب خود را در دروپال توسط بخش مدیریت فعال نموده و اقدام به ویرایش فایل های قالب مربوطه نمایید.
فایل های page.tpl.php و style.css فایلهای اصلی برای قالب جدید شما میباشند. فایل page.tpl.php شامل کدهای HTML و PHP بوده که شما میتوانید آنها را ویرایش نمایید و به حالت مورد نظر خود تغییر دهید.
بطور مثال قطعه زیر اطلاعات سایت را بارگذاری میکند:
<head>
<title><?php print $head_title ?></title>
<?php print $head ?>
<?php print $styles ?>
<?php print $scripts ?>
</head>
در فایل page.tpl.php شما میتوانید جداول استفاده شده توسط bluemarine را حذف نموده و قالب مورد نظر خود را در این فایل بارگذاری نمایید.
<table border="0" cellpadding="0" cellspacing="0" id="header">
<tr>
<td id="logo">
<?php if ($logo) { ?><a href="<?php print $base_path ?>" title="<?php print t('Home') ?>">
<img src="<?php print $logo ?>" alt="<?php print t('Home') ?>" /></a><?php } ?>
<?php if ($site_name) { ?>
<h1 class='site-name'><a href="<?php print $base_path ?>"
title="<?php print t('Home') ?>"><?php print $site_name ?></a></h1><?php } ?>
<?php if ($site_slogan) { ?><div class='site-slogan'><?php print $site_slogan ?></div><?php } ?>
</td>
<td id="menu">
<?php if (isset($secondary_links)) { ?>
<div id="secondary"><?php print theme('links', $secondary_links) ?></div><?php } ?>
<?php if (isset($primary_links)) { ?>
<div id="primary"><?php print theme('links', $primary_links) ?></div><?php } ?>
<?php print $search_box ?>
</td>
</tr>
<tr>
<td colspan="2"><div><?php print $header ?></div></td>
</tr>
</table>
شما میتوانید کلاس ها و آیدی هایی که توسط دروپال ایجاد میگردند را توسط Firefox web Developer toolbar شناسایی کرده و آنها را در فایل style.css قرار دهید و دستورات CSS شخصی خود را به آنها اضافه نمایید.
فایل های دیگر از جمله block.tpl.php و box.tpl.php و comment.tpl.phpو node.tpl.php خصوصیات بخش های مختلف قالب را کنترل می نمایند.
شما قادر خواهید بود که تمامی کدهای HTML قالب ها را ویرایش و حتی از کدهای PHP در آنها استفاده نمایید.
در زیر توضیحاتی پیرامون مقادیر پیش فرضی (Variables) که میتوانید از آنها در قالب ها استفاده نمایید، قرار گرفته است:
$breadcrumb
نمایش کد HTML برای Breadcrumb در بالای صفحه
$closure
نمایش باید در پایین صفحه قرار گیرد و مورد استفاده جاوا اسکریپت های داینامیک میباشد
$content
نمایش نمایش محتوایی که توسط دروپال ایجاد شده است
$directory
نمایش دایرکتوری قالب فعال
$footer_message
نمایش پیام پای صفحه که در بخش مدیریت تنظیم شده است
$head
نمایش کد HTML که توسط تابع drupal_get_html_head() ایجاد شده است
$head_title
متنی که باید در تیتر صفحه نمایش داده شود
$help
نمایش آموزش های پویا برای صفحات مدیریت
$is_front
حالت true را برمیگرداند در صورتی که صفحه اصلی در حال نمایش باشد
$language
نمایش زبان فعال در سایت
$layout
این متغیر به شما امکان میدهد که محیط های مختلف در قالب خود ایجاد نمایید.
$logo
نمایش آدرس آرم که در تنظیمات قالب ثبت شده است
$messages
نمایش کد HTML برای وضعیت و خطاها
$mission
نمایش متن ماموریت و فعالیت سایت
$node
اگر در فایل page.tpl.php باشید، محتوای کامل node را نمایش خواهد داد.
$onload_attribute
خالی نمودن تگ هایی که در head بارگذاری شدند برای عدم اجرای اسکریپت های وابسته
$primary_links (array)
آرایه ای است که لینکهایی اصلی که توسط phptemplate ایجاد شده است را با توجه به تنظیمات بلوک در خود نگه میدارد
$scripts
نمایش کد HTML برای بارگذاری فایل های جاوا اسکریپت و فعال سازی تنظیمات JS
$search_box
نمایش بلوک جستجو در صورتی که در تنظیمات فعال شده باشد
$search_button_text
نمایش متن کلید جستجو
$search_description
توضیحات جهت جستجو
$search_url
آدرسی که فرم جستجو باید به آن ثبت گردد
$secondary_links (array)
آرایه ای است که لینکهایی ثانویه که توسط phptemplate ایجاد شده است را با توجه به تنظیمات بلوک در خود نگه میدارد
$sidebar_left
نمایش کد HTML برای ستون سمت چپ
$sidebar_right
نمایش کد HTML برای ستون سمت راست
$site
نمایش نام سایت
$site_name
نمایش نام سایت برای استفاده در هدر ، در صورتی که نمایش غیر فعال شده باشد خالی است.
$site_slogan
شعال سایت و در صورتی که غیر فعال شده باشد خالی است
$styles
نمایش تگ های استایل سایت که برای نمایش بحالت stylessheet ضروری است
$tabs
نمایش کد HTML برای نشان دادن تب های بالای صفحه
$title
در بیشتر مواقع این متغیر حاوی تیتر node ها میباشد