Plugin functions

This page documents the GetSimpleCMS functions available from admin/inc/plugin_functions.php.
The ones you will most commonly need as a plugin/ theme developer are:

register_plugin, add_action, add_filter, createSideMenu, createNavTab, register_script, queue_script, register_style, queue_style

The following functions are mostly used by GS internally:

get_scripts_frontend, get_scripts_backend, get_styles_frontend, get_styles_backend, read_pluginsxml, create_pluginsxml, cdn_fallback, change_plugin

add_action

Signature

add_action($hook_name, $added_function[, $args])

Description
Hooks $added_function in the function queue to be executed at $hook_name.

Parameters

  • $hook_name, the name of the hook to add $added_function to
  • $added_function, the function you want to execute at $hook_name
  • $args (optional), additional arguments you can supply to the $added_function

exec_action

Signature

exec_action($hook_name)

Description
Registers a hook at the line where it is called. Other plugins can then execute a function in that hook by using add_action($hook_name,'their_function');

Parameters

  • $hook_name, the name of the hook to execute

createSideMenu

Signature

createSideMenu($id, $txt[, $action=null, $always=true])

Description
Adds a sidebar link item to the sidebar with $id as id.

Parameters:

  • $id, the id of the sidebar to output the link in
  • $txt, the text of the sidebar item
  • $action (optional), the action parameter in the link's query string. Eg, “edit” will generate a link like load.php?id=myplugin&action=edit
  • $always (optional), set to true if the sidebar item should be loaded on every admin page with a sidebar.

createNavTab

Signature

createNavTab($tabname, $id, $tabtitle[, $action=null])

Parameters:

  • $tabname, the 'page type' of the tab to be created.
  • $id, the ID of the plugin page, as retrieved in the URL as load.php?id=plugin_id.
  • $tabtitle, the title displayed on the nav tab.
  • $action (optional)

register_plugin

Signature

register_plugin($id, $name[, $ver=null, $auth=null, $auth_url=null, $desc=null, $type=null, $init=null])

Description
Registers a plugin in the $plugin_info list.

Parameters

  • $id, the unique ID of the plugin
  • $name, the display name of the plugin
  • $ver (optional), the version of the plugin
  • $auth (optional), the author of the plugin
  • $auth_url (optional), the plugin's or author's website
  • $desc (optional), the plugin's short description
  • $type (optional), the plugin's page type (can be a built-in page type or custom defined)
  • $init (optional), the function to run on plugin page load

add_filter

Signature

add_filter($filter_name, $added_function)

Description
Provides the ability to filter/modify content passed to $added_function.
The (filtered) content is provided to $added_function as parameter and must be returned at the end of the function.

Parameters

  • $filter_name, the name of the filter to hook into. Use one of the built-in filters, or one defined by a plugin.
  • $added_function, the name of a function to execute on $filter_name.

exec_filter

Signature

exec_filter($filter_name[, $data = array()])

Description
Allows filtering content passed as $data. Functions called in add_function will have access to the $data parameter.
These functions must return the modified data.

Parameters

  • $filter_name, the name of the filter. Other developers can add their filters by calling add_filter($filter_name, 'their_function');
  • $data (optional), the data to be passed through the filter (an array of parameters). Defaults to null.

change_plugin

Signature

change_plugin($name[, $active = null])

Description
Toggles the state of a plugin (active/ inactive). Pass $active to force activation.

Parameters

  • $name, the name of the plugin to (de)activate.
  • $active (optional), if specified, will always activate plugin with id $name.

read_pluginsxml

Signature

read_pluginsxml()

Description
Reads in the plugins.xml file and populates the $live_plugins array with activated plugins

create_pluginsxml

Signature

create_pluginsxml([$force = false])

Description
Reads in each plugin and creates the plugins.xml file, if it does not exist, or if $force is true.

Parameters

  • $force (optional) force recreating the plugins.xml file

register_script

Signature

register_script($handle, $src, $ver[, $in_footer=FALSE])

Description
Registers a script in the global $GS_scripts.

Parameters

  • $handle, a unique identifier for the script
  • $src, path to the script
  • $ver, the script's version
  • $in_footer (optional), whether the script should be loaded in the page footer. In the document head by default.

deregister_script

Signature

deregister_script($handle)

Description
Removes the identified script completely from the $GS_scripts global.

Parameters

  • $handle, the unique identifier of the script as registered with register_script

queue_script

Signature

queue_script($handle, $context)

Description
Queue a script to be outputted in the front- or backend (depending on $context), or pass 1 to load in both.

Parameters

  • $handle, the style's unique identifier as registered with register_style
  • $context, pass “GSBACK” or “GSFRONT” constant as parameter, depending on where you want the script loaded

dequeue_script

Signature

dequeue_script($handle, $context)

Description
Removes a script queued with register_script from the script queue (effectively un-loading it).

Parameters

  • $handle, identifier of the script as registered with register_script.
  • $context, pass in either “GSBACK” or “GSFRONT”, depending on where the script should be dequeued.

get_scripts_frontend

Signature

get_scripts_frontend([$footer=FALSE])

Description
Outputs script tags for all scripts queued in the GSFRONT context. Is called once in the theme header, and once in the footer.

Parameters

  • $footer (optional), Whether to load scripts registered with register_script where the $in_footer parameter is either false or true. False by default.

get_scripts_backend

Signature

get_scripts_backend([$footer=FALSE])

Description
Outputs script tags for all scripts queued in the GSBACK context. Is called once in the admin header, and once in the footer.

Parameters

  • $footer (optional), Whether to load scripts registered with register_script where the $in_footer parameter is either false or true. False by default.

cdn_fallback

Signature

cdn_fallback($script)

Description
Ouputs a local cdn fallback link. Only works when GSNOCDN=false.

Parameters

  • $script, the script to fall back for

register_style

Signature

register_style($handle, $src, $ver, $media)

Description
Registers a stylesheet in the global $GS_styles.

Parameters

  • $handle, a unique identifier for the script
  • $src, path to the style
  • $ver, the style's version
  • $media, sets the media attribute on the HTML <link> tag, e.g. 'screen', 'all', 'print', etc.

queue_style

Signature

queue_style($handle[, $context=1])

Description
Queue a style to be outputted in the front- or backend (depending on $context), or pass 1 to load in both.

Parameters

  • $handle, the style's unique identifier as registered with register_style
  • $context (optional but advised), usually you would pass “GSBACK” or “GSFRONT” as parameter, depending on where you want the style loaded. By default: loads it in both contexts.

dequeue_style

Signature

dequeue_style($handle, $context)

Description
Removes a style queued with queue_style from the stylesheet queue (effectively un-loading it).

Parameters

  • $handle, identifier of the style as registered with register_style.
  • $context, pass in either “GSBACK” or “GSFRONT”, depending on where the style should be dequeued.

get_styles_frontend

Signature

get_styles_frontend()

Description
Loops through the $GS_styles global and outputs all styles queued with queue_style
where the queueing $context is “GSFRONT”, on front-end pages.

get_styles_backend

Signature

get_styles_backend()

Description
Loops through the $GS_styles global and outputs all styles queued with queue_style
where the queueing $context is “GSBACK”, on admin pages.