Showing posts from 2008

New reCAPTCHA release for eZ Publish

Thanks to Łukasz Serwatka for pointing out some issues with JavaScript in IE7. I've applied the patch and released new versions for both eZ 3.x & eZ 4.x both on the contributions section of the main site and at

It's pretty old news now but the reCAPTCHA extension won the "Contribution of the year" at this years eZ Awards! A little embarrassing to tell the truth, given that the extension simply exposes the reCAPTCHA system which does all the hard work.

If you use the extension please drop a comment on the blog and link to your site. It's great to win awards but even better to see the extension in action.

eZtip: Character Encoding in Templates

Recently I was working on a multilingual site and had to add some static text in a number of languages. I added the supplied text and then viewed the resulting page. Having previously lost many hours of my life to dealing with character encoding issues I momentarily regretted I'd gotten out of bed when confronted with mess that was before me.

Quickly regaining my composure I realised that eZ Publish must be doing the transformation and with a bit of digging I discovered that by default templates are seen by the system as being in iso-8859-1 and are converted into utf-8 for display.
In my case eZ Publish was doing what it was told and converting the already utf-8 characters in utf-8.

There are 2 options for telling eZ publish the character encoding of a template. Firstly you can configure eZ publish that all templates are utf-8 by editing template.ini.append.php in overrides for the entire site or your specific siteaccess to limit the effect.

# The charset to use if…

Read about French eZ Developer day with Google Readers inline Translations

There is a wonderful French eZ publish community and many of the members blog. In the past keeping up to date with these has been a quite painful and involved passing the link through an online translator.

Yesterday I read an announcement that Google have added automated translations to their online RSS reader product, Google Reader. Now reading these blogs is as simple as adding the feed and selecting "Translate into my language" from the feed settings options.

I discovered this great new feature at the same time that I read Damien Pobels post pointing out summaries of the eZ Developer day recently held in Paris:
eZ developer day in Paris (November 7, 2008) by Gauthier GarnierEzpublish Developer Day in Paris (November 7, 2008) by Nicolas FreyGauthiers post mentions that there is an International eZ Publish Developer day to be held in Barcelona on January 29, 2009. Can't find anything on the eZ site though.

eZtip: Errors can be misleading...what happens when the DB is dead

I recently received an email from an eZ community member stating after an abnormal system reboot that their working eZ Publish install was reduced to responding with "Error / kernel (1) Access denied"

My suspicion was that there was an issue with the database. More than likely it had not successfully started when the system was brought up again.

I tested this theory by stopping the database in my local development environment and accessing the associated eZ Publish site. Manually editing the settings/siteaccess/eng/site.ini/append.php to turn on debugging confirms the problem and gives an insight into what is happening:

Warning: PHP
mysqli_connect() [<a href='function.mysqli-connect'
(HY000/2002): Can't connect to local MySQL server through socket
'/var/run/mysqld/mysqld.sock' (2)
in /var/www/ezpublish-4.0.0-ezwebmin/lib/ezdb/classes/ezmysqlidb.php
on line 132
Error: eZMySQLiDB
Connection error: Couldn't connect to da…

eZtip: Get the current siteaccess from template

I'm currently working on a multilingual site and had to use the name of the siteaccess in the template code. Easy I thought...well it took quite a while to find.


VariableTypeDescription$access_typearrayThe name of the siteaccess (as "name") and the ID number (as "type") of the access method that was used (1=URL, 2=Host, 3=Port).

Adding {$access_type|attribute(show,2)} to the pagelayout.tpl template will give the following:

name string 'ezwebin_site'
type integer 2

The siteaccess used to serve the current page is accessible via $

French version of "10 Tips for New eZ Publish Developers"

Some days I absolutely love the internet and the possibilities it enables. Today I got a real buzz when I leaned that Clochix has created a French version of my previous post, "10 Tips for New eZ Publish Developers". It doesn't appear to be a straight translation and contains additional thoughts on most of the points.

What Clochix does point out is that many of the tips could apply to most applications, and he's 100% correct on this. Many of them are common sense. Trouble is that time and time again I've see projects (and not just eZ projects ) that don't "follow the rules". Sometimes it's good not to assume that people know and to state the basics!

10 Tips for New eZ Publish Developers

We've all been there, starting out with a new product and not knowing where to begin. Below are my top 10 tips for new eZ publish developers.

Read the install documents and make sure your system meets the requirements before beginning. eZ Publish has some hefty needs in terms of memory limits and timeouts that may not be set at recommended levels in some PHP setups. Not having these values set to acceptable levels will impact on a successful install.
Don't modify the core distribution. Just don't, no matter how tempting it is. There is no need to modify any files that come as part of the eZ Publish distribution. This will save you losing any changes when you upgrade.
Understand the basics. eZ Publish doesn't store content in straight database tables like other Content Management Systems. Read the documentation and understand the content model. eZ Publish is all about content objects arranged in a tree, not data stored in tables.
Debugging holds the answers. If somethin…

Web Directions South 08 - Day 1

I'm been meaning to attend a Web Directions Conference since they started but it always clashed with other commitments.

This year I made the trip to Sydney for Web Directions South 08 and it was well worth it. Web Directions always provides a great program of both international and local speakers as well as a fantastic bunch of attendees.

As with most conferences there were a number of parallel sessions and often the choice of which to attend is difficult. On the first day I attended mostly technical sessions, which in retrospect was probably a mistake.

This is a run down on the sessions I attended on day one.
New media - new businessLynne D Johnson presented the opening keynote which covered how various generations interact with of new technologies and what this means for traditional media providers. The content of the session was perhaps aimed at a less "online" savvy crowd but got interesting when examples and case studies came out. Some interesting ideas where raised…

How to you handle Revision Control for eZ Publish Projects?

Revision control systems (RCS) play an essential part of any software development process. One reason for using a RCS is to enable applications to be rolled back and deployed from a known point in time. Due to the nature of eZ publish it's difficult to capture all changes in the RCS and this often leads to the requirement of manual adjustments when changes are deployed.

An eZ publish project is made up of a number of elements that are stored either on the file system or in the database. The database not only stores the site's content but also a number of "configuration" items, such as roles & policies, content class & workflow definitions, RSS feed configurations and URL translations (I'm sure there are more).

