*/
use Friendica\App;
-use Friendica\Content\Feature;
use Friendica\Content\ForumManager;
use Friendica\Content\Text\BBCode;
-use Friendica\Core\Addon;
use Friendica\Core\Cache;
use Friendica\Core\Config;
+use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\PConfig;
use Friendica\Core\System;
use Friendica\Util\Proxy as ProxyUtils;
use Friendica\Util\XML;
-require_once 'include/enotify.php';
-
/**
* @brief Outputs the counts and the lists of various notifications
*
*
* Expected JSON structure:
* {
- * "result": {
- * "intro": 0,
- * "mail": 0,
- * "net": 0,
- * "home": 0,
- * "register": 0,
- * "all-events": 0,
- * "all-events-today": 0,
- * "events": 0,
- * "events-today": 0,
- * "birthdays": 0,
- * "birthdays-today": 0,
- * "groups": [ ],
- * "forums": [ ],
- * "notify": 0,
- * "notifications": [ ],
- * "sysmsgs": {
- * "notice": [ ],
- * "info": [ ]
- * }
- * }
- * }
+ * "result": {
+ * "intro": 0,
+ * "mail": 0,
+ * "net": 0,
+ * "home": 0,
+ * "register": 0,
+ * "all-events": 0,
+ * "all-events-today": 0,
+ * "events": 0,
+ * "events-today": 0,
+ * "birthdays": 0,
+ * "birthdays-today": 0,
+ * "groups": [ ],
+ * "forums": [ ],
+ * "notify": 0,
+ * "notifications": [ ],
+ * "sysmsgs": {
+ * "notice": [ ],
+ * "info": [ ]
+ * }
+ * }
+ * }
*
* @param App $a The Friendica App instance
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
function ping_init(App $a)
{
$format = 'json';
}
- $tags = [];
- $comments = [];
- $likes = [];
- $dislikes = [];
- $friends = [];
- $posts = [];
$regs = [];
- $mails = [];
$notifications = [];
$intro_count = 0;
header("Content-type: text/xml");
echo XML::fromArray($data, $xml);
}
- killme();
+ exit();
}
$notifs = ping_get_notifications(local_user());
$condition = ["`unseen` AND `uid` = ? AND `contact-id` != ?", local_user(), local_user()];
$fields = ['id', 'parent', 'verb', 'author-name', 'unseen', 'author-link', 'author-avatar', 'contact-avatar',
'network', 'created', 'object', 'parent-author-name', 'parent-author-link', 'parent-guid', 'wall'];
- $params = ['order' => ['created' => true]];
+ $params = ['order' => ['received' => true]];
$items = Item::selectForUser(local_user(), $fields, $condition, $params);
if (DBA::isResult($items)) {
$items_unseen = Item::inArray($items);
$arr = ['items' => $items_unseen];
- Addon::callHooks('network_ping', $arr);
+ Hook::callAll('network_ping', $arr);
foreach ($items_unseen as $item) {
if ($item['wall']) {
);
$mail_count = count($mails);
- if (intval(Config::get('config', 'register_policy')) === REGISTER_APPROVE && is_site_admin()) {
+ if (intval(Config::get('config', 'register_policy')) === \Friendica\Module\Register::APPROVE && is_site_admin()) {
$regs = Friendica\Model\Register::getPending();
if (DBA::isResult($regs)) {
}
}
- if (DBA::isResult($mails)) {
- foreach ($mails as $mail) {
- $notif = [
- 'id' => 0,
- 'href' => System::baseUrl() . '/message/' . $mail['id'],
- 'name' => $mail['from-name'],
- 'url' => $mail['from-url'],
- 'photo' => $mail['from-photo'],
- 'date' => $mail['created'],
- 'seen' => false,
- 'message' => L10n::t('{0} sent you a message'),
- ];
- $notifs[] = $notif;
- }
- }
-
if (DBA::isResult($regs)) {
foreach ($regs as $reg) {
$notif = [
usort($notifs, $sort_function);
if (DBA::isResult($notifs)) {
- // Are the nofications called from the regular process or via the friendica app?
- $regularnotifications = (!empty($_GET['uid']) && !empty($_GET['_']));
-
foreach ($notifs as $notif) {
- if ($a->isFriendicaApp() || !$regularnotifications) {
- $notif['message'] = str_replace("{0}", $notif['name'], $notif['message']);
- }
-
$contact = Contact::getDetailsByURL($notif['url']);
if (isset($contact['micro'])) {
$notif['photo'] = ProxyUtils::proxifyUrl($contact['micro'], false, ProxyUtils::SIZE_MICRO);
if ($format == 'json') {
$data['groups'] = $groups_unseen;
$data['forums'] = $forums_unseen;
- $data['notify'] = $sysnotify_count + $intro_count + $mail_count + $register_count;
+ $data['notify'] = $sysnotify_count + $intro_count + $register_count;
$data['notifications'] = $notifications;
$data['sysmsgs'] = [
'notice' => $sysmsgs,
echo XML::fromArray(["result" => $data], $xml);
}
- killme();
+ exit();
}
/**
*
* @param int $uid User id
* @return array Associative array of notifications
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
function ping_get_notifications($uid)
{
$order = "DESC";
$quit = false;
- $a = get_app();
-
do {
$r = q(
"SELECT `notify`.*, `item`.`visible`, `item`.`deleted`
* @param array $notifs Complete list of notification
* @param array $sysmsgs List of system notice messages
* @param array $sysmsgs_info List of system info messages
- * @param int $groups_unseen Number of unseen group items
- * @param int $forums_unseen Number of unseen forum items
+ * @param array $groups_unseen List of unseen group items
+ * @param array $forums_unseen List of unseen forum items
*
* @return array XML-transform ready data array
*/