Forums / Setup & design / Generating CSS dynamically / Setting a content type

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

eZ debug

Timing: Jan 18 2025 16:12:03
Script start
Timing: Jan 18 2025 16:12:03
Module start 'content'
Timing: Jan 18 2025 16:12:04
Module end 'content'
Timing: Jan 18 2025 16:12:04
Script end

Main resources:

Total runtime1.2208 sec
Peak memory usage4,096.0000 KB
Database Queries200

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0046 588.9922180.8125
Module start 'content' 0.00461.0948 769.8047537.2578
Module end 'content' 1.09940.1214 1,307.0625337.3672
Script end 1.2208  1,644.4297 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00390.3189210.0002
Check MTime0.00130.1057210.0001
Mysql Total
Database connection0.00070.054510.0007
Mysqli_queries1.150694.24332000.0058
Looping result0.00200.16011980.0000
Template Total1.195497.920.5977
Template load0.00200.163820.0010
Template processing1.193497.752820.5967
Template load and register function0.00010.008310.0001
states
state_id_array0.00100.084710.0010
state_identifier_array0.00070.055720.0003
Override
Cache load0.00170.1413400.0000
Sytem overhead
Fetch class attribute can translate value0.00100.085230.0003
Fetch class attribute name0.00110.090260.0002
XML
Image XML parsing0.00200.164230.0007
class_abstraction
Instantiating content class attribute0.00000.001580.0000
General
dbfile0.00400.3259270.0001
String conversion0.00000.000430.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

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
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 27
 Number of unique templates used: 7

Time used to render debug report: 0.0002 secs