Another scenario where this feature will pose an issue is if you use a node override to utilise a specific template for a particular node. In this case the entry in override.ini relies on a specific node_id to link the template to the node. It'…

FriendFeed Room for eZ Publish

I've been playing with FriendFeed for a little while and today setup an eZ Publish room. FriendFeed is a content aggregator that is primarily targeted at "friends", but several projects have been using it at a convergence point for information.

In their own words:
FriendFeed enables you to keep up-to-date on the web pages, photos, videos and music that your friends and family are sharing. It offers a unique way to discover and discuss information among friends.
I've primed the room with RSS feeds from eZ Planet, the site, eZ Projects and a twitter search for "ezpublish" like terms.

Feel free to join and contribute, or simply add the RSS feed of the room to your reader and follow a bunch of eZ news from the one feed.

OpenID for eZPublish

Earlier this year I was investigating OpenID and decided to attempt to integrate it into eZ Publish. I got most of the way before I realised that the amount of existing code I had to replicate meant that the maintenance of the extension would be a nightmare.

After discussions at the eZ Developer Day I decided to upload the source to and invite anyone interested check it out. If you want to contribute feel free to add yourself to the group.

The extension uses the PHP OpenID Library by JanRain. The version of the library used in the extension is 2.1.1. In future I plan at evaluating the use of the eZ ComponentsOpenID Authentication module.
The extension provides the following features:
Login using OpenIDRegister Using OpenIDOpenID URL management Both the OpenID Login and User Registration work in parallel to the existing systems, allowing users to login & register in a regular manor. The templates have been created for the admin & ezwebmin interface. The l…

Vote for eZ Publish in Packt Publishing's Best PHP Open Source CMS Award

eZ Publish is a finalist in Packt Publishings'2008 Open Source CMS Awards. eZ Publish gained a successful nomination in the Best PHP Open Source CMS category.

Voting began on September 1st and closes mid October.

Visit the Packt site and cast your vote now!

Micro-blogging the eZ Conference

For those who haven't heard of "Micro-blogging" wikipedia defines it as:
Micro-blogging is a form of blogging that allows users to write brief text updates (usually less than 200 characters) and publish them, either to be viewed by anyone or by a restricted group which can be chosen by the user. These messages can be submitted by a variety of means, including text messaging, instant messaging, email, MP3 or the web.Twitter is currently the most popular micro-blogging service but can have reliability issues (these have been addressed recently). I've been using it for a couple of months now. It can be a bit of a time suck especially if you follow frequent tweaters. I've found it a good way to keep track of what friends, the web industry & eZ people are up to, pose questions and actually get answers.

One of the things that has always frustrated my about not attending the eZ conference in the past is that it takes about a week for news and coverage to filter out.…

eZ Publish release clarifications

In case you haven't seen the comments generated out of my lastcouple of posts, this is intended to be a summary. Thanks to all the fine eZ crew that jumped on and clarified things.

It appears that jagelsmissed the middle '0' in 4.0.1 in his initial comment, making it seem (to me at least) like eZ were recommending that 4.0 should not be used and to hold off until 4.1. The advice was actually to wait for 4.0.1.

