aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/metadata.php
diff options
context:
space:
mode:
authorSem <sembrestels@riseup.net>2012-07-20 07:09:38 +0200
committerSem <sembrestels@riseup.net>2012-07-20 07:09:38 +0200
commit07b599a683760d2542014bb04a681463420a3565 (patch)
treecfcd06671529eeec7790fb70a8d490094d7942c9 /engine/lib/metadata.php
parentea0140d87534c3b10e489d13a1449ebb79da832d (diff)
parent174763bcbcd20812dc09f27b64908f9d71b523b9 (diff)
downloadelgg-07b599a683760d2542014bb04a681463420a3565.tar.gz
elgg-07b599a683760d2542014bb04a681463420a3565.tar.bz2
Merge branch 'lorea-preprod'
Conflicts: .gitmodules
Diffstat (limited to 'engine/lib/metadata.php')
-rw-r--r--engine/lib/metadata.php13
1 files changed, 12 insertions, 1 deletions
diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php
index 0ff3a43dc..77fa30e41 100644
--- a/engine/lib/metadata.php
+++ b/engine/lib/metadata.php
@@ -361,13 +361,24 @@ function elgg_enable_metadata(array $options) {
* options available to elgg_get_entities(). Supports
* the singular option shortcut.
*
- * NB: Using metadata_names and metadata_values results in a
+ * @note Using metadata_names and metadata_values results in a
* "names IN (...) AND values IN (...)" clause. This is subtly
* differently than default multiple metadata_name_value_pairs, which use
* "(name = value) AND (name = value)" clauses.
*
* 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.
+ *
* @see elgg_get_entities
*
* @param array $options Array in format: