Home » Spotlight » PubFactory Updates

PubFactory versions 121–126 were released in Q2 2019. The following highlights the most interesting enhancements included in these releases. For more detailed information, see the release notes and platform documentation. I’ve added the version number indicating when each enhancement was added to the platform, to make it easier to determine if your current version includes the enhancement or not.

Tabs in containers can be directly addressable via URLs (v121)

The platform can now support links to a page that specifies exactly which tabs should be open when the user arrives at the page.

USE CASE: You would like to direct the user to some portion of the content that isn’t opened by default. For instance, you can use this to direct a user specifically to the supplementary material associated with the content.

Containers in the Layout Editor now have a property called “Tab Address.” If you would like to leave “as is” functioning in default mode, keep it blank.

If you would like to utilize this new function and specify which tab should be open to users, type the name of the tab by entering a value into the “Tab Address” field. (Note: this only works if the container style is set to “tabs.”)

Container Body Block Settings

Once a Tab Address is set, a tab can be requested to be opened via a URL. To request a tab, add a query parameter where the Tab Address = block id (or container identifier). For example, add ?tabview=fullhtml to have the Full Text tab be opened when the user first arrives at the page.

Full Text Settings

Ability to align search facets on left/right of page (v121)

A platform-level configuration now facilitates the alignment of the facet column to be set for either the left or the right rail of the page. The default is for search facets to appear on the left rail.

Search Results with Facets on the right
NOT THE DEFAULT: Search Results with Facets on the right

New Text Label editing interface (v122)

We have given the Text Label interface a major update, making it easier to find labels and to correctly manage them in multilingual situations.

New Text Label UI
New Text Label UI

COUNTER 5 SUSHI Release (v122)

The SUSHI end points for COUNTER 5 have now been released.

The biggest changes are:

  • All end points are now using the REST standard
  • SOAP messages are no longer required
  • All responses from the end points are in a JSON format
  • All API end points require an API Key.

The API Key can be found on the Account Details tab in the external ID section:

API Key External ID

To generate the REST API key for an account, click to edit the account, then click “Generate REST API Key.”

UI to Generate REST API Key
UI to Generate REST API Key for an account

Include Headings in Leaf Node TOC entries (v122)

A Table of Contents display component can now show section/chapter headings and subheadings, when the main content is a book overview page.

Headings/subheadings are shown as links that lead to the anchor points of the corresponding headings within the section/chapter documents.

Book TOC showing chapter headings
Book TOC showing chapter headings

A new setting to adjust heading display depth is introduced in the Display Settings tab.

The default is “0” and will not render any chapter headings at all. If a user enters “-1,” it will render the entire depth of the headings/subheadings available. Entering a positive number will show headings up to that depth.

New Heading Display Depth Parameter in the TOC widget
New Heading Display Depth Parameter in the TOC widget

Support for full page Setting for Static pages (v122)

The Static Page Editor now includes a new option to set the page to full-screen mode in order to make it possible to create landing pages. When a static page is marked as a “full screen” static page, it will render without the following elements:

  • static page navigation column
  • page breadcrumbs
  • page title

New Full Screen Parameter in the Static Page Edit Page
New Full Screen Parameter in the Static Page Edit Page

The body of the static page will take up the entire viewport width with no margin or padding. It will fill the entire space between the site header and footer.

Add control in the Purchase Offer and Offer Select configurable components for controlling currencies and country prices (v122)

The Purchase Offer and Offer Select configurable components now have an additional option to control what currencies display and in what order they appear.

All platform-supported currencies will now display, and a user can disable any they see fit and change the ordering as they see fit.

Additionally, there is another control to set what country price amounts to display. This works only for Klopotek clients and is configured to be turned “off” by default, but can be turned “on” by changing the platform configuration.

NOTE: This option will only display one country price per Klopotek tag. If there are multiple tags under one tag, then only one of them will be displayed.

Purchase option widget
Purchase option widget with currencies reordered and only showing country prices for the United States (US) and Germany (DE)

Purchase Options widget
Purchase Options widget with the new Supported Currencies Section

Front-end Display of the multiple currencies
Front-end Display of the multiple currencies defined

Ability to add Custom Stylesheet to static pages (v123)

Static pages now have a new option: “Stylesheet Path.”.

Stylesheet Path

This option can be set to the relative path of a CSS file that has been uploaded to the “staticfiles” directory for the site. If set, when the static page is rendered, this stylesheet will be included. The file will be served through the “staticcss” page described above. All styles will be prefixed with the “ ‘#mainContent #pageContent’ ” selector.

This feature allows for clients to define a single stylesheet that they can use on multiple static pages on the site. This allows them to create reusable styles instead of having to define inline styles in every static page.

No More Visible /Abstract URLs (v123)

The application now uses “/view” as the view page URL for both authenticated and unauthenticated views. The “/abstract” prefix has always just been an alias for “/view,” and its only purpose was to give Google Scholar a link that would take them directly to the abstract. Both “/abstract” and “/view” would always show the user the content based on their authorization level.

Now, regular users are always taken to “/view” only. As before, they still see the content based on their authorization level.

NOTE: If a user visits the “/abstract” URL for a piece of content, they are sent a 301 redirect to the “/view” URL, so the experience will be a smooth journey to the content.

Bots can still access the “/abstract” URL; when they request that URL, the page will be forced into an unauthenticated view.

This follows from our discussion with Google Scholar and the need for Google’s bot to have access to the unauthenticated abstract view of an article for indexing in Google.

Inbound OpenURL resolution (v123)

PubFactory has added support for resolving inbound OpenURL links via a new page that extends the search page.

More details on OpenURL can be found here; however, PubFactory has not implemented support for every OpenURL parameter. PubFactory is only supporting these parameters: genre, issn, isbn, volume, issue, spage, artnum, title, atitle, aufirst, aulast.

At a high level, the PubFactory OpenURL resolver will handle the following:

  • If an OpenURL request returns only one document, the user will be automatically redirected to the content view page for that item.
  • If an OpenURL request for an article finds no matches and contains the ISSN within the request, the OpenURL resolver will attempt to find the issue associated with the unfound article and return it.
  • If an OpenURL request for an issue finds no matches and contains the ISSN within the request, the OpenURL resolver will attempt to find the journal associated with the unfound issue belongs to and return it.
  • If an OpenURL request for a book or chapter finds no matches and contains the ISBN within the request, the OpenURL resolver will attempt to find the Book that matches the ISBN and return it.

Hit Highlight navigation (v123)

There’s a new widget that adds additional functionality to the “Hit Highlight” toggle functionality. It allows a user to go forward and backward between search hit results similar to the way the browser’s built-in find would work.

The site must have hit highlighting available and the “Hit Highlight” page tool item must be selected:

Hit Highlight Page Tool

Add the dynamic block “Hit Highlighting Navigation” to the page and set how the block should be positioned on the page.

Hit highlighting Navigation

It is recommended that you put the widget in a “box” component at the bottom of the layout.

Hit Highlighting Navigation Block Settings

The navigation widget will appear when:

  1. The toggle is visible.
  2. “Hit Highlight” is set to be visible.
  3. There are hits on the page.

Navigation Widget

If any of those conditions are not met, the widget will not appear.

Teachers Notes (v124)

The supplementary materials component now supports different types of supplementary materials.

Supplementary Materials Component

In order to support this, the supplementary materials widget now includes an additional display aspect setting: “Teachers Notes.”:

Supplementary Materials Widget

Use this setting to choose which kinds of supplementary materials to display in the current location. The different kinds of supplementary materials are defined in a resource manifest and can be selected in the offer defined in the AMS so that different users can have access to specific sets of supplementary materials:

Supplementary Materials Block Settings

USE CASE: Provision of teacher’s notes to teachers without letting students have access to them.

We’ve also added another configuration option to specify which display aspect should NOT be considered when the all access types allowed in the search yields a returns “true” response. This was developed to avoid having to update all existing subscriptions that do not have specific access type options checked.

