}
if (count($registrations) <= 1 || $this->pconfig->get($this->session->getLocalUserId(), 'system', 'detailed_notif')) {
- foreach ($registrations as $reg) {
+ foreach ($registrations as $registration) {
$navNotifications[] = $this->formattedNavNotification->createFromParams(
- [
- 'name' => $reg['name'],
- 'url' => $reg['url'],
- ],
+ $registration['name'],
+ $registration['url'],
$this->l10n->t('{0} requested registration'),
- new \DateTime($reg['created'], new \DateTimeZone('UTC')),
+ new \DateTime($registration['created'], new \DateTimeZone('UTC')),
new Uri($this->baseUrl->get(true) . '/moderation/users/pending')
);
}
} elseif (count($registrations) > 1) {
$navNotifications[] = $this->formattedNavNotification->createFromParams(
- [
- 'name' => $registrations[0]['name'],
- 'url' => $registrations[0]['url'],
- ],
+ $registrations[0]['name'],
+ $registrations[0]['url'],
$this->l10n->t('{0} and %d others requested registration', count($registrations) - 1),
new \DateTime($registrations[0]['created'], new \DateTimeZone('UTC')),
new Uri($this->baseUrl->get(true) . '/moderation/users/pending')
use Friendica\Navigation\Notifications\Entity;
use Friendica\Navigation\Notifications\Exception\NoMessageException;
use Friendica\Navigation\Notifications\ValueObject;
+use Friendica\Network\HTTPException\ServiceUnavailableException;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Proxy;
use Friendica\Util\Temporal;
}
/**
- * @param array $contact A contact array with the following keys: name, url
+ * @param string $contact_name
+ * @param string $contact_url
* @param string $message A notification message with the {0} placeholder for the contact name
* @param \DateTime $date
* @param Uri $href
* @param bool $seen
* @return ValueObject\FormattedNavNotification
- * @throws \Friendica\Network\HTTPException\ServiceUnavailableException
+ * @throws ServiceUnavailableException
*/
- public function createFromParams(array $contact, string $message, \DateTime $date, Uri $href, bool $seen = false): ValueObject\FormattedNavNotification
+ public function createFromParams(string $contact_name, string $contact_url, string $message, \DateTime $date, Uri $href, bool $seen = false): ValueObject\FormattedNavNotification
{
- $contact['photo'] = Contact::getAvatarUrlForUrl($contact['url'], $this->userSession->getLocalUserId(), Proxy::SIZE_MICRO);
+ $contact_photo = Contact::getAvatarUrlForUrl($contact_url, $this->userSession->getLocalUserId(), Proxy::SIZE_MICRO);
$dateMySQL = $date->format(DateTimeFormat::MYSQL);
$templateNotify = [
- 'contact' => $contact,
+ 'contact' => [
+ 'name' => $contact_name,
+ 'url' => $contact_url,
+ 'photo' => $contact_photo,
+ ],
'href' => $href->__toString(),
'message' => $message,
'seen' => $seen,
'localdate' => DateTimeFormat::local($dateMySQL),
'ago' => Temporal::getRelativeDate($dateMySQL),
- 'richtext' => Entity\Notify::formatMessage($contact['name'], $message),
+ 'richtext' => Entity\Notify::formatMessage($contact_name, $message),
];
return new ValueObject\FormattedNavNotification(
- $contact,
+ $contact_name,
+ $contact_url,
+ $contact_photo,
$date->getTimestamp(),
strip_tags($templateNotify['richtext']),
Renderer::replaceMacros($this->tpl, ['notify' => $templateNotify]),
}
return $this->createFromParams(
- self::$contacts[$notification->actorId],
+ self::$contacts[$notification->actorId]['name'],
+ self::$contacts[$notification->actorId]['url'],
$message['notification'],
$notification->created,
new Uri($this->baseUrl->get() . '/notification/' . $notification->id),
}
return $this->createFromParams(
- self::$contacts[$intro->cid],
+ self::$contacts[$intro->cid]['name'],
+ self::$contacts[$intro->cid]['url'],
$msg,
$intro->datetime,
new Uri($this->baseUrl->get() . '/notifications/intros/' . $intro->id)
protected $seen;
/**
- * @param array $contact Contact array with the following keys: name, url, photo
- * @param string $timestamp Unix timestamp
- * @param string $plaintext Localized notification message with the placeholder replaced by the contact name
- * @param string $html Full HTML string of the notification menu element
- * @param string $href Absolute URL this notification should send the user to when interacted with
- * @param bool $seen Whether the user interacted with this notification once
+ * @param string $contact_name Contact display name
+ * @param string $contact_url Contact profile URL
+ * @param string $contact_photo Contact picture URL
+ * @param string $timestamp Unix timestamp
+ * @param string $plaintext Localized notification message with the placeholder replaced by the contact name
+ * @param string $html Full HTML string of the notification menu element
+ * @param string $href Absolute URL this notification should send the user to when interacted with
+ * @param bool $seen Whether the user interacted with this notification once
*/
- public function __construct(array $contact, string $timestamp, string $plaintext, string $html, string $href, bool $seen)
+ public function __construct(string $contact_name, string $contact_url, string $contact_photo, string $timestamp, string $plaintext, string $html, string $href, bool $seen)
{
- $this->contact = $contact;
+ // Properties differ from constructor because this structure is used in the "nav-update" Javascript event listener
+ $this->contact = [
+ 'name' => $contact_name,
+ 'url' => $contact_url,
+ 'photo' => $contact_photo,
+ ];
$this->timestamp = $timestamp;
$this->plaintext = $plaintext;
$this->html = $html;