In-depth insights on content, code, and creativity
The Mugo Queue extension is a generic framework for queuing specific tasks in eZ Publish. It stores tasks in the ezpending_actions table and can execute such tasks in batches. It includes a ready-to-use task for re-building the eZ Find search index, whether for an entire site or only specific parts of a site. (You can build your own fetch function to re-index, say, just objects of a certain content class.) This blog post explains how to develop your own task.
eZ Survey is an eZ Publish extension that enables you to quickly and easily build surveys on a site. Its power is in its "ezsurvey" datatype, which enables editors to add different questions (of different question types) per object, without having to create separate content classes for each different survey. The Mugo Survey Addons extension adds a Matrix question type to the default question types available with eZ Survey.
In eZ Publish 4.3 and higher, the default Administration Interface landing page after a user has logged in is the dashboard. On this dashboard is a listing of widgets, such as a list of the latest edited content. It is very simple to add a new widget to this dashboard, and we've built an example widget -- showing the server's disk space information -- to illustrate this.
Do you frequently use the Google, Wikipedia, and other search boxes in Firefox, typically in the top right of the window? Ever wanted to add your own for a site that isn't on the directory? Here's a quick and dirty guide to creating your own Firefox search engine plugin, using the api.jquery.com search as an example.
Among the many advantages of hosting multiple sites on the same eZ Publish installation is the ability to create internal links. eznode:// and ezobject:// links preserve the accuracy of the generated URL links even when content is moved around or renamed within any of the sites. (Of course, you can also use such links even when you host only one site.) However, out of the box, eZ Publish is not siteaccess-aware when generating cross-siteaccess links. For example, if your site sitea.com is contained within the subtree /sitea and your site siteb.com is contained within the subtree /siteb, internal links from sitea.com to siteb.com would end up linking to "sitea.com/siteb/article" instead of "siteb.com/article". While the user can be redirected with rewrite rules, it still creates a confusing user experience. Here's a simple solution jointly developed with another eZ Partner Granite Horizon that results in generated links that are siteaccess-aware.
For us, the introduction of the HST in BC means more complex cross-province tax rules. For our software service judgmentcalculator.com we previously charged all Canadians 5% GST. Now we must charge our customers a different tax rate depending on the province that they live in. Thankfully, with eZ Publish as our webshop platform, we were able to quickly implement a custom VAT (value added taxes) handler.
2009 was a busy year at Mugo, and we were actually a bit surprised to find that we had worked on over 40 different websites and web applications. eZ Publish has enabled us to provide a wide variety of powerful and flexible web solutions. Before 2010 speeds by, we'd like to take a moment to look back at a sampling of the types of solutions we've built (and continue to build), as well as a few other successes from the past year.
eZ Publish is well-known as a Content Management System with built-in multi-language features. To present different translations of pages, eZ Publish uses 3 major components: content translation, content class translation, and template / script translation. In this post, we will explain these 3 components and introduce a script to help translate strings in templates.
It is a reasonably common use case to fetch a list of content objects based on a common attribute implemented across multiple content classes. For example, to fetch all articles, blog posts and comments published by a given author. Certainly one could do multiple fetches and then massage the result sets together, but that's a lot of work. In this post I'll create a custom template operator (which is not the same as a custom fetch function, although the latter might be a better extension if one were a fan of doing things 'semantically') The operator will do the fetch with one SQL query. And I hope to shine some light on the eZ Publish db schema around objects, along the way.
Many products -- PDF books, songs, and online games, among others, are well suited for a pay-per-download workflow. In such a case, customers buy products online and receive immediate access, without requiring any action from the seller. Mugo Web has written an article outlining how eZ Publish provides a framework to quickly set up pay-per-download products.