Publisher 3 released!

October 22, 2019

December 3, 2018 was when work started on Publisher 3. Ten months later it is finally released.

The biggest change is under the hood with how the translated data is stored. It used to be divided between the exp_publisher_titles and exp_publisher_data tables, which mimicked ExpressionEngine's native storage schema. ExpressionEngine 4 introduced a new database schema, which consists of each custom field having it's own table, e.g. exp_channel_data_field_X. If your site has more than 25 entries you will be directed to a second page to finish the upgrade process. All of the Publisher data will be migrated to the new schema. Please backup your database before starting this process just in-case. If you wrote any custom add-ons that interfaced with Publisher and possibly referenced the exp_publisher_data table directly, your add-on will probably break. For example, my own Publisher Low Search compatibility add-on is not yet updated to support Publisher 3. Shame on me.

Publisher 3 also introduces Phrase searching. Phrase groups allows for easy organization of phrases, but if you have a lot of phrases it can be hard to find what you're looking for. It searches the phrase value as well as the phrase name.

You can also export Categories and Phrases, pass the .csv along to a translation team, then re-import them. Be careful to make sure everything is UTF-8 when re-importing. Some people like to open .csv files in Excel, and if not managed well, the character encoding could get messed up.

Publisher 3 also introduces a new Benchmark service, which records the execution time of every Publisher action and adds it to EE's Output Profiler at the bottom of the page. As stated in the documentation, Publisher is a robust add-on, and adding translations to content is no small task. It will add to ExpressionEngine's load time, which is why caching is recommended. The Benchmark service now lets you see exactly where the processing time is going, and potentially identify areas to improve your page load time.

Unfortunately Fluid support did not make it into the initial 3.0 release. I know this is a highly requested feature, but it is also very challenging to support. Basic Fluid support is implemented (simple field types such as text, checkboxes etc), but disabled for now. It gets very complex when a Grid field that contains a Relationship field is inside of a Fluid field. It also requires several new hooks to be added to ExpressionEngine's core. Hopefully a 3.1 or 3.2 release of Publisher includes full Fluid support.

Publisher 3 drops support for ExpressionEngine 3. The new database schema dicated this.