X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FEvent.php;h=dac00ceceb4a3e5e008db1bdaa839e5f17d6ed50;hb=a662245c744f4d2faa1b533977f7d21b4de6a724;hp=91521808447ad472b8d3935474673685ff65d56c;hpb=0447bb2769648eadd718e3dd9560ce2f480af8d8;p=friendica.git
diff --git a/src/Model/Event.php b/src/Model/Event.php
index 9152180844..dac00ceceb 100644
--- a/src/Model/Event.php
+++ b/src/Model/Event.php
@@ -1,48 +1,60 @@
.
+ *
*/
namespace Friendica\Model;
-use Friendica\BaseObject;
use Friendica\Content\Text\BBCode;
use Friendica\Core\Hook;
-use Friendica\Core\L10n;
use Friendica\Core\Logger;
-use Friendica\Core\PConfig;
+use Friendica\Core\Protocol;
use Friendica\Core\Renderer;
use Friendica\Core\System;
use Friendica\Database\DBA;
+use Friendica\DI;
+use Friendica\Protocol\Activity;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Map;
use Friendica\Util\Strings;
use Friendica\Util\XML;
/**
- * @brief functions for interacting with the event database table
+ * functions for interacting with the event database table
*/
-class Event extends BaseObject
+class Event
{
- public static function getHTML(array $event, $simple = false)
+ public static function getHTML(array $event, $simple = false, $uriid = 0)
{
if (empty($event)) {
return '';
}
- $bd_format = L10n::t('l F d, Y \@ g:i A'); // Friday January 18, 2011 @ 8 AM.
+ $uriid = $event['uri-id'] ?? $uriid;
- $event_start = L10n::getDay(
- !empty($event['adjust']) ?
- DateTimeFormat::local($event['start'], $bd_format) : DateTimeFormat::utc($event['start'], $bd_format)
- );
+ $bd_format = DI::l10n()->t('l F d, Y \@ g:i A \G\M\TP (e)'); // Friday October 29, 2021 @ 9:15 AM GMT-04:00 (America/New_York)
+
+ $event_start = DI::l10n()->getDay(DateTimeFormat::local($event['start'], $bd_format));
if (!empty($event['finish'])) {
- $event_end = L10n::getDay(
- !empty($event['adjust']) ?
- DateTimeFormat::local($event['finish'], $bd_format) : DateTimeFormat::utc($event['finish'], $bd_format)
- );
+ $event_end = DI::l10n()->getDay(DateTimeFormat::local($event['finish'], $bd_format));
} else {
$event_end = '';
}
@@ -51,21 +63,21 @@ class Event extends BaseObject
$o = '';
if (!empty($event['summary'])) {
- $o .= "
" . BBCode::convert(Strings::escapeHtml($event['summary']), false, $simple) . "
";
+ $o .= "" . BBCode::convertForUriId($uriid, Strings::escapeHtml($event['summary']), $simple) . "
";
}
if (!empty($event['desc'])) {
- $o .= "" . BBCode::convert(Strings::escapeHtml($event['desc']), false, $simple) . "
";
+ $o .= "" . BBCode::convertForUriId($uriid, Strings::escapeHtml($event['desc']), $simple) . "
";
}
- $o .= "" . L10n::t('Starts:') . "
" . $event_start . "
";
+ $o .= "" . DI::l10n()->t('Starts:') . "
" . $event_start . "
";
if (!$event['nofinish']) {
- $o .= "" . L10n::t('Finishes:') . "
" . $event_end . "
";
+ $o .= "" . DI::l10n()->t('Finishes:') . "
" . $event_end . "
";
}
if (!empty($event['location'])) {
- $o .= "" . L10n::t('Location:') . "
" . BBCode::convert(Strings::escapeHtml($event['location']), false, $simple) . "
";
+ $o .= "" . DI::l10n()->t('Location:') . "
" . BBCode::convertForUriId($uriid, Strings::escapeHtml($event['location']), $simple) . "
";
}
return $o;
@@ -73,27 +85,27 @@ class Event extends BaseObject
$o = '' . "\r\n";
- $o .= '
' . BBCode::convert(Strings::escapeHtml($event['summary']), false, $simple) . '
' . "\r\n";
+ $o .= '
' . BBCode::convertForUriId($uriid, Strings::escapeHtml($event['summary']), $simple) . '
' . "\r\n";
- $o .= '
' . L10n::t('Starts:') . ' ' . DI::l10n()->t('Starts:') . ' ' . $event_start
. '
' . "\r\n";
if (!$event['nofinish']) {
- $o .= '
' . L10n::t('Finishes:') . ' ' . DI::l10n()->t('Finishes:') . ' ' . $event_end
. '
' . "\r\n";
}
if (!empty($event['desc'])) {
- $o .= '
' . BBCode::convert(Strings::escapeHtml($event['desc']), false, $simple) . '
' . "\r\n";
+ $o .= '
' . BBCode::convertForUriId($uriid, Strings::escapeHtml($event['desc']), $simple) . '
' . "\r\n";
}
if (!empty($event['location'])) {
- $o .= '
' . L10n::t('Location:') . ' '
- . BBCode::convert(Strings::escapeHtml($event['location']), false, $simple)
+ $o .= '' . DI::l10n()->t('Location:') . ' '
+ . BBCode::convertForUriId($uriid, Strings::escapeHtml($event['location']), $simple)
. '
' . "\r\n";
// Include a map of the location if the [map] BBCode is used.
@@ -110,7 +122,7 @@ class Event extends BaseObject
}
/**
- * @brief Convert an array with event data to bbcode.
+ * Convert an array with event data to bbcode.
*
* @param array $event Array which contains the event data.
* @return string The event as a bbcode formatted string.
@@ -139,15 +151,11 @@ class Event extends BaseObject
$o .= '[event-location]' . $event['location'] . '[/event-location]';
}
- if ($event['adjust']) {
- $o .= '[event-adjust]' . $event['adjust'] . '[/event-adjust]';
- }
-
return $o;
}
/**
- * @brief Extract bbcode formatted event data from a string.
+ * Extract bbcode formatted event data from a string.
*
* @params: string $s The string which should be parsed for event data.
* @param $text
@@ -157,36 +165,31 @@ class Event extends BaseObject
{
$ev = [];
- $match = '';
+ $match = [];
if (preg_match("/\[event\-summary\](.*?)\[\/event\-summary\]/is", $text, $match)) {
$ev['summary'] = $match[1];
}
- $match = '';
+ $match = [];
if (preg_match("/\[event\-description\](.*?)\[\/event\-description\]/is", $text, $match)) {
$ev['desc'] = $match[1];
}
- $match = '';
+ $match = [];
if (preg_match("/\[event\-start\](.*?)\[\/event\-start\]/is", $text, $match)) {
$ev['start'] = $match[1];
}
- $match = '';
+ $match = [];
if (preg_match("/\[event\-finish\](.*?)\[\/event\-finish\]/is", $text, $match)) {
$ev['finish'] = $match[1];
}
- $match = '';
+ $match = [];
if (preg_match("/\[event\-location\](.*?)\[\/event\-location\]/is", $text, $match)) {
$ev['location'] = $match[1];
}
- $match = '';
- if (preg_match("/\[event\-adjust\](.*?)\[\/event\-adjust\]/is", $text, $match)) {
- $ev['adjust'] = $match[1];
- }
-
$ev['nofinish'] = !empty($ev['start']) && empty($ev['finish']) ? 1 : 0;
return $ev;
@@ -200,8 +203,8 @@ class Event extends BaseObject
private static function compareDatesCallback($event_a, $event_b)
{
- $date_a = (($event_a['adjust']) ? DateTimeFormat::local($event_a['start']) : $event_a['start']);
- $date_b = (($event_b['adjust']) ? DateTimeFormat::local($event_b['start']) : $event_b['start']);
+ $date_a = DateTimeFormat::local($event_a['start']);
+ $date_b = DateTimeFormat::local($event_b['start']);
if ($date_a === $date_b) {
return strcasecmp($event_a['desc'], $event_b['desc']);
@@ -211,7 +214,7 @@ class Event extends BaseObject
}
/**
- * @brief Delete an event from the event table.
+ * Delete an event from the event table.
*
* Note: This function does only delete the event from the event table not its
* related entry in the item table.
@@ -226,12 +229,12 @@ class Event extends BaseObject
return;
}
- DBA::delete('event', ['id' => $event_id], ['cascade' => false]);
- Logger::log("Deleted event ".$event_id, Logger::DEBUG);
+ DBA::delete('event', ['id' => $event_id]);
+ Logger::info("Deleted event", ['id' => $event_id]);
}
/**
- * @brief Store the event.
+ * Store the event.
*
* Store the event in the event table and create an event item in the item table.
*
@@ -247,6 +250,7 @@ class Event extends BaseObject
$event['cid'] = intval($arr['cid'] ?? 0);
$event['guid'] = ($arr['guid'] ?? '') ?: System::createUUID();
$event['uri'] = ($arr['uri'] ?? '') ?: Item::newURI($event['uid'], $event['guid']);
+ $event['uri-id'] = ItemURI::insert(['uri' => $event['uri'], 'guid' => $event['guid']]);
$event['type'] = ($arr['type'] ?? '') ?: 'event';
$event['summary'] = $arr['summary'] ?? '';
$event['desc'] = $arr['desc'] ?? '';
@@ -255,8 +259,7 @@ class Event extends BaseObject
$event['allow_gid'] = $arr['allow_gid'] ?? '';
$event['deny_cid'] = $arr['deny_cid'] ?? '';
$event['deny_gid'] = $arr['deny_gid'] ?? '';
- $event['adjust'] = intval($arr['adjust'] ?? 0);
- $event['nofinish'] = intval(!empty($arr['nofinish'] || !empty($event['start']) && empty($event['finish'])));
+ $event['nofinish'] = intval($arr['nofinish'] ?? (!empty($event['start']) && empty($event['finish'])));
$event['created'] = DateTimeFormat::utc(($arr['created'] ?? '') ?: 'now');
$event['edited'] = DateTimeFormat::utc(($arr['edited'] ?? '') ?: 'now');
@@ -265,26 +268,17 @@ class Event extends BaseObject
if ($event['finish'] < DBA::NULL_DATETIME) {
$event['finish'] = DBA::NULL_DATETIME;
}
- $private = intval($arr['private'] ?? 0);
-
- $conditions = ['uid' => $event['uid']];
- if ($event['cid']) {
- $conditions['id'] = $event['cid'];
- } else {
- $conditions['self'] = true;
- }
-
- $contact = DBA::selectFirst('contact', [], $conditions);
// Existing event being modified.
if ($event['id']) {
// has the event actually changed?
$existing_event = DBA::selectFirst('event', ['edited'], ['id' => $event['id'], 'uid' => $event['uid']]);
- if (!DBA::isResult($existing_event) || ($existing_event['edited'] === $event['edited'])) {
-
- $item = Item::selectFirst(['id'], ['event-id' => $event['id'], 'uid' => $event['uid']]);
-
- return DBA::isResult($item) ? $item['id'] : 0;
+ if (!DBA::isResult($existing_event)) {
+ return 0;
+ }
+
+ if ($existing_event['edited'] === $event['edited']) {
+ return $event['id'];
}
$updated_fields = [
@@ -295,24 +289,19 @@ class Event extends BaseObject
'desc' => $event['desc'],
'location' => $event['location'],
'type' => $event['type'],
- 'adjust' => $event['adjust'],
'nofinish' => $event['nofinish'],
];
DBA::update('event', $updated_fields, ['id' => $event['id'], 'uid' => $event['uid']]);
- $item = Item::selectFirst(['id'], ['event-id' => $event['id'], 'uid' => $event['uid']]);
+ $item = Post::selectFirst(['id', 'uri-id'], ['event-id' => $event['id'], 'uid' => $event['uid']]);
if (DBA::isResult($item)) {
- $object = '