Colour changing Storage Units with CMSms

Post links to sites running CMS in all its glory.
Post Reply
Simon66
Power Poster
Power Poster
Posts: 250
Joined: Wed Aug 29, 2007 4:36 am
Location: Sydney Australia

Colour changing Storage Units with CMSms

Post by Simon66 »

The site
http://www.appinstorage.com.au

I recently created a quick and dirty site for a local storage unit business. We owed them some money for a unit so I agreed to update their site instead.
I shamelessly ripped the html out of an old drupal site of mine which explains the horrific amount of nested divs.
It's not much to look at, but believe me it's 100 times better than what was there before.

The bit that I was expecting to be hard was the unit facility map - http://www.appinstorage.com.au/availability.htm

The client wanted to be able to visually see which units were available and unavailable.

I decided to try a vector SVG file for this and control the colour changing from within CMSms.

I used Inkscape (http://inkscape.org/ It's FREE) to draw the map as it natively saves files in SVG format. (They still need to be exported as simple SVG).

Now IE8 doesn't support SVG at all - it just displays the raw XML code.
Again I thought this was going to be hard but after a couple of failed solutions I found a javascript SVG Web toolkit - http://code.google.com/p/svgweb/

This was as simple as a javascript call in the head and wrapping the SVG code in a script tag:

Code: Select all

<__script__ src="svg.js"></__script>

<__script__ type="image/svg+xml">
SVG Code in Here.
</__script>
And Hey-Presto SVG works in IE8 (it actually gets converted to Flash on the fly).


How I made the colour changing Storage Units.

I installed CustomGS (Custom Global Settings) and created 40 numbered checkboxes - 1 for each unit.

The SVG file contained the following code for each unit:

Code: Select all

    <rect
       width="40"
       height="80"
       x="140"
       y="900"
       transform="matrix(0.79,-0.61,0.61,0.79,0,0)"
       id="use3731"
       style="fill:#aadff8;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.99;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />

I swapped out the fill colour with the CustomGS variable, and the last line ended up looking like this:

Code: Select all

       style="fill:{if $CustomGS.Storage_Unit_16 == '1'}#FF0000{else}#aadff8{/if};fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.99;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />


Notepad++ and Firebug are the two best tools for this kind of thing.
Firebug found the ID of each unit and Notepad++ has an excellent find and replace.

A neat little app I was very happy with and the whole site took less than a day.

Simon66
Attachments
Availability checkboxes in CustomGS.
Availability checkboxes in CustomGS.
vector SVG map embedded in site template.
vector SVG map embedded in site template.
A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.

This must be Thursday. I never could get the hang of Thursdays.

Douglas Adams - The only sane person in the asylum.
Post Reply

Return to “CMS Show Off”