*/
require_once('include/crypto.php');
+require_once('include/enotify.php');
function item_post(&$a) {
$parid = 0;
$r = false;
+ $preview = ((x($_POST,'preview')) ? intval($_POST['preview']) : 0);
+
if($parent || $parent_uri) {
if(! x($_POST,'type'))
);
if(count($r))
$user = $r[0];
-
+
if($orig_post) {
$str_group_allow = $orig_post['allow_gid'];
$str_contact_allow = $orig_post['allow_cid'];
}
}
+ if(($api_source)
+ && (! array_key_exists('allow_cid',$_REQUEST))
+ && (! array_key_exists('allow_gid',$_REQUEST))
+ && (! array_key_exists('deny_cid',$_REQUEST))
+ && (! array_key_exists('deny_gid',$_REQUEST))) {
+ $str_group_allow = $user['allow_gid'];
+ $str_contact_allow = $user['allow_cid'];
+ $str_group_deny = $user['deny_gid'];
+ $str_contact_deny = $user['deny_cid'];
+ }
+
+
// get contact info for poster
$author = null;
$match = null;
- if(preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) {
+ if((! $preview) && preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) {
$images = $match[1];
if(count($images)) {
foreach($images as $image) {
$match = false;
- if(preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) {
+ if((! $preview) && preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) {
$attaches = $match[1];
if(count($attaches)) {
foreach($attaches as $attach) {
$bookmark = 0;
if(preg_match_all("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism",$body,$match,PREG_SET_ORDER)) {
$bookmark = 1;
-// foreach($match as $mtch) {
-// $body = str_replace(
-// '[bookmark=' . $mtch[1] . ']' . $mtch[2] . '[/bookmark]',
-// '[url=' . $mtch[1] . ']' . $mtch[2] . '[/url]',
-// $body
-// );
-// }
}
$body = bb_translate_video($body);
continue;
$basetag = str_replace('_',' ',substr($tag,1));
$body = str_replace($tag,'#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]',$body);
- if(strlen($str_tags))
- $str_tags .= ',';
- $str_tags .= '#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]';
+
+ $newtag = '#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]';
+ if(! stristr($str_tags,$newtag)) {
+ if(strlen($str_tags))
+ $str_tags .= ',';
+ $str_tags .= $newtag;
+ }
continue;
}
if(strpos($tag,'@') === 0) {
else
$datarray['guid'] = get_guid();
+ // preview mode - prepare the body for display and send it via json
+
+ if($preview) {
+ require_once('include/conversation.php');
+ $o = conversation(&$a,array(array_merge($contact_record,$datarray)),'search',false,true);
+ echo json_encode(array('preview' => $o));
+ killme();
+ }
+
call_hooks('post_local',$datarray);
intval($post_id)
);
- // Send a notification email to the conversation owner, unless the owner is me and I wrote this item
- if(($user['notify-flags'] & NOTIFY_COMMENT) && ($contact_record != $author)) {
- push_lang($user['language']);
- require_once('bbcode.php');
- $from = $author['name'];
-
- // name of the automated email sender
- $msg['notificationfromname'] = stripslashes($datarray['author-name']);;
- // noreply address to send from
- $msg['notificationfromemail'] = t('noreply') . '@' . $a->get_hostname();
-
- // text version
- // process the message body to display properly in text mode
- $msg['textversion']
- = html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8');
-
- // html version
- // process the message body to display properly in text mode
- $msg['htmlversion']
- = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"), "<br />\n",$datarray['body']))));
-
- // load the template for private message notifications
- $tpl = get_intltext_template('cmnt_received_html_body_eml.tpl');
- $email_html_body_tpl = replace_macros($tpl,array(
- '$username' => $user['username'],
- '$sitename' => $a->config['sitename'], // name of this site
- '$siteurl' => $a->get_baseurl(), // descriptive url of this site
- '$thumb' => $author['thumb'], // thumbnail url for sender icon
- '$email' => $importer['email'], // email address to send to
- '$url' => $author['url'], // full url for the site
- '$from' => $from, // name of the person sending the message
- '$body' => $msg['htmlversion'], // html version of the message
- '$display' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id,
+ if($contact_record != $author) {
+ notification(array(
+ 'type' => NOTIFY_COMMENT,
+ 'notify_flags' => $user['notify-flags'],
+ 'language' => $user['language'],
+ 'to_name' => $user['username'],
+ 'to_email' => $user['email'],
+ 'item' => $datarray,
+ 'link' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id,
+ 'source_name' => $datarray['author-name'],
+ 'source_link' => $datarray['author-link'],
+ 'source_photo' => $datarray['author-avatar'],
+ 'verb' => ACTIVITY_POST,
+ 'otype' => 'item'
));
- // load the template for private message notifications
- $tpl = get_intltext_template('cmnt_received_text_body_eml.tpl');
- $email_text_body_tpl = replace_macros($tpl,array(
- '$username' => $user['username'],
- '$sitename' => $a->config['sitename'], // name of this site
- '$siteurl' => $a->get_baseurl(), // descriptive url of this site
- '$thumb' => $author['thumb'], // thumbnail url for sender icon
- '$email' => $importer['email'], // email address to send to
- '$url' => $author['url'], // profile url for the author
- '$from' => $from, // name of the person sending the message
- '$body' => $msg['textversion'], // text version of the message
- '$display' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id,
- ));
-
- // use the EmailNotification library to send the message
- require_once("include/EmailNotification.php");
- EmailNotification::sendTextHtmlEmail(
- $msg['notificationfromname'],
- t("Administrator@") . $a->get_hostname(),
- t("noreply") . '@' . $a->get_hostname(),
- $user['email'],
- sprintf( t('%s commented on an item at %s'), $from , $a->config['sitename']),
- $email_html_body_tpl,
- $email_text_body_tpl
- );
-
- pop_lang();
}
// We won't be able to sign Diaspora comments for authenticated visitors - we don't have their private key
else {
$parent = $post_id;
- // let me know if somebody did a wall-to-wall post on my profile
-
- if(($user['notify-flags'] & NOTIFY_WALL) && ($contact_record != $author)) {
- push_lang($user['language']);
- require_once('bbcode.php');
- $from = $author['name'];
-
- // name of the automated email sender
- $msg['notificationfromname'] = $from;
- // noreply address to send from
- $msg['notificationfromemail'] = t('noreply') . '@' . $a->get_hostname();
-
- // text version
- // process the message body to display properly in text mode
- $msg['textversion']
- = html_entity_decode(strip_tags(bbcode(stripslashes($datarray['body']))), ENT_QUOTES, 'UTF-8');
-
- // html version
- // process the message body to display properly in text mode
- $msg['htmlversion']
- = html_entity_decode(bbcode(stripslashes(str_replace(array("\\r\\n", "\\r","\\n\\n" ,"\\n"), "<br />\n",$datarray['body']))));
-
- // load the template for private message notifications
- $tpl = load_view_file('view/wall_received_html_body_eml.tpl');
- $email_html_body_tpl = replace_macros($tpl,array(
- '$username' => $user['username'],
- '$sitename' => $a->config['sitename'], // name of this site
- '$siteurl' => $a->get_baseurl(), // descriptive url of this site
- '$thumb' => $author['thumb'], // thumbnail url for sender icon
- '$url' => $author['url'], // full url for the site
- '$from' => $from, // name of the person sending the message
- '$body' => $msg['htmlversion'], // html version of the message
- '$display' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id,
+ if($contact_record != $author) {
+ notification(array(
+ 'type' => NOTIFY_WALL,
+ 'notify_flags' => $user['notify-flags'],
+ 'language' => $user['language'],
+ 'to_name' => $user['username'],
+ 'to_email' => $user['email'],
+ 'item' => $datarray,
+ 'link' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id,
+ 'source_name' => $datarray['author-name'],
+ 'source_link' => $datarray['author-link'],
+ 'source_photo' => $datarray['author-avatar'],
+ 'verb' => ACTIVITY_POST,
+ 'otype' => 'item'
));
-
- // load the template for private message notifications
- $tpl = load_view_file('view/wall_received_text_body_eml.tpl');
- $email_text_body_tpl = replace_macros($tpl,array(
- '$username' => $user['username'],
- '$sitename' => $a->config['sitename'], // name of this site
- '$siteurl' => $a->get_baseurl(), // descriptive url of this site
- '$thumb' => $author['thumb'], // thumbnail url for sender icon
- '$url' => $author['url'], // full url for the site
- '$from' => $from, // name of the person sending the message
- '$body' => $msg['textversion'], // text version of the message
- '$display' => $a->get_baseurl() . '/display/' . $user['nickname'] . '/' . $post_id,
- ));
-
- // use the EmailNotification library to send the message
- require_once("include/EmailNotification.php");
- EmailNotification::sendTextHtmlEmail(
- $msg['notificationfromname'],
- t("Administrator@") . $a->get_hostname(),
- t("noreply") . '@' . $a->get_hostname(),
- $user['email'],
- sprintf( t('%s posted to your profile wall at %s') , $from , $a->config['sitename']),
- $email_html_body_tpl,
- $email_text_body_tpl
- );
- pop_lang();
}
}
$addr = trim($recip);
if(! strlen($addr))
continue;
- $disclaimer = '<hr />' . sprintf( t('This message was sent to you by %s, a member of the Friendika social network.'),$a->user['username'])
+ $disclaimer = '<hr />' . sprintf( t('This message was sent to you by %s, a member of the Friendica social network.'),$a->user['username'])
. '<br />';
$disclaimer .= sprintf( t('You may visit them online at %s'), $a->get_baseurl() . '/profile/' . $a->user['nickname']) . EOL;
$disclaimer .= t('Please contact the sender by replying to this post if you do not wish to receive these messages.') . EOL;
- $subject = '[Friendika]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']);
+ $subject = '[Friendica]' . ' ' . sprintf( t('%s posted an update.'),$a->user['username']);
$headers = 'From: ' . $a->user['username'] . ' <' . $a->user['email'] . '>' . "\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-Type: text/html; charset=UTF-8' . "\n";