1<?php 2/** 3 * Elgg metadata 4 * Functions to manage entity metadata. 5 */ 6 7/** 8 * Get a specific metadata object by its id. 9 * If you want multiple metadata objects, use 10 * {@link elgg_get_metadata()}. 11 * 12 * @param int $id The id of the metadata object being retrieved. 13 * 14 * @return \ElggMetadata|false false if not found 15 */ 16function elgg_get_metadata_from_id($id) { 17 return _elgg_services()->metadataTable->get($id); 18} 19 20/** 21 * Deletes metadata using its ID. 22 * 23 * @param int $id The metadata ID to delete. 24 * @return bool 25 */ 26function elgg_delete_metadata_by_id($id) { 27 $metadata = elgg_get_metadata_from_id($id); 28 if (!$metadata) { 29 return false; 30 } 31 return $metadata->delete(); 32} 33 34/** 35 * Fetch metadata or perform a calculation on them 36 * 37 * Accepts all options supported by {@link elgg_get_entities()} 38 * 39 * @see elgg_get_entities() 40 * 41 * @param array $options Options 42 * 43 * @return \ElggMetadata[]|mixed 44 * @since 1.8.0 45 */ 46function elgg_get_metadata(array $options = []) { 47 return _elgg_services()->metadataTable->getAll($options); 48} 49 50/** 51 * Deletes metadata based on $options. 52 * 53 * @warning Unlike elgg_get_metadata() this will not accept an empty options array! 54 * This requires at least one constraint: 55 * metadata_name(s), metadata_value(s), or guid(s) must be set. 56 * 57 * @param array $options An options array. {@link elgg_get_metadata()} 58 * @return bool|null true on success, false on failure, null if no metadata to delete. 59 * @since 1.8.0 60 */ 61function elgg_delete_metadata(array $options) { 62 return _elgg_services()->metadataTable->deleteAll($options); 63} 64