Mugo Web main content.

In-depth insights on content, code, and creativity

Enterprise login features in eZ Publish: sub-accounts, log in by IP address or referring URL

If you have a membership-based website, the standard model is to provide users access via a username and password. Enterprise customers often require more advanced validation models. Here, we sketch out use cases around validating by IP address or referring URL; and as a bonus topic: multi-seat accounts. We've implemented these advanced features for a couple of sites and they work seamlessly.

LEARN MORE

Salesforce and Marketo integration with eZ Publish

eZ Publish is a powerful Content Management System (CMS), but you typically don't try to build Customer Relationship Management (CRM) and E-mail Marketing features directly into it.  Instead, you usually integrate it with existing solutions. We recently integrated eZ Publish with Salesforce and Marketo on a subscription-based website.

LEARN MORE

eZ Publish workflows: multi-language, collaboration, and scheduled publishing

Mugo's eZ Collaboration Workflow extension has been released for a few years now. We've been able to make continuous improvements over time to solve different and more complex client needs. Here's an update on some of the recent new functionality around multi-language workflows, editing other users' drafts, and scheduled publishing.

LEARN MORE

ezurl() links in eZ Publish 5

In eZ Publish 4 / legacy, formatting link URLs is handled by the well-known ezurl() template operator. This is especially useful when you have multiple siteaccesses and you use URL-based matching. In eZ Publish 5, there is no single ezurl() equivalent; instead, there are several options depending on the type of link you want to display.

LEARN MORE

Varnish caching of non-sensitive content for logged-in users

Varnish is great for high traffic sites where the same pages are served over and over to millions of visitors, but when you have to do something differently depending on the specific user or user group, things get complicated. There are several techniques, and how you might use them depends on the details. Here, we have outlined a solution for a particular use case on eZ Publish.

LEARN MORE

Adding data to the eZ Find index with Index Time Plugins

Index time plugins are one of the most important techniques of extending eZ Find functionality; they allow you to control how and what data is indexed. Combined with custom eZ Find queries, this opens up huge opportunities for providing access to content, well beyond mere 'search'.

In this post we will look at some typical use cases, briefly consider out of the box functionality and then dive into why you would want to make use of index time plugins and how you would go about setting one up.

LEARN MORE

Version history limit in eZ Publish 5

Whenever you edit content in the eZ Publish Administration Interface, eZ Publish stores a new version. eZ Publish has a built-in feature to limit the number of previous versions it stores. However, as of the time of this posting, the eZ Publish 5.x public API to create and update content does not respect the version history limit (which, by default, stores 10 previous versions). We've written a quick function that restores this feature.

LEARN MORE

An introduction to fetching content in eZ Publish 4 and eZ Publish 5

Fetching content in eZ Publish 4 (the "legacy" stack) and eZ Publish 5 (the "new" stack) follow many of the same principles, which is not surprising since the data layer is the same for both versions. You typically have a parent node or location and a set of filters. User permissions -- especially bypassing those permissions -- is often a consideration. In this post we'll explore how to fetch content in the legacy and new stack (as of eZ Publish 5.2).

LEARN MORE

Using VirtualBox to install and test eZ Publish 5

Using virtual machines when developing eZ Publish websites have been useful in 2 main ways (if not more): working in a different server environment than your current machine and standardizing the dev environment for a team of developers. At the moment, I have Ubuntu 13.10 installed as my main operating system, and from time to time I need to work with some older eZ Publish versions that require PHP versions older than Ubuntu 13.10's default; in fact, the oldest eZ Publish version that I can run out of the box on Ubuntu 13.10 is eZ Publish 4.7. I don't like the idea of installing another OS just to work with an older eZ Publish version; that requires creating another partition, configuring grub, and so on. Using virtual machines enables me to work within another OS inside my main OS. That way I can work on a standardized environment specific to each client, while continuing to use my favorite base OS and tools. In this tutorial, I will describe how to install and configure Oracle VirtualBox to create virtual machines that run eZ Publish.

LEARN MORE

Rackspace Performance Cloud benchmarking on eZ Publish

Rackspace recently released their newest generation of cloud servers, called Performance Cloud Servers. Unlike previous new releases, they've made a compelling case to upgrade existing cloud servers, as the "Performance Cloud" servers are cheaper, more powerful, and they use SSD storage. We decided to run some performance tests on an existing eZ Publish site, and saw between a 10-100% performance increase under high loads. 

LEARN MORE

SMS services still deserve attention despite the rise of smart phone apps

Countless presentations are made daily about the ubiquity of smart phones and the new, groundbreaking uses of smart phone apps. However, in many cases, humble text message services can be more useful and efficient.

