aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module/Notifications.php
diff options
context:
space:
mode:
Diffstat (limited to 'Zotlabs/Module/Notifications.php')
-rw-r--r--Zotlabs/Module/Notifications.php111
1 files changed, 111 insertions, 0 deletions
diff --git a/Zotlabs/Module/Notifications.php b/Zotlabs/Module/Notifications.php
new file mode 100644
index 000000000..d51d2861c
--- /dev/null
+++ b/Zotlabs/Module/Notifications.php
@@ -0,0 +1,111 @@
+<?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;
+ }
+
+}