Forums / Suggestions / eZ Components templating engine?

eZ Components templating engine?

Author Message

Jani Tarvainen

Wednesday 17 June 2009 9:38:04 pm

In eZ Publish a lot of the functionality is built on template level (fetches, looping the results, etc.). The current templating language is quite stable, but the syntax is anything but clear - that is what know and keep hearing from developers time and time again.

The plan has probably been to switch to using eZ Compontents templating ( http://ezcomponents.org/docs/tutorials/Template ). I recall it was even in the road map (around a year ago for 4.0.x).

I know changing the templating engine is a huge undertaking - making sure fetches, cache-blocks, etc, etc. work as intended. And as the default designs and extensions (including the admin interface) are built using the current engine it is probably not possible to get rid of it overnight.

What is the plan with this, guys? I will not be attending the conference in Paris, but I would like to take this matter up for discussion. Especially now that the roadmap indicates that there will be a new design for the admin interface.

--
http://ezpublish.fi/

Jérôme Vieilledent

Saturday 27 June 2009 3:03:43 am

Hi Jani

I discussed this subject with Bertrand Dunogier from eZ Systems during the conference and he told me that this was in the pipe. They even have a working 4.x eZ Publish prototype working with the eZ Components template engine.
Paul Borgermans told us that important choices will be made during fall about Project V (future eZ Publish 5).

Bertrand Dunogier

Saturday 27 June 2009 3:59:51 am

I have to add something about the prototype part. We have something working, but integration "as-is" will unfortunately be impossible, as this feature would have a large impact on the existing codebase. We are currently working hard on planning what the "final" next step will be for eZ publish, and now is definitely the worst possible time to integrate such large features if we don't want to do the same work twice ;)

Bertrand Dunogier
eZ Systems Engineering, Lyon
http://twitter.com/bdunogier
http://gplus.to/BertrandDunogier

Jani Tarvainen

Saturday 27 June 2009 6:34:31 am

First of all it's great to hear that this has been discussed. And as I expected it is a known issue and I do realise the efforts it would take to implement this into version 4.x.

From where I stand I think eZ Publish 4 was not a great leap architecture wise - it was more or less a necessity to get eZ Publish to run on PHP 5. For the mysterious project V I'm sure it'll be a total rewrite as the eZ Components team is busy building MVC tools, etc.

As eZ Publish 5 seems to be all about rewriting the whole application it will be a major task considering the feature list eZ has acquired in the ten years of development. While the eZc team has done a lot of groundwork for this, being a realist I realise this product is still years, not months away from complete.

Resources are ALWAYS limited, so eZ Systems need to strike a balance between developing the current version and the next generation of the product. Adding the fact that you provide commercial support means even more resource constraints. A "normal" open source project can just ditch the legacy version development and concentrate on the latest and greatest.

If I were to decide I would not spend resources on developing a new admin interface (with the current templating system) for 4.x. as the current version is just fine from my point of view.

--
http://ezpublish.fi/

Bertrand Dunogier

Saturday 27 June 2009 4:38:23 pm

It's great to get complete and useful feedback about the CMS' evolution.

Things are about as complex as you describe ;)

It is true that eZP4 was not a technological leap. Choosing to develop the current product & reimplement features for good is always hard, but it's not like we have a real choice here.

Regarding the admin interface, the template integration part is not imho the most part of what there is to develop. Designing a modern interface with great ergonomy & flexibility is gonna be much more difficult, and following architectural changes doesn't mean we'll have to start everything from scratch.

Bertrand Dunogier
eZ Systems Engineering, Lyon
http://twitter.com/bdunogier
http://gplus.to/BertrandDunogier

Jani Tarvainen

Sunday 28 June 2009 12:31:26 am

<i>Regarding the admin interface, the template integration part is not imho the most part of what there is to develop. Designing a modern interface with great ergonomy & flexibility is gonna be much more difficult, and following architectural changes doesn't mean we'll have to start everything from scratch.</i>

This is very much true! As the plan is probably to keep the basic concept the same. Having content objects (built out of attributes) attached to a tree of nodes is still very good and clear to me.

There are drawbacks with the model (and the generated SQL) - for example attribute filtering/sorting is slow and modifying content classes with large amounts of content objects is a pain.

Still you've got a good thing going on and you do have a lot of features (like XML content with embeds, etc.) that you just don't have in any other (PHP) CMS.

Keep up the good work!

--
http://ezpublish.fi/

eZ debug

Timing: Jan 18 2025 00:59:52
Script start
Timing: Jan 18 2025 00:59:52
Module start 'content'
Timing: Jan 18 2025 00:59:53
Module end 'content'
Timing: Jan 18 2025 00:59:53
Script end

Main resources:

Total runtime1.4310 sec
Peak memory usage4,096.0000 KB
Database Queries205

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0072 587.7266180.8359
Module start 'content' 0.00721.1718 768.5625637.3203
Module end 'content' 1.17900.2519 1,405.8828342.8594
Script end 1.4309  1,748.7422 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00440.3055210.0002
Check MTime0.00170.1154210.0001
Mysql Total
Database connection0.00070.051710.0007
Mysqli_queries1.323492.48022050.0065
Looping result0.00260.17952030.0000
Template Total1.399097.820.6995
Template load0.00220.153920.0011
Template processing1.396897.610020.6984
Template load and register function0.00010.007710.0001
states
state_id_array0.00110.077310.0011
state_identifier_array0.00200.136820.0010
Override
Cache load0.00190.1318360.0001
Sytem overhead
Fetch class attribute can translate value0.00150.103240.0004
Fetch class attribute name0.00150.101490.0002
XML
Image XML parsing0.00180.126640.0005
class_abstraction
Instantiating content class attribute0.00020.0154120.0000
General
dbfile0.01541.0740400.0004
String conversion0.00000.000530.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
6content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
6content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
7content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
1content/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: 22
 Number of unique templates used: 6

Time used to render debug report: 0.0002 secs