Understanding Plug-ins

Learn about plug-ins and how to find examples.

About Plug-ins

A plug-in is an extension to the built-in types available APEX.

Create plug-ins for declarative use of new item, region, process and dynamic action types in your application.

APEX supports a set group of authentication scheme, authorization scheme, item, region, dynamic action, and process types. Plug-ins offer a means of augmenting these built-in types by declaratively creating and using new types in your application. Because plug-ins are designed for reuse, developers can export and import them to other workspaces and also share them with the Oracle APEX Plug-in community by using the Plug-in Repository.

The process of implementing a plug-in involves the following steps:

  1. Create a plug-in or import a plug-in into your application workspace.

  2. Edit or create an authorization scheme, item, region, process, or dynamic action type to use the plug-in.

  3. Run your application to test the plug-in.

About Template Component Type Plug-ins

Template Components are reusable UI components that work in Page Designer like any plug-in.

About Template Components

Template Components enable developers to create templates with placeholders, including action positions and action templates. APEX exposes the placeholders in the templates as custom plug-in attributes.

Use Template Components to add new region types to APEX which are not based on PL/SQL. Template Components support template directives, Actions and Menu buttons with row-level conditions, and both CSS and JS files.

About Creating Template Components

To create a Template Component, create a new plug-in and specify the Type as Template Component. Under Templates, enter markup for the template. You specify how the plug-in displays and where it can be used by configuring the Available as attribute:

Template Components can always be used in Template Directives using {with/} and {apply/} syntax without checking any of the checkboxes. This allows you to use Template Components in components that support HTML Expressions with Template Directives. Both server-side and client-side rendered components are supported. For example:

{with/}
PLACEHOLDER1:=Some value
PLACEHOLDER2:=Some value
{apply INTERNAL_NAME/}

Tip: Template Component Type plug-in include support for template directives. To learn more, see Using Template Directives.

Row Selection

To enable selection support for a given Template Component plug-in, under Standard Attributes, select Has Row Selection Support on the plug-in Create or Edit page. You can also use the placeholder APEX$SELECTOR inside a row or partial html template. This placeholder will be rendered as a radio input per row (single selection) or a checkbox input per row (multiple selection).

Custom Attributes

To reference the Static IDs, edit the plug-in and add Custom Attributes with a Scope of Component and use the #STATIC_ID# placeholder syntax. You can quickly synchronize all placeholders as Custom Attributes using clicking the Synchronize from Templates button on the plug-in Edit page. These Custom Attributes are used by Page Designer to assign values to placeholders.

Action Positions and Action Templates

Editing a plug-in and adding Actions enables end users to interact with the Template Component. The Action Template defines if the template is a simple Button or displays a Menu button. The Action Position defines the position of the button within the template. You specify in Page Designer which action to perform on a click of the button.

Slots

Tip: In earlier releases, slots were known as Display Points and later renamed to Positions.

Slots are placeholders in a template component markup where you can place page components, such as regions, items, and buttons. By configuring which page component is supported, you can use slots to restrict the placement of regions, items and buttons in a template component.

Template component slots:

Impacts in Page Designer when using slots:

Nested Templates

Oracle APEX enables you to embed another Template Component within a current Template Component. Nesting Template Components is a way to break templates into smaller reusable components. To nest a Template Component use the use the {with/} and {apply/} syntax of template directives.

Viewing Template Component Examples

The Universal Theme includes several Template Component Type plug-ins:

To view Template Component Type plug-ins available in the go to Shared Components, Templates, and then sort by Type, Template Component.

For more information, see:

Example Plug-ins

View plug-in examples on apex.world and the Oracle APEX GitHub repository.

You can view plug-in implementation examples in the following locations: