Home / Blog

I lately released a beta version of QH Autosave, an extension for eZ Publish that gives editors an autosaving feature. The project has been very appreciated and eZ Systems, the company behind eZ Publish CMS, have proposed to bring it into a release of the product. Along the way it's been renamed eZ Autosave. This is the first attempt of a Fusion of Community and eZ Engineering.

eZ Autosave has recently been released in a first testable version, you can grab it now on:

https://github.com/ezsystems/ezautosave

Please give some feedback here:

http://issues.ez.no/17431

More details on the following address:

http://projects.ez.no/ezautosave

Yesterday was the last time I got fed up with loosing my long content editing in eZ Publish. This is an issue that happens to most CMS not only to eZ Publish, some of them have their own autosaving system but eZ Publish is lacking of this very useful feature. I recently heard of a piece of software that could help with this kind of issue, it is called Lazarus. It is a browser add-on that will automatically save your form's content and would restore it if you have a browser crash. It seems to be a very good plugin for who does spend a lot of time with online editors. But one thing that bothers me, this is just personal, is that I don't want another plugin to my browsers, I don't have the need for such a plugin since I would currently only need it for eZ Publish and also what if I was editing on my laptop and it suddenly doesn't work anymore and I want to recover the work on another computer?

So I thought an Ajax powered script could help and started to investigate on possibilities. Some forums are talking about storing the form content to a cookie, that's quite simple to implement but again I wouldn't be able to recover on another computer. The only way would be to autosave back to eZ Publish DB. So in the train home back from work my mind started to think about how to implement that and I realised that shouldn't be too bad, I would just need to extract all the form's field's content and Ajax post it to a module/view that would store the draft for the object being edited. So I started to work on QH AutoSave extension after diner but then realised that this method won't be as simple as I thought. First issue is uploading images, then issue is to parse extra info about the object, complexity of ezpage datatype etc... So I was thinking of cloning and customising some of the kernel feature, but that would be a bit dirty to my taste.

After more thinking and Googleing for info, I had a eureka moment. I should have thought of it earlier, but you just need to post the form as it is to what ever URL the form is supposed to be posted to but in Ajax way without reloading the current page. So the solution is made of 5 lines of Javascript/jQuery!

        qhAutosaveEditForm = $( '#editform' );
        var formMethod = qhAutosaveEditForm.attr('method').toLowerCase();
        var postURL = qhAutosaveEditForm.attr('action');
        var formContent = qhAutosaveEditForm.serialize() + '&StoreButton=Store+draft';
        $[formMethod]( postURL, formContent, function(data) {} );

