Co-Curator

Configure the Sophora Web Co-Curator module

Learn how to configure the Sophora Co-Curator module.

The Co-Curator allows editors in Sophora Web to curate index pages (collection, home pages, or overview pages) simultaneously by avoiding the standard Sophora locking mechanism.

Terms: 

  • Composable (also known as "Co-Curator document"): A Co-Curator enhanced index page showing Entries grouped by Sections. Entries include articles, videos, and audios.
  • Section: A thematic bundle of Entries, such as Sports, Lifestyle, and Culture.
  • Entry: Individual documents in a Section.
  • Aggregation: Allows an editor to save the current state of the Composable and release it for publication. The current state is persisted in child nodes of the document.

The Co-Curator module includes mixins and node types for configuring your document model and a Java library for development.

Mixins (sophora-curator-mix)

Composable (sophora-curator-mix:composable)

Use this mixin for Composables. If a document is configured with this mixin, Sophora Web determines if it is opened and shows the tab for simultaneous editing.

  • sophora-curator:defaultSectionIdStem: The default ID stem of Sections in this Composable. 
  • sophora-curator:defaultSectionStructureNode: The default location for Sections in this Composable. 
  • sophora-curator:lastAggregatedAt: The date and time the Composable was last aggregated.
  • sophora-curator:lastAggregatedBy: The user who last aggregated the Composable.
  • sophora-curator:aggregatedSection: A list of aggregated Sections as child nodes of type sophora-curator-nt:aggregatedSection. You derive the last aggregated state from these nodes.

Section (sophora-curator-mix:section)

Use this mixin for the Sections.

  • sophora-curator:defaultEntryIdStem: The default ID stem for Entries in this Section. 
  • sophora-curator:defaultEntryStructureNode: The default location for Entries in this Section.
  • sophora-curator:validEntryNodeTypes: A list of valid node types that can be added to this Section. This list is empty by default, which permits all content with the mixin sophora-curator-mix:entry.

Node types marked with this mixin can be used as Sections.

A node type with this mixin must contain some key properties from the Section-attachment YellowData configured as virtual properties. (See "Configure virtual properties".)

To use the Co-Curator, at least one node type must be a Section.

Entry (sophora-curator-mix:entry)

This mixin must be added to all node types that need to be used in Composables, such as articles, videos, and audios. The mixin contains no properties of its own. Use this mixin for Entries in the Sections of a Composable.

A node type with this mixin must have some key properties from the entry-attachment YellowData configured as virtual properties. (See "Configure virtual properties".)

Child node types

aggregatedSection (sophora-curator-nt:aggregatedSection)

Used to aggregate the Composable. Sophora writes all information about individual Sections into child-nodes of this type.

  • sophora-curator:section: A reference to the Section document. 
  • sophora-curator:order: Defines the position as a BigDecimal from 0 to 100 for sorting in ascending order.
  • sophora-curator:aggregatedEntry: The aggregated Entries as child nodes of type sophora-curator-nt:aggregatedEntry as a list.

aggregatedEntry (sophora-curator-nt:aggregatedEntry)

Used to aggregate a Section.

  • sophora-curator:entry: A reference to the Entry document.
  • sophora-curator:order: Defines the position as a BigDecimal from 0 to 100 for sorting in ascending order. 

YellowData nodetypes

section-attachment (sophora-curator-nt:section-attachment)

This is a YellowData node type.

  • sophora-curator:composableId: The ID of the Composable the Section belongs to. 
  • sophora-curator:order: Defines the position as a BigDecimal from 0 to 100 for sorting in ascending order. 

You must configure these virtual properties on Sections.

entry-attachment (sophora-curator-nt:entry-attachment)

This is a Yellowdata nodetype.

  • sophora-curator:composableId: The ID of the Composable the Entry belongs to.
  • sophora-curator:sectionId: The ID of the Section the Entry belongs to. 
  • sophora-curator:order: Defines the position as a BigDecimal from 0 to100 for sorting in ascending order. 

You must configure these virtual properties on Entries.

Configure virtual properties

Sections and Entries must have their virtual properties set up properly. Besides the properties from their corresponding attachment-type, they also must use the sophora:modificationDate property, which is available for all YellowData nodes.

Sections need these virtual properties:

  • sophora-curator-nt:section-attachment/sophora-curator:composableId
  • sophora-curator-nt:section-attachment/sophora-curator:order
  • sophora-curator-nt:section-attachment/sophora:modificationDate

Entries need these virtual properties:

  • sophora-curator-nt:entry-attachment/sophora-curator:order
  • sophora-curator-nt:entry-attachment/sophora-curator:sectionId
  • sophora-curator-nt:entry-attachment/sophora-curator:composableId
  • sophora-curator-nt:entry-attachment/sophora:modificationDate

Add virtual properties manually

To add virtual properties manually:

  1. In the DeskClient, open a node type in the Admin view.
  2. Open the form tab configuration for the node type. 
  3. In the Available Fields box, select the YellowData tab. This tab lists all available virtual properties.
  4. Drag the relevant virtual properties to the correct form tab of the node type.
  5. Click Save.

We recommend using the provided form field groups.

Last modified on 11/30/20

The content of this page is licensed under the CC BY 4.0 License. Code samples are licensed under the MIT License.

Icon