Plugin API


#1

The following API methods are available to your plugins and can be called within your CFC.

Usage

All methods below are available in your CFC’s (by the extend attribute) and should be called like:

<cfset myvar = mymethod(param1="x", param2="y")>

add_action

Adds the action hook into Razuna. If you want to display your template code within Razuna you need to call an action. The Plugin Hooks shows all the available actions.

Parameters
Required
Description
Comments
Available
pid true The Id of your plugin. You can get the ID programatically with getMyID().    
action true The action you want to trigger (see Plugin Hooks).    
comp true Name of your component (CFC).    
func true Name of the function to call (within the CFC you define above).    
args false Arguments to pass.    
Returns
Nothing

del_action

Removes the action hook from Razuna.

Parameters
Required
Description
Comments
Available
pid true The Id of your plugin. You can get the ID programatically with getMyID().    
action false The name of the action.    
comp false Name of your component (CFC).    
func false Name of the function    
args false Arguments to pass.    
Returns
Nothing

The action will be removed with a SQL query and with the parameters you pass. Example: In order to remove any action with the action name you would use this method like:

<cfset del_action(pid="24zu2iucuizui34" action="on_file_add")>

Please note that the “args” argument will be queried as a “wildcard” (SQL like) in order to select the actions to remove.

getDatasource

Returns the datasource of this Razuna instance.

Returns
String

You can use the getDatasource method to dynamically get the datasource in your cfquery code. Example:

<cfquery datasource="#getDatasource()#" name="myquery">...</cfquery>

getDatabase

Returns the database being used. Since Razuna supports 5 different databases you sometimes need to query the database in use to adjust your SQL code.

Returns
Comments
String h2 = The embedded H2 database (Oracle syntax support)
oracle = Oracle
mysql = MySQL
mssql = MS SQL
db2 = IBM DB2 

Example:

<cfif getDatabase() EQ "mysql">...</cfid>

getSchema

Returns the schema being used. For some databases (Oracle, DB2, MS SQL) Razuna places its tables into a schema. In order to query your tables correctly you need to prefix your table with the schema.

Returns
Comments
String  

getStorage

Returns the storage mechanism being used.

Returns
Comments
String local = Local storage
amazon = Amazon S3
nirvanix = Nirvanix NAS/CDN
akamai = Akamai NetStore  

getHostID

Since Razuna is multi-tenant system, each tenant has its own tenant identification (hostID). You always have to query against the hostid and should always have a “host_id” column in all your tables. This allows Razuna to screen all your records in one place and is a security measurement for your customers.

Returns
Comments
String  

getHostPrefix

Next to the HOSTID the HOSTDBPREFIX is the most important parameter. All tenants are segmented in “sharding” groups. For small deployments, this is always the same value (raz1), but for large deployments with thousands of tenants it might be that there are sharding groups deployed. To be on the save side, you always prefix your table queries with the hostdbprefix.

Returns
Comments
String  
<cfquery datasource="#getDatasource()#" name="myquery">
SELECT column
FROM #getHostPrefix()#table
WHERE host_id = #getHostID()#
</cfquery>

getUsers

Gets all the users of this tenant.

Returns
Comments
Query  

getUser

Get the detailed information from one user

Parameters
Required
Description
Comments
Available
user_id true The Id of the user.    
Returns
Query

getUsersOfGroups

WIll return all users of a the given group(s).

Parameters
Required
Description
Comments
Available
groupid true The Id of the group. You can also pass a list consisting of multiple groupids, like 108,109,110   
Returns
Query

Example:

<cfset useringroup = getUsersOfGroups("108,109,110")>

getUploadTemplates

Returns all available Upload Templates.

Returns
Query

getLabels

Returns all available labels.

Returns
Query

getCustomFields

Returns all available custom fields.

Returns
Query

getCustomFieldsValues

Returns all available custom fields and the values of the fileid being passed.

Parameters
Required
Description
Comments
Available
fileid true The ID of the file.    
Returns
Query

getMyID

Returns the ID of your plugin.

Parameters
Required
Description
Comments
Available
pluginname true The name of your plugin. This should be the name of the folder you place your code in. Example "myplugin" which resides in "/razuna/plugins/myplugin"   
Returns
Query

Example:

<cfset myID = getMyID("myplugin")>

sendEmail

Will send an eMail from Razuna.

