Elgg  Version 1.11
Public Member Functions | Protected Attributes | List of all members
Elgg\Database\Plugins Class Reference

Public Member Functions

 __construct (\Elgg\EventsService $events,\Elgg\Cache\MemoryPool $pool)
 Constructor. More...
 
 getDirsInDir ($dir=null)
 Returns a list of plugin directory names from a base directory. More...
 
 generateEntities ()
 Discovers plugins in the plugins_path setting and creates entities for them if they don't exist. More...
 
 cache (\ElggPlugin $plugin)
 Cache a reference to this plugin by its ID. More...
 
 get ($plugin_id)
 Returns an object with the path $path. More...
 
 exists ($id)
 Returns if a plugin exists in the system. More...
 
 getMaxPriority ()
 Returns the highest priority of the plugins. More...
 
 isActive ($plugin_id, $site_guid=null)
 Returns if a plugin is active for a current site. More...
 
 load ()
 Loads all active plugins in the order specified in the tool admin panel. More...
 
 find ($status= 'active', $site_guid=null)
 Returns an ordered list of plugins. More...
 
 setPriorities (array $order)
 Reorder plugins to an order specified by the array. More...
 
 reindexPriorities ()
 Reindexes all plugin priorities starting at 1. More...
 
 namespacePrivateSetting ($type, $name, $id=null)
 Namespaces a string to be used as a private setting name for a plugin. More...
 
 getProvides ($type=null, $name=null)
 Returns an array of all provides from all active plugins. More...
 
 invalidateProvidesCache ()
 Deletes all cached data on plugins being provided. More...
 
 invalidateIsActiveCache ()
 Delete the cache holding whether plugins are active or not. More...
 
 checkProvides ($type, $name, $version=null, $comparison= 'ge')
 Checks if a plugin is currently providing $type and $name, and optionally checking a version. More...
 
 getDependencyStrings ($dep)
 Returns an array of parsed strings for a dependency in the format: array( 'type' => requires, conflicts, or provides. More...
 
 getAllUserSettings ($user_guid=0, $plugin_id=null, $return_obj=false)
 Returns an array of all plugin user settings for a user. More...
 
 setUserSetting ($name, $value, $user_guid=0, $plugin_id=null)
 Set a user specific setting for a plugin. More...
 
 unsetUserSetting ($name, $user_guid=0, $plugin_id=null)
 Unsets a user-specific plugin setting. More...
 
 getUserSetting ($name, $user_guid=0, $plugin_id=null, $default=null)
 Get a user specific setting for a plugin. More...
 
 setSetting ($name, $value, $plugin_id=null)
 Set a setting for a plugin. More...
 
 getSetting ($name, $plugin_id=null, $default=null)
 Get setting for a plugin. More...
 
 unsetSetting ($name, $plugin_id=null)
 Unsets a plugin setting. More...
 
 unsetAllSettings ($plugin_id=null)
 Unsets all plugin settings for a plugin. More...
 
 getEntitiesFromUserSettings (array $options=array())
 Returns entities based upon plugin user settings. More...
 

Protected Attributes

 $active_ids = array()
 
 $active_ids_known = false
 
 $plugins_by_id
 

Detailed Description

Definition at line 24 of file Plugins.php.

Constructor & Destructor Documentation

Elgg\Database\Plugins::__construct ( \Elgg\EventsService  $events,
\Elgg\Cache\MemoryPool  $pool 
)

Constructor.

Parameters
\Elgg\EventsService$eventsEvents service
\Elgg\Cache\MemoryPool$poolCache for referencing plugins by ID

Definition at line 47 of file Plugins.php.

Member Function Documentation

Elgg\Database\Plugins::cache ( \ElggPlugin  $plugin)

Cache a reference to this plugin by its ID.

Parameters
\ElggPlugin$pluginprivate

Definition at line 189 of file Plugins.php.

Elgg\Database\Plugins::checkProvides (   $type,
  $name,
  $version = null,
  $comparison = 'ge' 
)

Checks if a plugin is currently providing $type and $name, and optionally checking a version.

Parameters
string$typeThe type of the provide
string$nameThe name of the provide
string$versionA version to check against
string$comparisonThe comparison operator to use in version_compare()
Returns
array An array in the form array( 'status' => bool Does the provide exist?, 'value' => string The version provided ) private

Definition at line 631 of file Plugins.php.

Elgg\Database\Plugins::exists (   $id)

Returns if a plugin exists in the system.

Warning
This checks only plugins that are registered in the system! If the plugin cache is outdated, be sure to regenerate it with _elgg_generate_plugin_objects() first.
Parameters
string$idThe plugin ID.
Returns
bool

Definition at line 234 of file Plugins.php.

Elgg\Database\Plugins::find (   $status = 'active',
  $site_guid = null 
)

Returns an ordered list of plugins.

Parameters
string$statusThe status of the plugins. active, inactive, or all.
mixed$site_guidOptional site guid
Returns
[]

Definition at line 370 of file Plugins.php.

Elgg\Database\Plugins::generateEntities ( )

Discovers plugins in the plugins_path setting and creates entities for them if they don't exist.

If there are plugins with entities but not actual files, will disable the entities and mark as inactive. The object holds config data, so don't delete.

Returns
bool private

Definition at line 91 of file Plugins.php.

Elgg\Database\Plugins::get (   $plugin_id)

Returns an object with the path $path.

Parameters
string$plugin_idThe id (dir name) of the plugin. NOT the guid.
Returns
|null

Definition at line 199 of file Plugins.php.

Elgg\Database\Plugins::getAllUserSettings (   $user_guid = 0,
  $plugin_id = null,
  $return_obj = false 
)

Returns an array of all plugin user settings for a user.

Parameters
int$user_guidThe user GUID or 0 for the currently logged in user.
string$plugin_idThe plugin ID (Required)
bool$return_objReturn settings as an object? This can be used to in reusable views where the settings are passed as $vars['entity'].
Returns
array
See also
::getAllUserSettings()

Definition at line 790 of file Plugins.php.

Elgg\Database\Plugins::getDependencyStrings (   $dep)

Returns an array of parsed strings for a dependency in the format: array( 'type' => requires, conflicts, or provides.

'name' => The name of the requirement / conflict 'value' => A string representing the expected value: <1, >=3, !=enabled 'local_value' => The current value, ("Not installed") 'comment' => Free form text to help resovle the problem ("Enable / Search for plugin <link>") )

Parameters
array$depAn dependency array
Returns
array private

Definition at line 666 of file Plugins.php.

Elgg\Database\Plugins::getDirsInDir (   $dir = null)

Returns a list of plugin directory names from a base directory.

Parameters
string$dirA dir to scan for plugins. Defaults to config's plugins_path. Must have a trailing slash.
Returns
array Array of directory names (not full paths) private

Definition at line 60 of file Plugins.php.

Elgg\Database\Plugins::getEntitiesFromUserSettings ( array  $options = array())

Returns entities based upon plugin user settings.

Takes all the options for elgg_get_entities_from_private_settings() in addition to the ones below.

Parameters
array$optionsArray in the format:
plugin_id => STR The plugin id. Required.

plugin_user_setting_names => null|ARR private setting names

plugin_user_setting_values => null|ARR metadata values

plugin_user_setting_name_value_pairs => null|ARR (
                                    name => 'name',
                                    value => 'value',
                                    'operand' => '=',
                                   )
                             Currently if multiple values are sent via
                          an array (value => array('value1', 'value2')
                          the pair's operand will be forced to "IN".

plugin_user_setting_name_value_pairs_operator => null|STR The operator to use for combining
                                   (name = value) OPERATOR (name = value); default AND
Returns
mixed int If count, int. If not count, array. false on errors.

Definition at line 1018 of file Plugins.php.

Elgg\Database\Plugins::getMaxPriority ( )

Returns the highest priority of the plugins.

Returns
int private

Definition at line 246 of file Plugins.php.

Elgg\Database\Plugins::getProvides (   $type = null,
  $name = null 
)

Returns an array of all provides from all active plugins.

Array in the form array( 'provide_type' => array( 'provided_name' => array( 'version' => '1.8', 'provided_by' => 'provider_plugin_id' ) ) )

Parameters
string$typeThe type of provides to return
string$nameA specific provided name to return. Requires $provide_type.
Returns
array private

Definition at line 550 of file Plugins.php.

Elgg\Database\Plugins::getSetting (   $name,
  $plugin_id = null,
  $default = null 
)

Get setting for a plugin.

Parameters
string$nameThe name of the setting.
string$plugin_idThe plugin ID (Required)
mixed$defaultThe default value to return if none is set
Returns
mixed
See also
::getSetting()

Definition at line 929 of file Plugins.php.

Elgg\Database\Plugins::getUserSetting (   $name,
  $user_guid = 0,
  $plugin_id = null,
  $default = null 
)

Get a user specific setting for a plugin.

Parameters
string$nameThe name of the setting.
int$user_guidThe user GUID or 0 for the currently logged in user.
string$plugin_idThe plugin ID (Required)
mixed$defaultThe default value to return if none is set
Returns
mixed
See also
::getUserSetting()

Definition at line 879 of file Plugins.php.

Elgg\Database\Plugins::invalidateIsActiveCache ( )

Delete the cache holding whether plugins are active or not.

Returns
void private

Definition at line 611 of file Plugins.php.

Elgg\Database\Plugins::invalidateProvidesCache ( )

Deletes all cached data on plugins being provided.

Returns
boolean private

Definition at line 599 of file Plugins.php.

Elgg\Database\Plugins::isActive (   $plugin_id,
  $site_guid = null 
)

Returns if a plugin is active for a current site.

Parameters
string$plugin_idThe plugin ID
int$site_guidThe site guid
Returns
bool

Definition at line 275 of file Plugins.php.

Elgg\Database\Plugins::load ( )

Loads all active plugins in the order specified in the tool admin panel.

Note
This is called on every page load. If a plugin is active and problematic, it will be disabled and a visible error emitted. This does not check the deps system because that was too slow.
Returns
bool private

Definition at line 312 of file Plugins.php.

Elgg\Database\Plugins::namespacePrivateSetting (   $type,
  $name,
  $id = null 
)

Namespaces a string to be used as a private setting name for a plugin.

For user_settings, two namespaces are added: a user setting namespace and the plugin id.

For internal (plugin priority), there is a single internal namespace added.

Parameters
string$typeThe type of setting: user_setting or internal.
string$nameThe name to namespace.
string$idThe plugin's ID to namespace with. Required for user_setting.
Returns
string private

Definition at line 508 of file Plugins.php.

Elgg\Database\Plugins::reindexPriorities ( )

Reindexes all plugin priorities starting at 1.

Returns
bool private

Definition at line 490 of file Plugins.php.

Elgg\Database\Plugins::setPriorities ( array  $order)

Reorder plugins to an order specified by the array.

Plugins not included in this array will be appended to the end.

Note
This doesn't use the ->setPriority() method because all plugins are being changed and we don't want it to automatically reorder plugins.
Parameters
array$orderAn array of plugin ids in the order to set them
Returns
bool private

Definition at line 433 of file Plugins.php.

Elgg\Database\Plugins::setSetting (   $name,
  $value,
  $plugin_id = null 
)

Set a setting for a plugin.

Parameters
string$nameThe name of the setting - note, can't be "title".
mixed$valueThe value.
string$plugin_idThe plugin ID (Required)
Returns
bool
See also
::setSetting()

Definition at line 904 of file Plugins.php.

Elgg\Database\Plugins::setUserSetting (   $name,
  $value,
  $user_guid = 0,
  $plugin_id = null 
)

Set a user specific setting for a plugin.

Parameters
string$nameThe name. Note: cannot be "title".
mixed$valueThe value.
int$user_guidThe user GUID or 0 for the currently logged in user.
string$plugin_idThe plugin ID (Required)
Returns
bool
See also
::setUserSetting()

Definition at line 828 of file Plugins.php.

Elgg\Database\Plugins::unsetAllSettings (   $plugin_id = null)

Unsets all plugin settings for a plugin.

Parameters
string$plugin_idThe plugin ID (Required)
Returns
bool
See also
::unsetAllSettings()

Definition at line 976 of file Plugins.php.

Elgg\Database\Plugins::unsetSetting (   $name,
  $plugin_id = null 
)

Unsets a plugin setting.

Parameters
string$nameThe name of the setting.
string$plugin_idThe plugin ID (Required)
Returns
bool
See also
::unsetSetting()

Definition at line 953 of file Plugins.php.

Elgg\Database\Plugins::unsetUserSetting (   $name,
  $user_guid = 0,
  $plugin_id = null 
)

Unsets a user-specific plugin setting.

Parameters
string$nameName of the setting
int$user_guidThe user GUID or 0 for the currently logged in user.
string$plugin_idThe plugin ID (Required)
Returns
bool
See also
::unsetUserSetting()

Definition at line 853 of file Plugins.php.

Member Data Documentation

Elgg\Database\Plugins::$active_ids = array()
protected

Definition at line 29 of file Plugins.php.

Elgg\Database\Plugins::$active_ids_known = false
protected

Definition at line 34 of file Plugins.php.

Elgg\Database\Plugins::$plugins_by_id
protected

Definition at line 39 of file Plugins.php.


The documentation for this class was generated from the following file: