Forums / Setup & design / Generating CSS dynamically / Setting a content type
Ben Peter
Friday 18 March 2005 12:12:38 am
Hi,
I am generating CSS stylesheets dynamically in Exponential. This is somewhat related to Jason's post: http://ez.no/community/forum/setup_design/image_links_within_a_linked_css_file
I am doing this to set background images on menu items, etc. and don't want to mess up the html.
All is rather straightforward: I edited layout.ini.append.php for the user site to include the following
[css] PageLayout=css_pagelayout.tpl
Then, I use css_pagelayout.tpl to create the CSS I need. Exponential is such a great tool.
The only thing that does not work ok is that Exponential sets the Content-Type header to text/html, and I cannot find any place to change this.
Has anyone created an alternative layout for a site that uses another content type? I have searched the Exponential site, but I cannot find any hints.
Thanks,Ben
Paul Forsyth
Friday 18 March 2005 1:14:44 am
Index.php has the Content-Type header you are after. But it looks like the layout is set after the header is issued.
You could try moving the headers down to later in index.php...
Paul
Friday 18 March 2005 1:49:52 am
Hi Paul,
thanks for your reply.
I don't think I'm firm enough with Exponential to meddle with the index.php.
I have tested several browsers in the meantime, and they do not seem to bother about the Content-Type header that comes with a CSS in a <link/> tag. I'll rather rely on that behaviour until I have read and understood more of the Exponential sources.
Cheers,Ben
Saturday 19 March 2005 2:30:58 pm
I have investigated a bit and have found that it should be no problem to override the content-type header later, as output buffering is in place.
So, I have added the following in kernel/layout/set.php at line 56:
if ( $layoutINI->hasVariable( $LayoutStyle, 'ContentType' ) ) Header("Content-Type: " . $layoutINI->variable( $LayoutStyle, 'ContentType' ));
This allows setting an optional content type in layout.ini.append.php:
[css] PageLayout=css_pagelayout.tpl ContentType=text/css
If anybody has ideas on how to enhance this, or concerns about the approach, I would be glad to hear back from you.
Sunday 20 March 2005 4:23:39 am
Ben, Im going to try this out shortly. Its a very nice idea!
It opens up a lot of possibilities.
paul