Generating CSS dynamically / Setting a content type

Author Message

Ben Peter

Friday 18 March 2005 12:12:38 am

Hi,

I am generating CSS stylesheets dynamically in eZ publish. 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. eZ publish is such a great tool.

The only thing that does not work ok is that eZ publish 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 eZ publish 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

Ben Peter

Friday 18 March 2005 1:49:52 am

Hi Paul,

thanks for your reply.

I don't think I'm firm enough with eZ publish 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 eZ publish sources.

Cheers,
Ben

Ben Peter

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.

Cheers,
Ben

Paul Forsyth

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

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.

eZ debug

Timing: Jan 18 2025 19:39:29
Script start
Timing: Jan 18 2025 19:39:29
Module start 'layout'
Timing: Jan 18 2025 19:39:29
Module start 'content'
Timing: Jan 18 2025 19:39:30
Module end 'content'
Timing: Jan 18 2025 19:39:30
Script end

Main resources:

Total runtime0.7119 sec
Peak memory usage4,096.0000 KB
Database Queries63

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0050 588.0625152.6406
Module start 'layout' 0.00500.0029 740.703139.4766
Module start 'content' 0.00800.7025 780.1797532.1641
Module end 'content' 0.71040.0015 1,312.343812.1250
Script end 0.7119  1,324.4688 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00310.4365160.0002
Check MTime0.00120.1676160.0001
Mysql Total
Database connection0.00080.110910.0008
Mysqli_queries0.654091.8604630.0104
Looping result0.00060.0837610.0000
Template Total0.684096.120.3420
Template load0.00200.278220.0010
Template processing0.682195.801320.3410
Template load and register function0.00020.022710.0002
states
state_id_array0.00070.098510.0007
state_identifier_array0.00090.125020.0004
Override
Cache load0.00170.2403400.0000
Sytem overhead
Fetch class attribute can translate value0.00070.100520.0004
Fetch class attribute name0.00130.182060.0002
XML
Image XML parsing0.00230.323820.0012
class_abstraction
Instantiating content class attribute0.00000.002880.0000
General
dbfile0.00240.3350160.0001
String conversion0.00000.001240.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
3content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
5content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
11content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
3content/datatype/view/ezxmltags/literal.tpl<No override>extension/community/design/standard/templates/content/datatype/view/ezxmltags/literal.tplEdit templateOverride template
3content/datatype/view/ezxmltags/line.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/line.tplEdit templateOverride template
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 27
 Number of unique templates used: 7

Time used to render debug report: 0.0001 secs