Version 4.1 will come with the new TinyMCE based OE instead of (as well as?) the existing OE. The new TinyMCE OE can can also be used in eZ 4.0.x sites (Will the old OE work in 4.1 ?)

eZ 4.1 will also include the following enhancements: add seconds input to date time and time datatypes share compiled templates between site accesses custom validation methos in edit handlers ( based on ideas in )The microkernel changes will not be in 4.1. This is not …

New versions of eZ Publish (4.0.1, 3.10.1 & 3.9.5) imminent

After my comment about following subversion commit comments to get an idea of what is happening with eZ Publish in my previous post, I realised it wasn't such a bad idea and added the RSS feed to my reader.

This morning I'm happy to report that the release trees for 4.0.1 & 3.10.1 & 3.9.5 have been created.

Nothing in the svn commits comments regarding 4.1. However this comment on my previous post has disturbed me:
I have been to a couple of seminars where we were recommended to wait for 4.1 before we upgrade to eZ4 (by eZ employees).Anyone have details of why this is the case? With the launch of a 4.0 eZ site in the coming weeks I find this quite worrying.

eZ Publish News: "No he's not dead, he's restin'!"

No no he's not dead, he's, he's restin'! Remarkable bird, the Norwegian Blue, idn'it, ay? Beautiful plumage!from Monty Pythons "Dead Parrot" sketch.

Given that there hasn't been a release for the eZ publish 3 series since October 2007 and December 2007 for the initial eZ publish 4.0 release, coupled by the lack of any concrete information regarding new releases, one may be forgiven in thinking that eZ Publish had been consigned to the great bit bucket in the ether. Fortunately it appears that unlike the Norwegian Blue, eZ was actually restin'! (Actually I suspect they have been working very hard, just not telling us)

I'm not sure how many people are downloading and reading eZ's SHARE! magazine PDF but if you're not then you would have missed this news regarding eZ Publish 4.1 from the June issue:
eZ Publish 4.1 - what’s new?The next version of our flagship product eZ Publish 4.1 will be released with an improved kernel and several exten…

eZ Publish on list of "PHP Apps that changed the World"

Federico Cargnelutti has listed a number of Open Source PHP applications that he believes has changed the world over the last 10 years and eZ Publish makes the list.

As with any lists of this nature, every one has their own opinion, and the comments make good reading.

One that isn't on the list or commented on is PHPList. What's missing in your option?

What's happening with eZ Publish?

If you want to know what's happening with eZ publish then it seems that the Paris Developer day was the place to be. You can read Damien Pobelsexcellent write up of the event (French). If like me your French is limited to "hello", "goodbye" and asking for a beer here's an English translation via google translate. Not perfect but you'll get the idea. Thanks Damien!

Australian Open Source Industry & Community Census report released

The report compiled from the Australian Open Source Industry & Community Census has been released.

I've only have the chance to skim over it at the moment, but my initial impression is that it looks very professional, contains quite a bit of detail and is interspersed with practitioner "stories".

Git and eZ Approve 2: checking in

My membership of the eZ Approve 2 project has been given the green light so as a follow up to my previous post Using Git with eZ Publish projects I can present the output of the commits back to the subversion repository.

$ git-svn dcommit
Authentication realm: eZ projects
Password for 'zabbie':
A design/standard/templates/node/view/plain.tpl
Committed r2501
M eventtypes/event/ezapprove2/ezapprove2type.php
Committed r2502
M classes/ezxapprovestatususerlink.php
Committed r2503
M collaboration/ezapprove2/ezapprove2collaborationhandler.php
Committed r2504
M collaboration/ezapprove2/ezapprove2collaborationhandler.php
Committed r2505
A design/standard/templates/node/view/plain.tpl
r2501 = e5a186160c1fab07a2894d180f932e3a6931b782 (git-svn)
M eventtypes/event/ezapprove2/ezapprove2type.php
r2502 = 43c5b3ba16bf4015ee8f9c2f2a1a9e4d4333972d (git-svn)
M classes/ezxapprovestatususerlink.php
r2503 = be6daf1…

Using Git with eZ Publish projects

In my spare time I've been hanging out with a bunch of Ruby/Rails people. They are a fun bunch however they don't seem to like it when you point out that MVC existed well before Rails. One thing that have put me onto is Git.

Git is a distributed revision control / software configuration management project. You may have heard of it, Linus Torvalds (that clever guy behind Linux) wrote it to manage kernel development. There is plenty to read about it on Wikipedia

So why Git?

This week I've been working on an eZ Publish 4.0 project that needed the ezApprove2 workflow extension. The version in the contribs says it has 3.7 support...the eZ projects site says it work with 4.0 except in the subversion repository on the projects site!

So I check it out svn co to investigate if it meets the requirements.

As part of this process I notice some bugs and being a good open source user I fix them, howev…

New rating extension for eZ Publish

I've just uploaded a rating module to the contribution section on the eZ site. The Star Rating module introduces a datatype that can be added to any content classes to allow it to be rated. While I haven't checked the datatype has been designed so it should be possible to add multiple ratings to a single content class.

The extension has been designed with accessibility in mind and will function without javascript, images or CSS.

The catalyst for the extension was CSS star rating from Komodo Media and the extension contains CSS and images from this project.

To add some web 2.0 goodness, if the xajax extension is enabled and the user has access ratings will be done via ajax calls. The xajax component requires newer versions (0.5+) of the xajax library so it must be downloaded from the projects site an not from the contributions section of the eZ site.
View caching & dynamic contentOne of the issues I came across is that by making the rating a datatype, is that the display g…

eZ Publish xajax extension upgraded

Recently I've been playing about on the eZ Publish projects site
and have joined a couple of projects. One that I've previously has some involvement in is Kristof'sxajax plugin.

I quite like xajax as it's takes care of most of the javascript and allows you to manipulate the browser DOM via PHP.

I've joined the project as a member, updated the xajax libraries to 0.5 beta 4 ( they were on beta 2) and created a download.

Initially I was going to upgrade the extension to work with eZ 4.0, however there was nothing to do. It works fine in eZ 4.0 and my changes are simply an upgrade to the xajax library.

Given the extension basically exposes the xajax libraries and is unlikely to change too much I wonder it it's worth linking the version of the extension to the xajax library version?

Happy xajaxing!

Is eZ Publish 4.0 like Microsoft Vista?

Disclaimers usually go at the bottom of a post but because this one is quite lengthy I've decided to put it at the top. Mostly the stuff I post here is of a technical nature, but this time I'm posting an option piece, and as such it is full of wild speculation, personal thoughts, suggestions and of course opinion, all of which may have no basis in any reality other than my own.You are here - the current state of play
I've been using eZPublish 4.0 since the beginning of the year. It's not quite what I envisioned when the rumbling of version 4.0 first started, oh so long ago, actually it's nothing like what I imagined.

Hence the title of this post. Initially Vista (Longhorn) was slated as a "minor step" between Windows XP (Whistler) and Blackcomb. However it gradually took on many of the features slated for Blackcomb. People got excited, but it's release was delayed several times, the developers were given other priorities and finally development st…

eZMail Debug updated for eZ publish 4.0.0

I realise that with the newish (introduced in version 3.9) "file" mail transport option can be used to debug mail, but in some cases it's easier if the system actually sends the mail (to me and not the intended precipitant). So I've updated the subversion repository of Kristof Coomans'eZMail Debug patch to work with eZ Publish 4.0.0

To use, simply download the patched ezmail.php from
and save it to lib/ezutils/classes/ezmail.php of your eZ Publish 4.0.0 install.

Remember that if you are using SMTP transport..."Due to a bug in eZ Publish 4.0.0, you need to download the updated version of the "ezsmtp" class and replace the corresponding file in your installation in order to use an SMTP relay server for mail delivery. This bug will be fixed in the upcoming eZ Publish 4.0.1 release." (From…

New reCAPTCHA extension (1.1) for eZ Publish

In response to some good suggestions I've just released version 1.1 of the reCAPTCHA extension for versions 3 & 4 of eZ Publish. The main changes are:
Support for multiple/domain keysUtilising the permissions/role system to implement by pass of the captchaAs a side effect of the latter, the admin user will not have to fill out captchas.

Download from:

Please let me know about your sites that are using the extension, either via comments here or on the contribution pages at eZ.

eZ Publish 3 version of reCAPTCHA extension

This morning I created a eZ 3.x version of the reCAPTCHA extension. The changes were pretty simple and included:
Modifying the return vales in the datatype to be constantsMade the method parameters references in the datatypeRemoved any static/public/private method declarations
The eZ 3.x version can be downloaded at

reCAPTCHA for eZ Publish

The other day I came across a site that was using the reCAPTCHA CAPTCHA. I'd heard of the project but hadn't had time to investigate.

The reCAPTCHA project (of the School of Computer Science at Carnegie Mellon University) provides both text and audio CAPTCHAs via a web service. It uses words scanned from books in the Internet Archive that have failed to be recognised by OCR, so using this on your site is helping to digitalise those books. See for more info on how it works.

With the Christmas break and the fact that we've had an intense low hanging about for the duration (strong winds & rain) I thought I'd check it out and see how easily it could be integrated into eZ Publish.

Turns out it was pretty simple. I've created an extension with a reCAPTCHA datatype that can be used in both regular content class (for forums, comments etc.) and as a information collector (feedback forms etc.). The datatype doesn't store any info…