Christian Heilmann

Author Archive

Generating site navigation with PHP and DOM

Thursday, April 7th, 2005

I just finished EasyNav, a PHP script that automatically highlights the current page in a site navigation.

All you need to use it is generate your navigation as a nested list of links and include EasyNav in your pages. The current link gets automatically replaced with a “strong” element and gets the ID “current”. The parent list item gets the ID “active”.

This allows you to use the CSS examples of Listamatic to style your navigation.

EasyNav also allows for different navigations to be generated, dependent on the ID of the root UL.

MSIE DOM messing around with the name attribute

Monday, April 4th, 2005

I am working on a small editor for a CMS, and wanted to take a less WYSIWYG approach than for example HTMLarea does. My idea is to clone a node of possible block elements. Now, in the editor example Firefox works perfectly, the test output gets new IDs, for attributes and name attributes. MSIE however, fails to rename the name attribute (in the output the name of the textarea stays “c” instead of “c0”, the select doesn’t get a name attribute at all). The MSDN library does not have any information if there is a known bug.

The code in question:
ps[i].getElementsByTagName('label')[0].htmlFor='c'+i;
ps[i].getElementsByTagName('textarea')[0].id='c'+i;
ps[i].getElementsByTagName('textarea')[0].name='c'+i;
ps[i].getElementsByTagName('label')[1].htmlFor='t'+i;
ps[i].getElementsByTagName('select')[0].id='t'+i;
ps[i].getElementsByTagName('select')[0].name='t'+i;
Volkan Ozcelik pointed out on the evolt list that mixed case works:
ps[i].getElementsByTagName('label')[0].htmlFor='c'+i;
ps[i].getElementsByTagName('textarea')[0].id='c'+i;
ps[i].getElementsByTagName('textarea')[0].NAME='c'+i;
ps[i].getElementsByTagName('label')[1].htmlFor='t'+i;
ps[i].getElementsByTagName('select')[0].id='t'+i;
ps[i].getElementsByTagName('select')[0].NaMe='t'+i;

Anyone out there who can explain?

Now that is a cool picture browsing package

Monday, April 4th, 2005

I just installed Picasa and I like it very much. So far, my favourite browsing tool was ACDSee, but seing how bloated and buggy it has become, I was looking for something free and good, and Picasa is a very nice alternative.
OSX Users might be reminded of iPhoto when using it on a PC.

April fool’s and a cheap design idea

Friday, April 1st, 2005

April fool’s day, and once again Thinkgeek.com prove to have an excellent sense of humour. Personally I think the Network Shrinter was their best idea ever.

If you cannot be bothered to come up with a nice colour scheme, let the computer do it for you, as you can see in my cheap design example.

osX for cheapskates – More CSS shenanigans

Wednesday, March 30th, 2005

After all the feedback for the Star Trek CSS navigation I played some more and thought of a osX dock style navigation much like the googlex but without images.