moved enotify
This commit is contained in:
parent
25357b208a
commit
29ba891809
@ -1,95 +1,99 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
|
||||||
* @file include/enotify.php
|
namespace Zotlabs\Lib;
|
||||||
*
|
|
||||||
* @brief File with functions and a class for email notifications.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief
|
* @brief File with functions and a class for generating system and email notifications.
|
||||||
*
|
|
||||||
* @param array $params an assoziative array with:
|
|
||||||
* * \e string \b from_xchan sender xchan hash
|
|
||||||
* * \e string \b to_xchan recipient xchan hash
|
|
||||||
* * \e array \b item an assoziative array
|
|
||||||
* * \e int \b type one of the NOTIFY_* constants from boot.php
|
|
||||||
* * \e string \b link
|
|
||||||
* * \e string \b parent_mid
|
|
||||||
* * \e string \b otype
|
|
||||||
* * \e string \b verb
|
|
||||||
* * \e string \b activity
|
|
||||||
*/
|
*/
|
||||||
function notification($params) {
|
|
||||||
|
|
||||||
logger('notification: entry', LOGGER_DEBUG);
|
|
||||||
|
|
||||||
// throw a small amount of entropy into the system to breakup duplicates arriving at the same precise instant.
|
|
||||||
usleep(mt_rand(0, 10000));
|
|
||||||
|
|
||||||
$a = get_app();
|
|
||||||
|
|
||||||
|
|
||||||
if ($params['from_xchan']) {
|
class Enotify {
|
||||||
$x = q("select * from xchan where xchan_hash = '%s' limit 1",
|
|
||||||
dbesc($params['from_xchan'])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if ($params['to_xchan']) {
|
|
||||||
$y = q("select channel.*, account.* from channel left join account on channel_account_id = account_id
|
|
||||||
where channel_hash = '%s' and channel_removed = 0 limit 1",
|
|
||||||
dbesc($params['to_xchan'])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if ($x & $y) {
|
|
||||||
$sender = $x[0];
|
|
||||||
$recip = $y[0];
|
|
||||||
} else {
|
|
||||||
logger('notification: no sender or recipient.');
|
|
||||||
logger('sender: ' . $params['from_xchan']);
|
|
||||||
logger('recip: ' . $params['to_xchan']);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// from here on everything is in the recipients language
|
/**
|
||||||
|
* @brief
|
||||||
|
*
|
||||||
|
* @param array $params an assoziative array with:
|
||||||
|
* * \e string \b from_xchan sender xchan hash
|
||||||
|
* * \e string \b to_xchan recipient xchan hash
|
||||||
|
* * \e array \b item an assoziative array
|
||||||
|
* * \e int \b type one of the NOTIFY_* constants from boot.php
|
||||||
|
* * \e string \b link
|
||||||
|
* * \e string \b parent_mid
|
||||||
|
* * \e string \b otype
|
||||||
|
* * \e string \b verb
|
||||||
|
* * \e string \b activity
|
||||||
|
*/
|
||||||
|
|
||||||
push_lang($recip['account_language']); // should probably have a channel language
|
|
||||||
|
|
||||||
$banner = t('$Projectname Notification');
|
static public function submit($params) {
|
||||||
$product = t('$projectname'); // PLATFORM_NAME;
|
|
||||||
$siteurl = z_root();
|
|
||||||
$thanks = t('Thank You,');
|
|
||||||
$sitename = get_config('system','sitename');
|
|
||||||
$site_admin = sprintf( t('%s Administrator'), $sitename);
|
|
||||||
|
|
||||||
$sender_name = $product;
|
logger('notification: entry', LOGGER_DEBUG);
|
||||||
$hostname = App::get_hostname();
|
|
||||||
if(strpos($hostname,':'))
|
// throw a small amount of entropy into the system to breakup duplicates arriving at the same precise instant.
|
||||||
|
usleep(mt_rand(0, 10000));
|
||||||
|
|
||||||
|
if ($params['from_xchan']) {
|
||||||
|
$x = q("select * from xchan where xchan_hash = '%s' limit 1",
|
||||||
|
dbesc($params['from_xchan'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if ($params['to_xchan']) {
|
||||||
|
$y = q("select channel.*, account.* from channel left join account on channel_account_id = account_id
|
||||||
|
where channel_hash = '%s' and channel_removed = 0 limit 1",
|
||||||
|
dbesc($params['to_xchan'])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if ($x & $y) {
|
||||||
|
$sender = $x[0];
|
||||||
|
$recip = $y[0];
|
||||||
|
} else {
|
||||||
|
logger('notification: no sender or recipient.');
|
||||||
|
logger('sender: ' . $params['from_xchan']);
|
||||||
|
logger('recip: ' . $params['to_xchan']);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// from here on everything is in the recipients language
|
||||||
|
|
||||||
|
push_lang($recip['account_language']); // should probably have a channel language
|
||||||
|
|
||||||
|
$banner = t('$Projectname Notification');
|
||||||
|
$product = t('$projectname'); // PLATFORM_NAME;
|
||||||
|
$siteurl = z_root();
|
||||||
|
$thanks = t('Thank You,');
|
||||||
|
$sitename = get_config('system','sitename');
|
||||||
|
$site_admin = sprintf( t('%s Administrator'), $sitename);
|
||||||
|
|
||||||
|
$sender_name = $product;
|
||||||
|
$hostname = \App::get_hostname();
|
||||||
|
if(strpos($hostname,':'))
|
||||||
$hostname = substr($hostname,0,strpos($hostname,':'));
|
$hostname = substr($hostname,0,strpos($hostname,':'));
|
||||||
|
|
||||||
// Do not translate 'noreply' as it must be a legal 7-bit email address
|
// Do not translate 'noreply' as it must be a legal 7-bit email address
|
||||||
$sender_email = 'noreply' . '@' . $hostname;
|
$sender_email = 'noreply' . '@' . $hostname;
|
||||||
|
|
||||||
$additional_mail_header = "";
|
$additional_mail_header = "";
|
||||||
|
|
||||||
if (array_key_exists('item', $params)) {
|
if(array_key_exists('item', $params)) {
|
||||||
require_once('include/conversation.php');
|
require_once('include/conversation.php');
|
||||||
// if it's a normal item...
|
// if it's a normal item...
|
||||||
if (array_key_exists('verb', $params['item'])) {
|
if (array_key_exists('verb', $params['item'])) {
|
||||||
// localize_item() alters the original item so make a copy first
|
// localize_item() alters the original item so make a copy first
|
||||||
$i = $params['item'];
|
$i = $params['item'];
|
||||||
logger('calling localize');
|
logger('calling localize');
|
||||||
localize_item($i);
|
localize_item($i);
|
||||||
$title = $i['title'];
|
$title = $i['title'];
|
||||||
$body = $i['body'];
|
$body = $i['body'];
|
||||||
$private = (($i['item_private']) || intval($i['item_obscured']));
|
$private = (($i['item_private']) || intval($i['item_obscured']));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$title = $params['item']['title'];
|
||||||
|
$body = $params['item']['body'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$title = $params['item']['title'];
|
$title = $body = '';
|
||||||
$body = $params['item']['body'];
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$title = $body = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// e.g. "your post", "David's photo", etc.
|
// e.g. "your post", "David's photo", etc.
|
||||||
@ -424,7 +428,7 @@ function notification($params) {
|
|||||||
|
|
||||||
// wretched hack, but we don't want to duplicate all the preamble variations and we also don't want to screw up a translation
|
// wretched hack, but we don't want to duplicate all the preamble variations and we also don't want to screw up a translation
|
||||||
|
|
||||||
if ((App::$language === 'en' || (! App::$language)) && strpos($msg,', '))
|
if ((\App::$language === 'en' || (! \App::$language)) && strpos($msg,', '))
|
||||||
$msg = substr($msg,strpos($msg,', ')+1);
|
$msg = substr($msg,strpos($msg,', ')+1);
|
||||||
|
|
||||||
$r = q("update notify set msg = '%s' where id = %d and uid = %d",
|
$r = q("update notify set msg = '%s' where id = %d and uid = %d",
|
||||||
@ -441,7 +445,7 @@ function notification($params) {
|
|||||||
logger('notification: sending notification email');
|
logger('notification: sending notification email');
|
||||||
|
|
||||||
$hn = get_pconfig($recip['channel_id'],'system','email_notify_host');
|
$hn = get_pconfig($recip['channel_id'],'system','email_notify_host');
|
||||||
if($hn && (! stristr(App::get_hostname(),$hn))) {
|
if($hn && (! stristr(\App::get_hostname(),$hn))) {
|
||||||
// this isn't the email notification host
|
// this isn't the email notification host
|
||||||
pop_lang();
|
pop_lang();
|
||||||
return;
|
return;
|
||||||
@ -455,7 +459,7 @@ function notification($params) {
|
|||||||
// use $_SESSION['zid_override'] to force zid() to use
|
// use $_SESSION['zid_override'] to force zid() to use
|
||||||
// the recipient address instead of the current observer
|
// the recipient address instead of the current observer
|
||||||
|
|
||||||
$_SESSION['zid_override'] = $recip['channel_address'] . '@' . App::get_hostname();
|
$_SESSION['zid_override'] = $recip['channel_address'] . '@' . \App::get_hostname();
|
||||||
$_SESSION['zrl_override'] = z_root() . '/channel/' . $recip['channel_address'];
|
$_SESSION['zrl_override'] = z_root() . '/channel/' . $recip['channel_address'];
|
||||||
|
|
||||||
$textversion = zidify_links($textversion);
|
$textversion = zidify_links($textversion);
|
||||||
@ -529,7 +533,7 @@ function notification($params) {
|
|||||||
$tpl = get_markup_template('email_notify_html.tpl');
|
$tpl = get_markup_template('email_notify_html.tpl');
|
||||||
$email_html_body = replace_macros($tpl,array(
|
$email_html_body = replace_macros($tpl,array(
|
||||||
'$banner' => $datarray['banner'],
|
'$banner' => $datarray['banner'],
|
||||||
'$notify_icon' => Zotlabs\Lib\System::get_notify_icon(),
|
'$notify_icon' => \Zotlabs\Lib\System::get_notify_icon(),
|
||||||
'$product' => $datarray['product'],
|
'$product' => $datarray['product'],
|
||||||
'$preamble' => $datarray['preamble'],
|
'$preamble' => $datarray['preamble'],
|
||||||
'$sitename' => $datarray['sitename'],
|
'$sitename' => $datarray['sitename'],
|
||||||
@ -570,7 +574,7 @@ function notification($params) {
|
|||||||
|
|
||||||
// use the EmailNotification library to send the message
|
// use the EmailNotification library to send the message
|
||||||
|
|
||||||
enotify::send(array(
|
self::send(array(
|
||||||
'fromName' => $sender_name,
|
'fromName' => $sender_name,
|
||||||
'fromEmail' => $sender_email,
|
'fromEmail' => $sender_email,
|
||||||
'replyTo' => $sender_email,
|
'replyTo' => $sender_email,
|
||||||
@ -587,12 +591,6 @@ function notification($params) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief A class for sending email notifications.
|
|
||||||
*
|
|
||||||
* @fixme Class names start mostly with capital letter to distinguish them easier.
|
|
||||||
*/
|
|
||||||
class enotify {
|
|
||||||
/**
|
/**
|
||||||
* @brief Send a multipart/alternative message with Text and HTML versions.
|
* @brief Send a multipart/alternative message with Text and HTML versions.
|
||||||
*
|
*
|
||||||
@ -649,4 +647,39 @@ class enotify {
|
|||||||
);
|
);
|
||||||
logger("notification: enotify::send returns " . $res, LOGGER_DEBUG);
|
logger("notification: enotify::send returns " . $res, LOGGER_DEBUG);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static public function forma($item) {
|
||||||
|
|
||||||
|
$ret = '';
|
||||||
|
|
||||||
|
require_once('include/conversation.php');
|
||||||
|
|
||||||
|
// Call localize_item with the "brief" flag to get a one line status for activities.
|
||||||
|
// This should set $item['localized'] to indicate we have a brief summary.
|
||||||
|
|
||||||
|
localize_item($item);
|
||||||
|
|
||||||
|
if($item_localize) {
|
||||||
|
$itemem_text = $item['localize'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$itemem_text = (($item['item_thread_top'])
|
||||||
|
? t('created a new post')
|
||||||
|
: sprintf( t('commented on %s\'s post'), $item['owner']['xchan_name']));
|
||||||
|
}
|
||||||
|
|
||||||
|
// convert this logic into a json array just like the system notifications
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'notify_link' => $item['llink'],
|
||||||
|
'name' => $item['author']['xchan_name'],
|
||||||
|
'url' => $item['author']['xchan_url'],
|
||||||
|
'photo' => $item['author']['xchan_photo_s'],
|
||||||
|
'when' => relative_date($item['created']),
|
||||||
|
'class' => (intval($item['item_unseen']) ? 'notify-unseen' : 'notify-seen'),
|
||||||
|
'message' => strip_tags(bbcode($itemem_text))
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -17,10 +17,10 @@ namespace Zotlabs\Module;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
require_once('include/crypto.php');
|
require_once('include/crypto.php');
|
||||||
require_once('include/enotify.php');
|
|
||||||
require_once('include/items.php');
|
require_once('include/items.php');
|
||||||
require_once('include/attach.php');
|
require_once('include/attach.php');
|
||||||
|
|
||||||
|
use \Zotlabs\Lib as Zlib;
|
||||||
|
|
||||||
class Item extends \Zotlabs\Web\Controller {
|
class Item extends \Zotlabs\Web\Controller {
|
||||||
|
|
||||||
@ -925,7 +925,7 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
// otherwise it will happen during delivery
|
// otherwise it will happen during delivery
|
||||||
|
|
||||||
if(($datarray['owner_xchan'] != $datarray['author_xchan']) && (intval($parent_item['item_wall']))) {
|
if(($datarray['owner_xchan'] != $datarray['author_xchan']) && (intval($parent_item['item_wall']))) {
|
||||||
notification(array(
|
Zlib\Enotify::submit(array(
|
||||||
'type' => NOTIFY_COMMENT,
|
'type' => NOTIFY_COMMENT,
|
||||||
'from_xchan' => $datarray['author_xchan'],
|
'from_xchan' => $datarray['author_xchan'],
|
||||||
'to_xchan' => $datarray['owner_xchan'],
|
'to_xchan' => $datarray['owner_xchan'],
|
||||||
@ -943,7 +943,7 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
$parent = $post_id;
|
$parent = $post_id;
|
||||||
|
|
||||||
if(($datarray['owner_xchan'] != $datarray['author_xchan']) && ($datarray['item_type'] == ITEM_TYPE_POST)) {
|
if(($datarray['owner_xchan'] != $datarray['author_xchan']) && ($datarray['item_type'] == ITEM_TYPE_POST)) {
|
||||||
notification(array(
|
Zlib\Enotify::submit(array(
|
||||||
'type' => NOTIFY_WALL,
|
'type' => NOTIFY_WALL,
|
||||||
'from_xchan' => $datarray['author_xchan'],
|
'from_xchan' => $datarray['author_xchan'],
|
||||||
'to_xchan' => $datarray['owner_xchan'],
|
'to_xchan' => $datarray['owner_xchan'],
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace Zotlabs\Module;
|
namespace Zotlabs\Module;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file mod/ping.php
|
* @file mod/ping.php
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once('include/bbcode.php');
|
require_once('include/bbcode.php');
|
||||||
require_once('include/notify.php');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief do several updates when pinged.
|
* @brief do several updates when pinged.
|
||||||
@ -285,7 +286,7 @@ class Ping extends \Zotlabs\Web\Controller {
|
|||||||
foreach($r as $item) {
|
foreach($r as $item) {
|
||||||
if((argv(1) === 'home') && (! intval($item['item_wall'])))
|
if((argv(1) === 'home') && (! intval($item['item_wall'])))
|
||||||
continue;
|
continue;
|
||||||
$result[] = format_notification($item);
|
$result[] = \Zotlbas\Lib\Enotify::format($item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// logger('ping (network||home): ' . print_r($result, true), LOGGER_DATA);
|
// logger('ping (network||home): ' . print_r($result, true), LOGGER_DATA);
|
||||||
|
@ -94,6 +94,9 @@ function get_directory_setting($observer, $setting) {
|
|||||||
if($ret === false)
|
if($ret === false)
|
||||||
$ret = get_config('directory', $setting);
|
$ret = get_config('directory', $setting);
|
||||||
|
|
||||||
|
|
||||||
|
// 'safemode' is the default if there is no observer or no established preference.
|
||||||
|
|
||||||
if($setting == 'safemode' && $ret === false)
|
if($setting == 'safemode' && $ret === false)
|
||||||
$ret = 1;
|
$ret = 1;
|
||||||
|
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
// uncertain if this line is needed and why
|
// uncertain if this line is needed and why
|
||||||
use Sabre\HTTP\URLUtil;
|
use Sabre\HTTP\URLUtil;
|
||||||
|
|
||||||
|
use Zotlabs\Lib as Zlib;
|
||||||
|
|
||||||
require_once('include/bbcode.php');
|
require_once('include/bbcode.php');
|
||||||
require_once('include/oembed.php');
|
require_once('include/oembed.php');
|
||||||
require_once('include/crypto.php');
|
require_once('include/crypto.php');
|
||||||
@ -2284,8 +2286,8 @@ function send_status_notifications($post_id,$item) {
|
|||||||
if(! $notify)
|
if(! $notify)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
|
||||||
notification(array(
|
Zlib\Enotify::submit(array(
|
||||||
'type' => NOTIFY_COMMENT,
|
'type' => NOTIFY_COMMENT,
|
||||||
'from_xchan' => $item['author_xchan'],
|
'from_xchan' => $item['author_xchan'],
|
||||||
'to_xchan' => $r[0]['channel_hash'],
|
'to_xchan' => $r[0]['channel_hash'],
|
||||||
@ -2378,8 +2380,7 @@ function tag_deliver($uid, $item_id) {
|
|||||||
|
|
||||||
$verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1));
|
$verb = urldecode(substr($item['verb'],strpos($item['verb'],'#')+1));
|
||||||
if($poke_notify) {
|
if($poke_notify) {
|
||||||
require_once('include/enotify.php');
|
Zlib\Enotify::submit(array(
|
||||||
notification(array(
|
|
||||||
'to_xchan' => $u[0]['channel_hash'],
|
'to_xchan' => $u[0]['channel_hash'],
|
||||||
'from_xchan' => $item['author_xchan'],
|
'from_xchan' => $item['author_xchan'],
|
||||||
'type' => NOTIFY_POKE,
|
'type' => NOTIFY_POKE,
|
||||||
@ -2544,8 +2545,7 @@ function tag_deliver($uid, $item_id) {
|
|||||||
* Kill two birds with one stone. As long as we're here, send a mention notification.
|
* Kill two birds with one stone. As long as we're here, send a mention notification.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
Zlib\Enotify::submit(array(
|
||||||
notification(array(
|
|
||||||
'to_xchan' => $u[0]['channel_hash'],
|
'to_xchan' => $u[0]['channel_hash'],
|
||||||
'from_xchan' => $item['author_xchan'],
|
'from_xchan' => $item['author_xchan'],
|
||||||
'type' => NOTIFY_TAGSELF,
|
'type' => NOTIFY_TAGSELF,
|
||||||
@ -3046,7 +3046,6 @@ function mail_store($arr) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
require_once('include/enotify.php');
|
|
||||||
|
|
||||||
$notif_params = array(
|
$notif_params = array(
|
||||||
'from_xchan' => $arr['from_xchan'],
|
'from_xchan' => $arr['from_xchan'],
|
||||||
@ -3057,7 +3056,7 @@ function mail_store($arr) {
|
|||||||
'otype' => 'mail'
|
'otype' => 'mail'
|
||||||
);
|
);
|
||||||
|
|
||||||
notification($notif_params);
|
Zlib\Enotify::submit($notif_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
call_hooks('post_mail_end',$arr);
|
call_hooks('post_mail_end',$arr);
|
||||||
|
@ -1819,8 +1819,6 @@ function service_plink($contact, $guid) {
|
|||||||
|
|
||||||
function format_and_send_email($sender,$xchan,$item) {
|
function format_and_send_email($sender,$xchan,$item) {
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
|
||||||
|
|
||||||
$title = $item['title'];
|
$title = $item['title'];
|
||||||
$body = $item['body'];
|
$body = $item['body'];
|
||||||
|
|
||||||
@ -1885,7 +1883,7 @@ function format_and_send_email($sender,$xchan,$item) {
|
|||||||
|
|
||||||
// use the EmailNotification library to send the message
|
// use the EmailNotification library to send the message
|
||||||
|
|
||||||
enotify::send(array(
|
Zotlabs\Lib\Enotify::send(array(
|
||||||
'fromName' => $product,
|
'fromName' => $product,
|
||||||
'fromEmail' => $sender_email,
|
'fromEmail' => $sender_email,
|
||||||
'replyTo' => $sender_email,
|
'replyTo' => $sender_email,
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
<?php /** @file */
|
|
||||||
|
|
||||||
|
|
||||||
function format_notification($item) {
|
|
||||||
|
|
||||||
$ret = '';
|
|
||||||
|
|
||||||
require_once('include/conversation.php');
|
|
||||||
|
|
||||||
// Call localize_item with the "brief" flag to get a one line status for activities.
|
|
||||||
// This should set $item['localized'] to indicate we have a brief summary.
|
|
||||||
|
|
||||||
localize_item($item);
|
|
||||||
|
|
||||||
if($item_localize) {
|
|
||||||
$itemem_text = $item['localize'];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$itemem_text = (($item['item_thread_top'])
|
|
||||||
? t('created a new post')
|
|
||||||
: sprintf( t('commented on %s\'s post'), $item['owner']['xchan_name']));
|
|
||||||
}
|
|
||||||
|
|
||||||
// convert this logic into a json array just like the system notifications
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'notify_link' => $item['llink'],
|
|
||||||
'name' => $item['author']['xchan_name'],
|
|
||||||
'url' => $item['author']['xchan_url'],
|
|
||||||
'photo' => $item['author']['xchan_photo_s'],
|
|
||||||
'when' => relative_date($item['created']),
|
|
||||||
'class' => (intval($item['item_unseen']) ? 'notify-unseen' : 'notify-seen'),
|
|
||||||
'message' => strip_tags(bbcode($itemem_text))
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -505,8 +505,7 @@ function zot_refresh($them, $channel = null, $force = false) {
|
|||||||
if($new_connection) {
|
if($new_connection) {
|
||||||
if($new_perms != $previous_perms)
|
if($new_perms != $previous_perms)
|
||||||
Zotlabs\Daemon\Master::Summon(array('Notifier','permission_create',$new_connection[0]['abook_id']));
|
Zotlabs\Daemon\Master::Summon(array('Notifier','permission_create',$new_connection[0]['abook_id']));
|
||||||
require_once('include/enotify.php');
|
Zotlabs\Lib\Enotify::submit(array(
|
||||||
notification(array(
|
|
||||||
'type' => NOTIFY_INTRO,
|
'type' => NOTIFY_INTRO,
|
||||||
'from_xchan' => $x['hash'],
|
'from_xchan' => $x['hash'],
|
||||||
'to_xchan' => $channel['channel_hash'],
|
'to_xchan' => $channel['channel_hash'],
|
||||||
|
Reference in New Issue
Block a user