diff --git a/include/text.php b/include/text.php index 9fae74252b..fe2b973e58 100644 --- a/include/text.php +++ b/include/text.php @@ -14,6 +14,7 @@ use Friendica\Core\L10n; use Friendica\Core\PConfig; use Friendica\Core\System; use Friendica\Database\DBM; +use Friendica\Model\Event; use Friendica\Model\Item; use Friendica\Model\Profile; use Friendica\Render\FriendicaSmarty; @@ -1235,7 +1236,7 @@ function prepare_body(&$item, $attach = false, $preview = false) { // In order to provide theme developers more possibilities, event items // are treated differently. if ($item['object-type'] === ACTIVITY_OBJ_EVENT && isset($item['event-id'])) { - $ev = format_event_item($item); + $ev = Event::getItemHTML($item); return $ev; } diff --git a/mod/cal.php b/mod/cal.php index ae4928bdf2..fdcb06a6f5 100644 --- a/mod/cal.php +++ b/mod/cal.php @@ -9,11 +9,13 @@ use Friendica\App; use Friendica\Content\Feature; use Friendica\Content\Nav; +use Friendica\Content\Widget; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\System; use Friendica\Database\DBM; use Friendica\Model\Contact; +use Friendica\Model\Event; use Friendica\Model\Group; use Friendica\Model\Profile; use Friendica\Protocol\DFRN; @@ -64,7 +66,7 @@ function cal_init(App $a) '$pdesc' => (($profile['pdesc'] != "") ? $profile['pdesc'] : ""), ]); - $cal_widget = widget_events(); + $cal_widget = Widget\CalendarExport::getHTML(); if (!x($a->page, 'aside')) { $a->page['aside'] = ''; @@ -82,7 +84,7 @@ function cal_content(App $a) Nav::setSelected('events'); // get the translation strings for the callendar - $i18n = get_event_strings(); + $i18n = Event::getStrings(); $htpl = get_markup_template('event_head.tpl'); $a->page['htmlhead'] .= replace_macros($htpl, [ @@ -212,25 +214,25 @@ function cal_content(App $a) // put the event parametes in an array so we can better transmit them $event_params = [ - 'event_id' => (x($_GET, 'id') ? $_GET["id"] : 0), - 'start' => $start, - 'finish' => $finish, - 'adjust_start' => $adjust_start, + 'event_id' => intval(defaults($_GET, 'id', 0)), + 'start' => $start, + 'finish' => $finish, + 'adjust_start' => $adjust_start, 'adjust_finish' => $adjust_finish, - 'ignored' => $ignored, + 'ignore' => $ignored, ]; // get events by id or by date - if (x($_GET, 'id')) { - $r = event_by_id($owner_uid, $event_params, $sql_extra); + if ($event_params['event_id']) { + $r = Event::getListById($owner_uid, $event_params['event-id'], $sql_extra); } else { - $r = events_by_date($owner_uid, $event_params, $sql_extra); + $r = Event::getListByDate($owner_uid, $event_params, $sql_extra); } $links = []; if (DBM::is_result($r)) { - $r = sort_by_date($r); + $r = Event::sortByDate($r); foreach ($r as $rr) { $j = $rr['adjust'] ? DateTimeFormat::local($rr['start'], 'j') : DateTimeFormat::utc($rr['start'], 'j'); if (!x($links, $j)) { @@ -240,7 +242,7 @@ function cal_content(App $a) } // transform the event in a usable array - $events = process_events($r); + $events = Event::prepareListForTemplate($r); if ($a->argv[2] === 'json') { echo json_encode($events); @@ -306,7 +308,7 @@ function cal_content(App $a) } // Get the export data by uid - $evexport = event_export($owner_uid, $format); + $evexport = Event::exportListByUserId($owner_uid, $format); if (!$evexport["success"]) { if ($evexport["content"]) { diff --git a/mod/events.php b/mod/events.php index 8dab59b038..54f4e79528 100644 --- a/mod/events.php +++ b/mod/events.php @@ -6,11 +6,13 @@ use Friendica\App; use Friendica\Content\Nav; +use Friendica\Content\Widget\CalendarExport; use Friendica\Core\ACL; use Friendica\Core\L10n; use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBM; +use Friendica\Model\Event; use Friendica\Model\Item; use Friendica\Model\Profile; use Friendica\Util\DateTimeFormat; @@ -31,7 +33,7 @@ function events_init(App $a) { return; } - $cal_widget = widget_events(); + $cal_widget = CalendarExport::getHTML(); if (! x($a->page,'aside')) { $a->page['aside'] = ''; @@ -155,7 +157,6 @@ function events_post(App $a) { $datarray = []; - $datarray['guid'] = get_guid(32); $datarray['start'] = $start; $datarray['finish'] = $finish; $datarray['summary'] = $summary; @@ -172,16 +173,14 @@ function events_post(App $a) { $datarray['deny_gid'] = $str_group_deny; $datarray['private'] = (($private_event) ? 1 : 0); $datarray['id'] = $event_id; - $datarray['created'] = $created; - $datarray['edited'] = $edited; if (intval($_REQUEST['preview'])) { - $html = format_event_html($datarray); + $html = Event::getHTML($datarray); echo $html; killme(); } - $item_id = event_store($datarray); + $item_id = Event::store($datarray); if (! $cid) { Worker::add(PRIORITY_HIGH, "Notifier", "event", $item_id); @@ -222,7 +221,7 @@ function events_content(App $a) { } // get the translation strings for the callendar - $i18n = get_event_strings(); + $i18n = Event::getStrings(); $htpl = get_markup_template('event_head.tpl'); $a->page['htmlhead'] .= replace_macros($htpl, [ @@ -331,25 +330,25 @@ function events_content(App $a) { // put the event parametes in an array so we can better transmit them $event_params = [ - 'event_id' => (x($_GET, 'id') ? $_GET['id'] : 0), + 'event_id' => intval(defaults($_GET, 'id', 0)), 'start' => $start, 'finish' => $finish, 'adjust_start' => $adjust_start, 'adjust_finish' => $adjust_finish, - 'ignored' => $ignored, + 'ignore' => $ignored, ]; // get events by id or by date - if (x($_GET, 'id')) { - $r = event_by_id(local_user(), $event_params); + if ($event_params['event_id']) { + $r = Event::getListById(local_user(), $event_params['event-id']); } else { - $r = events_by_date(local_user(), $event_params); + $r = Event::getListByDate(local_user(), $event_params); } $links = []; if (DBM::is_result($r)) { - $r = sort_by_date($r); + $r = Event::sortByDate($r); foreach ($r as $rr) { $j = $rr['adjust'] ? DateTimeFormat::local($rr['start'], 'j') : DateTimeFormat::utc($rr['start'], 'j'); if (! x($links,$j)) { @@ -362,8 +361,8 @@ function events_content(App $a) { // transform the event in a usable array if (DBM::is_result($r)) { - $r = sort_by_date($r); - $events = process_events($r); + $r = Event::sortByDate($r); + $events = Event::prepareListForTemplate($r); } if ($a->argc > 1 && $a->argv[1] === 'json'){ @@ -543,8 +542,7 @@ function events_content(App $a) { if ($mode === 'drop' && $event_id) { $del = 0; - $params = ['event_id' => ($event_id)]; - $ev = event_by_id(local_user(), $params); + $ev = Event::getListById(local_user(), $event_id); // Delete only real events (no birthdays) if (DBM::is_result($ev) && $ev[0]['type'] == 'event') { diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index 82c6f46980..b7e4207199 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -20,6 +20,7 @@ use Friendica\Core\PConfig; use Friendica\Core\Protocol; use Friendica\Core\System; use Friendica\Model\Contact; +use Friendica\Model\Event; use Friendica\Network\Probe; use Friendica\Object\Image; use Friendica\Util\Map; @@ -1373,7 +1374,7 @@ class BBCode extends BaseObject // After we're finished processing the bbcode we'll // replace all of the event code with a reformatted version. - $ev = bbtoevent($text); + $ev = Event::fromBBCode($text); // Replace any html brackets with HTML Entities to prevent executing HTML or script // Don't use strip_tags here because it breaks [url] search by replacing & with amp @@ -1811,7 +1812,7 @@ class BBCode extends BaseObject // start which is always required). Allow desc with a missing summary for compatibility. if ((x($ev, 'desc') || x($ev, 'summary')) && x($ev, 'start')) { - $sub = format_event_html($ev, $simple_html); + $sub = Event::getHTML($ev, $simple_html); $text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism", '', $text); $text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/ism", '', $text); diff --git a/src/Model/Event.php b/src/Model/Event.php index 9c35e34e45..a1790edab2 100644 --- a/src/Model/Event.php +++ b/src/Model/Event.php @@ -105,7 +105,7 @@ class Event extends BaseObject * @param array $event Array which contains the event data. * @return string The event as a bbcode formatted string. */ - public static function getBBCode(array $event) + private static function getBBCode(array $event) { $o = ''; @@ -289,10 +289,10 @@ class Event extends BaseObject $item = dba::selectFirst('item', ['id'], ['event-id' => $event['id'], 'uid' => $event['uid']]); if (DBM::is_result($item)) { $object = '' . xmlify(ACTIVITY_OBJ_EVENT) . '' . xmlify($event['uri']) . ''; - $object .= '' . xmlify(format_event_bbcode($event)) . ''; + $object .= '' . xmlify(self::getBBCode($event)) . ''; $object .= '' . "\n"; - $fields = ['body' => format_event_bbcode($event), 'object' => $object, 'edited' => $event['edited']]; + $fields = ['body' => self::getBBCode($event), 'object' => $object, 'edited' => $event['edited']]; Item::update($fields, ['id' => $item['id']]); $item_id = $item['id']; @@ -335,11 +335,11 @@ class Event extends BaseObject $item_arr['verb'] = ACTIVITY_POST; $item_arr['object-type'] = ACTIVITY_OBJ_EVENT; $item_arr['origin'] = $event['cid'] === 0 ? 1 : 0; - $item_arr['body'] = format_event_bbcode($event); + $item_arr['body'] = self::getBBCode($event); $item_arr['event-id'] = $event['id']; $item_arr['object'] = '' . xmlify(ACTIVITY_OBJ_EVENT) . '' . xmlify($event['uri']) . ''; - $item_arr['object'] .= '' . xmlify(format_event_bbcode($event)) . ''; + $item_arr['object'] .= '' . xmlify(self::getBBCode($event)) . ''; $item_arr['object'] .= '' . "\n"; $item_id = Item::insert($item_arr); @@ -429,7 +429,7 @@ class Event extends BaseObject * * @todo We should replace this with a separate update function if there is some time left. */ - public static function removeDuplicates(array $dates) + private static function removeDuplicates(array $dates) { $dates2 = []; @@ -470,7 +470,7 @@ class Event extends BaseObject ); if (DBM::is_result($r)) { - $return = event_remove_duplicates($r); + $return = self::removeDuplicates($r); } return $return; @@ -519,7 +519,7 @@ class Event extends BaseObject ); if (DBM::is_result($r)) { - $return = event_remove_duplicates($r); + $return = self::removeDuplicates($r); } return $return; @@ -570,7 +570,7 @@ class Event extends BaseObject $title = strip_tags(html_entity_decode($title, ENT_QUOTES, 'UTF-8')); } - $html = format_event_html($event); + $html = self::getHTML($event); $event['desc'] = BBCode::convert($event['desc']); $event['location'] = BBCode::convert($event['location']); $event_list[] = [ @@ -605,7 +605,7 @@ class Event extends BaseObject * * @todo Implement timezone support */ - public static function formatListForExport(array $events, $format, $timezone) + private static function formatListForExport(array $events, $format, $timezone) { if (!count($events)) { return ''; @@ -712,7 +712,7 @@ class Event extends BaseObject * * @return array Query results. */ - public static function getListByUserId($uid = 0) + private static function getListByUserId($uid = 0) { $return = []; @@ -761,11 +761,11 @@ class Event extends BaseObject } // Get all events which are owned by a uid (respects permissions). - $events = events_by_uid($uid); + $events = self::getListByUserId($uid); // We have the events that are available for the requestor. // Now format the output according to the requested format. - $res = event_format_export($events, $format, $timezone); + $res = self::formatListForExport($events, $format, $timezone); // If there are results the precess was successfull. if (!empty($res)) { @@ -861,7 +861,7 @@ class Event extends BaseObject } // Format the event location. - $location = event_location2array($item['event-location']); + $location = self::locationToArray($item['event-location']); // Construct the profile link (magic-auth). $sp = false; @@ -916,7 +916,7 @@ class Event extends BaseObject * 'address' => The address of the location,
* 'coordinates' => Latitude‎ and longitude‎ (e.g. '48.864716,2.349014').
*/ - public static function locationToArray($s = '') { + private static function locationToArray($s = '') { if ($s == '') { return []; } diff --git a/src/Model/Item.php b/src/Model/Item.php index efcf05ad6a..64ca81a90b 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -98,7 +98,7 @@ class Item extends BaseObject * @param integer $item_id Item ID that should be delete * @param integer $priority Priority for the notification * - * @return $boolean success + * @return boolean success */ public static function deleteById($item_id, $priority = PRIORITY_HIGH) { @@ -153,7 +153,7 @@ class Item extends BaseObject // If item is a link to an event, delete the event. if (intval($item['event-id'])) { - event_delete($item['event-id']); + Event::delete($item['event-id']); } // If item has attachments, drop them diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index d1b5183a97..5fda6e6a75 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -19,11 +19,11 @@ use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBM; use Friendica\Model\Contact; +use Friendica\Model\Event; use Friendica\Model\GContact; use Friendica\Model\Group; use Friendica\Model\Item; use Friendica\Model\Profile; -use Friendica\Model\Term; use Friendica\Model\User; use Friendica\Object\Image; use Friendica\Protocol\OStatus; @@ -2614,7 +2614,7 @@ class DFRN // Is it an event? if ($item["object-type"] == ACTIVITY_OBJ_EVENT) { logger("Item ".$item["uri"]." seems to contain an event.", LOGGER_DEBUG); - $ev = bbtoevent($item["body"]); + $ev = Event::fromBBCode($item["body"]); if ((x($ev, "desc") || x($ev, "summary")) && x($ev, "start")) { logger("Event in item ".$item["uri"]." was found.", LOGGER_DEBUG); $ev["cid"] = $importer["id"]; @@ -2633,7 +2633,7 @@ class DFRN $ev["id"] = $r[0]["id"]; } - $event_id = event_store($ev); + $event_id = Event::store($ev); logger("Event ".$event_id." was stored", LOGGER_DEBUG); return; }