Parameters
Required
Description
Comments
Available
to false eMail address to send eMail to If you do not pass a value the eMail is being sent to the current user. Instead of using "to" you can also pass in the userid alternatively. You can use multiple addresses separated with a comma ",".  
cc false eMail address to CC. You can use multiple addresses separated with a comma ",".  
bcc false eMail address to BCC You can use multiple addresses separated with a comma ",".  
from false eMail address to use for "from" Razuna automatically uses the "from" address defined in the settings. If you want to overwrite the from email, enter an alternative address.  
subject false Subject of the message    
message false Message    
userid false ID of user. Instead of the "to" parameter you also also pass the ID of the user and it will send the message to the proper eMail address for you.  
Returns
Nothing

getFolderName

Returns the name of the folder.

Parameters
Required
Description
Comments
Available
folderid true The ID of the folder.    
Returns
String

addLabels

Lets you assign labels to the file defined.

Parameters
Required
Description
Comments
Available
labelids true ID of the label to assign. You can also pass in a list of labelids separated with a comma ",".  
fileid true ID of the file.    
type true Type of the file. img = images
vid = videos
aud = audios
doc = all other file formats 
 
Returns
Nothing

execUploadTemplate

Executes the Upload Template on the passed in file id.

Parameters
Required
Description
Comments
Available
utid true ID of the upload template to execute.    
fileid true ID of the file.    
type true Type of the file. img = images
vid = videos
aud = audios
 
args true List of arguments.    
Returns
Nothing

moveFile

Moves the file to the designated folder.

Parameters
Required
Description
Comments
Available
folderid true ID of the new folder.    
fileid true ID of the file. You can also pass in a list of fileids separated with a comma ",".  
type true Type of the file. img = images
vid = videos
aud = audios
doc = all other file formats 
 
Returns
Nothing

setMetadata

Applies metadata values to the file.

Parameters
Required
Description
Comments
Available
fileid true ID of the file. You can also pass in a list of fileids separated with a comma ",".  
type true Type of the file. img = images
vid = videos
aud = audios
doc = all other file formats 
 
metadata true Metadata This is a list of metadata with the fieldname and value separated with a ";".  
Returns
Nothing

This expects metadata to be passed in as a list, separated with a “;” and the field values being separated with a “:”. Example:

<!--- Define list --->
<cfset metalist = "img_keywords:val1,val2;img_description:This is a nice picture of a girl">
<!--- Call method --->
<cfset setMetadata(fileid="108", type="img", metadata=metalist)>

Videos

Metadata fields

vid_keywords

vid_description

Documents

Metadata fields

file_keywords

file_desc

For PDF files you additionally have the following metadata fields available:

Metadata fields

author

rights

authorsposition

captionwriter

webstatement

rightsmarked

Audios

Metadata fields

aud_keywords

aud_description

Images

Metadata fields

img_keywords

img_description

For images you additionally have the option to define the XMP metadata values. The following fields can be used:

Metadata fields

asset_type

subjectcode

creator

title

authorsposition

captionwriter

ciadrextadr

category

supplementalcategories

urgency

description

ciadrcity

ciadrctry

location

ciadrpcode

ciemailwork

ciurlwork

citelwork

intellectualgenre

instructions

source

usageterms

copyrightstatus

transmissionreference

webstatement

headline

datecreated

city

ciadrregion

country

countrycode

scene

state

credit

rights

setMetadataCustom

Applies custom metadata value to the file.

Parameters
Required
Description
Comments
Available
fileid true ID of the file. You can also pass in a list of fileids separated with a comma ",".  
type true Type of the file. img = images
vid = videos
aud = audios
doc = all other file formats 
 
metadata true Metadata This is a list of metadata with the custom fields ID and value separated with a ";".  
Returns
Nothing

This expects metadata to be passed in as a list, separated with a “;” and the field values being separated with a “:”. Example:

<!--- Custom Field ID --->
<cfset fieldid = "ABC999">
<!--- Define list --->
<cfset metalist = "#fieldid#:val1;">
<!--- Call method --->
<cfset setMetadataCustom(fileid="108", type="img", metadata=metalist)>

getMetadataOfFile

Gets the description, keywords and RAW metadata from the file. Will additionally return all the XMP metadata for images and PDF files.

Parameters
Required
Description
Comments
Available
fileid true ID of the file. You can also pass in a list of fileids separated with a comma ",".  
type true Type of the file. img = images
vid = videos
aud = audios
doc = all other file formats 
 
Returns
Query

getFile

Gets the file record(s)

Parameters
Required
Description
Comments
Available
fileid true ID of the file. You can also pass in a list of fileids separated with a comma ",".  
Returns
Query