Merge branch 'master', remote-tracking branch 'remotes/upstream/master'

* remotes/upstream/master:
  syntax error from pasted text, remove ^M's
  bug #335 network search broken after new ssl policy settings
  whitespace
  notification for disapora comments

* master:
This commit is contained in:
Simon L'nu 2012-03-16 13:28:22 -04:00
commit a8c1cbc655
5 changed files with 141 additions and 98 deletions

View File

@ -1159,6 +1159,48 @@ function diaspora_comment($importer,$xml,$msg) {
proc_run('php','include/notifier.php','comment',$message_id); proc_run('php','include/notifier.php','comment',$message_id);
} }
$myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 ",
dbesc($parent_item['uri']),
intval($importer['uid'])
);
if(count($myconv)) {
$importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
foreach($myconv as $conv) {
// now if we find a match, it means we're in this conversation
if(! link_compare($conv['author-link'],$importer_url))
continue;
require_once('include/enotify.php');
$conv_parent = $conv['parent'];
notification(array(
'type' => NOTIFY_COMMENT,
'notify_flags' => $importer['notify-flags'],
'language' => $importer['language'],
'to_name' => $importer['username'],
'to_email' => $importer['email'],
'uid' => $importer['uid'],
'item' => $datarray,
'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $posted_id,
'source_name' => $datarray['author-name'],
'source_link' => $datarray['author-link'],
'source_photo' => $datarray['author-avatar'],
'verb' => ACTIVITY_POST,
'otype' => 'item',
'parent' => $conv_parent,
));
// only send one notification
break;
}
}
return; return;
} }

View File

