Mugo Web main content.

In-depth insights on content, code, and creativity

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.

LEARN MORE

Getting started with eZ Publish 5 and Symfony

Recently, eZ Systems announced that the next major version of eZ Publish will use the Symfony framework. Having heard good things about Symfony as a modern, robust web framework, I am pretty excited at the announcement, and have already dived in to the new eZ Publish 5 code.

LEARN MORE

How to create image aliases in eZ Publish using PHP

Image aliases are used in eZ Publish to define image sizes and other image variations. As an example, this allows for the editor to upload an image once and have it automatically formatted for a thumbnail display, a full size display, and more. By default, image alias files are automatically created whenever they are displayed in a template. However, you might have other use cases whereby you need to generate image alias files outside of the default scenario (for example, for an external site or feed).

LEARN MORE

Using Varnish to speed up eZ Publish websites

Varnish Cache is a powerful website caching system that dramatically increases your site's performance. It does so by sitting in front of your Apache, PHP, content management system, and database stack in order to cache your web pages and serve repeat requests. This saves the back-end stack from consuming unnecessary resources to generate the same pages over and over again. Mugo Web has implemented Varnish in front of eZ Publish for several client websites. Although every client has different needs, we've come up with an outline of tips and considerations that are common across most implementations.

LEARN MORE

Applying borders to eZ Publish images using ImageMagick

One of our clients recently needed to apply a custom frame / border to all images in a certain section of an eZ Publish site. One way to do this is to edit each image in Photoshop or GIMP, but this can be a time-intensive, manual process. Another is to use CSS, but this again takes time and is also more limited. A flexible and automated way to do this is to configure ImageMagick filters in an eZ Publish image alias. The required style would then be applied to all relevant images.

LEARN MORE

Twitter tip: Prompting users to follow you after they Tweet

There are many variations to social media strategies to suit particular client sites and goals. Some implementation details, on the other hand, are universally applicable. One such detail is a Twitter feature whereby a user is prompted to follow your Twitter account whenever they share your content.

LEARN MORE

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.

LEARN MORE

eep case study: Author name resolution in The 49th Shelf

The problem:

One of our favourite projects, The 49th Shelf, aggregates a lot of data from a diversity of sources. Naturally, there is a range of quality; but even more than that: different sources often refer to the same physical object in different ways. Specifically, a person who writes several books can be referred to in a variety of ways:

  • John Reynolds
  • John L. Reynolds
  • John Lawrence Reynolds

There are some heuristics to resolve most of these cases, but there are always seem to be some that defy the code and require a manual fix.

This process has to be performed on the production site, so we want to minimize the amount of time that the data is inconsistent and we don't want to run untested code.

LEARN MORE

Complete approval workflow solution for eZ Publish

Approval workflows of various types are required across the web. Whether for legal review, cross-channel media review, or purely editorial review, approval workflows are essential to define and support content publication. Based on our experience with clients in many industries, Mugo Web has developed an eZ Market extension eZ Collaboration Workflow to be a complete workflow solution.

LEARN MORE

eZ Flow case study: landing page for Rasmussen Reports Election 2012

For many media sites, news changes fast, and the timely updating of content is key. Landing pages are the main information funnel, and it is important for editors to be able to update the content shown on landing pages as easily as possible. Where relevant, content should also update itself. The Rasmussen Reports Election 2012 page is one such example, where we've empowered editors to make content and layout changes in a graphical user interface, without having to contact a web developer. In this article, we will show you how various areas of the Election 2012 page are updated using the eZ Flow extension for eZ Publish.

LEARN MORE

Command line tool for eZ Publish, called "eep"

Mugo has a tool that we use internally to help with the main aspects of a developer's life: development, debugging and maintenance. The tool is called "eep", short for "Ease eZ Publish". It's a command line tool which provides many functions and allows for accomplishing tasks quickly by integrating with tools like awk, grep and xargs for powerful one-liners and supports rapid development of powerful bash scripts by leveraging eep as a library of eZ Publish specific operations.

LEARN MORE

Running multiple instances of eZ Find on the same host

The problem:

By default, 2 instances of eZ Find can not run at the same IP address because eZ Find and Solr communicate with each other via an IP port. This becomes an issue if you happen to run a staging instance on the same server as a production instance, or on your local dev machine where there are many sites running.

A nice solution makes use of the symlinking trick for managing platform-specific versions of settings files I recently documented.

LEARN MORE