public static function getHTML(array $event, $simple = false)
{
- if (!is_array($event) || !!count($event)) {
+ if (empty($event)) {
return '';
}
*
* Store the event in the event table and create an event item in the item table.
*
- * @param array $event Array with event data.
- * @return int The event id.
+ * @param array $arr Array with event data.
+ * @return int The new event id.
*/
public static function store($arr)
{
$a = self::getApp();
- $event['uri'] = defaults($arr, 'uri' , item_new_uri($a->get_hostname(), $event['uid']));
+ $event = [];
$event['id'] = intval(defaults($arr, 'id' , 0));
$event['uid'] = intval(defaults($arr, 'uid' , 0));
$event['cid'] = intval(defaults($arr, 'cid' , 0));
+ $event['uri'] = defaults($arr, 'uri' , item_new_uri($a->get_hostname(), $event['uid']));
$event['type'] = defaults($arr, 'type' , 'event');
$event['summary'] = defaults($arr, 'summary' , '');
$event['desc'] = defaults($arr, 'desc' , '');
$event['allow_gid'] = defaults($arr, 'allow_gid', '');
$event['deny_cid'] = defaults($arr, 'deny_cid' , '');
$event['deny_gid'] = defaults($arr, 'deny_gid' , '');
- $event['private'] = intval(defaults($arr, 'private' , 0));
$event['adjust'] = intval(defaults($arr, 'adjust' , 0));
$event['nofinish'] = intval(defaults($arr, 'nofinish' , !empty($event['start']) && empty($event['finish'])));
if ($event['finish'] < NULL_DATE) {
$event['finish'] = NULL_DATE;
}
+ $private = intval(defaults($arr, 'private', 0));
- $condition = ['uid' => $event['uid']];
+ $conditions = ['uid' => $event['uid']];
if ($event['cid']) {
- $condition['id'] = $event['cid'];
+ $conditions['id'] = $event['cid'];
+ } else {
+ $conditions['self'] = true;
}
- $contact = dba::selectFirst('contact', [], ['id' => $event['cid'], 'uid' => $event['uid']]);
+ $contact = dba::selectFirst('contact', [], $conditions);
// Existing event being modified.
if ($event['id']) {
'nofinish' => $event['nofinish'],
];
- dba::update('event', $updated_fields, ['id' => $event['cid'], 'uid' => $event['uid']]);
+ dba::update('event', $updated_fields, ['id' => $event['id'], 'uid' => $event['uid']]);
$item = dba::selectFirst('item', ['id'], ['event-id' => $event['id'], 'uid' => $event['uid']]);
if (DBM::is_result($item)) {
$item_arr['allow_gid'] = $event['allow_gid'];
$item_arr['deny_cid'] = $event['deny_cid'];
$item_arr['deny_gid'] = $event['deny_gid'];
- $item_arr['private'] = $event['private'];
+ $item_arr['private'] = $private;
$item_arr['visible'] = 1;
$item_arr['verb'] = ACTIVITY_POST;
$item_arr['object-type'] = ACTIVITY_OBJ_EVENT;
}
// Query for the event by date.
+ // @todo Slow query (518 seconds to run), to be optimzed
$r = q("SELECT `event`.*, `item`.`id` AS `itemid`,`item`.`plink`,
`item`.`author-name`, `item`.`author-avatar`, `item`.`author-link` FROM `event`
LEFT JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
$events = dba::select('event', $fields, $conditions);
if (DBM::is_result($events)) {
- $return = $events;
+ $return = dba::inArray($events);
}
return $return;