}
-function sort_by_date($a) {
+function sort_by_date(App &$a) {
usort($a,'ev_compare');
return $a;
intval($arr['id']),
intval($arr['uid'])
);
- if((! count($r)) || ($r[0]['edited'] === $arr['edited'])) {
+ if((! dbm::is_result($r)) || ($r[0]['edited'] === $arr['edited'])) {
// Nothing has changed. Grab the item id to return.
intval($arr['id']),
intval($arr['uid'])
);
- return((count($r)) ? $r[0]['id'] : 0);
+ return((dbm::is_result($r)) ? $r[0]['id'] : 0);
}
// The event changed. Update it.
`location` = '%s',
`type` = '%s',
`adjust` = %d,
- `nofinish` = %d,
+ `nofinish` = %d
WHERE `id` = %d AND `uid` = %d",
dbesc($arr['edited']),
intval($arr['id']),
intval($arr['uid'])
);
- if(count($r)) {
+ if (dbm::is_result($r)) {
$object = '<object><type>' . xmlify(ACTIVITY_OBJ_EVENT) . '</type><title></title><id>' . xmlify($arr['uri']) . '</id>';
$object .= '<content>' . xmlify(format_event_bbcode($arr)) . '</content>';
$object .= '</object>' . "\n";
dbesc($arr['uri']),
intval($arr['uid'])
);
- if(count($r))
+ if (dbm::is_result($r))
$event = $r[0];
$item_arr = array();
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
intval($arr['uid'])
);
- //if(count($r))
- // $plink = $a->get_baseurl() . '/display/' . $r[0]['nickname'] . '/' . $item_id;
+ //if (dbm::is_result($r))
+ // $plink = App::get_baseurl() . '/display/' . $r[0]['nickname'] . '/' . $item_id;
if($item_id) {
"month" => t("month"),
"week" => t("week"),
"day" => t("day"),
+ "allday" => t("all-day"),
+
+ "noevent" => t("No events to display"),
+
+ "dtstart_label" => t("Starts:"),
+ "dtend_label" => t("Finishes:"),
+ "location_label" => t("Location:")
);
return $i18n;
// query for the event by event id
$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`
+ STRAIGHT_JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
WHERE `event`.`uid` = %d AND `event`.`id` = %d $sql_extra",
intval($owner_uid),
intval($event_params["event_id"])
);
- if(count($r))
+ if (dbm::is_result($r))
return $r;
}
// query for the event by date
$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`
+ STRAIGHT_JOIN `item` ON `item`.`event-id` = `event`.`id` AND `item`.`uid` = `event`.`uid`
WHERE `event`.`uid` = %d AND event.ignore = %d
AND ((`adjust` = 0 AND (`finish` >= '%s' OR (nofinish AND start >= '%s')) AND `start` <= '%s')
OR (`adjust` = 1 AND (`finish` >= '%s' OR (nofinish AND start >= '%s')) AND `start` <= '%s'))
dbesc($event_params["adjust_finish"])
);
- if(count($r))
+ if (dbm::is_result($r))
return $r;
}
$dtformat = "%Y%m%dT%H%M%S".$UTC;
$o .= 'DTSTART:'.strftime($dtformat, $tmp).PHP_EOL;
}
- if ($event['finish']) {
+ if (!$event['nofinish']) {
$tmp = strtotime($event['finish']);
$dtformat = "%Y%m%dT%H%M%S".$UTC;
$o .= 'DTEND:'.strftime($dtformat, $tmp).PHP_EOL;
// requested? then show all of your events, otherwise only those that
// don't have limitations set in allow_cid and allow_gid
if (local_user() == $uid) {
- $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location`
+ $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location`, `nofinish`
FROM `event` WHERE `uid`= %d AND `cid` = 0 ",
intval($uid)
);
} else {
- $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location`FROM `event`
- WHERE `uid` = %d AND `cid` = 0 $sql_extra ",
+ $r = q("SELECT `start`, `finish`, `adjust`, `summary`, `desc`, `location`, `nofinish`
+ FROM `event` WHERE `uid`= %d AND `cid` = 0 $sql_extra ",
intval($uid)
);
}
- if(count($r))
+ if (dbm::is_result($r))
return $r;
}
// we are allowed to show events
// get the timezone the user is in
$r = q("SELECT `timezone` FROM `user` WHERE `uid` = %d LIMIT 1", intval($uid));
- if (count($r))
+ if (dbm::is_result($r))
$timezone = $r[0]['timezone'];
// get all events which are owned by a uid (respects permissions);
// of the profile page it should be the personal /events page. So we can use $a->user
$user = ($a->data['user']['nickname'] ? $a->data['user']['nickname'] : $a->user['nickname']);
- if( !(local_user() )&& !(feature_enabled($owner_uid, "export_calendar")) )
+
+ // The permission testing is a little bit tricky because we have to respect many cases
+
+ // It's not the private events page (we don't get the $owner_uid for /events)
+ if(! local_user() && ! $owner_uid)
+ return;
+
+ // Cal logged in user (test permission at foreign profile page)
+ // If the $owner uid is available we know it is part of one of the profile pages (like /cal)
+ // So we have to test if if it's the own profile page of the logged in user
+ // or a foreign one. For foreign profile pages we need to check if the feature
+ // for exporting the cal is enabled (otherwise the widget would appear for logged in users
+ // on foreigen profile pages even if the widget is disabled)
+ if(intval($owner_uid) && local_user() !== $owner_uid && ! feature_enabled($owner_uid, "export_calendar"))
+ return;
+
+ // If it's a kind of profile page (intval($owner_uid)) return if the user not logged in and
+ // export feature isn't enabled
+ if(intval($owner_uid) && ! local_user() && ! feature_enabled($owner_uid, "export_calendar"))
return;
return replace_macros(get_markup_template("events_aside.tpl"), array(