@ -2026,6 +2026,7 @@ function local_delivery($importer,$data) {
if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTVITY_OBJ_TAGTERM)) { if(($item['verb'] === ACTIVITY_TAG) && ($item['object-type'] === ACTVITY_OBJ_TAGTERM)) {
$xo = parse_xml_string($item['object'],false); $xo = parse_xml_string($item['object'],false);
$xt = parse_xml_string($item['target'],false); $xt = parse_xml_string($item['target'],false);
if($xt->type === ACTIVITY_OBJ_NOTE) { if($xt->type === ACTIVITY_OBJ_NOTE) {
$i = q("select * from `item` where uri = '%s' and uid = %d limit 1", $i = q("select * from `item` where uri = '%s' and uid = %d limit 1",
dbesc($xt->id), dbesc($xt->id),

View File

@ -638,7 +638,7 @@ if(! function_exists('search')) {
function search($s,$id='search-box',$url='/search',$save = false) { function search($s,$id='search-box',$url='/search',$save = false) {
$a = get_app(); $a = get_app();
$o = '<div id="' . $id . '">'; $o = '<div id="' . $id . '">';
$o .= '<form action="' . $a->get_baseurl() . $url . '" method="get" >'; $o .= '<form action="' . $a->get_baseurl((stristr($url,'network')) ? true : false) . $url . '" method="get" >';
$o .= '<input type="text" name="search" id="search-text" value="' . $s .'" />'; $o .= '<input type="text" name="search" id="search-text" value="' . $s .'" />';
$o .= '<input type="submit" name="submit" id="search-submit" value="' . t('Search') . '" />'; $o .= '<input type="submit" name="submit" id="search-submit" value="' . t('Search') . '" />';
if($save) if($save)

View File

@ -832,129 +832,129 @@ function item_content(&$a) {
*/ */
function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) { function handle_tag($a, &$body, &$inform, &$str_tags, $profile_uid, $tag) {
//is it a hash tag? //is it a hash tag?
if(strpos($tag,'#') === 0) { if(strpos($tag,'#') === 0) {
//if the tag is replaced... //if the tag is replaced...
if(strpos($tag,'[url=')) if(strpos($tag,'[url='))
//...do nothing //...do nothing
continue; return;
//base tag has the tags name only //base tag has the tags name only
$basetag = str_replace('_',' ',substr($tag,1)); $basetag = str_replace('_',' ',substr($tag,1));
//create text for link //create text for link
$newtag = '#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]'; $newtag = '#[url=' . $a->get_baseurl() . '/search?search=' . rawurlencode($basetag) . ']' . $basetag . '[/url]';
//replace tag by the link //replace tag by the link
$body = str_replace($tag, $newtag, $body); $body = str_replace($tag, $newtag, $body);
//is the link already in str_tags? //is the link already in str_tags?
if(! stristr($str_tags,$newtag)) { if(! stristr($str_tags,$newtag)) {
//append or set str_tags //append or set str_tags
if(strlen($str_tags)) if(strlen($str_tags))
$str_tags .= ','; $str_tags .= ',';
$str_tags .= $newtag; $str_tags .= $newtag;
} }
return; return;
} }
//is it a person tag? //is it a person tag?
if(strpos($tag,'@') === 0) { if(strpos($tag,'@') === 0) {
//is it already replaced? //is it already replaced?
if(strpos($tag,'[url=')) if(strpos($tag,'[url='))
continue; continue;
$stat = false; $stat = false;
//get the person's name //get the person's name
$name = substr($tag,1); $name = substr($tag,1);
//is it a link or a full dfrn address? //is it a link or a full dfrn address?
if((strpos($name,'@')) || (strpos($name,'http://'))) { if((strpos($name,'@')) || (strpos($name,'http://'))) {
$newname = $name; $newname = $name;
//get the profile links //get the profile links
$links = @lrdd($name); $links = @lrdd($name);
if(count($links)) { if(count($links)) {
//for all links, collect how is to inform and how's profile is to link //for all links, collect how is to inform and how's profile is to link
foreach($links as $link) { foreach($links as $link) {
if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page') if($link['@attributes']['rel'] === 'http://webfinger.net/rel/profile-page')
$profile = $link['@attributes']['href']; $profile = $link['@attributes']['href'];
if($link['@attributes']['rel'] === 'salmon') { if($link['@attributes']['rel'] === 'salmon') {
if(strlen($inform)) if(strlen($inform))
$inform .= ','; $inform .= ',';
$inform .= 'url:' . str_replace(',','%2c',$link['@attributes']['href']); $inform .= 'url:' . str_replace(',','%2c',$link['@attributes']['href']);
} }
} }
} }
} else { //if it is a name rather than an address } else { //if it is a name rather than an address
$newname = $name; $newname = $name;
$alias = ''; $alias = '';
$tagcid = 0; $tagcid = 0;
//is it some generated name? //is it some generated name?
if(strrpos($newname,'+')) { if(strrpos($newname,'+')) {
//get the id //get the id
$tagcid = intval(substr($newname,strrpos($newname,'+') + 1)); $tagcid = intval(substr($newname,strrpos($newname,'+') + 1));
//remove the next word from tag's name //remove the next word from tag's name
if(strpos($name,' ')) { if(strpos($name,' ')) {
$name = substr($name,0,strpos($name,' ')); $name = substr($name,0,strpos($name,' '));
} }
} }
if($tagcid) { //if there was an id if($tagcid) { //if there was an id
//select contact with that id from the logged in user's contact list //select contact with that id from the logged in user's contact list
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($tagcid), intval($tagcid),
intval($profile_uid) intval($profile_uid)
); );
} elseif(strstr($name,'_') || strstr($name,' ')) { //no id } elseif(strstr($name,'_') || strstr($name,' ')) { //no id
//get the real name //get the real name
$newname = str_replace('_',' ',$name); $newname = str_replace('_',' ',$name);
//select someone from this user's contacts by name //select someone from this user's contacts by name
$r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1", $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1",
dbesc($newname), dbesc($newname),
intval($profile_uid) intval($profile_uid)
); );
} else { } else {
//select someone by attag or nick and the name passed in //select someone by attag or nick and the name passed in
$r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1", $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1",
dbesc($name), dbesc($name),
dbesc($name), dbesc($name),
intval($profile_uid) intval($profile_uid)
); );
} }
//$r is set, if someone could be selected //$r is set, if someone could be selected
if(count($r)) { if(count($r)) {
$profile = $r[0]['url']; $profile = $r[0]['url'];
//set newname to nick, find alias //set newname to nick, find alias
if($r[0]['network'] === 'stat') { if($r[0]['network'] === 'stat') {
$newname = $r[0]['nick']; $newname = $r[0]['nick'];
$stat = true; $stat = true;
if($r[0]['alias']) if($r[0]['alias'])
$alias = $r[0]['alias']; $alias = $r[0]['alias'];
} }
else else
$newname = $r[0]['name']; $newname = $r[0]['name'];
//add person's id to $inform //add person's id to $inform
if(strlen($inform)) if(strlen($inform))
$inform .= ','; $inform .= ',';
$inform .= 'cid:' . $r[0]['id']; $inform .= 'cid:' . $r[0]['id'];
} }
} }
//if there is an url for this persons profile //if there is an url for this persons profile
if(isset($profile)) { if(isset($profile)) {
//create profile link //create profile link
$profile = str_replace(',','%2c',$profile); $profile = str_replace(',','%2c',$profile);
$newtag = '@[url=' . $profile . ']' . $newname . '[/url]'; $newtag = '@[url=' . $profile . ']' . $newname . '[/url]';
$body = str_replace('@' . $name, $newtag, $body); $body = str_replace('@' . $name, $newtag, $body);
//append tag to str_tags //append tag to str_tags
if(! stristr($str_tags,$newtag)) { if(! stristr($str_tags,$newtag)) {
if(strlen($str_tags)) if(strlen($str_tags))
$str_tags .= ','; $str_tags .= ',';
$str_tags .= $newtag; $str_tags .= $newtag;
} }
// Status.Net seems to require the numeric ID URL in a mention if the person isn't // Status.Net seems to require the numeric ID URL in a mention if the person isn't
// subscribed to you. But the nickname URL is OK if they are. Grrr. We'll tag both. // subscribed to you. But the nickname URL is OK if they are. Grrr. We'll tag both.
if(strlen($alias)) { if(strlen($alias)) {
$newtag = '@[url=' . $alias . ']' . $newname . '[/url]'; $newtag = '@[url=' . $alias . ']' . $newname . '[/url]';
if(! stristr($str_tags,$newtag)) { if(! stristr($str_tags,$newtag)) {
if(strlen($str_tags)) if(strlen($str_tags))
$str_tags .= ','; $str_tags .= ',';
$str_tags .= $newtag; $str_tags .= $newtag;
} }
} }
} }
} }
} }

View File

@ -90,7 +90,7 @@ function saved_searches($search) {
$o = replace_macros($tpl, array( $o = replace_macros($tpl, array(
'$title' => t('Saved Searches'), '$title' => t('Saved Searches'),
'$add' => t('add'), '$add' => t('add'),
'$searchbox' => search($search,'netsearch-box',$a->get_baseurl(true) . $srchurl,true), '$searchbox' => search($search,'netsearch-box',$srchurl,true),
'$saved' => $saved, '$saved' => $saved,
)); ));