In-depth insights on content, code, and creativity
Some time ago I wrote a blog post about integrating Salesforce and Marketo in a web marketing solution powered by a content management system (in this case, the eZ Publish CMS). Recently, Mugo had the opportunity to migrate one of our clients from Marketo to HubSpot. The decision to move to HubSpot was made for non-technical reasons; regardless, it is useful to review the technical differences and challenges when it comes to integrating the marketing systems with a content management system.
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.
Until some time ago, it was necessary to hack the eZ Publish legacy kernel in order to customize its generic error message, "Fatal error: The web server did not finish its request". This error occurs on all eZ Publish installations whenever there is an HTTP 500 status server error. It is a very common error; some examples of how it's triggered include: trying to access the value of a non-existent object attribute; the use of a non-existent PHP class or function; and too much memory usage.
Now, since this pull request from Mugo has been merged to the eZ Publish kernel, we have made it possible to customize the error page without hacking the kernel. In this post I will show you the new standard way to do this with a simple INI setting and your own PHP function.
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 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.
Links are one of the core elements of the web. Links within body content are not only good for user experience, but also for SEO, engagement, and conversion. As we read, for example, a sports article, there might be links on the athlete names pointing to their biography pages. Or, when reading an author's bibliography, the book titles contained therein might be linked to the book pages. Adding and maintaining such in-body links can be very time-consuming; systems that auto-link the text can be a great help for content publishers.
A powerful addition a normal site search is for registered users to be able to save their searches, share the searches with others, and create customized e-mail alerts. This adds a deeper level of interactivity with the site and encourages users to regularly return to the site.
Multi-language sites often have a set of base rules and then edge cases for different parts of the site. For example, on the French version of the site you might only want to show French content on most pages. For the news section, you might want to show press release results from all languages sorted in reverse chronological order, regardless of language. But for the case study section specifically, you might want to show all French versions first, following by case studies in any other language. For the most part, eZ Publish supports these features out of the box. In this post, we'll show you how to extend eZ Publish to sort results by language.
We recently added "quiz" functionality to eZ Publish by extending the eZ Survey extension. The purpose of this functionality is to enable companies to create "on-boarding" quizzes for new hires to learn about company policies and benefits. This was part of a larger intranet implementation.
On subscription-based websites, digital publishers often restrict the majority of content to registered users and/or paid subscribers. However, publishers still need a way to enable non-registered users to sample the website in order for the visitors to more fully understand the benefits to subscribing. This is sometimes called a "softer" or "combination" paywall as opposed to a fully hard paywall (everything protected) or a "porous" paywall (everything available given the right conditions).
One solution for a softer / combination paywall that Mugo recently implemented uses special "hash" URLs to provide time-limited, full access to select articles.
Object states are used in many ways in eZ Publish, from workflows to menu management to controlling SEO tags. In eZ Publish 5, object state information is not available by default as one of the intrinsic attributes of a content or location object. In this post, we will show you how to access object states in PHP (usually in your custom controllers) or in Twig templates.