By default, plugins are visible for a given number of entries and/or specific entries, let's call it a default plugin visibility.

For example in Content Manager:

  • pluginCmDelete is visible if at least one entry is selected.
  • pluginCmPremiere is visible only for one entry of class DigaCutMT-Project or DigaCutST-Project.

You can restrict further the visibility of your plugins by configuring the IsVisible plugin key with a logical expression by the help of different operators (e.g. +, - etc...), simple values (e.g. 1.24, 'mystring') as well as object properties via get operator (e.g. get('title')).

If the default plugin visibility is true then your IsVisible will be evaluated against each item of your selection. If IsVisible is true for all selected items, then the plugin will be visible.

Beware you can only restrict the visibility to specific entries, not enlarge, as the default plugin visibility is checked before your IsVisible.

Restricting visibility of a top level menu item would also affect all sub-menu items.

Examples

IsVisibleDescription
Title == "New group" and (Number > 1750 or Number <= 1734)Checks that the entry title equals "New group" and its ID/Number is not between 1735 and 1750.
get('mainMedium.SubClips.length') > 0Checks that the main medium has at least one subclip.
get('Story') == 0Checks if the selected item is an entry
not(contains(get('mainMedium.FileRef'), '.WAV')) and not(contains(get('mainMedium.FileRef'), '.wav'))

Checks if the main medium file does not have the wav extension.

Values are case sensitive.

To make it case insensitive, see next example below

contains(uppercase(get('mainMedium.FileRef')), '.PNG')

Checks if the main medium fileref has the png extension with case insensitive

get('mainMediumType') == 'Audio'Checks if the main medium type is audio
not(get('hasAudio'))Checks if the entry has no audio
get('hasAudio') or get('hasVideo')Checks if the entry has audio or video.
This implicitly checks that the entry is an entry and not a group or story.
get('isDavidVideoProject') or get('isDigaCutProject')

Checks if the entry is a isDigaCutProject or isDavidVideoProject

uppercase(get('Table')) == 'VM-SQL-DIGAS\\DEMO_WECONNECT'Checks for a specified table
hostname() == 'vm-dpedemo'Checks for a specified hostname
isBrowserBridgeAvail() == true

Checks for availability of Browser Bridge

A re-login into DPE is required to reflect any change in availability of Browser Bridge Service.

Basic Operators

You can use the following operators in IsVisible value.

The operator names are case sensitive!

e.g. nOT, Or, anD will not be interpreted as resp. not, or, and operators.

Operator

Description

(...)Grouping
f(...)Function call
x.yProperty access
+, -, *, /, %Arithmetic addition, subtraction, multiplication, division, remainder
||String concatenation
==, !=, >=, <=, >, <Comparison operators
andLogical AND
orLogical OR
notLogical NOT
x ? y : zTernary conditional (if x then y else z)

sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh,

sqrt, log, ln, lg, log 10, abs, ceil, floor, round, trunc, length

Arithmetic operations

e.g. abs(exp(1)) returns the absolute value of exponential 1

!Factorial
^, expExponentiation

Advanced Operators

More advanced operators that deal with object properties:

Operator

Description

get(x)this is to access properties of your selected objects.
See the list of properties below for CM.
contains(x,y)returns true if x contains y, using the indexOf js function
uppercase(x)returns x in uppercase, good for case insensitive comparisons
hostname()returns window.location.hostname

CM Entry Properties

Only for entries. You can access entry properties as below by using the get operator.

PropertyDescription
get('title')Returns the title of the entry
get('id')Returns the id of the entry
get('hasThumbnail')Returns true if the entry has a thumbnail

You can find more properties for entries there : Available Binding Values in Content Manager

Computed PropertyDescription
get('mainMediumType')Returns the class of the main medium content.
e.g. "Video" for a video entry, "Audio" for an audio entry, "Graphic" for an image, etc...
get('hasAudio')Returns true if the entry has an audio medium
get('hasAudioFile')Returns true if the entry has a non-virtual main medium of type Audio
get('hasVideo')Returns true if the entry has a video medium
get('isDavidVideoProject') Returns true if the entry is a DavidVideo project
get('isDigaCutProject')Returns true if the entry is a DigaCut project
get('rtfMedium')Returns the entry rtf medium if exists, else null
get('hasRtf')Returns true if the entry has a rtf