LEARN MORE

Integrating Disqus comments onto an eZ Publish website

Disqus is one of the most popular third-party commenting tools that can be integrated onto your website. There are a few special considerations when implementing Disqus onto a website where an article might have multiple locations and/or the article's URL might change. In this post, we'll walk you through a basic but robust implementation within an eZ Publish site.

LEARN MORE

eZ Publish code-level events, aka ezpEvent

The eZ Publish events system, known otherwise as "ezpEvent" (the name of the PHP class), supports multiple extension points into the content management system and also enables you to define your own extension points. It was quietly introduced in eZ Publish 4.5.

LEARN MORE

Archiving in eZ Publish: a CSMonitor.com case study

Mugo planned and implemented an article archiving solution for The Christian Science Monitor, an award-winning news website. The site has a large amount of content: visitors have access to articles starting from 1980. In total, the site has almost 800,000 content objects and the current setup serves up to 48 million page views per month.

LEARN MORE

Re-building a corrupt eZ Publish cluster table

We were called to investigate a clustered eZ Publish 4.5 (with eZ DFS) site where most of the images were suddenly missing. As we discovered, due to an erroneous MySQL command, the "ezdfsfile" table had been truncated. It was near the end of the day, and there were no viable database backups since the previous night. We either had to somehow rebuild the "ezdfsfile" table or ask many editors across different departments to re-do all their work from that day. It was a rather panicked situation.

LEARN MORE

How to use Composer to set up an eZ Publish install

Composer is a dependency management tool for PHP that eZ Publish 5 uses. The following is simple step-by-step how-to on using Composer to install eZ Publish (legacy) with additional extensions.

LEARN MORE

Paywall case study: Rasmussen Reports

Electronic media company Rasmussen Reports is best known for their US elections polling, but they do public opinion polling on a wide variety of topics, releasing new poll results on its website daily. Their multi-tier paywall subscription system has successfully helped them generate website revenue at different levels of user engagement.

LEARN MORE

Extended attribute filters: advanced content retrieval in eZ Publish

Retrieving content is one of the most common use cases when working with a content management system. eZ Publish provides a powerful way to retrieve content with its fetch functions. Although it provides a powerful framework for filtering and sorting the content based on a wide range of criteria, sometimes you need to extend the framework. Adding new filters to fetch functions is achieved by using extended attribute filters.

LEARN MORE

ONIX websites: your bibliographic data and the Mugo ONIX Bridge

In the world of books, book publishing and bookselling, the metadata exchange format “ONIX” is the preeminent method of communicating information about a book. In spite of the fact that ONIX is a rather flawed standard and protocol for exchanging bibliographic information, it is the standard which everyone has settled on. Mugo has been working with ONIX since 2003, first building a freely available ONIX management system as a proof of concept for the Centre for Canadian Studies in Publishing at Simon Fraser University and most recently building a turn-key system for an ONIX website - that is - an ONIX powered website.

LEARN MORE

Why and how to start contributing to an enterprise open source CMS community

Open source communities rely very strongly on the community to advance the software in question. eZ Publish adds the "enterprise" part to "enterprise open source content management system" by not only targeting larger enterprises but by also adding a company vendor -- eZ Systems -- behind the software. This helps spur development forward on a consistent pace. However, there is still immense value in having the implementation partner companies contribute their code and insights. Contributing back might not be a natural thing for the partner companies to do; if you're such a partner company, here's why you should and how to do it.

LEARN MORE

5 essential communication tools for a web development company

As a web development company, we spend a lot of time deep in code, implementing solutions.  However, essential to our success is the proper use of additional administrative and communication tools to keep organized, to run smooth projects, and to interact with clients.  Skype, Dropbox, GitHub, and Google Apps are ubiquitous in the industry and embedded in our daily work.  An additional set of less obvious tools are also just as important to our work.

LEARN MORE

Running contests within a content management system to engage visitors

Rasmussen Reports runs a contest where visitors have to guess what an upcoming public opinion poll result will be.  Participants get points depending on how close they are to the actual result.  A new question is asked every week, making for a fun, recurring way for visitors to interact with site content. Here's how we developed the contest on top of an eZ Publish extension called eZ Survey.

LEARN MORE

eZ Publish websites for publishing companies

Over the years we've worked on many websites in the publishing industry. Each has a unique set of requirements and challenges, but we've been able to refine and re-use a set of tools and best practices. These make up what can be called a "publishing package" built on top of the eZ Publish framework.

LEARN MORE

Using a preview siteaccess as an eZ Publish content staging solution

Using eZ Publish's siteaccess system combined with hidden nodes, you can quickly create a flexible content staging solution.

LEARN MORE