Support multi-select for downloading references (v126)

The References widget in the Layout Engine now supports a multi-select download option.

References Widget


  • Select the checkbox next to the citation for any reference that you want to download, or…
  • Select the checkbox next to the “Export References” label to select them all.
  • Click the “Export References” link to download the selected references.
  • A pop-up will appear, allowing the user to select which format to use for downloading.

Support multi-select for downloading figures (v126)

The Figures widget in the Layout Engine now supports a multi-select download option.

Figures Widget

You can select all figures, or select them individually.

NOTE: In some edge case scenarios, there may be multiple images in a figure. In these cases, you will be able to select the figure, but not the individual images that make up the figure.


Orders Report Page Details Update (v106 [PF v124])

The AMX Orders Report page has been updated to combine and add new columns:

  • AMS Order ID
  • Order date
  • Concatenated account First Name Last Name (First Name, Last Name, and concatenated First Name Last Name will each be included in the export)
  • Account email (email and username will be included in the export)
  • Product purchased
  • Offer Name
  • Subscription start date
  • Subscription end date
  • Order status
  • Payment Processor
  • PayPal reference number (which links to the actual transaction report returned by PayPal)
  • Total $ amount (amount and currency code will be included separately in the export)

Orders Report Page Details

Orders Report Page Filters (v106 [PF v124])

The AMX Orders Report page now has filters:

  • Order ID (long)
  • Order Date (date range)
  • Account Name (wildcard string search)
  • Product purchased (wildcard string search)
  • Order Status (complete, pending, or failed drop-down menu selection)
  • Reference Number (wildcard string search)
  • Total (price or amount) <-- whole number searches entered value +/- 1
  • Offer Name (wildcard string search) <-- this field will be used to differentiate between PPV, 1 years subs, 2 year subs, etc.

Orders Report Page Filters

Orders Report Page Filters

Orders Report Page Exports (v106 [PF v124])

The AMX Orders Report page now supports TSV export of the table and filter results.

  • AMS Order ID
  • Order date
  • Account First Name
  • Account Last Name
  • Concatenated account First Name Last Name
  • Account email
  • Account username
  • Product purchased
  • Offer Name
  • Subscription start date
  • Subscription end date
  • Order status
  • PayPal reference number
  • Currency Code
  • Total $ amount

Cascading Soft Deletion (v107 [PF v126])

The AMS now supports soft deletions. For now, this will only be available for super users, and is still limited on which objects can be deleted.

At this point deletion is supported for:

  • Accounts
  • Subscriptions
  • Products
  • Offers
  • Publishers
  • Roles

We expect to use this function mostly for deleting accounts and subscriptions.

NOTE: When clicking on the “delete” link within a search, or on many of the view pages, it will take you to a review of what downstream dependencies will be deleted if you proceed. This allows you to fully understand the implications of deleting the object.

Delete Object

Soft vs Hard Deletions

Soft deletions remove access to the object through the interface but the underlying object still exists in the database. Hard deletions remove the underlying objects. For a number of technical reasons, hard deletions are a bad idea and are not supported.

GDPR Secure Deletion

In order to ensure that we meet GDPR requirements when someone requests a GDPR deletion, there is an option to delete with obfuscation. Currently, this is only accessible to accounts through the UI.

When the “Securely Deleted” option is selected, it explains what fields will be wiped for GDPR:

GDPR Secure Deletion

GDPR Secure Deletion
Secure Deletion shows what fields in what objects will be wiped

GDPR Secure Deletion
Regular Deletion will simply show what objects will be marked as deleted

Tokens, Discounts, Notices, and Idp Metadata now have an “enabled” flag

We have added an enabled column to notices, tokens/discounts, and idp metadata.

As part of the cascading deletion, we have added back links to various view pages to make navigation a little cleaner.


Quick links to access other Spotlight articles:

Client News
Tips & Tricks
The View from the Hidden Corner
Conferences & Webinars