Tutorials & articles written by Łukasz Serwatka

Building mobile browser and hybrid applications with eZ Publish

eZ Publish is a Web Content Management System that provides a platform to publish content via any channel. Its powerful presentation engine enables you to create websites and pages that display your content in a variety of renderings. Its powerful API directly and simply integrates your content with any web-enabled application on any device, such as the iPad, iPhone, or an Android device, without ever interfering with, or impacting the platform itself.

At the end of this tutorial, you will have learnt the basics of mobile application development for both iOS and Android platforms, consuming content from eZ Publish. CMS-side adjustments for the mobile channel will be acquired too. This cheatsheet will help you leverage the multichannel capabilities of eZ Publish, and its REST API in future projects, in a more systematic fashion.

 

Extending eZ Publish’s REST API - Developer Preview #2

At the end of this tutorial, you will be able to embed your custom RESTful interface into eZ Publish, to be further consumed by any 3rd party-service :

  • mobile application
  • external business application
  • web service
 

ezjscore: eZ Publish JavaScript and Ajax framework

ezjscore is an eZ Publish extension that provides a simple framework for using Ajax, JavaScript, and (to a smaller extent) CSS. It is bundled with eZ Flow and Website Interface installations in eZ Publish 4.2 and is mostly compatible with previous eZ Publish 4.x versions. In this article, we will provide documentation for ezjscore and show you some example code, all with the goal of helping you to build more powerful, richer, and better performing eZ Publish websites.

eZ Publish Performance Optimization Part 3 of 3: Practical Cache and Template Solutions

This article concludes our three-part performance optimization series by looking at the most common solutions for improving your eZ Publish site's performance in two main categories: cache and templates. We will also explore miscellaneous settings to optimize performance regarding images and the Administration Interface.

eZ Publish Performance Optimization Part 2 of 3: Identifying Trouble Spots by Debugging

This article is the second in a three-part series on eZ Publish performance. The first article introduced basic performance terminology and discussed tools to benchmark your site's performance. This article will outline the eZ Publish debug output features.

The eZ publish Web Server Environment

This article describes the optimal eZ publish operating environment. It provides instructions for installing and configuring Apache, PHP and APC (Alternative PHP Cache). The article assumes that you are running Linux in both your development and production environments, as Linux provides the best performance and stability for an eZ publish installation.

eZ debug

Timing: Jan 17 2025 21:16:49
Script start
Timing: Jan 17 2025 21:16:49
Module start 'community'
Timing: Jan 17 2025 21:16:50
Module end 'community'
Timing: Jan 17 2025 21:16:50
Script end

Main resources:

Total runtime0.2639 sec
Peak memory usage4,096.0000 KB
Database Queries218

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0055 596.9766172.4453
Module start 'community' 0.00550.1504 769.4219851.8906
Module end 'community' 0.15590.1079 1,621.3125411.5078
Script end 0.2638  2,032.8203 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00381.4510200.0002
Check MTime0.00150.5505200.0001
Mysql Total
Database connection0.00100.379710.0010
Mysqli_queries0.192672.96922180.0009
Looping result0.00190.73692130.0000
Template Total0.247793.820.1238
Template load0.00140.528920.0007
Template processing0.246393.310020.1231
Template load and register function0.00010.042110.0001
Override
Cache load0.00100.3864320.0000
states
state_id_array0.00381.436060.0006
state_identifier_array0.00250.945860.0004
Sytem overhead
Fetch class attribute name0.00070.255560.0001
Fetch class attribute can translate value0.00050.189110.0005
class_abstraction
Instantiating content class attribute0.00000.004560.0000
XML
Image XML parsing0.00030.108710.0003
General
dbfile0.00130.4968180.0001
String conversion0.00000.001510.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
1community/articles.tpl<No override>extension/community_design/design/suncana/templates/community/articles.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
2content/datatype/view/ezxmltags/separator.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltags/separator.tplEdit templateOverride template
4content/datatype/view/ezxmltags/link.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/link.tplEdit templateOverride template
1content/datatype/view/ezxmltags/li.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/li.tplEdit templateOverride template
1content/datatype/view/ezxmltags/ul.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/ul.tplEdit templateOverride template
1content/datatype/view/ezxmltags/strong.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/strong.tplEdit templateOverride template
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 24
 Number of unique templates used: 9

Time used to render debug report: 0.0002 secs