------------------------The Signwriter Drupal Module-------------------------
The Signwriter module allows you to use custom fonts in headings. It does this
by replacing html headings with an image generated from a TrueType font file
which you provide. It also has a number of additional features:
- Multiple profiles allow you to have different settings for different
headings.
- Profiles can provide input filters to replace text matching a regular
expression.
- Images generated can be transparent or opaque.
- Text can be positioned within a background image.
- Text can be left, right, or center aligned.
- Font size can be automatically reduced to fit the text within a specified
maximum width.
- Images are cached to improve performance under high load.
- Generated images can be gif, png, jpeg, or bmp.
- Themes can use profiles configured by a user, or create their own.
From 5.x-1.2:
- Drop shadows can be added to the text.
- Multiple lines of text can be made into an image.
Signwriter is made for drupal 4.7, but it can be used by themes in earlier
versions of drupal without needing to enable the module. Signwriter requires
the GD library to work properly (read on for more info).
---------------------------------Installation---------------------------------
Installation is trivial, simply untar the module:
cd /path/to/drupal/modules
tar xzf /path/to/signwriter-4.7.0.tar.gz
Next, enable the module under drupal under admin>>modules.
-----------------------------The GD Image Library-----------------------------
Signwriter uses the GD Image library (http://php.net/image). GD comes
installed by default in php >= 4.3, but can be enabled at compile time in
earlier versions. If your php installation is on windows, try uncommenting the
line which reads 'extension=php_gd2.dll' in your php.ini.
------------------------------------Usage-------------------------------------
There are two main scenarios under which you may wish to use signwriter:
1. As a filter to replace headings or custom tags in node text, and
2. To generate headings in a theme.
In the second scenario, you can use signwriter profiles administered under
drupal, or you can create your own in php.
------------------------Creating Profiles Under Drupal------------------------
A signwriter profile is a collection of settings which can be used to create an
image. To manage your profiles, go to admin>>settings>>signwriter. From here
you can add, delete, or edit profiles. If you add or edit a profile, you will
be taken to a profile settings page. On each profile settings page there are a
number of options which may be set, each of which is explained on that page.
--------------------------Scenario 1: Using Filters---------------------------
If a signwriter profile has a pattern defined then it will be available as an
input filter under admin>>input formats. After enabling the filter, any text
matched by the pattern will be replaced with a signwriter image.
-----Example: Replacing h2 headings in nodes-----
1. Create a profile under admin>>settings>>signwriter called 'H2 Filter', making
sure to enter /
.*?<\/h2>/ under 'Pattern to Match When Used as
a Filter'. There are some example patterns on the page.
2. Go to admin>>input formats and edit your input format of choice. There
should be an option to enable 'H2 Filter'.
3. After enabling the filter, create a new page using your input format of
choice. Make sure you put in at least one h2 heading:
signwriter filter test
.
4. Your headings should be replaced by signwriter images in the submitted page.
-------------------------Scenario 2: Theme Development------------------------
To use signwriter in a theme you have two options to configure it. You can
enable the module in drupal and configure it on the admin>>settings>>signwriter
page by adding one or more profiles, or you can create profiles yourself using
php.
-----Creating and Loading Profiles in php-----
If you are administering your profiles under drupal, then in your theme code
you will want to load one like this:
Note that you can pass a profile name or id to signwriter_load_profile().
As a php object, a signwriter profile has the following fields, most of which
correspond to a setting on the edit profile form:
text //The text to display. Can contain html entities.
//For example, & will be displayed as &
$profile->fontfile
$profile->fontsize
$profile->foreground
$profile->background
$profile->width
$profile->height
$profile->maxwidth
$profile->imagetype
$profile->cachedir // defaults to /signwriter-cache
$profile->textalign
$profile->transparent
$profile->bgimage
$profile->xoffset
$profile->yoffset
?>
Any of these fields can be overridden in the theme after loading the profile.
If you want to create a profile from scratch then you will at least need to
define $profile->fontfile all other settings will revert to
defaults if not set. An advantage to creating the profile from scratch is that
the module doesn't need to be enabled, and meddlesome users can't ruin your
nice headings.
After you have loaded or created a profile you can use signwriter_title_convert
or signwriter_text_convert to replace, for example, your $title in page.tpl.php
(if you're using phptemplate).
-----Example 1: Replacing the page title in your theme-----
1. Create a signwriter profile in drupal called 'Theme Heading', and assign
the other settings to your liking.
2. In your phptemplate theme add the following code to your page.tpl.php where
you want to print the page title:
fontsize = 43; // override the font size
print signwriter_title_convert($title, $profile);
}
?>
3. Refresh the page in drupal and your title should appear in your custom font.
-----Example 2: Using signwriter without configuring it in drupal-----
1. Add your custom font to your theme directory. In this example we'll use Arial.ttf.
2. In your phptemplate theme add the following code to your page.tpl.php:
fontfile = 'Arial';
$profile->fontsize = 15;
$profile->foreground = 'ff0000'; // red
$profile->background = 'ffffff'; // white. If your text is jagged then change this to your page background colour
$profile->maxwidth = 600;
$profile->transparent = true;
print signwriter_title_convert($title, $profile);
}
?>
3. Refresh the page in drupal and your title should appear in red Arial size 15 text.
-----Example 3: Using signwriter to theme menus (with active and hover states)-----
1. Create a signwriter profile for the text you want when you hover over the links.
2. Create a signwriter profile for the text you want for your active menu items.
3. Create a signwriter profile for your normal menu text.
-- In this profile select the profile you created in step one as the hover profile
and select the profile you created in step 2 for the active profile.
4. Add this function to your template.php file:
Note: This function uses signwriter for primary links and navigation menus. If you want it for other menus
just add them in the "$link['menu_name'] ==" part.
Change "signwriterProfile" to the name of the profile you created in step 3.
If you don't need the hover and active states just start at step 3.
-------------------------------About Signwriter-------------------------------
Signwriter was created by Agileware (http://www.agileware.net).
And ported to Drupal6 by Catorg (http://www.catorg.co.uk) and Agileware.