]> git.mxchange.org Git - friendica.git/blob - mod/notifications.php
Improved help text, issue 1349.
[friendica.git] / mod / notifications.php
1 <?php
2
3 function notifications_post(&$a) {
4
5         if(! local_user()) {
6                 goaway(z_root());
7         }
8
9         $request_id = (($a->argc > 1) ? $a->argv[1] : 0);
10
11         if($request_id === "all")
12                 return;
13
14         if($request_id) {
15
16                 $r = q("SELECT * FROM `intro` WHERE `id` = %d  AND `uid` = %d LIMIT 1",
17                         intval($request_id),
18                         intval(local_user())
19                 );
20
21                 if(count($r)) {
22                         $intro_id = $r[0]['id'];
23                         $contact_id = $r[0]['contact-id'];
24                 }
25                 else {
26                         notice( t('Invalid request identifier.') . EOL);
27                         return;
28                 }
29
30                 // If it is a friend suggestion, the contact is not a new friend but an existing friend
31                 // that should not be deleted.
32
33                 $fid = $r[0]['fid'];
34
35                 if($_POST['submit'] == t('Discard')) {
36                         $r = q("DELETE FROM `intro` WHERE `id` = %d",
37                                 intval($intro_id)
38                         );
39                         if(! $fid) {
40
41                                 // The check for blocked and pending is in case the friendship was already approved
42                                 // and we just want to get rid of the now pointless notification
43
44                                 $r = q("DELETE FROM `contact` WHERE `id` = %d AND `uid` = %d AND `self` = 0 AND `blocked` = 1 AND `pending` = 1",
45                                         intval($contact_id),
46                                         intval(local_user())
47                                 );
48                         }
49                         goaway($a->get_baseurl(true) . '/notifications/intros');
50                 }
51                 if($_POST['submit'] == t('Ignore')) {
52                         $r = q("UPDATE `intro` SET `ignore` = 1 WHERE `id` = %d",
53                                 intval($intro_id));
54                         goaway($a->get_baseurl(true) . '/notifications/intros');
55                 }
56         }
57 }
58
59
60
61
62
63 function notifications_content(&$a) {
64
65         if(! local_user()) {
66                 notice( t('Permission denied.') . EOL);
67                 return;
68         }
69
70         nav_set_selected('notifications');
71
72         $json = (($a->argc > 1 && $a->argv[$a->argc - 1] === 'json') ? true : false);
73
74
75         $o = '';
76         $tabs = array(
77                 array(
78                         'label' => t('System'),
79                         'url'=>$a->get_baseurl(true) . '/notifications/system',
80                         'sel'=> (($a->argv[1] == 'system') ? 'active' : ''),
81                 ),
82                 array(
83                         'label' => t('Network'),
84                         'url'=>$a->get_baseurl(true) . '/notifications/network',
85                         'sel'=> (($a->argv[1] == 'network') ? 'active' : ''),
86                 ),
87                 array(
88                         'label' => t('Personal'),
89                         'url'=>$a->get_baseurl(true) . '/notifications/personal',
90                         'sel'=> (($a->argv[1] == 'personal') ? 'active' : ''),
91                 ),
92                 array(
93                         'label' => t('Home'),
94                         'url' => $a->get_baseurl(true) . '/notifications/home',
95                         'sel'=> (($a->argv[1] == 'home') ? 'active' : ''),
96                 ),
97                 array(
98                         'label' => t('Introductions'),
99                         'url' => $a->get_baseurl(true) . '/notifications/intros',
100                         'sel'=> (($a->argv[1] == 'intros') ? 'active' : ''),
101                 ),
102                 /*array(
103                         'label' => t('Messages'),
104                         'url' => $a->get_baseurl(true) . '/message',
105                         'sel'=> '',
106                 ),*/ /*while I can have notifications for messages, this tablist is not place for message page link */
107         );
108
109         $o = "";
110
111
112         if( (($a->argc > 1) && ($a->argv[1] == 'intros')) || (($a->argc == 1))) {
113                 nav_set_selected('introductions');
114                 if(($a->argc > 2) && ($a->argv[2] == 'all'))
115                         $sql_extra = '';
116                 else
117                         $sql_extra = " AND `ignore` = 0 ";
118
119                 $notif_tpl = get_markup_template('notifications.tpl');
120
121                 $notif_content .= '<a href="' . ((strlen($sql_extra)) ? 'notifications/intros/all' : 'notifications/intros' ) . '" id="notifications-show-hide-link" >'
122                         . ((strlen($sql_extra)) ? t('Show Ignored Requests') : t('Hide Ignored Requests')) . '</a></div>' . "\r\n";
123
124                 $r = q("SELECT COUNT(*) AS `total` FROM `intro`
125                         WHERE `intro`.`uid` = %d $sql_extra AND `intro`.`blocked` = 0 ",
126                                 intval($_SESSION['uid'])
127                 );
128                 if($r && count($r)) {
129                         $a->set_pager_total($r[0]['total']);
130                         $a->set_pager_itemspage(20);
131                 }
132
133                 $r = q("SELECT `intro`.`id` AS `intro_id`, `intro`.*, `contact`.*, `fcontact`.`name` AS `fname`,`fcontact`.`url` AS `furl`,`fcontact`.`photo` AS `fphoto`,`fcontact`.`request` AS `frequest`
134                         FROM `intro` LEFT JOIN `contact` ON `contact`.`id` = `intro`.`contact-id` LEFT JOIN `fcontact` ON `intro`.`fid` = `fcontact`.`id`
135                         WHERE `intro`.`uid` = %d $sql_extra AND `intro`.`blocked` = 0 ",
136                                 intval($_SESSION['uid']));
137
138                 if(($r !== false) && (count($r))) {
139
140                         $sugg = get_markup_template('suggestions.tpl');
141                         $tpl = get_markup_template("intros.tpl");
142
143                         foreach($r as $rr) {
144                                 if($rr['fid']) {
145
146                                         $return_addr = bin2hex($a->user['nickname'] . '@' . $a->get_hostname() . (($a->path) ? '/' . $a->path : ''));
147
148                                         $notif_content .= replace_macros($sugg, array(
149                                                 '$str_notifytype' => t('Notification type: '),
150                                                 '$notify_type' => t('Friend Suggestion'),
151                                                 '$intro_id' => $rr['intro_id'],
152                                                 '$madeby' => sprintf( t('suggested by %s'),$rr['name']),
153                                                 '$contact_id' => $rr['contact-id'],
154                                                 '$photo' => ((x($rr,'fphoto')) ? $rr['fphoto'] : "images/person-175.jpg"),
155                                                 '$fullname' => $rr['fname'],
156                                                 '$url' => zrl($rr['furl']),
157                                                 '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''),
158                                                 '$activity' => array('activity', t('Post a new friend activity'), (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), t('if applicable')),
159
160                                                 '$knowyou' => $knowyou,
161                                                 '$approve' => t('Approve'),
162                                                 '$note' => $rr['note'],
163                                                 '$request' => $rr['frequest'] . '?addr=' . $return_addr,
164                                                 '$ignore' => t('Ignore'),
165                                                 '$discard' => t('Discard'),
166
167                                         ));
168
169                                         continue;
170
171                                 }
172                                 $friend_selected = (($rr['network'] !== NETWORK_OSTATUS) ? ' checked="checked" ' : ' disabled ');
173                                 $fan_selected = (($rr['network'] === NETWORK_OSTATUS) ? ' checked="checked" disabled ' : '');
174                                 $dfrn_tpl = get_markup_template('netfriend.tpl');
175
176                                 $knowyou   = '';
177                                 $dfrn_text = '';
178
179                                 if($rr['network'] === NETWORK_DFRN || $rr['network'] === NETWORK_DIASPORA) {
180                                         if($rr['network'] === NETWORK_DFRN)
181                                                 $knowyou = t('Claims to be known to you: ') . (($rr['knowyou']) ? t('yes') : t('no'));
182                                         else
183                                                 $knowyou = '';
184                                         $dfrn_text = replace_macros($dfrn_tpl,array(
185                                                 '$intro_id' => $rr['intro_id'],
186                                                 '$friend_selected' => $friend_selected,
187                                                 '$fan_selected' => $fan_selected,
188                                                 '$approve_as' => t('Shall your connection be bidirectional or not? "Friend" implies that you allow to read and you subscribe to their posts. "Fan" means that you allow to read but you do not want to read theirs. To start sharing with a Diaspora contact, choose "Fan". Approve as: '),
189                                                 '$as_friend' => t('Friend'),
190                                                 '$as_fan' => (($rr['network'] == NETWORK_DIASPORA) ? t('Sharer') : t('Fan/Admirer'))
191                                         ));
192                                 }
193
194                                 $notif_content .= replace_macros($tpl, array(
195                                         '$str_notifytype' => t('Notification type: '),
196                                         '$notify_type' => (($rr['network'] !== NETWORK_OSTATUS) ? t('Friend/Connect Request') : t('New Follower')),
197                                         '$dfrn_text' => $dfrn_text,
198                                         '$dfrn_id' => $rr['issued-id'],
199                                         '$uid' => $_SESSION['uid'],
200                                         '$intro_id' => $rr['intro_id'],
201                                         '$contact_id' => $rr['contact-id'],
202                                         '$photo' => ((x($rr,'photo')) ? $rr['photo'] : "images/person-175.jpg"),
203                                         '$fullname' => $rr['name'],
204                                         '$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''),
205                                         '$activity' => array('activity', t('Post a new friend activity'), (intval(get_pconfig(local_user(),'system','post_newfriend')) ? '1' : 0), t('if applicable')),
206                                         '$url' => zrl($rr['url']),
207                                         '$knowyou' => $knowyou,
208                                         '$approve' => t('Approve'),
209                                         '$note' => $rr['note'],
210                                         '$ignore' => t('Ignore'),
211                                         '$discard' => t('Discard'),
212
213                                 ));
214                         }
215                 }
216                 else
217                         info( t('No introductions.') . EOL);
218
219                 $o .= replace_macros($notif_tpl, array(
220                         '$notif_header' => t('Notifications'),
221                         '$tabs' => $tabs,
222                         '$notif_content' => $notif_content,
223                 ));
224
225                 $o .= paginate($a);
226                 return $o;
227
228         } else if (($a->argc > 1) && ($a->argv[1] == 'network')) {
229
230                 $notif_tpl = get_markup_template('notifications.tpl');
231
232                 $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`,
233                                 `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`,
234                                 `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`, `pitem`.`guid` as `pguid`
235                                 FROM `item` INNER JOIN `item` as `pitem` ON  `pitem`.`id`=`item`.`parent`
236                                 WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND `pitem`.`parent` != 0 AND
237                                  `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ORDER BY `item`.`created` DESC" ,
238                         intval(local_user())
239                 );
240
241                 $tpl_item_likes = get_markup_template('notifications_likes_item.tpl');
242                 $tpl_item_dislikes = get_markup_template('notifications_dislikes_item.tpl');
243                 $tpl_item_friends = get_markup_template('notifications_friends_item.tpl');
244                 $tpl_item_comments = get_markup_template('notifications_comments_item.tpl');
245                 $tpl_item_posts = get_markup_template('notifications_posts_item.tpl');
246
247                 $notif_content = '';
248
249                 if ($r) {
250
251                         foreach ($r as $it) {
252                                 switch($it['verb']){
253                                         case ACTIVITY_LIKE:
254                                                 $notif_content .= replace_macros($tpl_item_likes,array(
255                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
256                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
257                                                         '$item_image' => $it['author-avatar'],
258                                                         '$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']),
259                                                         '$item_when' => relative_date($it['created'])
260                                                 ));
261                                                 break;
262
263                                         case ACTIVITY_DISLIKE:
264                                                 $notif_content .= replace_macros($tpl_item_dislikes,array(
265                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
266                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
267                                                         '$item_image' => $it['author-avatar'],
268                                                         '$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']),
269                                                         '$item_when' => relative_date($it['created'])
270                                                 ));
271                                                 break;
272
273                                         case ACTIVITY_FRIEND:
274
275                                                 $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
276                                                 $obj = parse_xml_string($xmlhead.$it['object']);
277                                                 $it['fname'] = $obj->title;
278
279                                                 $notif_content .= replace_macros($tpl_item_friends,array(
280                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
281                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
282                                                         '$item_image' => $it['author-avatar'],
283                                                         '$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']),
284                                                         '$item_when' => relative_date($it['created'])
285                                                 ));
286                                                 break;
287
288                                         default:
289                                                 $item_text = (($it['id'] == $it['parent'])
290                                                         ? sprintf( t("%s created a new post"), $it['author-name'])
291                                                         : sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname']));
292                                                 $tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments);
293
294                                                 $notif_content .= replace_macros($tpl,array(
295                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
296                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
297                                                         '$item_image' => $it['author-avatar'],
298                                                         '$item_text' => $item_text,
299                                                         '$item_when' => relative_date($it['created'])
300                                                 ));
301                                 }
302                         }
303
304                 } else {
305
306                         $notif_content = t('No more network notifications.');
307                 }
308
309                 $o .= replace_macros($notif_tpl, array(
310                         '$notif_header' => t('Network Notifications'),
311                         '$tabs' => $tabs,
312                         '$notif_content' => $notif_content,
313                 ));
314
315         } else if (($a->argc > 1) && ($a->argv[1] == 'system')) {
316
317                 $notif_tpl = get_markup_template('notifications.tpl');
318
319                 $not_tpl = get_markup_template('notify.tpl');
320                 require_once('include/bbcode.php');
321
322                 $r = q("SELECT * from notify where uid = %d and seen = 0 order by date desc",
323                         intval(local_user())
324                 );
325
326                 if (count($r) > 0) {
327                         foreach ($r as $it) {
328                                 $notif_content .= replace_macros($not_tpl,array(
329                                         '$item_link' => $a->get_baseurl(true).'/notify/view/'. $it['id'],
330                                         '$item_image' => $it['photo'],
331                                         '$item_text' => strip_tags(bbcode($it['msg'])),
332                                         '$item_when' => relative_date($it['date'])
333                                 ));
334                         }
335                 } else {
336                         $notif_content .= t('No more system notifications.');
337                 }
338
339                 $o .= replace_macros($notif_tpl, array(
340                         '$notif_header' => t('System Notifications'),
341                         '$tabs' => $tabs,
342                         '$notif_content' => $notif_content,
343                 ));
344
345         } else if (($a->argc > 1) && ($a->argv[1] == 'personal')) {
346
347                 $notif_tpl = get_markup_template('notifications.tpl');
348
349                 $myurl = $a->get_baseurl(true) . '/profile/'. $a->user['nickname'];
350                 $myurl = substr($myurl,strpos($myurl,'://')+3);
351                 $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl);
352                 $diasp_url = str_replace('/profile/','/u/',$myurl);
353                 $sql_extra .= sprintf(" AND ( `item`.`author-link` regexp '%s' or `item`.`tag` regexp '%s' or `item`.`tag` regexp '%s' ) ",
354                         dbesc($myurl . '$'),
355                         dbesc($myurl . '\\]'),
356                         dbesc($diasp_url . '\\]')
357                 );
358
359
360                 $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`,
361                                 `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`,
362                                 `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`, `pitem`.`guid` as `pguid`
363                                 FROM `item` INNER JOIN `item` as `pitem` ON  `pitem`.`id`=`item`.`parent`
364                                 WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1
365                                 $sql_extra
366                                 AND `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 0 ORDER BY `item`.`created` DESC" ,
367                         intval(local_user())
368                 );
369
370                 $tpl_item_likes = get_markup_template('notifications_likes_item.tpl');
371                 $tpl_item_dislikes = get_markup_template('notifications_dislikes_item.tpl');
372                 $tpl_item_friends = get_markup_template('notifications_friends_item.tpl');
373                 $tpl_item_comments = get_markup_template('notifications_comments_item.tpl');
374                 $tpl_item_posts = get_markup_template('notifications_posts_item.tpl');
375
376                 $notif_content = '';
377
378                 if (count($r) > 0) {
379
380                         foreach ($r as $it) {
381                                 switch($it['verb']){
382                                         case ACTIVITY_LIKE:
383                                                 $notif_content .= replace_macros($tpl_item_likes,array(
384                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
385                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
386                                                         '$item_image' => $it['author-avatar'],
387                                                         '$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']),
388                                                         '$item_when' => relative_date($it['created'])
389                                                 ));
390                                                 break;
391
392                                         case ACTIVITY_DISLIKE:
393                                                 $notif_content .= replace_macros($tpl_item_dislikes,array(
394                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
395                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
396                                                         '$item_image' => $it['author-avatar'],
397                                                         '$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']),
398                                                         '$item_when' => relative_date($it['created'])
399                                                 ));
400                                                 break;
401
402                                         case ACTIVITY_FRIEND:
403
404                                                 $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
405                                                 $obj = parse_xml_string($xmlhead.$it['object']);
406                                                 $it['fname'] = $obj->title;
407
408                                                 $notif_content .= replace_macros($tpl_item_friends,array(
409                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
410                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
411                                                         '$item_image' => $it['author-avatar'],
412                                                         '$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']),
413                                                         '$item_when' => relative_date($it['created'])
414                                                 ));
415                                                 break;
416
417                                         default:
418                                                 $item_text = (($it['id'] == $it['parent'])
419                                                         ? sprintf( t("%s created a new post"), $it['author-name'])
420                                                         : sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname']));
421                                                 $tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments);
422
423                                                 $notif_content .= replace_macros($tpl,array(
424                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
425                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
426                                                         '$item_image' => $it['author-avatar'],
427                                                         '$item_text' => $item_text,
428                                                         '$item_when' => relative_date($it['created'])
429                                                 ));
430                                 }
431                         }
432
433                 } else {
434
435                         $notif_content = t('No more personal notifications.');
436                 }
437
438                 $o .= replace_macros($notif_tpl, array(
439                         '$notif_header' => t('Personal Notifications'),
440                         '$tabs' => $tabs,
441                         '$notif_content' => $notif_content,
442                 ));
443
444
445
446
447
448
449         } else if (($a->argc > 1) && ($a->argv[1] == 'home')) {
450
451                 $notif_tpl = get_markup_template('notifications.tpl');
452
453                 $r = q("SELECT `item`.`id`,`item`.`parent`, `item`.`verb`, `item`.`author-name`,
454                                 `item`.`author-link`, `item`.`author-avatar`, `item`.`created`, `item`.`object` as `object`,
455                                 `pitem`.`author-name` as `pname`, `pitem`.`author-link` as `plink`, `pitem`.`guid` as `pguid`
456                                 FROM `item` INNER JOIN `item` as `pitem` ON  `pitem`.`id`=`item`.`parent`
457                                 WHERE `item`.`unseen` = 1 AND `item`.`visible` = 1 AND
458                                  `item`.`deleted` = 0 AND `item`.`uid` = %d AND `item`.`wall` = 1 ORDER BY `item`.`created` DESC",
459                         intval(local_user())
460                 );
461
462                 $tpl_item_likes = get_markup_template('notifications_likes_item.tpl');
463                 $tpl_item_dislikes = get_markup_template('notifications_dislikes_item.tpl');
464                 $tpl_item_friends = get_markup_template('notifications_friends_item.tpl');
465                 $tpl_item_comments = get_markup_template('notifications_comments_item.tpl');
466
467                 $notif_content = '';
468
469                 if (count($r) > 0) {
470
471                         foreach ($r as $it) {
472                                 switch($it['verb']){
473                                         case ACTIVITY_LIKE:
474                                                 $notif_content .= replace_macros($tpl_item_likes,array(
475                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
476                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
477                                                         '$item_image' => $it['author-avatar'],
478                                                         '$item_text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']),
479                                                         '$item_when' => relative_date($it['created'])
480                                                 ));
481
482                                                 break;
483                                         case ACTIVITY_DISLIKE:
484                                                 $notif_content .= replace_macros($tpl_item_dislikes,array(
485                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
486                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
487                                                         '$item_image' => $it['author-avatar'],
488                                                         '$item_text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']),
489                                                         '$item_when' => relative_date($it['created'])
490                                                 ));
491
492                                                 break;
493                                         case ACTIVITY_FRIEND:
494
495                                                 $xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
496                                                 $obj = parse_xml_string($xmlhead.$it['object']);
497                                                 $it['fname'] = $obj->title;
498
499                                                 $notif_content .= replace_macros($tpl_item_friends,array(
500                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
501                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
502                                                         '$item_image' => $it['author-avatar'],
503                                                         '$item_text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']),
504                                                         '$item_when' => relative_date($it['created'])
505                                                 ));
506
507                                                 break;
508                                         default:
509                                                 $notif_content .= replace_macros($tpl_item_comments,array(
510                                                         //'$item_link' => $a->get_baseurl(true).'/display/'.$a->user['nickname']."/".$it['parent'],
511                                                         '$item_link' => $a->get_baseurl(true).'/display/'.$it['pguid'],
512                                                         '$item_image' => $it['author-avatar'],
513                                                         '$item_text' => sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname']),
514                                                         '$item_when' => relative_date($it['created'])
515                                                 ));
516                                 }
517                         }
518
519                 } else {
520                         $notif_content = t('No more home notifications.');
521                 }
522
523                 $o .= replace_macros($notif_tpl, array(
524                         '$notif_header' => t('Home Notifications'),
525                         '$tabs' => $tabs,
526                         '$notif_content' => $notif_content,
527                 ));
528         }
529
530         $o .= paginate($a);
531         return $o;
532 }