mirror of
https://github.com/YunoHost-Apps/hubzilla_ynh.git
synced 2024-09-03 19:26:21 +02:00
111 lines
2.6 KiB
PHP
111 lines
2.6 KiB
PHP
<?php
|
|
namespace Zotlabs\Module;
|
|
|
|
|
|
class Notifications extends \Zotlabs\Web\Controller {
|
|
|
|
function post() {
|
|
|
|
if(! local_channel()) {
|
|
goaway(z_root());
|
|
}
|
|
|
|
$request_id = ((\App::$argc > 1) ? \App::$argv[1] : 0);
|
|
|
|
if($request_id === "all")
|
|
return;
|
|
|
|
if($request_id) {
|
|
|
|
$r = q("SELECT * FROM `intro` WHERE `id` = %d AND `uid` = %d LIMIT 1",
|
|
intval($request_id),
|
|
intval(local_channel())
|
|
);
|
|
|
|
if(count($r)) {
|
|
$intro_id = $r[0]['id'];
|
|
$contact_id = $r[0]['contact-id'];
|
|
}
|
|
else {
|
|
notice( t('Invalid request identifier.') . EOL);
|
|
return;
|
|
}
|
|
|
|
// If it is a friend suggestion, the contact is not a new friend but an existing friend
|
|
// that should not be deleted.
|
|
|
|
$fid = $r[0]['fid'];
|
|
|
|
if($_POST['submit'] == t('Discard')) {
|
|
$r = q("DELETE FROM `intro` WHERE `id` = %d",
|
|
intval($intro_id)
|
|
);
|
|
if(! $fid) {
|
|
|
|
// The check for blocked and pending is in case the friendship was already approved
|
|
// and we just want to get rid of the now pointless notification
|
|
|
|
$r = q("DELETE FROM `contact` WHERE `id` = %d AND `uid` = %d AND `self` = 0 AND `blocked` = 1 AND `pending` = 1",
|
|
intval($contact_id),
|
|
intval(local_channel())
|
|
);
|
|
}
|
|
goaway(z_root() . '/notifications/intros');
|
|
}
|
|
if($_POST['submit'] == t('Ignore')) {
|
|
$r = q("UPDATE `intro` SET `ignore` = 1 WHERE `id` = %d",
|
|
intval($intro_id));
|
|
goaway(z_root() . '/notifications/intros');
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function get() {
|
|
|
|
if(! local_channel()) {
|
|
notice( t('Permission denied.') . EOL);
|
|
return;
|
|
}
|
|
|
|
nav_set_selected('notifications');
|
|
|
|
$o = '';
|
|
|
|
$notif_tpl = get_markup_template('notifications.tpl');
|
|
|
|
$not_tpl = get_markup_template('notify.tpl');
|
|
require_once('include/bbcode.php');
|
|
|
|
$r = q("SELECT * from notify where uid = %d and seen = 0 order by date desc",
|
|
intval(local_channel())
|
|
);
|
|
|
|
if (count($r) > 0) {
|
|
$notifications_available =1;
|
|
foreach ($r as $it) {
|
|
$notif_content .= replace_macros($not_tpl,array(
|
|
'$item_link' => z_root().'/notify/view/'. $it['id'],
|
|
'$item_image' => $it['photo'],
|
|
'$item_text' => strip_tags(bbcode($it['msg'])),
|
|
'$item_when' => relative_date($it['date'])
|
|
));
|
|
}
|
|
} else {
|
|
$notif_content .= t('No more system notifications.');
|
|
}
|
|
|
|
$o .= replace_macros($notif_tpl,array(
|
|
'$notif_header' => t('System Notifications'),
|
|
'$notif_link_mark_seen' => t('Mark all system notifications seen'),
|
|
'$notif_content' => $notif_content,
|
|
'$notifications_available' => $notifications_available,
|
|
));
|
|
|
|
return $o;
|
|
}
|
|
|
|
}
|