Elgg
Version 2.3
|
Public Member Functions | |
__construct (Cache $cache, Database $db, EntityTable $entityTable, Events $events, MetastringsTable $metastringsTable, Session $session) | |
Constructor. More... | |
get ($id) | |
Get a specific metadata object by its id. More... | |
delete ($id) | |
Deletes metadata using its ID. More... | |
create ($entity_guid, $name, $value, $value_type= '', $owner_guid=0, $access_id=ACCESS_PRIVATE, $allow_multiple=false) | |
Create a new metadata object, or update an existing one. More... | |
update ($id, $name, $value, $value_type, $owner_guid, $access_id) | |
Update a specific piece of metadata. More... | |
createFromArray ($entity_guid, array $name_and_values, $value_type, $owner_guid, $access_id=ACCESS_PRIVATE, $allow_multiple=false) | |
This function creates metadata from an associative array of "key => value" pairs. More... | |
getAll (array $options=array()) | |
Returns metadata. More... | |
deleteAll (array $options) | |
Deletes metadata based on $options. More... | |
disableAll (array $options) | |
Disables metadata based on $options. More... | |
enableAll (array $options) | |
Enables metadata based on $options. More... | |
getEntities (array $options=array()) | |
Returns entities based upon metadata. More... | |
getEntityMetadataWhereSql ($e_table, $n_table, $names=null, $values=null, $pairs=null, $pair_operator= 'AND', $case_sensitive=true, $order_by_metadata=null, $owner_guids=null) | |
Returns metadata name and value SQL where for entities. More... | |
getUrl ($id) | |
Get the URL for this metadata. More... | |
registerMetadataAsIndependent ($type, $subtype= '*') | |
Mark entities with a particular type and subtype as having access permissions that can be changed independently from their parent entity. More... | |
isMetadataIndependent ($type, $subtype) | |
Determines whether entities of a given type and subtype should not change their metadata in line with their parent entity. More... | |
handleUpdate ($event, $object_type, $object) | |
When an entity is updated, resets the access ID on all of its child metadata. More... | |
Protected Attributes | |
$independents = array() | |
$cache | |
$db | |
$entityTable | |
$metastringsTable | |
$events | |
$session | |
$table | |
Definition at line 21 of file MetadataTable.php.
Elgg\Database\MetadataTable::__construct | ( | Cache | $cache, |
Database | $db, | ||
EntityTable | $entityTable, | ||
Events | $events, | ||
MetastringsTable | $metastringsTable, | ||
Session | $session | ||
) |
Constructor.
Cache | $cache | A cache for this table |
Database | $db | The Elgg database |
EntityTable | $entityTable | The entities table |
Events | $events | The events registry |
MetastringsTable | $metastringsTable | The metastrings table |
Session | $session | The session |
Definition at line 59 of file MetadataTable.php.
Elgg\Database\MetadataTable::create | ( | $entity_guid, | |
$name, | |||
$value, | |||
$value_type = '' , |
|||
$owner_guid = 0 , |
|||
$access_id = ACCESS_PRIVATE , |
|||
$allow_multiple = false |
|||
) |
Create a new metadata object, or update an existing one.
Metadata can be an array by setting allow_multiple to true, but it is an indexed array with no control over the indexing.
int | $entity_guid | The entity to attach the metadata to |
string | $name | Name of the metadata |
string | $value | Value of the metadata |
string | $value_type | 'text', 'integer', or '' for automatic detection |
int | $owner_guid | GUID of entity that owns the metadata. Default is logged in user. |
int | $access_id | Default is ACCESS_PRIVATE |
bool | $allow_multiple | Allow multiple values for one key. Default is false |
Definition at line 116 of file MetadataTable.php.
Elgg\Database\MetadataTable::createFromArray | ( | $entity_guid, | |
array | $name_and_values, | ||
$value_type, | |||
$owner_guid, | |||
$access_id = ACCESS_PRIVATE , |
|||
$allow_multiple = false |
|||
) |
This function creates metadata from an associative array of "key => value" pairs.
To achieve an array for a single key, pass in the same key multiple times with allow_multiple set to true. This creates an indexed array. It does not support associative arrays and there is no guarantee on the ordering in the array.
int | $entity_guid | The entity to attach the metadata to |
array | $name_and_values | Associative array - a value can be a string, number, bool |
string | $value_type | 'text', 'integer', or '' for automatic detection |
int | $owner_guid | GUID of entity that owns the metadata |
int | $access_id | Default is ACCESS_PRIVATE |
bool | $allow_multiple | Allow multiple values for one key. Default is false |
Definition at line 298 of file MetadataTable.php.
Elgg\Database\MetadataTable::delete | ( | $id | ) |
Deletes metadata using its ID.
int | $id | The metadata ID to delete. |
Definition at line 94 of file MetadataTable.php.
Elgg\Database\MetadataTable::deleteAll | ( | array | $options | ) |
Deletes metadata based on $options.
array | $options | An options array. elgg_get_metadata() |
Definition at line 363 of file MetadataTable.php.
Elgg\Database\MetadataTable::disableAll | ( | array | $options | ) |
Disables metadata based on $options.
array | $options | An options array. elgg_get_metadata() |
Definition at line 385 of file MetadataTable.php.
Elgg\Database\MetadataTable::enableAll | ( | array | $options | ) |
Enables metadata based on $options.
array | $options | An options array. elgg_get_metadata() |
Definition at line 411 of file MetadataTable.php.
Elgg\Database\MetadataTable::get | ( | $id | ) |
Get a specific metadata object by its id.
If you want multiple metadata objects, use elgg_get_metadata().
int | $id | The id of the metadata object being retrieved. |
Definition at line 84 of file MetadataTable.php.
Elgg\Database\MetadataTable::getAll | ( | array | $options = array() | ) |
Returns metadata.
Accepts all elgg_get_entities() options for entity restraints.
array | $options | Array in format: |
metadata_names => null|ARR metadata names metadata_values => null|ARR metadata values metadata_ids => null|ARR metadata ids metadata_case_sensitive => BOOL Overall Case sensitive metadata_owner_guids => null|ARR guids for metadata owners metadata_created_time_lower => INT Lower limit for created time. metadata_created_time_upper => INT Upper limit for created time. metadata_calculation => STR Perform the MySQL function on the metadata values returned. The "metadata_calculation" option causes this function to return the result of performing a mathematical calculation on all metadata that match the query instead of returning objects.
Definition at line 340 of file MetadataTable.php.
Elgg\Database\MetadataTable::getEntities | ( | array | $options = array() | ) |
Returns entities based upon metadata.
Also accepts all options available to elgg_get_entities(). Supports the singular option shortcut.
When in doubt, use name_value_pairs.
To ask for entities that do not have a metadata value, use a custom where clause like this:
$options['wheres'][] = "NOT EXISTS ( SELECT 1 FROM {$dbprefix}metadata md WHERE md.entity_guid = e.guid AND md.name_id = $name_metastring_id AND md.value_id = $value_metastring_id)";
Note the metadata name and value has been denormalized in the above example.
array | $options | Array in format: metadata_names => null|ARR metadata names metadata_values => null|ARR metadata values metadata_name_value_pairs => null|ARR ( name => 'name', value => 'value', 'operand' => '=', 'case_sensitive' => true ) Currently if multiple values are sent via an array (value => array('value1', 'value2') the pair's operand will be forced to "IN". If passing "IN" as the operand and a string as the value, the value must be a properly quoted and escaped string. metadata_name_value_pairs_operator => null|STR The operator to use for combining (name = value) OPERATOR (name = value); default AND metadata_case_sensitive => BOOL Overall Case sensitive |
order_by_metadata => null|ARR array( 'name' => 'metadata_text1', 'direction' => ASC|DESC, 'as' => text|integer ) Also supports array('name' => 'metadata_text1')
metadata_owner_guids => null|ARR guids for metadata owners
Definition at line 481 of file MetadataTable.php.
Elgg\Database\MetadataTable::getEntityMetadataWhereSql | ( | $e_table, | |
$n_table, | |||
$names = null , |
|||
$values = null , |
|||
$pairs = null , |
|||
$pair_operator = 'AND' , |
|||
$case_sensitive = true , |
|||
$order_by_metadata = null , |
|||
$owner_guids = null |
|||
) |
Returns metadata name and value SQL where for entities.
NB: $names and $values are not paired. Use $pairs for this. Pairs default to '=' operand.
This function is reused for annotations because the tables are exactly the same.
string | $e_table | Entities table name |
string | $n_table | Normalized metastrings table name (Where entities, values, and names are joined. annotations / metadata) |
array | null | $names | Array of names |
array | null | $values | Array of values |
array | null | $pairs | Array of names / values / operands |
string | $pair_operator | ("AND" or "OR") Operator to use to join the where clauses for pairs |
bool | $case_sensitive | Case sensitive metadata names? |
array | null | $order_by_metadata | Array of names / direction |
array | null | $owner_guids | Array of owner GUIDs |
Definition at line 530 of file MetadataTable.php.
Elgg\Database\MetadataTable::getUrl | ( | $id | ) |
Get the URL for this metadata.
By default this links to the export handler in the current view.
int | $id | Metadata ID |
Definition at line 793 of file MetadataTable.php.
Elgg\Database\MetadataTable::handleUpdate | ( | $event, | |
$object_type, | |||
$object | |||
) |
When an entity is updated, resets the access ID on all of its child metadata.
string | $event | The name of the event |
string | $object_type | The type of object |
\ElggEntity | $object | The entity itself |
Definition at line 844 of file MetadataTable.php.
Elgg\Database\MetadataTable::isMetadataIndependent | ( | $type, | |
$subtype | |||
) |
Determines whether entities of a given type and subtype should not change their metadata in line with their parent entity.
string | $type | The type - object, user, etc |
string | $subtype | The entity subtype |
Definition at line 825 of file MetadataTable.php.
Elgg\Database\MetadataTable::registerMetadataAsIndependent | ( | $type, | |
$subtype = '*' |
|||
) |
Mark entities with a particular type and subtype as having access permissions that can be changed independently from their parent entity.
string | $type | The type - object, user, etc |
string | $subtype | The subtype; all subtypes by default |
Definition at line 808 of file MetadataTable.php.
Elgg\Database\MetadataTable::update | ( | $id, | |
$name, | |||
$value, | |||
$value_type, | |||
$owner_guid, | |||
$access_id | |||
) |
Update a specific piece of metadata.
int | $id | ID of the metadata to update |
string | $name | Metadata name |
string | $value | Metadata value |
string | $value_type | Value type |
int | $owner_guid | Owner guid |
int | $access_id | Access ID |
Definition at line 214 of file MetadataTable.php.
|
protected |
Definition at line 29 of file MetadataTable.php.
|
protected |
Definition at line 32 of file MetadataTable.php.
|
protected |
Definition at line 35 of file MetadataTable.php.
|
protected |
Definition at line 41 of file MetadataTable.php.
|
protected |
Definition at line 26 of file MetadataTable.php.
|
protected |
Definition at line 38 of file MetadataTable.php.
|
protected |
Definition at line 44 of file MetadataTable.php.
|
protected |
Definition at line 47 of file MetadataTable.php.