PL/SQL API
Overview
The plug-in package UC_FROALA_RTE
exposes several functions and procedures allowing easier integration with Oracle APEX on the PL/SQL level:
- Validate access token
- Get the current CLOB checksum
- Get the CLOB value
- Set the CLOB value
- Clear the CLOB value in the session state
- Support for native clearing session state using browser URL
Functions
access_token_validate
The function validates the encoded access token string and returns true
if a given string is a valid access token encoded string. Otherwise, the function returns false
.
The function accepts arguments described in the table below.
Argument | Type | Description |
---|---|---|
p_access_token | VARCHAR2 | The current value of the encoded access token. |
Syntax
UC_FROALA_RTE.access_token_validate (
p_access_token in varchar2
) return boolean;
Example
declare
v_result boolean;
v_access_token_string varchar2(32767);
begin
v_result := UC_FROALA_RTE.(v_access_token_string)
end;
getChecksum
The function calculates and returns the current checksum for the given CLOB value.
The function accepts arguments described in the table below.
Argument | Type | Description |
---|---|---|
p_clob | CLOB | The CLOB of which checksum will be returned. |
Syntax
UC_FROALA_RTE.getChecksum(
p_clob IN CLOB
) return number;
Example
declare
v_clob clob;
v_checksum number;
begin
v_checksum := UC_FROALA_RTE.getChecksum(
p_clob => v_clob
);
end;
getValue
Function returns rich text document currently stored as draft CLOB in the plug-in session state. Function accepts only one argument - APEX page item name.
Argument | Type | Description |
---|---|---|
p_item_name | VARCHAR2 | An item name implementing the plug-in. |
Syntax
UC_FROALA_RTE.getValue(
p_item_name in VARCHAR2
) return CLOB;
Example
declare
v_clob clob;
begin
v_clob := UC_FROALA_RTE.getValue(
p_item_name => 'P1_PAGE_ITEM'
);
end;
Draft CLOB
Learn more about the plug-in session state in Item Plug-in \ Oracle APEX integration \ Session state.
clobGetHTML Signature 1
The function returns the given CLOB
value with optional extra HTML code, ensuring that rich text formatting is the same as in the plug-in editor.
The function accepts arguments described in the table below.
Argument | Type | Default | Description |
---|---|---|---|
p_clob | CLOB | A CLOB value to be displayed. | |
p_include_css | Boolean | false | When set to true , returned CLOB is computed to include the plug-in CSS files. Otherwise, the returned CLOB is the given |
Syntax
UC_FROALA_RTE.clobGetHTML(
p_clob in CLOB,
p_include_css in BOOLEAN default false
) return CLOB;
Example 1
declare
v_clob clob;
begin
v_clob := UC_FROALA_RTE.getValue('P1_ITEM_NAME');
v_clob := UC_FROALA_RTE.clobGetHTML(v_clob);
end;
In the result of executing the example code, the variable v_clob
is assigned with a new CLOB
value including the given CLOB
value embedded in additional div container. See the HTML code below for reference:
<div class="uc-froala--container uc-froala--readonly fr-view">
{CLOB}
</div>
Where {CLOB}
is the plug-in session state CLOB
value.
Example 2
declare
v_clob clob;
begin
v_clob := UC_FROALA_RTE.clobGetHTML(
p_clob => v_clob,
p_include_css => true
);
end;
In the result of executing the example code, the variable v_clob
is assigned a new CLOB
value, including
- the plug-in CSS files preserving the editor's look and feel for rich text document
- the given
CLOB
value embedded in additional div container. See the HTML code below for reference:
<link rel="stylesheet" href="{URL}uc.froala.css" type="text/css">
<link rel="stylesheet" href="{URL}css/froala_editor.pkgd.min.css" type="text/css">
<div class="uc-froala--container uc-froala--readonly fr-view">
{CLOB}
</div>
Where
{URL}
is the current URL to the plug-in files{CLOB}
is the plug-in session stateCLOB
value.
clobGetHTML Signature 2
The function returns the value of the given page item with extra HTML code, ensuring that rich text formatting is the same as in the plug-in editor.
The function accepts arguments described in the table below.
Argument | Type | Default | Description |
---|---|---|---|
p_item_name | VARCHAR2 | An item name implementing the plug-in. | |
p_include_css | Boolean | false | When set to true the result CLOB includes links to the plug-in CSS files. |
Syntax
UC_FROALA_RTE.clobGetHTML(
p_item_name in VARCHAR2,
p_include_css in BOOLEAN default false
) return CLOB;
Example 1
declare
v_clob clob;
begin
v_clob := UC_FROALA_RTE.clobGetHTML('P1_ITEM_NAME');
end;
The example code assigns a new CLOB
value with extra div container enclosing the page item P1_ITEM_NAME fetched from the plug-in session state.
See the HTML code below for reference:
<div class="uc-froala--container uc-froala--readonly fr-view">
{CLOB}
</div>
Where
{CLOB}
is the plug-in session stateCLOB
value.
Example 2
declare
v_clob clob;
begin
v_clob := UC_FROALA_RTE.clobGetHTML(
p_item_name => 'P1_ITEM_NAME',
p_include_css => true
);
end;
In the result of executing the example code, the variable v_clob
is assigned a new CLOB
value, including:
- the plug-in CSS files preserving the editor's look and feel for rich text document
- the page item P1_ITEM_NAME value fetched from the plug-in session state embedded in an additional div container.
See the HTML code below for reference:
<link rel="stylesheet" href="{URL}uc.froala.css" type="text/css">
<link rel="stylesheet" href="{URL}css/froala_editor.pkgd.min.css" type="text/css">
<div class="uc-froala--container uc-froala--readonly fr-view">
{CLOB}
</div>
Where
{URL}
is the current URL to the plug-in files{CLOB}
is the plug-in session stateCLOB
value
setValue Signature 1
The function sets the draft CLOB value in the plug-in session state and attempts to set a page item value in the APEX session state (using APEX_UTIL.SET_SESSION_STATE
).
The function returns the checksum of the given CLOB
and accepts arguments described in the table below.
Argument | Type | Description |
---|---|---|
p_item_name | VARCHAR2 | An item name implementing the plug-in. |
p_value | CLOB |
Syntax
UC_FROALA_RTE.setValue(
p_item_name in varchar2,
p_value in CLOB
) return varchar2;
Example
declare
v_checksum number;
v_clob clob;
begin
v_checksum := UC_FROALA_RTE.setValue(
p_item_name => 'P1_PAGE_ITEM',
p_value => v_clob
);
end;
Draft CLOB
Learn more about the plug-in session state in Item Plug-in \ Oracle APEX integration \ Session state.
setValue Signature 2
The function sets the on-load or draft CLOB value in the plug-in session state based on the given CLOB
value and page item. The function returns the checksum of the given CLOB
.
The function accepts arguments described in the table below.
Argument | Type | Description |
---|---|---|
p_item_name | VARCHAR2 | An item name implementing the plug-in. |
p_type | VARCHAR2 | The CLOB type to be set in the plug-in session state. Accepted values are the following: UC_FROALA_RTE.c_clob_type_draft and UC_FROALA_RTE.c_clob_type_onload |
p_value | CLOB | The value of the CLOB to be set in the plug-in session state. |
p_set_session_state | Boolean | When true , the page item session state is set to the given CLOB value using native Oracle APEX PL/SQL API. |
Syntax
UC_FROALA_RTE.setValue(
p_item_name in varchar2,
p_type in varchar2,
p_value in CLOB,
p_set_session in boolean default true
) return varchar2;
Example
declare
v_clob clob;
v_checksum number;
begin
v_checksum := UC_FROALA_RTE.setValue(
p_item_name => 'P1_PAGE_ITEM',
p_type => UC_FROALA_RTE.c_clob_type_draft,
p_value => v_clob,
p_set_session => true
);
end;
On-load and Draft CLOB
Learn more about the plug-in session state in Item Plug-in \ Oracle APEX integration \ Session state.
Procedures
clobDisplay Signature 1
The procedure displays the given CLOB
value with extra HTML code, ensuring that rich text formatting is the same as in the plug-in editor.
The function accepts arguments described in the table below.
Argument | Type | Default | Description |
---|---|---|---|
p_clob | VARCHAR2 | NULL | An item name implementing the plug-in. |
p_include_css | Boolean | true | When set to true , CLOB is displayed including plug-in CSS files and outer div container |
Syntax
UC_FROALA_RTE.clobDisplay(
p_clob in clob,
p_include_css in boolean defeault true
);
Example 1
declare
v_clob clob;
begin
v_clob clob := UC_FROALA_RTE.getValue('P1_ITEM_NAME');
UC_FROALA_RTE.clobDisplay(
p_clob => v_clob
);
end;
The example code prints to the browser the following HTML:
<div class="uc-froala--container uc-froala--readonly fr-view">
{CLOB}
</div>
where {CLOB}
is the given CLOB value.
The plug-in CSS files are added to the bottom of the page using the Oracle APEX API APEX_CSS.ADD_FILE
. See the code below to see what files are added.
<link rel="stylesheet" href="{URL}uc.froala.css" type="text/css">
<link rel="stylesheet" href="{URL}css/froala_editor.pkgd.min.css" type="text/css">
The {URL}
is the current URL to the plug-in files generated by the plug-in.
Example 2
declare
v_clob clob;
begin
v_clob clob := UC_FROALA_RTE.getValue('P1_ITEM_NAME');
UC_FROALA_RTE.clobDisplay(
p_clob => v_clob,
p_include_css => false
);
end;
The example code prints to the browser only the CLOB HTML without additional CSS files and outer container:
{CLOB}
Where {CLOB}
is the given CLOB
value without any modifications.
clobDisplay Signature 2
The procedure displays a CLOB
value of the given item with extra HTML code, ensuring that rich text formatting is the same as in the plug-in editor.
The procedure accepts arguments described in the table below.
Argument | Type | Description |
---|---|---|
p_item_name | VARCHAR2 | An item name implementing the plug-in. |
Syntax
UC_FROALA_RTE.clobDisplay(
p_item_name in varchar2
p_include_css in boolean defeault true
);
Example 1
begin
UC_FROALA_RTE.clobDisplay(
p_item_name => 'P1_ITEM_NAME'
);
end;
The example code prints to the browser the following HTML:
<div class="uc-froala--container uc-froala--readonly fr-view">
{CLOB}
</div>
where {CLOB}
is the given page item value in fetched from the plug-in session state.
The plug-in CSS files are added to the bottom of the page using the Oracle APEX API APEX_CSS.ADD_FILE
.
<link rel="stylesheet" href="{URL}uc.froala.css" type="text/css">
<link rel="stylesheet" href="{URL}css/froala_editor.pkgd.min.css" type="text/css">
The {URL}
is the current URL to the plug-in files generated by the plug-in.
Example 2
begin
UC_FROALA_RTE.clobDisplay(
p_item_name => 'P1_ITEM_NAME'
p_include_css => false
);
end;
The example code prints to the browser a page item CLOB
value without additional CSS files and outer container:
{CLOB}
Where {CLOB}
is rich text editor HTML without any modifications.
clear
The procedure flushes the plug-in session state for the given page item implementing the plug-in.
The procedure accepts arguments described in the table below.
Argument | Type | Description |
---|---|---|
p_item_name | VARCHAR2 | An item name implementing the plug-in. |
p_set_session_state | BOOLEAN | When set to true procedures set page item session state to NULL using APEX_UTIL.SET_SESSION_STATE . |
Syntax
UC_FROALA_RTE.clear(
p_item_name in varchar2,
p_set_session_state in boolean default false
);
Example 1
Clear rich text document in the plug-in session state only.
begin
UC_FROALA_RTE.clear(
p_item_name => 'P1_UC_RTE_PRO'
);
end;
Example 2
Clear rich text document in the plug-in session state and clear page item value in the APEX session state.
begin
UC_FROALA_RTE.clear(
p_item_name => 'P1_UC_RTE_PRO',
p_set_session_state => true
);
end;
Session state
Learn more about the plug-in session state in Item Plug-in \ Oracle APEX integration \ Session state.
manageClearCache
The procedures clears the plug-in and page item session state based on the current URL syntax. The procedure is mandatory for Oracle APEX not supporting CLOB
values in APEX session state (Oracle APEX prior 22.2).
The procedure doesn't accept any arguments.
Syntax
UC_FROALA_RTE.manageClearCache;
Example
begin
UC_FROALA_RTE.manageClearCache;
end;
Implementation
The procedure has to be implemented as an application process (Shared Components \ Application Processes) with the execution point set to On Load: Before Header (page template header).
Learn more about the plug-in session state in Item Plug-in \ Oracle APEX integration \ Session state.
setValue
The procedure sets the plug-in draft CLOB value in the plug-in collection based on the given CLOB
value. The procedure updates the given page item session state to the given CLOB
value, respecting Oracle APEX limitations for CLOB
support in the session state.
The procedure accepts arguments presented in the table below.
Argument | Type | Description |
---|---|---|
p_item_name | VARCHAR2 | An item name implementing the plug-in. |
p_value | CLOB | A CLOB value for a rich text document. |
Syntax
UC_FROALA_RTE.setValue(
p_item_name in varchar2,
p_value in CLOB
);
Example
declare
v_clob clob;
begin
UC_FROALA_RTE.setValue(
p_item_name => 'P1_UC_RTE_PRO',
p_value => v_clob
);
end;
Session state
Learn more about the plug-in session state in Item Plug-in \ Oracle APEX integration \ Session state.