First get the DOM element for the form itself, then retrieving the method for submitting the form (POST in our case), retrieving the URL of the script receiving the form content, preparing the content of the form prior to submitting it (a little hack here is to add StoreButton=Store+draft so that the form processing script knows that we want to save as a draft and then we just asynchronously submit the form.

The final extension is of course more than 5 lines of code, but all the rest is tweaking the extension and adding some more feature such as autosave notification, styling, eZ Publish configurations etc... and most importantly make it easy to install and use: just import, activate and use, the extension will just dynamically inject the functional code to the page so no need to override any templates.

I hope this simple extension will be useful to some of you eZ Publish editors. If you have any comments or suggestions, please add a comment below.

The current release is QH AutoSave v1.0beta2 you can alternatively see it on eZ Publish's Projects website.

Two friends of mine are starting their own business in the garment industry, their services include computerised pattern cutting, grading, laylanning and costing service for the apparel industrial with a high level of technical service for men's, ladies' and children's wear.

Although eZ Publish is very powerful, its flexibility allows the creation from very simple websites to more complex ones. For this New City Corporation Ltd, simplicity was the choice and the front-end editing interface was very useful.

More details on New City Corporation Ltd.

London SOS has contacted me for a relook of their static website. We've agreed on migrating all their content onto eZ Publish which will allow them to maintain their website content themselves. As per requirement, the new website is located on a shared hosting account, so we will be keeping an eye on how the performance is on that type of hosting.

More details on London SOS.

After few discussion on his website and Joomla, the CMS engine behind it, Frank and I decided to migrate his website to use eZ Publish, another very powerful open source CMS. So there it is, we have simplified the structure, no more nagging page, use of the frontend editing bar to make it easy to modify pages and multi-upload images.

eZ Award

eZ Publish is one of the most complete commercial open source CMS (Content Management System) out there. I've been developing with it since 2008, starting from when I joined the Energy Saving Trust. In 2009, the EST has won the 'Website of the year' award at the eZ Awards 2009.

Earlier today, I've received an email from eZ System (the company behind eZ Publish) telling me I have been nominated for the 'Tutorial of the year' award. The winner will be announced at the eZ Awards ceremony on June 16th 2011 evening after the eZ Publish Conference where developers and businesses from around Europe and some other countries of the world will be gathering together to discover and learn new subjects around this powerful CMS.

I was already excited to see some friends from other countries but this is adding more excitement. So fingers crossed for the award!

The beach in Nice

I've been working with eZ Publish CMS by eZ Systems since 2008 when I joined the Energy Saving Trust. Recently I've moved to work for the Financial Times as a CMS Developer still using eZ Publish.

Every year, eZ Systems is organising a summer and winter conference. The winter conference is more for the developers and the eZ Community, it's the opportunity to get updated on the evolution of eZ Publish and get some trainings and certifications for free. The other great advantage is meeting a bunch of great people from around the world working on this same open source Content Management System.

This year, the eZ Winter Conference is taking place in Nice, a very beautiful city in the south of France just by the sea. Luckily, my hotel room has been upgraded to a seaview one, I had a great sunset sight this morning, although I woke up a bit late :-P

Among other programs of this conference, there is the speed talk where a member of the community gets the opportunity to hold a small talk of few minutes on an eZ Publish subject of his/her choice. I've proposed myself for a talk on my YubiKey extension for eZ Publish.

I'm looking forward to learn more about what eZ Publish is preparing for us.

I went to the Ukulele Wednesdays this evening, a great bunch of Uke fans meeting up in the basement of the Royal George Pub on Tottenham Court Road. Jamming the evening away with Keira Knightley having few drinks on the table next to us! Hope she liked the jam ;-)

I've made some progress with the version 3 of my Online Lighting Diagram Creator, an online drag-and-drop tool for photographers allowing easy design of lighting diagrams. It took a while, I know, but this is a personal project and I've been pretty busy last year. But the first useable of v3 will be on production pretty soon with some cool features.

As I was trying to build an XML sitemap for the website I was wondering why it took so long to map this small site. The answer was the little calendar on the bottom of the right hand side menu in the blog section. It allows one to browse in the future and in the past even farther than the oldest blog post and would never stop...

So I copied extension/ezwebin/design/ezwebin/templates/parts/blog/calendar.tpl into extension/quochuy/design/ezwebin/templates/parts/blog/calendar.tpl to override the template and added some more logic code to not display the next button if next month is in the future and not to display the previous button if previous month is older than my oldest blog post.

It's now fixed. I've also added a rewrite rule in Apache to allow access to http://www.quoc-huy.com/sitemap.xml and have submitted the URL to the Google Webmaster Tools.

I've finally managed to migrate all the content from Joomla into eZ Publish, the old blog has been migrated, I've added an HTML5 streamable audio support to my eZ Publish installation but it needs some more debugging for other browsers than Safari.

I now need to tweak some more CSS settings.

Current features includes:

  • podOmatic integration using eZ Publish's RSS auto-import feature
  • customized eZFlow templates to animate the frontpage blocks for the homepage with eZJSCore and some jQuery codes.
  • eZLightbox for the blog's embedded galleries.
  • 'mytwitter' extension from my eZ Publish Workflow tutorial.
  • HTML5 audio support, need some tweaks as MP3 support with HTML5 is not compatible with all browsers...
  • Using eZ Publish blogging feature, but still thinking if I should use Blogspot to take advantage of the community...
  • Twitter right hand side block from eZFlow 'feed reader' block item.
  • Nginx in front of Apache to cache static content.

A bit of music My life Photography Technology Web Development

Mon Tue Wed Thu Fri Sat Sun
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30