/** * Get the audiences for a given event entity * * Returned audience entities are sweetened with the value _link, containing an html-encoded URL * * @param object $e event entity * @return array audience entities */ function get_event_audiences($e) { $audiences = array(); $es = new entity_selector(); $es->description = 'Selecting audiences for event'; $es->limit_tables(); $es->limit_fields(); $es->enable_multivalue_results(); $es->add_type( id_of('event_type')); $es->add_relation('entity.id = ' . $e->id()); $es->add_left_relationship_field('event_to_audience', 'entity', 'id', 'aud_ids'); $with_audiences = $es->run_one(); if (!empty($with_audiences)) { $audiences = array(); $event = reset($with_audiences); $aud_ids = $event->get_value('aud_ids'); $aud_ids = is_array($aud_ids) ? $aud_ids : array($aud_ids); foreach( $aud_ids AS $aud_id ) { $aud = new entity($aud_id); $aud->set_value('_link', $this->construct_link(array('audience'=>$aud->id(),'no_search'=>'1'), false)); $audiences[$aud_id] = $aud; } } return $audiences; }