public getEntities ( array $options = [] ) : mixed | ||
$options | array | Array in format: private_setting_names => null|ARR private setting names private_setting_values => null|ARR metadata values private_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". private_setting_name_value_pairs_operator => null|STR The operator to use for combining (name = value) OPERATOR (name = value); default AND private_setting_name_prefix => STR A prefix to apply to all private settings. Used to namespace plugin user settings or by plugins to namespace their own settings. |
return | mixed | int If count, int. If not count, array. false on errors. |
public function getEntities(array $options = array())
{
$defaults = array('private_setting_names' => ELGG_ENTITIES_ANY_VALUE, 'private_setting_values' => ELGG_ENTITIES_ANY_VALUE, 'private_setting_name_value_pairs' => ELGG_ENTITIES_ANY_VALUE, 'private_setting_name_value_pairs_operator' => 'AND', 'private_setting_name_prefix' => '');
$options = array_merge($defaults, $options);
$singulars = array('private_setting_name', 'private_setting_value', 'private_setting_name_value_pair');
$options = _elgg_normalize_plural_options_array($options, $singulars);
$clauses = $this->getWhereSql('e', $options['private_setting_names'], $options['private_setting_values'], $options['private_setting_name_value_pairs'], $options['private_setting_name_value_pairs_operator'], $options['private_setting_name_prefix']);
if ($clauses) {
// merge wheres to pass to get_entities()
if (isset($options['wheres']) && !is_array($options['wheres'])) {
$options['wheres'] = array($options['wheres']);
} elseif (!isset($options['wheres'])) {
$options['wheres'] = array();
}
$options['wheres'] = array_merge($options['wheres'], $clauses['wheres']);
// merge joins to pass to get_entities()
if (isset($options['joins']) && !is_array($options['joins'])) {
$options['joins'] = array($options['joins']);
} elseif (!isset($options['joins'])) {
$options['joins'] = array();
}
$options['joins'] = array_merge($options['joins'], $clauses['joins']);
}
return $this->entities->getEntities($options);
}
/** * Check if there already is an ElggUpgrade for this upgrade * * @param string $upgrade_id Id in format <plugin_id>:<yyymmddnn> * @return boolean */ public function upgradeExists($upgrade_id) { $upgrade = $this->privateSettings->getEntities(array('type' => 'object', 'subtype' => 'elgg_upgrade', 'private_setting_name' => 'id', 'private_setting_value' => $upgrade_id)); return !empty($upgrade); }