Mugo Web main content.

Generate highly customized PDFs with wkhtmltopdf and eZ Publish

One of our customer websites sells research reports where all of the content is built and managed in the eZ Publish content management system. These reports are served via HTML through a gated website portal. They wanted to add a dynamic PDF report generation feature (based on content in the CMS); the PDF template was highly customized with nice layouts and styles, cover and back pages, custom page breaks, and much more. Over the years we've had good experiences with the ParadoxPDF extension. However due to its lack of HTML5 + CSS3 support and relatively high server load, we decided to look for an alternative solution. We found that wkhtmltopdf does a great job at producing highly styled PDFs, and we were able to integrate it nicely with eZ Publish.

Online Daily Evaluations

Mugo Web and Royal Columbian Hospital modernize emergency department shift evaluations

Mugo Web and the Royal Columbian Hospital / Eagle Ridge Hospital emergency departments have created an online shift evaluation system now in use in 5 emergency departments across the region. The system is called Online Daily Evaluations and is being used at Royal Columbian Hospital, Eagle Ridge Hospital, Vancouver General Hospital, Victoria General Hospital, and Kelowna General Hospital.

Google analytics

Tracking individual users in Google Analytics

Google Analytics is the most popular tool for understanding how people are finding and using your site. In addition to its standard reports, you can use its User ID feature to get more fine-grained reporting about registered users. This enables you to better measure, anticipate, and meet or exceed your users' needs.

Selecting multiple eZ Tags

New features in eZ Tags: tag reordering and tree menu

The eZ Tags extension by Netgen is a great solution to the problems of managing large or ad hoc taxonomies. It especially solves problems around editorial user experience. 

Recently, Mugo has added a bunch of improvements to the extension. This post talks about 2: allowing users to reorder tags by assigning priorities, and to select tags from a tree menu.


Splitting a Subversion repository into multiple repositories

Having multiple projects stored in one Subversion repository is a challenge if you want to move one of the projects to another repository. Also, over time, moves and deletions can bloat the size of your repository with obsolete, unused data. In this article, we will show you how to extract SVN projects to their own repositories, preserving full commit histories.


Weather widgets and API with Weather Underground

Many weather sites offer embeddable widgets to display weather forecasts on your website. However, if you want to customize the look of the widget, your options are usually quite limited. Weather Underground far surpasses the rest of the options by providing a JSON-based API so that you can use their data to build and style your own widgets.


Google Sitemaps for big sites: splitting the sitemap into multiple files

Sitemaps are an important element of search engine optimization (SEO), in order to provide search engines an accurate outline of what content exists on your site. One of our client sites recently outgrew Google's sitemap URL limit. Instead of removing content from the sitemap, we implemented a simple solution of using a sitemap index to reference multiple sitemap files.


Accidental DDOS by desktop news aggregator

Since the beginning of 2012, for one of our clients with a big news website, we recognized a drastic increase in website traffic without an accompanying increase in ad impressions. Under normal conditions, an increase in traffic would be a positive sign; however, in this case it was caused by end user software that turned normal web users into aggressive web crawlers. This essentially created an accidental but consistent distributed DoS (denial of service) attack.

Here, we explain how we identified the cause and mitigated its effects.


SEO: Eliminating duplicate content on eZ Publish sites

A common task in website search engine optimization is to set up Google Webmaster Tools and go through its HTML suggestions. Many of the suggestions center around duplicate content -- pages at different URLs but that have the same HTML title, meta description, body content, and more. This post summarizes a couple of common duplicate content scenarios within an eZ Publish site, and how to solve them.


mysqldump alternative: MySQL backups with Percona Xtrabackup

Many hosting companies will take care of file system and database backups for you.  We have a few clients where we have file system backups configured, but database backups have to be handled manually, since the database is "live data".  Often we can just configure a cronjob that runs mysqldump so that a database snapshot is stored to a file and thus regularly backed up when the file system backup is run.  However, sometimes you have a perfect storm where mysqldump is too heavy for the server (causing severe slowdowns or even crashing some services), even if run in the least intensive way (such as with the --quick flag) and at a low traffic time: partially due to lack of system resources and a large database.


Subdomain rewrite rule strategy: whitelisting

Here is a quick how-to for a strategy to prevent duplicate content across domains and subdomains of the same site by "whitelisting" discrete domains and redirecting all other requests to the main domain.


Google Page Speed Service and eZ Publish loading performance

Google Page Speed Service is an interesting new offering for websites. It is currently free, but with limited availability for the time being. It claims up to 20 - 60% speed-up in overall page load. It accomplishes this by routing all site traffic through Google, which will automatically perform some optimizations such as minifying CSS and JavaScript and serving some page assets through its own content delivery network (CDN). This is quite interesting, and there is even a site that runs a test to show you how your site performance will change if you use the service. We ran this test on a few client sites, and certainly there was up to a 25% performance improvement on some; however, for others the Google-optimized version was slower!