What started all this?
My interest was piqued after reading
a post/thread on Slashcode.com
regarding Slash and a nice-looking Mozilla sidebar tab. Knowing full well how
difficult it is to promote a Slash site (or any site, for that matter), I
saw this as a way to make a site more accessible via a nifty tab.
After modeling a CGI script based on the screenshot Slashcode
user Colin Viebrock (aka "Greedo") posted in the article, I thought it would be
far more efficient to make the script a client-side task called by slashd.
Where can I get the CGI version?
Currently, it can be played with under the old
SlashXML Project Section, where I stumbled through the first few
incarnations. Note that the CGI version is slow, mainly due to the fact that
it does not cache images locally. Each icon is handled by a call to
grabimg.cgi, which obtains the original topic icon from the Slash site,
resizes it to roughly 30x30 and displays the resulting PNG.
I can definitely see a use for the CGI version for sites that
do not want to run the slashd task or for users who just want to have a
sidebar tab for a site they like, without the admins doing a single bit of
work. Someday, after I clean it up a bit, I'm sure it'll be offered under this
Can I see it in action?
The current version is up and running on my Slash site,
The "launch" link is on the left-hand menu. If you'd rather see the tab HTML,
take a look at
I have added two screen shots of version 0.3.1: full browser window (71 KB) and
close-up of bar only (9 KB).
Does it resize the topic images on the fly?
In a word, no. The reason for this is not my burning desire to
be a pain in the ass, but my own bad experiences. I tried using ImageMagick
but found that most topic icons, when resized, looked like crap. During
testing, I had better results running my topic icons through Photoshop
(or pick your equivalent) and shrinking them to a 30x30 pixel size.
Perhaps, in the future, we can add automatic resizing to the
script. What might be cool is if it "auto-resized" images for which a
previously-resized icon is not available.
Update: I've added topic icon resizing support, using
ImageMagick, thanks to a suggestion that I convert GIFs before resizing.
The results look a lot better now ;) You can control whether or not the task
resizes images via a script variable, should you not want resizing support.
What is required to run Slash-MozBar?
The slashd task file that is "Slash-MozBar" requires:
All of these packages, including Slash-MozBar, are freely
available. Everything but ImageMagick is licensed under the GNU Public
- Slashcode version 2.x
- Perl version 5 and higher.
- Time::Local, usually installed by default with perl but available from
CPAN for those who lack it.
- XML::Parser, available from your local CPAN mirror or easily installed
using perl's CPAN module.
- ImageMagick and the
ImageMagick is only required if you want automated image resizing support.
What else is included in the Slash-MozBar source file?
In addition to the slash_mozbar.pl task for slashd, you'll also
...and, of course, a copy of the GNU Public License ;)
Version change history.
A quick description of what Slash-MozBar is and how to use/customize it.
Quick instructions for upgrading from version to version. Probably not
required, but there's no such thing as too much information.
(First appeared in version 0.3.2)
Sample HTML file showing the code you'll need to have users add your tab
to their Mozilla/Netscape sidebar.
Image to create the "separator bar" between time and comment count.
Transparent image for spacing that no serious webmaster should be without ;)
Why parse XML? Why not query the Slash db directly?
I saw no need to duplicate the code that generates the RDF / RSS
/ XML feeds within Slashcode. This task is a simple add-on that doesn't
require any core changes to your site. I think simplicity is best ;)
So, how do I get this running?
Here are the installation steps:
- Download Slash-MozBar source and untar it to a temporary directory.
- If you're not changing any of the hard-coded paths within
slash_mozbar.pl, make a directory called mozbar under your Slash
site's existing images subdirectory.
- Copy div.png and spacer.png into the newly-created
If you are using the image resize functionality, you'll need to make sure
this directory is writable by your Slash user.
- Create a file called "mozbar.html" in your site rootdir, allowing the
Slash user write access.
- Copy slash_mozbar.pl into your site's tasks directory,
usually <slash home>/site/<site url>/tasks/.
- Call up http://your.slash.site/mozbar.html in a browser and
verify that it looks okay.
- Restart slashd with a /etc/init.d/slashd stop; /etc/init.d/slashd start (or simply 'restart').
You can also run the task manually using Slash's run_task script,
located in <slash home>/bin/.
- Add the code from add_tab.html to a button or link on your Slash
site so users can quickly add your tab to their Mozilla/Netscape sidebar.
How can I help?
The easiest way to help, assuming you are running a site based on
Slashcode, is to test the code and report any bugs you find. Be sure to let me
know which versions of Slashcode and Slash-MozBar you are using, what you
believe may have caused the error and what exactly happened.
Relevant log file entries from slashd.log can also be extremely helpful
I'm also open to suggestions for improvements, whether within
the code itself or the generated sidebar output.