function HeartbeatActivity::__construct in Heartbeat 6.4
Same name and namespace in other branches
- 6.3 includes/heartbeatactivity.inc \HeartbeatActivity::__construct()
- 7 includes/heartbeatactivity.inc \HeartbeatActivity::__construct()
constructor
Parameters
$data Array or Object with fields that can match this object: Data for the message, some are converted. It's possible to give a sql-result set as data which will adapt to a heartbeatActivity object.
$template HeartbeatMessageTemplate: holds the template data.
File
- includes/
heartbeatactivity.inc, line 66 - HeartbeatActivity object Defines one heartbeat activity object.
Class
- HeartbeatActivity
- Class defines an activity message object
Code
function __construct($data, HeartbeatMessageTemplate $template) {
$this->template = $template;
$this->additions = new stdClass();
$this->message_id = $this->template->message_id;
if (is_object($data)) {
$data = (array) $data;
}
if (isset($data['uaid'])) {
$this->uaid = $data['uaid'];
}
if (isset($data['count'])) {
$this->count = $data['count'];
}
// Only load the user if it's needed.
if (empty($data['mail'])) {
$this->actor = heartbeat_user_load($data['uid']);
}
else {
$account = new stdClass();
$message_actor_data = unserialize($data['data']);
unset($data['data']);
$account->data = $message_actor_data;
$account->heartbeat_activity_settings = isset($message_actor_data['heartbeat_activity_settings']) ? $message_actor_data['heartbeat_activity_settings'] : array();
foreach (user_fields() as $field) {
if (isset($data[$field])) {
$account->{$field} = $data[$field];
}
}
$this->actor = $account;
}
$this->uid = $data['uid'];
$this->uid_target = $data['uid_target'];
$this->nid = $data['nid'];
$this->nid_info = !empty($data['nid_info']) ? unserialize($data['nid_info']) : array();
$this->nid_target = isset($data['nid_target']) ? (int) $data['nid_target'] : 0;
$this->nid_target_info = !empty($data['nid_target_info']) ? unserialize($data['nid_target_info']) : array();
$this->timestamp = !empty($data['timestamp']) ? $data['timestamp'] : $_SERVER['REQUEST_TIME'];
// For performance reasons, one activity has knowlegde of the comment count.
$this->additions->comment_count = isset($data['uaid_comments']) ? $data['uaid_comments'] : 0;
$this->access = (int) $data['access'];
if (isset($data['message'])) {
$this->message = $data['message'];
}
else {
$this->message = $this->template->message;
}
if (!empty($data['message_concat'])) {
$this->message_concat = $data['message_concat'];
}
else {
$this->message_concat = $this->template->message_concat;
}
$this
->set_variables($data['variables']);
if (isset($data['extra']['duplicate'])) {
$this->variables['duplicate'] = $data['extra']['duplicate'];
}
}